[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-8-12-superdev%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520academy-all-all-createdAt:desc-default":3},{"data":4,"page":531,"perPage":532,"totalItems":533,"totalPages":534},[5,85,134,171,208,245,303,342,379,416,453,491],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":81,"published_at":82,"school_blog":77,"short_description":83,"title":6,"updated":84,"slug":78,"views":80},"EP.112 Building a Real-time Notification System with Go & WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fa6ourecyykz4qu1\u002Fcover_image_ep_55tj9y0hok.ionSystemwithGo.webp","2026-03-04 08:45:14.833Z",{"keywords":10,"locale":49,"school_blog":59},[11,19,24,29,34,39,44],{"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:45:13.578Z","","qwq1kseajvv4cne","notification system","2026-04-10 16:12:55.954Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:34:10.254Z","rss87kgvhtvkri1","Redis Pub\u002FSub","2026-04-10 16:08:08.714Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:45:13.969Z","pyniezbvfdbyuyc","real-time notifications","2026-04-10 16:12:56.096Z",{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"updated_by":15},"2026-03-04 08:44:48.724Z","s6xhnfomy7n5ycp","WebSocket Server","2026-04-10 16:12:50.171Z",{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},"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":60,"collectionId":61,"collectionName":62,"created":15,"expand":63,"id":77,"slug":78,"updated":79,"views":80},"wqxt7ag2gn7xcmk","pbc_2105096300","school_blogs",{"category":64},{"blogIds":65,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":71,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"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":72,"th":72},"Golang The Series",1,"2026-03-16 04:39:38.440Z","published","2026-04-25 02:32:15.470Z","jkppmte5754r6vv","real-time-notification-system-websocket-ep112","2026-05-24 09:09:53.253Z",218,"a6ourecyykz4qu1","2025-12-01 04:20:10.633Z","Learn how to build a real-time notification system using Go and WebSocket, with Redis Pub\u002FSub for scaling across multiple instances ensuring users receive instant alerts for important events.","2026-05-08 06:52:06.551Z",{"alt":86,"cover_image_path":87,"created":88,"expand":89,"id":130,"published_at":131,"school_blog":126,"short_description":132,"title":86,"updated":133,"slug":127,"views":129},"JS2GO EP.41 Advanced Concurrency Patterns in Go and JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fdf6ufzdlyyjjl6a\u002Fcover_image_js2_go_advanced_concurrency_patterns_in_go_and_java_script_0ve1z3sih3.webp","2026-03-04 08:45:19.312Z",{"keywords":90,"locale":112,"school_blog":113},[91,96,101,106,107],{"collectionId":12,"collectionName":13,"created":92,"created_by":15,"id":93,"name":94,"updated":95,"updated_by":15},"2026-03-04 08:34:34.471Z","wdd8fb47sbrmq28","Worker Pool","2026-04-10 16:08:17.741Z",{"collectionId":12,"collectionName":13,"created":97,"created_by":15,"id":98,"name":99,"updated":100,"updated_by":15},"2026-03-04 08:24:48.143Z","dourw0uuydrrh1h","Concurrency","2026-04-10 16:07:30.157Z",{"collectionId":12,"collectionName":13,"created":102,"created_by":15,"id":103,"name":104,"updated":105,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},"2026-03-04 08:45:18.214Z","teavruxi3wptjg2","Fan-in Fan-out","2026-04-10 16:12:56.820Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":114,"collectionId":61,"collectionName":62,"created":15,"expand":115,"id":126,"slug":127,"updated":128,"views":129},"hsa1afr8fcnd6qb",{"category":116},{"blogIds":117,"collectionId":66,"collectionName":67,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":121,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":75,"updated":125,"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":122,"th":122},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-04-25 02:32:14.339Z","p1xr7iwf0bs1tu8","js2go-ep41-advanced-concurrency-patterns-go-javascript","2026-05-14 17:39:37.199Z",212,"df6ufzdlyyjjl6a","2025-11-25 09:53:40.248Z","Explore Worker Pool, Fan-in\u002FFan-out, Rate Limiter, and Pipeline Optimization in Go and JavaScript with real-world examples and Production-ready patterns.","2026-05-08 06:52:08.270Z",{"alt":135,"cover_image_path":136,"created":137,"expand":138,"id":167,"published_at":168,"school_blog":163,"short_description":169,"title":135,"updated":170,"slug":164,"views":166},"JS2GO EP.40 Optimizing Code Performance: Go vs JavaScript Which One Is Faster?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fss3ngbr8mnt0iap\u002Fcover_image_for_js2_go_ep_o7fxl8l3cv.eGovsJavaScript.webp","2026-03-04 08:45:19.836Z",{"keywords":139,"locale":157,"school_blog":158},[140,141,142,147,152],{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":102,"created_by":15,"id":103,"name":104,"updated":105,"updated_by":15},{"collectionId":12,"collectionName":13,"created":143,"created_by":15,"id":144,"name":145,"updated":146,"updated_by":15},"2026-03-04 08:45:19.280Z","2zphwe6a9vls84d","Benchmark","2026-04-10 16:12:56.915Z",{"collectionId":12,"collectionName":13,"created":148,"created_by":15,"id":149,"name":150,"updated":151,"updated_by":15},"2026-03-04 08:44:11.932Z","8sanh9jytfatsgk","Performance Optimization","2026-04-10 16:12:41.404Z",{"collectionId":12,"collectionName":13,"created":153,"created_by":15,"id":154,"name":155,"updated":156,"updated_by":15},"2026-03-04 08:45:19.588Z","jiiqle4ur9lyqjr","Garbage Collection","2026-04-10 16:12:57.067Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":114,"collectionId":61,"collectionName":62,"created":15,"expand":159,"id":163,"slug":164,"updated":165,"views":166},{"category":160},{"blogIds":161,"collectionId":66,"collectionName":67,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":162,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":75,"updated":125,"updated_by":15},[],{"en":122,"th":122},"8h85kk8v4b23tuz","js2go-ep40-optimize-performance-go-vs-javascript-en","2026-05-17 17:31:01.932Z",216,"ss3ngbr8mnt0iap","2025-11-25 09:45:42.235Z","Discover how to optimize performance in Go and JavaScript using techniques like garbage collection tuning, memory profiling, parallel execution, and benchmarking. Learn which language performs best in real-world scenarios.","2026-05-08 06:52:08.716Z",{"alt":172,"cover_image_path":173,"created":174,"expand":175,"id":204,"published_at":205,"school_blog":200,"short_description":206,"title":172,"updated":207,"slug":201,"views":203},"EP.111 Message Ordering & Event Sequence Management for WebSocket Systems","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fpdf1phavdygzc5h\u002Fcover_image_for_golang_the_series_ep_bsy777cn0x.uenceManagement.webp","2026-03-04 08:45:20.819Z",{"keywords":176,"locale":194,"school_blog":195},[177,178,183,188,193],{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"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:45:20.175Z","qt9i7rqnfh0kczq","Message Ordering","2026-04-10 16:12:57.376Z",{"collectionId":12,"collectionName":13,"created":184,"created_by":15,"id":185,"name":186,"updated":187,"updated_by":15},"2026-03-04 08:45:20.573Z","v392y0yjhdt1ttt","Event Sequence","2026-04-10 16:12:57.528Z",{"collectionId":12,"collectionName":13,"created":189,"created_by":15,"id":190,"name":191,"updated":192,"updated_by":15},"2026-03-04 08:45:10.623Z","2zhfdpu8sy1xeju","Golang WebSocket","2026-04-10 16:12:55.126Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":196,"id":200,"slug":201,"updated":202,"views":203},{"category":197},{"blogIds":198,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":199,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"5pylgez4390k6e5","ep111-message-ordering-event-sequence-en","2026-05-27 03:15:09.286Z",211,"pdf1phavdygzc5h","2025-11-24 09:41:17.654Z","High-concurrency WebSocket systems often face out-of-order messages. This episode covers Sequence ID design, ordered broadcasting, Redis Pub\u002FSub synchronization, and recovery mechanisms to ensure 100% correct message ordering.","2026-05-08 06:52:09.902Z",{"alt":209,"cover_image_path":210,"created":211,"expand":212,"id":241,"published_at":242,"school_blog":237,"short_description":243,"title":209,"updated":244,"slug":238,"views":240},"EP.110 Advanced Auto-Scaling and Load Balancing for WebSocket Servers","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fr6ybpl3o40j8ux0\u002Fcover_image_for_golang_the_series_advanced_auto_scaling_and_load_balancing_for_web_socket_servers_3jby2aa772.webp","2026-03-04 08:45:22.468Z",{"keywords":213,"locale":231,"school_blog":232},[214,219,224,229,230],{"collectionId":12,"collectionName":13,"created":215,"created_by":15,"id":216,"name":217,"updated":218,"updated_by":15},"2026-03-04 08:45:21.423Z","li64irj457fco7n","WebSocket Production","2026-04-10 16:12:57.668Z",{"collectionId":12,"collectionName":13,"created":220,"created_by":15,"id":221,"name":222,"updated":223,"updated_by":15},"2026-03-04 08:34:03.856Z","9dujh23qyko22y0","Load Balancing","2026-04-10 16:08:06.326Z",{"collectionId":12,"collectionName":13,"created":225,"created_by":15,"id":226,"name":227,"updated":228,"updated_by":15},"2026-03-04 08:45:22.045Z","dfxjlxr48oep97h","Auto-Scaling","2026-04-10 16:12:57.746Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":233,"id":237,"slug":238,"updated":239,"views":240},{"category":234},{"blogIds":235,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":236,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"n8v6ufz2p8bhb1f","websocket-auto-scaling-load-balancing","2026-05-28 12:08:00.144Z",244,"r6ybpl3o40j8ux0","2025-11-24 03:06:27.040Z","Learn how to design a scalable WebSocket Server with efficient Load Balancing using Kubernetes, Sticky Sessions, and Redis Pub\u002FSub to support tens of thousands of concurrent users in production.","2026-05-08 06:52:10.413Z",{"alt":246,"cover_image_path":247,"created":248,"expand":249,"id":299,"published_at":300,"school_blog":295,"short_description":301,"title":246,"updated":302,"slug":296,"views":298},"What Is ChatGPT Atlas? OpenAI’s First AI Browser That Redefines the Way We Surf the Web","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F5277lu2rn5c2v91\u002Fwhat_is_chat_gpt_atlas_open_ai_s_first_ai_browser_8v6ckz9iw1.webp","2026-03-04 08:45:28.874Z",{"keywords":250,"locale":281,"school_blog":282},[251,256,261,266,271,276],{"collectionId":12,"collectionName":13,"created":252,"created_by":15,"id":253,"name":254,"updated":255,"updated_by":15},"2026-03-04 08:45:24.247Z","qumyfjd00ukyzc5","Atlas","2026-04-10 16:12:57.912Z",{"collectionId":12,"collectionName":13,"created":257,"created_by":15,"id":258,"name":259,"updated":260,"updated_by":15},"2026-03-04 08:45:25.669Z","pdbyfixqk27t0ge","AI Web Browser","2026-04-10 16:12:58.113Z",{"collectionId":12,"collectionName":13,"created":262,"created_by":15,"id":263,"name":264,"updated":265,"updated_by":15},"2026-03-04 08:45:26.232Z","hv5m9elvgdgi7h3","ChatGPT Browser","2026-04-10 16:12:58.394Z",{"collectionId":12,"collectionName":13,"created":267,"created_by":15,"id":268,"name":269,"updated":270,"updated_by":15},"2026-03-04 08:45:25.467Z","1tz3wejkhxews0x","AI Browser","2026-04-10 16:12:58.046Z",{"collectionId":12,"collectionName":13,"created":272,"created_by":15,"id":273,"name":274,"updated":275,"updated_by":15},"2026-03-04 08:45:27.056Z","2uym5jyjlbrcyjp","OpenAI Atlas","2026-04-10 16:12:58.623Z",{"collectionId":12,"collectionName":13,"created":277,"created_by":15,"id":278,"name":279,"updated":280,"updated_by":15},"2026-03-04 08:45:27.721Z","pyp7qb8g6p56ich","ChatGPT Atlas","2026-04-10 16:12:58.791Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":283,"collectionId":61,"collectionName":62,"created":15,"expand":284,"id":295,"slug":296,"updated":297,"views":298},"spm4l1k5bgmhmmt",{"category":285},{"blogIds":286,"collectionId":66,"collectionName":67,"created":287,"created_by":15,"id":283,"image":288,"image_alt":15,"image_path":289,"label":290,"name":291,"priority":292,"publish_at":293,"scheduled_at":15,"status":75,"updated":294,"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":291,"th":291},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","c6dyo1wkcprk4s5","chatgpt-atlas-ai-browser","2026-05-17 02:24:35.133Z",236,"5277lu2rn5c2v91","2025-11-21 02:22:48.059Z","Discover ChatGPT Atlas, OpenAI’s revolutionary AI browser that brings ChatGPT into every tab — summarize, write, and analyze content in real-time while keeping full control over your privacy.","2026-05-08 06:52:11.132Z",{"alt":304,"cover_image_path":305,"created":306,"expand":307,"id":338,"published_at":339,"school_blog":334,"short_description":340,"title":304,"updated":341,"slug":335,"views":337},"JS2GO EP.39 Using Channels and Pipelines in Go for Data Processing","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fh5tzgkjdlk3pkso\u002F78_11zon_4plo1idaub.webp","2026-03-04 08:45:28.371Z",{"keywords":308,"locale":328,"school_blog":329},[309,314,315,316,317,322,323],{"collectionId":12,"collectionName":13,"created":310,"created_by":15,"id":311,"name":312,"updated":313,"updated_by":15},"2026-03-04 08:33:55.714Z","yxs12a8pjduka2m","Channels","2026-04-10 16:08:03.494Z",{"collectionId":12,"collectionName":13,"created":102,"created_by":15,"id":103,"name":104,"updated":105,"updated_by":15},{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":318,"created_by":15,"id":319,"name":320,"updated":321,"updated_by":15},"2026-03-04 08:45:26.685Z","cipipihaumk5zpt","Pipelines","2026-04-10 16:12:58.461Z",{"collectionId":12,"collectionName":13,"created":97,"created_by":15,"id":98,"name":99,"updated":100,"updated_by":15},{"collectionId":12,"collectionName":13,"created":324,"created_by":15,"id":325,"name":326,"updated":327,"updated_by":15},"2026-03-04 08:45:27.349Z","n1nlaxsxjy2673f","Data Processing","2026-04-10 16:12:58.694Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":114,"collectionId":61,"collectionName":62,"created":15,"expand":330,"id":334,"slug":335,"updated":336,"views":337},{"category":331},{"blogIds":332,"collectionId":66,"collectionName":67,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":333,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":75,"updated":125,"updated_by":15},[],{"en":122,"th":122},"s28wwjv2p4jxfgu","js2go-ep39-channels-and-pipelines-in-go-for-data-processing","2026-05-22 01:04:28.286Z",227,"h5tzgkjdlk3pkso","2025-11-12 02:37:00.709Z","Learn how to use Channels and Pipelines in Go to build efficient concurrent and asynchronous data processing systems. Includes practical code examples, JavaScript comparisons, and best practices for designing production-ready pipelines.","2026-05-06 08:38:02.145Z",{"alt":343,"cover_image_path":344,"created":345,"expand":346,"id":375,"published_at":376,"school_blog":371,"short_description":377,"title":343,"updated":378,"slug":372,"views":374},"JS2GO EP.38 Buffer and Stream Management in Node.js and Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fnwfy0uzqz75u69b\u002F76_11zon_82cz71256m.webp","2026-03-04 08:45:30.569Z",{"keywords":347,"locale":365,"school_blog":366},[348,349,350,355,360],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":351,"created_by":15,"id":352,"name":353,"updated":354,"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":356,"created_by":15,"id":357,"name":358,"updated":359,"updated_by":15},"2026-03-04 08:45:29.064Z","ppd9qfd57kr4d9v","Stream","2026-04-10 16:12:58.890Z",{"collectionId":12,"collectionName":13,"created":361,"created_by":15,"id":362,"name":363,"updated":364,"updated_by":15},"2026-03-04 08:45:29.466Z","ikxxjlf4gp9demr","Buffer","2026-04-10 16:12:59.000Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":114,"collectionId":61,"collectionName":62,"created":15,"expand":367,"id":371,"slug":372,"updated":373,"views":374},{"category":368},{"blogIds":369,"collectionId":66,"collectionName":67,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":370,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":75,"updated":125,"updated_by":15},[],{"en":122,"th":122},"pl5erhc703mzokp","js2go-ep38-buffer-and-stream-in-nodejs-and-go","2026-05-20 05:58:59.063Z",230,"nwfy0uzqz75u69b","2025-11-12 02:36:52.979Z","Learn how to handle large-scale data efficiently using Buffer and Stream in Node.js and Go. This article covers real-world use cases, code examples, and best practices for building high-performance production systems.","2026-05-06 08:38:02.509Z",{"alt":380,"cover_image_path":381,"created":382,"expand":383,"id":412,"published_at":413,"school_blog":408,"short_description":414,"title":380,"updated":415,"slug":409,"views":411},"JS2GO EP.37 Recursion vs Iteration in JavaScript and Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F2gl0tq249xm0c9l\u002F74_11zon_hmgjcso3mr.webp","2026-03-04 08:45:32.281Z",{"keywords":384,"locale":402,"school_blog":403},[385,389,390,391,392,397],{"collectionId":12,"collectionName":13,"created":386,"created_by":15,"id":387,"name":122,"updated":388,"updated_by":15},"2026-03-04 08:45:30.765Z","nayuhpre9emd5xw","2026-04-10 16:12:59.160Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":102,"created_by":15,"id":103,"name":104,"updated":105,"updated_by":15},{"collectionId":12,"collectionName":13,"created":393,"created_by":15,"id":394,"name":395,"updated":396,"updated_by":15},"2026-03-04 08:45:31.134Z","erv835t5leo90qz","Iteration","2026-04-10 16:12:59.301Z",{"collectionId":12,"collectionName":13,"created":398,"created_by":15,"id":399,"name":400,"updated":401,"updated_by":15},"2026-03-04 08:45:31.539Z","thoynmyxpcmdicf","Recursion","2026-04-10 16:12:59.439Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":114,"collectionId":61,"collectionName":62,"created":15,"expand":404,"id":408,"slug":409,"updated":410,"views":411},{"category":405},{"blogIds":406,"collectionId":66,"collectionName":67,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":407,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":75,"updated":125,"updated_by":15},[],{"en":122,"th":122},"37rbeb1gdzv1ezc","js2go-ep37-recursion-vs-iteration-in-javascript-and-go","2026-05-13 08:30:34.978Z",229,"2gl0tq249xm0c9l","2025-11-12 02:36:47.705Z","Explore the key differences between Recursion (self-calling functions) and Iteration (loops) with practical examples in JavaScript and Go. Learn which approach offers better performance, readability, and memory efficiency for real-world systems.","2026-05-06 08:38:02.788Z",{"alt":417,"cover_image_path":418,"created":419,"expand":420,"id":449,"published_at":450,"school_blog":445,"short_description":451,"title":417,"updated":452,"slug":446,"views":448},"JS2GO EP.36 Implementing Searching Algorithms in Go and JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fduvedg12cqdatir\u002F72_11zon_y60f66gda8.webp","2026-03-04 08:45:32.876Z",{"keywords":421,"locale":439,"school_blog":440},[422,423,424,429,434],{"collectionId":12,"collectionName":13,"created":102,"created_by":15,"id":103,"name":104,"updated":105,"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":425,"created_by":15,"id":426,"name":427,"updated":428,"updated_by":15},"2026-03-04 08:45:32.020Z","8vrqzeheyjmdnla","Binary Search","2026-04-10 16:12:59.578Z",{"collectionId":12,"collectionName":13,"created":430,"created_by":15,"id":431,"name":432,"updated":433,"updated_by":15},"2026-03-04 08:45:32.242Z","qrrtdp2now459ki","Linear Search","2026-04-10 16:12:59.642Z",{"collectionId":12,"collectionName":13,"created":435,"created_by":15,"id":436,"name":437,"updated":438,"updated_by":15},"2026-03-04 08:34:57.930Z","3j6u3nyhnmlp6ld","Searching Algorithms","2026-04-10 16:12:34.004Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":114,"collectionId":61,"collectionName":62,"created":15,"expand":441,"id":445,"slug":446,"updated":447,"views":448},{"category":442},{"blogIds":443,"collectionId":66,"collectionName":67,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":444,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":75,"updated":125,"updated_by":15},[],{"en":122,"th":122},"s7er17urgojggc6","js2go-ep36-implementing-searching-algorithms-in-go-and-javascript","2026-05-23 21:34:42.958Z",208,"duvedg12cqdatir","2025-11-12 02:36:41.559Z","Explore three fundamental search techniques — Linear Search, Binary Search, and Map-based Lookup — with real code examples in JavaScript and Go, and learn how to choose the best one for production systems.","2026-04-25 02:47:54.341Z",{"alt":454,"cover_image_path":455,"created":456,"expand":457,"id":487,"published_at":488,"school_blog":483,"short_description":489,"title":454,"updated":490,"slug":484,"views":486},"EP.109 Optimizing WebSocket Performance on Mobile Devices","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Frlf7dgl0reax7g4\u002F190_11zon_92sba77lgr.webp","2026-03-04 08:45:36.213Z",{"keywords":458,"locale":477,"school_blog":478},[459,464,469,470,471,472],{"collectionId":12,"collectionName":13,"created":460,"created_by":15,"id":461,"name":462,"updated":463,"updated_by":15},"2026-03-04 08:45:33.847Z","ouctbyjgjpzau28","optimize WebSocket mobile","2026-04-10 16:12:59.811Z",{"collectionId":12,"collectionName":13,"created":465,"created_by":15,"id":466,"name":467,"updated":468,"updated_by":15},"2026-03-04 08:45:34.555Z","pcr9o7q0iswjgjp","Go Language","2026-04-10 16:13:00.018Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},{"collectionId":12,"collectionName":13,"created":473,"created_by":15,"id":474,"name":475,"updated":476,"updated_by":15},"2026-03-04 08:45:34.829Z","gf6uglh9q27fau6","WebSocket Mobile","2026-04-10 16:13:00.168Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":479,"id":483,"slug":484,"updated":485,"views":486},{"category":480},{"blogIds":481,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":482,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"s6d2kpermtpdykb","websocket-performance-mobile","2026-05-20 07:05:45.590Z",226,"rlf7dgl0reax7g4","2025-11-10 09:15:04.106Z","Learn how to optimize your WebSocket server for mobile devices with real production-level techniques — including timeout adjustment, auto-reconnect, and handling network switching.","2026-04-25 02:47:54.750Z",{"alt":492,"cover_image_path":493,"created":494,"expand":495,"id":527,"published_at":528,"school_blog":523,"short_description":529,"title":492,"updated":530,"slug":524,"views":526},"EP.108 Advanced Timeout and Connection Cleanup Techniques","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F0xxaut2o20jbu86\u002F188_11zon_3f0291extc.webp","2026-03-04 08:45:36.917Z",{"keywords":496,"locale":517,"school_blog":518},[497,498,499,504,509,510,511,512],{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"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:45:35.177Z","ljqmsdx1e0bcmav","Timeout","2026-04-10 16:13:00.233Z",{"collectionId":12,"collectionName":13,"created":505,"created_by":15,"id":506,"name":507,"updated":508,"updated_by":15},"2026-03-04 08:45:35.456Z","p12faqv7fmetlja","Golang timeouts","2026-04-10 16:13:00.381Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":465,"created_by":15,"id":466,"name":467,"updated":468,"updated_by":15},{"collectionId":12,"collectionName":13,"created":513,"created_by":15,"id":514,"name":515,"updated":516,"updated_by":15},"2026-03-04 08:45:35.697Z","14mxfvvebe39f82","Cleanup","2026-04-10 16:13:00.513Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":519,"id":523,"slug":524,"updated":525,"views":526},{"category":520},{"blogIds":521,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":522,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"l3cnyp1es5143k8","ep108-timeout-connection-cleanup-websocket-golang","2026-05-25 16:38:52.361Z",228,"0xxaut2o20jbu86","2025-11-10 09:04:48.079Z","Discover how to manage stale or idle WebSocket connections using Timeout and Cleanup techniques to keep your production server stable and resource-efficient — with real-world Go code examples.","2026-05-06 08:38:03.034Z",8,12,414,35]