[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-5-12-%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252581%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525A7%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B9%252525252525252525252525252525252525252525252588%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525B2%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252588%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525B0%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B9%252525252525252525252525252525252525252525252580%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525259B%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B9%252525252525252525252525252525252525252525252587%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252599%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525A0%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525B2%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525A9%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525B2%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B9%252525252525252525252525252525252525252525252582%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252584%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B9%252525252525252525252525252525252525252525252589%2525252525252525252525252525252525252525252525E0%2525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252594-all-all-createdAt:desc-default":3},{"data":4,"page":518,"perPage":519,"totalItems":520,"totalPages":521},[5,68,116,161,208,240,289,325,356,398,441,481],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":64,"published_at":65,"school_blog":60,"short_description":66,"title":6,"updated":67,"slug":61,"views":63},"The Origin of JavaScript: Created in 10 Days, Rules the World","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fk5ktr6fo351rni0\u002Fbrendan_eich_the_creator_of_java_script_at_netscape_featuring_the_js_logo_and_code_snippets_8tm80mpmin.webp","2026-03-04 08:20:43.066Z",{"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:20:36.060Z","","xcq4mt3coqo1odt","V8 Engine","2026-04-10 16:07:27.526Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:20:38.187Z","b4o3toqgoc84295","Brendan Eich","2026-04-10 16:07:27.995Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:20:41.018Z","xzz8g6s99hkw93f","JavaScript History","2026-04-10 16:07:28.276Z",{"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-04-10 16:07:28.339Z",{"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":15,"expand":48,"id":60,"slug":61,"updated":62,"views":63},"isnp2fv80bn3yem","pbc_2105096300","school_blogs",{"category":49},{"blogIds":50,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":15,"image_alt":15,"image_path":15,"label":54,"name":55,"priority":56,"publish_at":57,"scheduled_at":15,"status":58,"updated":59,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:19:47.590Z",{"en":55,"th":55},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","published","2026-04-25 02:32:14.031Z","n4c7o0yqlwcv639","history-of-javascript-from-10-days-to-global-standard","2026-05-12 13:08:13.414Z",238,"k5ktr6fo351rni0","2026-01-08 05:35:48.725Z","Explore the history of JavaScript. From its 10-day creation at Netscape to winning the browser wars and becoming the king of web development.","2026-05-11 21:45:19.000Z",{"alt":69,"cover_image_path":70,"created":71,"expand":72,"id":112,"published_at":113,"school_blog":108,"short_description":114,"title":69,"updated":115,"slug":109,"views":111},"Git for Team: The Professional Workflow Guide to Collaborative Coding","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F5jblmfazpjbqx96\u002Finfographic_showing_team_collaboration_using_git_and_git_hub_illustrating_branching_merging_and_pull_xj4jg51gl0.webp","2026-03-04 08:44:44.506Z",{"keywords":73,"locale":94,"school_blog":95},[74,79,84,89],{"collectionId":12,"collectionName":13,"created":75,"created_by":15,"id":76,"name":77,"updated":78,"updated_by":15},"2026-03-04 08:44:43.803Z","tsn8jg792h1wac5","Code Review","2026-04-10 16:12:49.012Z",{"collectionId":12,"collectionName":13,"created":80,"created_by":15,"id":81,"name":82,"updated":83,"updated_by":15},"2026-03-04 08:44:35.823Z","andd8rbw15sng17","GitHub","2026-04-10 16:12:47.387Z",{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},"2026-03-04 08:44:36.134Z","pg679bitpkii9vv","Git","2026-04-10 16:12:47.459Z",{"collectionId":12,"collectionName":13,"created":90,"created_by":15,"id":91,"name":92,"updated":93,"updated_by":15},"2026-03-04 08:44:35.619Z","9z8e1xfjt07e7n9","Git Workflow","2026-04-10 16:12:47.226Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":96,"collectionId":46,"collectionName":47,"created":15,"expand":97,"id":108,"slug":109,"updated":110,"views":111},"spm4l1k5bgmhmmt",{"category":98},{"blogIds":99,"collectionId":51,"collectionName":52,"created":100,"created_by":15,"id":96,"image":101,"image_alt":15,"image_path":102,"label":103,"name":104,"priority":105,"publish_at":106,"scheduled_at":15,"status":58,"updated":107,"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":104,"th":104},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","p8mussz4d3imv1c","git-for-team-professional-workflow-guide","2026-05-12 16:26:58.523Z",415,"5jblmfazpjbqx96","2026-01-07 04:24:37.284Z","Master professional Git workflows for team collaboration. Learn how to manage branches, conduct Code Reviews, and use Pull Requests effectively to ensure a stable and scalable codebase.","2026-05-08 06:51:56.702Z",{"alt":117,"cover_image_path":118,"created":119,"expand":120,"id":157,"published_at":158,"school_blog":153,"short_description":159,"title":117,"updated":160,"slug":154,"views":156},"The Origin of C: The Foundation of Modern Programming","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F204ju6yjjphhocj\u002Fcover_image_blog_the_origin_of_c_the_foundation_of_modern_programming_ucgo56tgfo.webp","2026-03-04 08:20:49.329Z",{"keywords":121,"locale":142,"school_blog":143},[122,127,132,137],{"collectionId":12,"collectionName":13,"created":123,"created_by":15,"id":124,"name":125,"updated":126,"updated_by":15},"2026-03-04 08:20:46.902Z","p2fa536x3fkbftv","C Language","2026-04-10 16:07:28.789Z",{"collectionId":12,"collectionName":13,"created":128,"created_by":15,"id":129,"name":130,"updated":131,"updated_by":15},"2026-03-04 08:20:42.894Z","q8fw2bf4sm83pak","Bell Labs","2026-04-10 16:07:28.504Z",{"collectionId":12,"collectionName":13,"created":133,"created_by":15,"id":134,"name":135,"updated":136,"updated_by":15},"2026-03-04 08:20:45.500Z","9f8c26oyzxwvs13","Dennis Ritchie","2026-04-10 16:07:28.644Z",{"collectionId":12,"collectionName":13,"created":138,"created_by":15,"id":139,"name":140,"updated":141,"updated_by":15},"2026-03-04 08:20:48.783Z","zs2uskcp8hs1e8k","C Programming History","2026-04-10 16:07:29.017Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":144,"collectionId":46,"collectionName":47,"created":15,"expand":145,"id":153,"slug":154,"updated":155,"views":156},"102u7miss0ec94h",{"category":146},{"blogIds":147,"collectionId":51,"collectionName":52,"created":148,"created_by":15,"id":144,"image":15,"image_alt":15,"image_path":15,"label":149,"name":150,"priority":56,"publish_at":151,"scheduled_at":15,"status":58,"updated":152,"updated_by":15},[],"2026-03-04 08:19:48.998Z",{"en":150,"th":150},"The Origin of Code","2026-02-18 01:59:52.528Z","2026-04-25 02:32:14.183Z","pua7xa2ecuhvbcu","origin-of-c-programming-language","2026-05-06 13:31:29.261Z",209,"204ju6yjjphhocj","2026-01-01 04:09:24.532Z","Explore the deep history of the C language. From its birth at Bell Labs to becoming the bedrock of modern operating systems and programming languages. Learn the genius behind Dennis Ritchie's creation.","2026-05-11 21:45:19.256Z",{"alt":162,"cover_image_path":163,"created":164,"expand":165,"id":204,"published_at":205,"school_blog":201,"short_description":206,"title":162,"updated":207,"slug":202,"views":203},"JS2GO EP.50 Deploying Applications: Go vs Node.js for Production Systems","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F2720p0diuraw0wo\u002Fcover_image_ep_50_deploying_applications_go_vs_node_fecycri5ek.oductionSystems.webp","2026-03-04 08:44:47.848Z",{"keywords":166,"locale":187,"school_blog":188},[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:44:47.024Z","p4tvi007knx0nib","Deploy Application","2026-04-10 16:12:49.798Z",{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"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-04-10 16:07:29.504Z",{"collectionId":12,"collectionName":13,"created":183,"created_by":15,"id":184,"name":185,"updated":186,"updated_by":15},"2026-03-04 08:44:47.385Z","li4cs2v3atd0wds","Production","2026-04-10 16:12:49.890Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":189,"collectionId":46,"collectionName":47,"created":15,"expand":190,"id":201,"slug":202,"updated":15,"views":203},"hsa1afr8fcnd6qb",{"category":191},{"blogIds":192,"collectionId":51,"collectionName":52,"created":193,"created_by":15,"id":189,"image":194,"image_alt":15,"image_path":195,"label":196,"name":197,"priority":198,"publish_at":199,"scheduled_at":15,"status":58,"updated":200,"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":197,"th":197},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-04-25 02:32:14.339Z","v7nigitalddgztd","deploying-applications-go-vs-nodejs-production",208,"2720p0diuraw0wo","2025-12-30 10:59:37.237Z","An end-to-end production deployment guide comparing Go and Node.js, covering build strategies, Docker multi-stage builds, secrets management, CI\u002FCD pipelines, and zero-downtime deployment based on real-world usage.","2026-05-08 06:51:57.845Z",{"alt":209,"cover_image_path":210,"created":211,"expand":212,"id":236,"published_at":237,"school_blog":232,"short_description":238,"title":209,"updated":239,"slug":233,"views":235},"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":213,"locale":226,"school_blog":227},[214,215,216,221],{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},{"collectionId":12,"collectionName":13,"created":90,"created_by":15,"id":91,"name":92,"updated":93,"updated_by":15},{"collectionId":12,"collectionName":13,"created":217,"created_by":15,"id":218,"name":219,"updated":220,"updated_by":15},"2026-03-04 08:44:44.589Z","0rhtp9q4g9epxjv","Git tutorial","2026-04-10 16:12:49.241Z",{"collectionId":12,"collectionName":13,"created":222,"created_by":15,"id":223,"name":224,"updated":225,"updated_by":15},"2026-03-04 08:44:44.958Z","hl4mu6quhfjhdlw","Git for beginners","2026-04-10 16:12:49.337Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":96,"collectionId":46,"collectionName":47,"created":15,"expand":228,"id":232,"slug":233,"updated":234,"views":235},{"category":229},{"blogIds":230,"collectionId":51,"collectionName":52,"created":100,"created_by":15,"id":96,"image":101,"image_alt":15,"image_path":102,"label":231,"name":104,"priority":105,"publish_at":106,"scheduled_at":15,"status":58,"updated":107,"updated_by":15},[],{"en":104,"th":104},"g4okogcok21khr0","git-beginner-add-commit-push-visual","2026-05-12 16:12:53.231Z",207,"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-05-08 06:51:57.192Z",{"alt":241,"cover_image_path":242,"created":243,"expand":244,"id":285,"published_at":286,"school_blog":281,"short_description":287,"title":241,"updated":288,"slug":282,"views":284},"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":245,"locale":267,"school_blog":268},[246,247,252,257,262],{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":253,"created_by":15,"id":254,"name":255,"updated":256,"updated_by":15},"2026-03-04 08:44:47.893Z","1r53azecnj44o3t","Real-time","2026-04-10 16:12:50.006Z",{"collectionId":12,"collectionName":13,"created":258,"created_by":15,"id":259,"name":260,"updated":261,"updated_by":15},"2026-03-04 08:34:10.799Z","m3qoswhgnc4c38n","Kubernetes","2026-04-10 16:08:08.875Z",{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":269,"collectionId":46,"collectionName":47,"created":15,"expand":270,"id":281,"slug":282,"updated":283,"views":284},"wqxt7ag2gn7xcmk",{"category":271},{"blogIds":272,"collectionId":51,"collectionName":52,"created":273,"created_by":15,"id":269,"image":274,"image_alt":15,"image_path":275,"label":276,"name":277,"priority":278,"publish_at":279,"scheduled_at":15,"status":58,"updated":280,"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":277,"th":277},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","rr43ycru4104v7f","ep-123-load-balancing-sticky-sessions-websocket","2026-05-08 21:11:54.216Z",261,"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-05-08 06:51:57.974Z",{"alt":290,"cover_image_path":291,"created":292,"expand":293,"id":321,"published_at":322,"school_blog":318,"short_description":323,"title":290,"updated":324,"slug":319,"views":320},"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":294,"locale":312,"school_blog":313},[295,296,301,306,311],{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"collectionId":12,"collectionName":13,"created":297,"created_by":15,"id":298,"name":299,"updated":300,"updated_by":15},"2026-03-04 08:44:32.154Z","u0s66bjop3dljau","Horizontal Scaling","2026-04-10 16:12:46.399Z",{"collectionId":12,"collectionName":13,"created":302,"created_by":15,"id":303,"name":304,"updated":305,"updated_by":15},"2026-03-04 08:44:49.944Z","5sx3ab5gv2n24mh","Geo Distributed Architecture","2026-04-10 16:12:50.651Z",{"collectionId":12,"collectionName":13,"created":307,"created_by":15,"id":308,"name":309,"updated":310,"updated_by":15},"2026-03-04 08:44:50.258Z","nrtw5001po78dez","WebSocket Scaling","2026-04-10 16:12:50.756Z",{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":269,"collectionId":46,"collectionName":47,"created":15,"expand":314,"id":318,"slug":319,"updated":15,"views":320},{"category":315},{"blogIds":316,"collectionId":51,"collectionName":52,"created":273,"created_by":15,"id":269,"image":274,"image_alt":15,"image_path":275,"label":317,"name":277,"priority":278,"publish_at":279,"scheduled_at":15,"status":58,"updated":280,"updated_by":15},[],{"en":277,"th":277},"xrv5n3fjd3aocjj","ep122-horizontal-geo-distributed-websocket-scaling",202,"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-05-08 06:51:58.683Z",{"alt":326,"cover_image_path":327,"created":328,"expand":329,"id":352,"published_at":353,"school_blog":349,"short_description":354,"title":326,"updated":355,"slug":350,"views":351},"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":330,"locale":343,"school_blog":344},[331,335,336,337,338],{"collectionId":12,"collectionName":13,"created":332,"created_by":15,"id":333,"name":277,"updated":334,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-04-10 16:12:50.850Z",{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"updated_by":15},{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"collectionId":12,"collectionName":13,"created":339,"created_by":15,"id":340,"name":341,"updated":342,"updated_by":15},"2026-03-04 08:44:51.688Z","ztv5f26qud778za","whiteboard","2026-04-10 16:12:50.940Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":269,"collectionId":46,"collectionName":47,"created":15,"expand":345,"id":349,"slug":350,"updated":15,"views":351},{"category":346},{"blogIds":347,"collectionId":51,"collectionName":52,"created":273,"created_by":15,"id":269,"image":274,"image_alt":15,"image_path":275,"label":348,"name":277,"priority":278,"publish_at":279,"scheduled_at":15,"status":58,"updated":280,"updated_by":15},[],{"en":277,"th":277},"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-05-08 06:51:59.302Z",{"alt":357,"cover_image_path":358,"created":359,"expand":360,"id":394,"published_at":395,"school_blog":390,"short_description":396,"title":357,"updated":397,"slug":391,"views":393},"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":361,"locale":384,"school_blog":385},[362,367,372,377,382,383],{"collectionId":12,"collectionName":13,"created":363,"created_by":15,"id":364,"name":365,"updated":366,"updated_by":15},"2026-03-04 08:34:18.714Z","7cb29z95923lmhe","authentication","2026-04-10 16:08:11.822Z",{"collectionId":12,"collectionName":13,"created":368,"created_by":15,"id":369,"name":370,"updated":371,"updated_by":15},"2026-03-04 08:44:52.376Z","7kgkxt1b9xd0cca","Authorization","2026-04-10 16:12:51.107Z",{"collectionId":12,"collectionName":13,"created":373,"created_by":15,"id":374,"name":375,"updated":376,"updated_by":15},"2026-03-04 08:44:52.790Z","tkf1l5rauw0t7m0","Secure API Design","2026-04-10 16:12:51.172Z",{"collectionId":12,"collectionName":13,"created":378,"created_by":15,"id":379,"name":380,"updated":381,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-04-10 16:12:51.264Z",{"collectionId":12,"collectionName":13,"created":178,"created_by":15,"id":179,"name":180,"updated":181,"updated_by":15},{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":189,"collectionId":46,"collectionName":47,"created":15,"expand":386,"id":390,"slug":391,"updated":392,"views":393},{"category":387},{"blogIds":388,"collectionId":51,"collectionName":52,"created":193,"created_by":15,"id":189,"image":194,"image_alt":15,"image_path":195,"label":389,"name":197,"priority":198,"publish_at":199,"scheduled_at":15,"status":58,"updated":200,"updated_by":15},[],{"en":197,"th":197},"q6au12trb7ipmxx","js2go-ep49-backend-security-authentication-authorization-validation","2026-05-11 21:13:57.128Z",252,"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-05-08 06:51:59.632Z",{"alt":399,"cover_image_path":400,"created":401,"expand":402,"id":437,"published_at":438,"school_blog":433,"short_description":439,"title":399,"updated":440,"slug":434,"views":436},"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":403,"locale":427,"school_blog":428},[404,409,414,419,424,425,426],{"collectionId":12,"collectionName":13,"created":405,"created_by":15,"id":406,"name":407,"updated":408,"updated_by":15},"2026-03-04 08:44:53.651Z","tuo9u1ayxlr8xvm","Monitoring System","2026-04-10 16:12:51.456Z",{"collectionId":12,"collectionName":13,"created":410,"created_by":15,"id":411,"name":412,"updated":413,"updated_by":15},"2026-03-04 08:44:34.571Z","fiybaq65m7oymtd","Monitoring","2026-04-10 16:12:46.904Z",{"collectionId":12,"collectionName":13,"created":415,"created_by":15,"id":416,"name":417,"updated":418,"updated_by":15},"2026-03-04 08:44:54.012Z","e283qzmjw1vq2l4","Logging Production","2026-04-10 16:12:51.523Z",{"collectionId":12,"collectionName":13,"created":420,"created_by":15,"id":421,"name":422,"updated":423,"updated_by":15},"2026-03-04 08:33:55.302Z","0mue4zt83jcdtq9","Logging","2026-04-10 16:08:03.396Z",{"collectionId":12,"collectionName":13,"created":178,"created_by":15,"id":179,"name":180,"updated":181,"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":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":189,"collectionId":46,"collectionName":47,"created":15,"expand":429,"id":433,"slug":434,"updated":435,"views":436},{"category":430},{"blogIds":431,"collectionId":51,"collectionName":52,"created":193,"created_by":15,"id":189,"image":194,"image_alt":15,"image_path":195,"label":432,"name":197,"priority":198,"publish_at":199,"scheduled_at":15,"status":58,"updated":200,"updated_by":15},[],{"en":197,"th":197},"d8jrjoxb8k7la64","js2go-ep48-logging-monitoring-production-go-nodejs","2026-05-12 19:23:06.222Z",232,"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-05-08 06:52:00.229Z",{"alt":442,"cover_image_path":443,"created":444,"expand":445,"id":477,"published_at":478,"school_blog":473,"short_description":479,"title":442,"updated":480,"slug":474,"views":476},"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":446,"locale":467,"school_blog":468},[447,452,457,462],{"collectionId":12,"collectionName":13,"created":448,"created_by":15,"id":449,"name":450,"updated":451,"updated_by":15},"2026-03-04 08:44:57.070Z","5g80f54k2d56ht8","Programmer Burnout","2026-04-10 16:12:52.014Z",{"collectionId":12,"collectionName":13,"created":453,"created_by":15,"id":454,"name":455,"updated":456,"updated_by":15},"2026-03-04 08:44:57.484Z","kfa3z2tnhtzzhvo","Work-Life Balance for Programmers","2026-04-10 16:12:52.161Z",{"collectionId":12,"collectionName":13,"created":458,"created_by":15,"id":459,"name":460,"updated":461,"updated_by":15},"2026-03-04 08:44:57.697Z","rw5wz1cf9aox58p","Work-Life Balance","2026-04-10 16:12:52.284Z",{"collectionId":12,"collectionName":13,"created":463,"created_by":15,"id":464,"name":465,"updated":466,"updated_by":15},"2026-03-04 08:35:12.499Z","9bexb3o9mxg9dei","Burnout","2026-04-10 16:12:39.924Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":96,"collectionId":46,"collectionName":47,"created":15,"expand":469,"id":473,"slug":474,"updated":475,"views":476},{"category":470},{"blogIds":471,"collectionId":51,"collectionName":52,"created":100,"created_by":15,"id":96,"image":101,"image_alt":15,"image_path":102,"label":472,"name":104,"priority":105,"publish_at":106,"scheduled_at":15,"status":58,"updated":107,"updated_by":15},[],{"en":104,"th":104},"sy7kac0t03r9dox","work-life-balance-for-programmers","2026-05-12 03:07:21.655Z",230,"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-05-08 06:52:01.057Z",{"alt":482,"cover_image_path":483,"created":484,"expand":485,"id":514,"published_at":515,"school_blog":510,"short_description":516,"title":482,"updated":517,"slug":511,"views":513},"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":486,"locale":504,"school_blog":505},[487,492,497,498,499],{"collectionId":12,"collectionName":13,"created":488,"created_by":15,"id":489,"name":490,"updated":491,"updated_by":15},"2026-03-04 08:44:49.054Z","vbjgbr5ah0kh43p","Real-time System","2026-04-10 16:12:50.311Z",{"collectionId":12,"collectionName":13,"created":493,"created_by":15,"id":494,"name":495,"updated":496,"updated_by":15},"2026-03-04 08:44:54.550Z","dhhilrqrpmtr3x7","Google Docs","2026-04-10 16:12:51.619Z",{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},{"collectionId":12,"collectionName":13,"created":500,"created_by":15,"id":501,"name":502,"updated":503,"updated_by":15},"2026-03-04 08:44:54.877Z","ype7kkszqa7py9n","Real-time Document","2026-04-10 16:12:51.779Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":269,"collectionId":46,"collectionName":47,"created":15,"expand":506,"id":510,"slug":511,"updated":512,"views":513},{"category":507},{"blogIds":508,"collectionId":51,"collectionName":52,"created":273,"created_by":15,"id":269,"image":274,"image_alt":15,"image_path":275,"label":509,"name":277,"priority":278,"publish_at":279,"scheduled_at":15,"status":58,"updated":280,"updated_by":15},[],{"en":277,"th":277},"nez2cwex9p6we4q","realtime-document-editing-with-go-websocket","2026-05-12 11:21:18.066Z",242,"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-05-08 06:52:00.358Z",5,12,405,34]