[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-8-12-Web%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Development-all-all-createdAt:desc-default":3},{"data":4,"page":521,"perPage":522,"totalItems":523,"totalPages":524},[5,75,124,172,213,249,296,325,362,394,431,483],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":71,"published_at":72,"school_blog":67,"short_description":73,"title":6,"updated":74,"slug":68,"views":70},"EP.115 การใช้ WebSocket ในระบบ Multiplayer Game ขั้นสูง (Advanced Multiplayer Game System)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fghutpdhsg8a4psb\u002Fcover_image_ep_4l3pq7n7eo.bSocketinGolang.webp","2026-03-04 08:45:10.850Z",{"keywords":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:45:10.623Z","","2zhfdpu8sy1xeju","Golang WebSocket","2026-04-10 16:12:55.126Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"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:09.425Z","75vnd9vtdgbgcsr","Multiplayer Game","2026-04-10 16:12:54.941Z",{"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":15,"expand":53,"id":67,"slug":68,"updated":69,"views":70},"wqxt7ag2gn7xcmk","pbc_2105096300","school_blogs",{"category":54},{"blogIds":55,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":61,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"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":62,"th":62},"Golang The Series",1,"2026-03-16 04:39:38.440Z","published","2026-04-25 02:32:15.470Z","9o11ptzo0838b9r","ep115-websocket-multiplayer-game-advanced","2026-05-26 02:46:18.127Z",240,"ghutpdhsg8a4psb","2025-12-08 02:13:56.236Z","เรียนรู้การออกแบบ Multiplayer Game แบบเรียลไทม์ด้วย Go และ WebSocket ตั้งแต่ Player Sync, Position Update, Event Broadcast, Room Architecture ไปจนถึงเทคนิคลด Latency และแนวทางระดับ Production สำหรับเกมหลายผู้เล่น","2026-05-08 06:52:05.171Z",{"alt":76,"cover_image_path":77,"created":78,"expand":79,"id":120,"published_at":121,"school_blog":116,"short_description":122,"title":76,"updated":123,"slug":117,"views":119},"JS2GO EP.43 การทำ Rate Limiting และ Throttling ใน Go และ Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fkwtikt0mr8bk7nk\u002Fcover_image_js2_go_ep_43_rate_limiting_and_throttling_in_go_and_node_083y6kqmje.js.webp","2026-03-04 08:45:16.034Z",{"keywords":80,"locale":102,"school_blog":103},[81,86,91,92,97],{"collectionId":12,"collectionName":13,"created":82,"created_by":15,"id":83,"name":84,"updated":85,"updated_by":15},"2026-03-04 08:44:38.026Z","m3dqo2zalnfaoof","Token Bucket","2026-04-10 16:12:47.845Z",{"collectionId":12,"collectionName":13,"created":87,"created_by":15,"id":88,"name":89,"updated":90,"updated_by":15},"2026-03-04 08:45:14.634Z","k64fy7g22x7ash7","Throttling","2026-04-10 16:12:56.314Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"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":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},"2026-03-04 08:34:07.915Z","921nl48h9in67sw","Rate Limiting","2026-04-10 16:08:07.808Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":104,"collectionId":51,"collectionName":52,"created":15,"expand":105,"id":116,"slug":117,"updated":118,"views":119},"hsa1afr8fcnd6qb",{"category":106},{"blogIds":107,"collectionId":56,"collectionName":57,"created":108,"created_by":15,"id":104,"image":109,"image_alt":15,"image_path":110,"label":111,"name":112,"priority":113,"publish_at":114,"scheduled_at":15,"status":65,"updated":115,"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":112,"th":112},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-04-25 02:32:14.339Z","xnajds5fdcdxt16","js2go-ep43-rate-limiting-throttling-go-nodejs","2026-05-25 22:51:04.105Z",232,"kwtikt0mr8bk7nk","2025-12-03 14:28:15.587Z","เรียนรู้วิธีป้องกันระบบล่มด้วย Rate Limiting และ Throttling ทั้ง Token Bucket, Leaky Bucket และ Sliding Window พร้อมตัวอย่างโค้ดจริงใน Go และ Node.js สำหรับใช้งานในระบบระดับ Production","2026-05-08 06:52:07.271Z",{"alt":125,"cover_image_path":126,"created":127,"expand":128,"id":168,"published_at":169,"school_blog":164,"short_description":170,"title":125,"updated":171,"slug":165,"views":167},"คุณอาจกำลังเสียเวลาอ่านโค้ดโดยไม่จำเป็น… ถ้ายังไม่รู้จัก Code Wiki","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ff2draewgm0el39c\u002Fwhat_is_code_wiki_google_s_tool_that_helps_developers_understand_code_faster_ji0s94vmdo.webp","2026-03-04 08:45:17.799Z",{"keywords":129,"locale":150,"school_blog":151},[130,135,140,145],{"collectionId":12,"collectionName":13,"created":131,"created_by":15,"id":132,"name":133,"updated":134,"updated_by":15},"2026-03-04 08:45:17.133Z","71gsmylmonz3ikx","code wiki","2026-04-10 16:12:56.757Z",{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},"2026-03-04 08:45:16.903Z","fc3dajgzvy2vdec","google code wiki","2026-04-10 16:12:56.602Z",{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"updated_by":15},"2026-03-04 08:45:16.585Z","h61ztnkgd0y3ooz","developer tools","2026-04-10 16:12:56.507Z",{"collectionId":12,"collectionName":13,"created":146,"created_by":15,"id":147,"name":148,"updated":149,"updated_by":15},"2026-03-04 08:20:15.564Z","9zhk20p0247axym","Google","2026-04-10 16:07:26.313Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":152,"collectionId":51,"collectionName":52,"created":15,"expand":153,"id":164,"slug":165,"updated":166,"views":167},"jwhmeg2uxwz0bkp",{"category":154},{"blogIds":155,"collectionId":56,"collectionName":57,"created":156,"created_by":15,"id":152,"image":157,"image_alt":15,"image_path":158,"label":159,"name":160,"priority":161,"publish_at":162,"scheduled_at":15,"status":65,"updated":163,"updated_by":15},[],"2026-03-04 08:31:40.635Z","1qt33a4n2u3_lr23qy62xh.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fjwhmeg2uxwz0bkp\u002F1qt33a4n2u3_lr23qy62xh.png",{"en":160,"th":160},"Tools & Resources",0,"2025-01-31 09:55:27.001Z","2026-04-25 02:32:14.689Z","gado4zcess7ysg9","code-wiki-save-time-reading-code","2026-05-29 00:31:11.496Z",328,"f2draewgm0el39c","2025-12-02 03:40:15.214Z","Code Wiki คือเครื่องมือใหม่จาก Google ที่ช่วยสร้างเอกสารโค้ดแบบอัตโนมัติและอัปเดตตามโค้ดจริง ทำให้นักพัฒนาทำความเข้าใจระบบได้เร็วขึ้น ลดเวลาในการอ่านโค้ดย้อน และปรับปรุงประสบการณ์การทำงานของทีม Dev อย่างชัดเจน","2026-05-08 06:52:07.701Z",{"alt":173,"cover_image_path":174,"created":175,"expand":176,"id":209,"published_at":210,"school_blog":205,"short_description":211,"title":173,"updated":212,"slug":206,"views":208},"JS2GO EP.42 Goroutine Pools และ Worker Pools ใน Go และ JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fcky7eocdx79x37y\u002Fcover_image_js2_go_ep_h9thc5vq15.GoandJavaScript.webp","2026-03-04 08:45:18.581Z",{"keywords":177,"locale":199,"school_blog":200},[178,183,184,189,194],{"collectionId":12,"collectionName":13,"created":179,"created_by":15,"id":180,"name":181,"updated":182,"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":185,"created_by":15,"id":186,"name":187,"updated":188,"updated_by":15},"2026-03-04 08:24:48.143Z","dourw0uuydrrh1h","Concurrency","2026-04-10 16:07:30.157Z",{"collectionId":12,"collectionName":13,"created":190,"created_by":15,"id":191,"name":192,"updated":193,"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":195,"created_by":15,"id":196,"name":197,"updated":198,"updated_by":15},"2026-03-04 08:45:16.045Z","1h6015yv90l5ktw","Goroutine Pool","2026-04-10 16:12:56.407Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":104,"collectionId":51,"collectionName":52,"created":15,"expand":201,"id":205,"slug":206,"updated":207,"views":208},{"category":202},{"blogIds":203,"collectionId":56,"collectionName":57,"created":108,"created_by":15,"id":104,"image":109,"image_alt":15,"image_path":110,"label":204,"name":112,"priority":113,"publish_at":114,"scheduled_at":15,"status":65,"updated":115,"updated_by":15},[],{"en":112,"th":112},"76bhys68f0c8v31","js2go-ep42-goroutine-pool-worker-pool-go-vs-javascript","2026-05-30 19:12:49.538Z",223,"cky7eocdx79x37y","2025-12-02 03:39:17.183Z","เรียนรู้วิธีควบคุมจำนวนงานพร้อมกันด้วย Goroutine Pools และ Worker Pools เพื่อป้องกัน resource leak และทำให้ระบบรองรับโหลดระดับหมื่นคำขอ\u002Fวินาทีได้อย่างเสถียร พร้อมตัวอย่างโค้ดจริงทั้ง Go และ JavaScript","2026-05-08 06:52:07.879Z",{"alt":214,"cover_image_path":215,"created":216,"expand":217,"id":245,"published_at":246,"school_blog":241,"short_description":247,"title":214,"updated":248,"slug":242,"views":244},"EP.113 การสร้างระบบ Chat Multi-room ขั้นสูง (Advanced Multi-room Chat System)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F031eo95zo2f02o0\u002Fcover_image_ep_ppxwfo3653.hGoandWebSocket.webp","2026-03-04 08:45:13.632Z",{"keywords":218,"locale":235,"school_blog":236},[219,223,228,233,234],{"collectionId":12,"collectionName":13,"created":220,"created_by":15,"id":221,"name":62,"updated":222,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-04-10 16:12:50.850Z",{"collectionId":12,"collectionName":13,"created":224,"created_by":15,"id":225,"name":226,"updated":227,"updated_by":15},"2026-03-04 08:45:12.082Z","d1gcnwwosqk2zn0","redis pubsub","2026-04-10 16:12:55.686Z",{"collectionId":12,"collectionName":13,"created":229,"created_by":15,"id":230,"name":231,"updated":232,"updated_by":15},"2026-03-04 08:45:12.418Z","vbx3b3qn50sn0tr","Multi-room Chat","2026-04-10 16:12:55.814Z",{"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},{"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":15,"expand":237,"id":241,"slug":242,"updated":243,"views":244},{"category":238},{"blogIds":239,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":240,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"c5vhepb3pkr5tot","go-advanced-multiroom-chat-system","2026-05-14 18:05:15.155Z",235,"031eo95zo2f02o0","2025-12-02 03:38:42.902Z","สร้างระบบแชทแบบหลายห้อง (Multi-room Chat) ที่รองรับผู้ใช้หลายกลุ่มพร้อมกัน พร้อมฟังก์ชันกระจายข้อความแบบเรียลไทม์ และเชื่อมต่อ Redis Pub\u002FSub เพื่อรองรับหลาย instance ได้จริงในระบบ production","2026-05-08 06:52:06.192Z",{"alt":250,"cover_image_path":251,"created":252,"expand":253,"id":292,"published_at":293,"school_blog":288,"short_description":294,"title":250,"updated":295,"slug":289,"views":291},"EP.112 การสร้างระบบ Notification แบบเรียลไทม์ (Real-time Notification System)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fwbl9d896ederjtt\u002Fcover_image_ep_ex8tskqzez.withGoWebSocket.webp","2026-03-04 08:45:14.603Z",{"keywords":254,"locale":282,"school_blog":283},[255,260,265,270,271,272,277],{"collectionId":12,"collectionName":13,"created":256,"created_by":15,"id":257,"name":258,"updated":259,"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":261,"created_by":15,"id":262,"name":263,"updated":264,"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":266,"created_by":15,"id":267,"name":268,"updated":269,"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":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":273,"created_by":15,"id":274,"name":275,"updated":276,"updated_by":15},"2026-03-04 08:45:13.578Z","qwq1kseajvv4cne","notification system","2026-04-10 16:12:55.954Z",{"collectionId":12,"collectionName":13,"created":278,"created_by":15,"id":279,"name":280,"updated":281,"updated_by":15},"2026-03-04 08:45:14.176Z","90clm03jhn4xsnp","Notification","2026-04-10 16:12:56.243Z",{"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":15,"expand":284,"id":288,"slug":289,"updated":290,"views":291},{"category":285},{"blogIds":286,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":287,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"8g70iqmnsdxbwpb","websocket-real-time-notification-ep112","2026-06-01 19:23:06.869Z",347,"wbl9d896ederjtt","2025-12-01 04:20:07.889Z","เรียนรู้วิธีสร้างระบบ Notification แบบเรียลไทม์ด้วย Go และ WebSocket พร้อมรองรับการขยายระบบด้วย Redis Pub\u002FSub เพื่อให้ผู้ใช้ได้รับการแจ้งเตือนทันทีเมื่อเกิด Event สำคัญ","2026-05-08 06:52:06.366Z",{"alt":297,"cover_image_path":298,"created":299,"expand":300,"id":321,"published_at":322,"school_blog":317,"short_description":323,"title":297,"updated":324,"slug":318,"views":320},"JS2GO EP.41 การจัดการ Concurrency Patterns ขั้นสูงใน Go และ JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fnmahpjkd1ktk7id\u002Fcover_image_js2_go_ep_2ioizc6p6b.GoandJavaScript.webp","2026-03-04 08:45:18.911Z",{"keywords":301,"locale":311,"school_blog":312},[302,307,308,309,310],{"collectionId":12,"collectionName":13,"created":303,"created_by":15,"id":304,"name":305,"updated":306,"updated_by":15},"2026-03-04 08:45:18.214Z","teavruxi3wptjg2","Fan-in Fan-out","2026-04-10 16:12:56.820Z",{"collectionId":12,"collectionName":13,"created":190,"created_by":15,"id":191,"name":192,"updated":193,"updated_by":15},{"collectionId":12,"collectionName":13,"created":179,"created_by":15,"id":180,"name":181,"updated":182,"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":185,"created_by":15,"id":186,"name":187,"updated":188,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":104,"collectionId":51,"collectionName":52,"created":15,"expand":313,"id":317,"slug":318,"updated":319,"views":320},{"category":314},{"blogIds":315,"collectionId":56,"collectionName":57,"created":108,"created_by":15,"id":104,"image":109,"image_alt":15,"image_path":110,"label":316,"name":112,"priority":113,"publish_at":114,"scheduled_at":15,"status":65,"updated":115,"updated_by":15},[],{"en":112,"th":112},"hntkdnpnkznr05d","js2go-ep41-advanced-concurrency-patterns-go-vs-javascript","2026-05-18 23:27:19.862Z",215,"nmahpjkd1ktk7id","2025-11-25 09:53:31.002Z","เรียนรู้ Worker Pool, Fan-in\u002FFan-out, Rate Limiter และ Pipeline Optimization เปรียบเทียบการทำงานระหว่าง Go และ JavaScript พร้อมตัวอย่างที่ใช้จริงในระบบ Production","2026-05-08 06:52:08.080Z",{"alt":326,"cover_image_path":327,"created":328,"expand":329,"id":358,"published_at":359,"school_blog":354,"short_description":360,"title":326,"updated":361,"slug":355,"views":357},"JS2GO EP.40 การ Optimize Performance ของโค้ด: Go vs JavaScript ภาษาไหนเร็วกว่า?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fxqxhqcf7ezee2ok\u002Fcover_image_for_js2_go_ep_qzlvftk3wr.hichOneIsFaster.webp","2026-03-04 08:45:20.755Z",{"keywords":330,"locale":348,"school_blog":349},[331,336,341,346,347],{"collectionId":12,"collectionName":13,"created":332,"created_by":15,"id":333,"name":334,"updated":335,"updated_by":15},"2026-03-04 08:45:19.588Z","jiiqle4ur9lyqjr","Garbage Collection","2026-04-10 16:12:57.067Z",{"collectionId":12,"collectionName":13,"created":337,"created_by":15,"id":338,"name":339,"updated":340,"updated_by":15},"2026-03-04 08:45:19.280Z","2zphwe6a9vls84d","Benchmark","2026-04-10 16:12:56.915Z",{"collectionId":12,"collectionName":13,"created":342,"created_by":15,"id":343,"name":344,"updated":345,"updated_by":15},"2026-03-04 08:45:19.946Z","qvr2sryoiqkkq1g","Optimize Performance","2026-04-10 16:12:57.204Z",{"collectionId":12,"collectionName":13,"created":179,"created_by":15,"id":180,"name":181,"updated":182,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":104,"collectionId":51,"collectionName":52,"created":15,"expand":350,"id":354,"slug":355,"updated":356,"views":357},{"category":351},{"blogIds":352,"collectionId":56,"collectionName":57,"created":108,"created_by":15,"id":104,"image":109,"image_alt":15,"image_path":110,"label":353,"name":112,"priority":113,"publish_at":114,"scheduled_at":15,"status":65,"updated":115,"updated_by":15},[],{"en":112,"th":112},"ym4kynngu92kw5x","js2go-ep40-optimize-performance-go-vs-javascript","2026-05-24 03:49:47.779Z",225,"xqxhqcf7ezee2ok","2025-11-25 09:45:29.314Z","เรียนรู้เทคนิคการเพิ่มประสิทธิภาพของโค้ดทั้งใน Go และ JavaScript ตั้งแต่ Garbage Collection, Memory Profiling, Parallel Execution ไปจนถึง Benchmark Tools พร้อมเปรียบเทียบว่าแต่ละภาษาทำงานได้ดีในสถานการณ์แบบไหน","2026-05-08 06:52:09.702Z",{"alt":363,"cover_image_path":364,"created":365,"expand":366,"id":390,"published_at":391,"school_blog":387,"short_description":392,"title":363,"updated":393,"slug":388,"views":389},"EP.111 การจัดการ Message Ordering และ Event Sequence ให้ถูกต้อง 100%","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fytezt4r7uzpy79y\u002Fcover_image_for_golang_the_series_ep_yzbl8jnv38.ebSocketSystems.webp","2026-03-04 08:45:21.561Z",{"keywords":367,"locale":381,"school_blog":382},[368,369,374,379,380],{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":370,"created_by":15,"id":371,"name":372,"updated":373,"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":375,"created_by":15,"id":376,"name":377,"updated":378,"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":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},{"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":15,"expand":383,"id":387,"slug":388,"updated":15,"views":389},{"category":384},{"blogIds":385,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":386,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"c1ullelv877gga6","ep111-message-ordering-event-sequence",224,"ytezt4r7uzpy79y","2025-11-24 09:41:22.301Z","ระบบ WebSocket ที่มีผู้ใช้จำนวนมากอาจเจอปัญหาข้อความหลุดลำดับ (Out-of-Order). EP นี้สอนเทคนิคกำหนด Sequence ID, การจัดลำดับก่อน Broadcast, การ Sync ผ่าน Redis Pub\u002FSub และระบบ Recovery เพื่อให้ข้อความเรียงถูกต้อง 100% ในระดับ Production.","2026-05-08 06:52:10.087Z",{"alt":395,"cover_image_path":396,"created":397,"expand":398,"id":427,"published_at":428,"school_blog":423,"short_description":429,"title":395,"updated":430,"slug":424,"views":426},"EP.110 การทำ Auto-Scaling และ Load Balancing ขั้นสูง สำหรับ WebSocket Server","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F0s8pe3g2y0qas2l\u002Fcover_image_for_golang_the_series_ep_bjd5koqmts.ebSocketServers.webp","2026-03-04 08:45:22.302Z",{"keywords":399,"locale":417,"school_blog":418},[400,405,406,411,416],{"collectionId":12,"collectionName":13,"created":401,"created_by":15,"id":402,"name":403,"updated":404,"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":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":407,"created_by":15,"id":408,"name":409,"updated":410,"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":412,"created_by":15,"id":413,"name":414,"updated":415,"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":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"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":15,"expand":419,"id":423,"slug":424,"updated":425,"views":426},{"category":420},{"blogIds":421,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":422,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"n8v6ufz2p8bhb1f","websocket-auto-scaling-load-balancing","2026-05-28 12:08:00.144Z",244,"0s8pe3g2y0qas2l","2025-11-24 03:06:21.583Z","เรียนรู้การออกแบบ WebSocket Server ที่สามารถปรับขนาดได้อัตโนมัติ และกระจายโหลดอย่างมีประสิทธิภาพด้วย Kubernetes, Sticky Session และ Redis Pub\u002FSub เพื่อรองรับผู้ใช้หลักหมื่นคนพร้อมกัน","2026-05-08 06:52:10.278Z",{"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},"ChatGPT Atlas คืออะไร? เปิดตัวเบราว์เซอร์ AI ตัวแรกจาก OpenAI ที่เปลี่ยนวิธีท่องเว็บตลอดกาล","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvoi3jt0i9wd8l1v\u002Fwhat_is_chat_gpt_atlas_40aiw8flpz.webp","2026-03-04 08:45:27.958Z",{"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:45:24.247Z","qumyfjd00ukyzc5","Atlas","2026-04-10 16:12:57.912Z",{"collectionId":12,"collectionName":13,"created":443,"created_by":15,"id":444,"name":445,"updated":446,"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":448,"created_by":15,"id":449,"name":450,"updated":451,"updated_by":15},"2026-03-04 08:45:25.998Z","otvtu2l6b7ra500","เบราว์เซอร์ AI","2026-04-10 16:12:58.264Z",{"collectionId":12,"collectionName":13,"created":453,"created_by":15,"id":454,"name":455,"updated":456,"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":458,"created_by":15,"id":459,"name":460,"updated":461,"updated_by":15},"2026-03-04 08:45:27.721Z","pyp7qb8g6p56ich","ChatGPT Atlas","2026-04-10 16:12:58.791Z",{"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":15,"expand":465,"id":475,"slug":476,"updated":477,"views":478},"spm4l1k5bgmhmmt",{"category":466},{"blogIds":467,"collectionId":56,"collectionName":57,"created":468,"created_by":15,"id":464,"image":469,"image_alt":15,"image_path":470,"label":471,"name":472,"priority":161,"publish_at":473,"scheduled_at":15,"status":65,"updated":474,"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":472,"th":472},"Knowledge","2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","7ks20fg76zrxq5e","chatgpt-atlas-ai-browser-openai","2026-05-25 10:30:38.973Z",245,"voi3jt0i9wd8l1v","2025-11-21 02:22:50.810Z","รู้จัก ChatGPT Atlas เบราว์เซอร์อัจฉริยะจาก OpenAI ที่รวม ChatGPT เข้ากับทุกแท็บ ช่วยสรุป เขียน และวิเคราะห์ข้อมูลได้แบบเรียลไทม์ พร้อมระบบความเป็นส่วนตัวที่ผู้ใช้ควบคุมได้เอง","2026-05-08 06:52:10.848Z",{"alt":484,"cover_image_path":485,"created":486,"expand":487,"id":517,"published_at":518,"school_blog":513,"short_description":519,"title":484,"updated":520,"slug":514,"views":516},"JS2GO EP.39 การใช้ Channels และ Pipelines ใน Go สำหรับ Data Processing","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F1rm9mb65vfkuus7\u002F77_11zon_tqln3so5ar.webp","2026-03-04 08:45:29.773Z",{"keywords":488,"locale":507,"school_blog":508},[489,494,495,500,501,502],{"collectionId":12,"collectionName":13,"created":490,"created_by":15,"id":491,"name":492,"updated":493,"updated_by":15},"2026-03-04 08:45:27.349Z","n1nlaxsxjy2673f","Data Processing","2026-04-10 16:12:58.694Z",{"collectionId":12,"collectionName":13,"created":185,"created_by":15,"id":186,"name":187,"updated":188,"updated_by":15},{"collectionId":12,"collectionName":13,"created":496,"created_by":15,"id":497,"name":498,"updated":499,"updated_by":15},"2026-03-04 08:45:26.685Z","cipipihaumk5zpt","Pipelines","2026-04-10 16:12:58.461Z",{"collectionId":12,"collectionName":13,"created":179,"created_by":15,"id":180,"name":181,"updated":182,"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":503,"created_by":15,"id":504,"name":505,"updated":506,"updated_by":15},"2026-03-04 08:33:55.714Z","yxs12a8pjduka2m","Channels","2026-04-10 16:08:03.494Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":104,"collectionId":51,"collectionName":52,"created":15,"expand":509,"id":513,"slug":514,"updated":515,"views":516},{"category":510},{"blogIds":511,"collectionId":56,"collectionName":57,"created":108,"created_by":15,"id":104,"image":109,"image_alt":15,"image_path":110,"label":512,"name":112,"priority":113,"publish_at":114,"scheduled_at":15,"status":65,"updated":115,"updated_by":15},[],{"en":112,"th":112},"s28wwjv2p4jxfgu","js2go-ep39-channels-and-pipelines-in-go-for-data-processing","2026-06-01 02:54:51.951Z",228,"1rm9mb65vfkuus7","2025-11-12 02:36:58.760Z","เรียนรู้การใช้ Channels และ Pipelines ใน Go เพื่อสร้างระบบประมวลผลข้อมูลแบบ Parallel และ Asynchronous อย่างมีประสิทธิภาพ พร้อมตัวอย่างโค้ดจริง การเปรียบเทียบกับ JavaScript และแนวทางการออกแบบ Pipeline สำหรับงาน Data Processing ในระดับ Production","2026-04-25 02:47:53.835Z",8,12,418,35]