[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-8-12-Web%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Development-all-all-createdAt:desc-default":3},{"data":4,"page":501,"perPage":502,"totalItems":503,"totalPages":504},[5,75,112,160,197,250,288,329,366,402,434,473],{"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},"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":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:18.214Z","","teavruxi3wptjg2","Fan-in Fan-out","2026-04-10 16:12:56.820Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"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":25,"created_by":15,"id":26,"name":27,"updated":28,"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},"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:24:48.143Z","dourw0uuydrrh1h","Concurrency","2026-04-10 16:07:30.157Z",{"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},"hsa1afr8fcnd6qb","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:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":62,"th":62},"JS2GO",10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","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":76,"cover_image_path":77,"created":78,"expand":79,"id":108,"published_at":109,"school_blog":104,"short_description":110,"title":76,"updated":111,"slug":105,"views":107},"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":80,"locale":98,"school_blog":99},[81,86,91,96,97],{"collectionId":12,"collectionName":13,"created":82,"created_by":15,"id":83,"name":84,"updated":85,"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":87,"created_by":15,"id":88,"name":89,"updated":90,"updated_by":15},"2026-03-04 08:45:19.280Z","2zphwe6a9vls84d","Benchmark","2026-04-10 16:12:56.915Z",{"collectionId":12,"collectionName":13,"created":92,"created_by":15,"id":93,"name":94,"updated":95,"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":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":100,"id":104,"slug":105,"updated":106,"views":107},{"category":101},{"blogIds":102,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":103,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"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":113,"cover_image_path":114,"created":115,"expand":116,"id":156,"published_at":157,"school_blog":153,"short_description":158,"title":113,"updated":159,"slug":154,"views":155},"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":117,"locale":139,"school_blog":140},[118,123,128,133,134],{"collectionId":12,"collectionName":13,"created":119,"created_by":15,"id":120,"name":121,"updated":122,"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":124,"created_by":15,"id":125,"name":126,"updated":127,"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":129,"created_by":15,"id":130,"name":131,"updated":132,"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":135,"created_by":15,"id":136,"name":137,"updated":138,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":141,"collectionId":51,"collectionName":52,"created":15,"expand":142,"id":153,"slug":154,"updated":15,"views":155},"wqxt7ag2gn7xcmk",{"category":143},{"blogIds":144,"collectionId":56,"collectionName":57,"created":145,"created_by":15,"id":141,"image":146,"image_alt":15,"image_path":147,"label":148,"name":149,"priority":150,"publish_at":151,"scheduled_at":15,"status":65,"updated":152,"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":149,"th":149},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","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":161,"cover_image_path":162,"created":163,"expand":164,"id":193,"published_at":194,"school_blog":189,"short_description":195,"title":161,"updated":196,"slug":190,"views":192},"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":165,"locale":183,"school_blog":184},[166,171,172,177,182],{"collectionId":12,"collectionName":13,"created":167,"created_by":15,"id":168,"name":169,"updated":170,"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":173,"created_by":15,"id":174,"name":175,"updated":176,"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":178,"created_by":15,"id":179,"name":180,"updated":181,"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":135,"created_by":15,"id":136,"name":137,"updated":138,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":141,"collectionId":51,"collectionName":52,"created":15,"expand":185,"id":189,"slug":190,"updated":191,"views":192},{"category":186},{"blogIds":187,"collectionId":56,"collectionName":57,"created":145,"created_by":15,"id":141,"image":146,"image_alt":15,"image_path":147,"label":188,"name":149,"priority":150,"publish_at":151,"scheduled_at":15,"status":65,"updated":152,"updated_by":15},[],{"en":149,"th":149},"n8v6ufz2p8bhb1f","websocket-auto-scaling-load-balancing","2026-05-13 05:19:05.211Z",242,"0s8pe3g2y0qas2l","2025-11-24 03:06:21.583Z","เรียนรู้การออกแบบ WebSocket Server ที่สามารถปรับขนาดได้อัตโนมัติ และกระจายโหลดอย่างมีประสิทธิภาพด้วย Kubernetes, Sticky Session และ Redis Pub\u002FSub เพื่อรองรับผู้ใช้หลักหมื่นคนพร้อมกัน","2026-05-08 06:52:10.278Z",{"alt":198,"cover_image_path":199,"created":200,"expand":201,"id":246,"published_at":247,"school_blog":242,"short_description":248,"title":198,"updated":249,"slug":243,"views":245},"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":202,"locale":228,"school_blog":229},[203,208,213,218,223],{"collectionId":12,"collectionName":13,"created":204,"created_by":15,"id":205,"name":206,"updated":207,"updated_by":15},"2026-03-04 08:45:24.247Z","qumyfjd00ukyzc5","Atlas","2026-04-10 16:12:57.912Z",{"collectionId":12,"collectionName":13,"created":209,"created_by":15,"id":210,"name":211,"updated":212,"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":214,"created_by":15,"id":215,"name":216,"updated":217,"updated_by":15},"2026-03-04 08:45:25.998Z","otvtu2l6b7ra500","เบราว์เซอร์ AI","2026-04-10 16:12:58.264Z",{"collectionId":12,"collectionName":13,"created":219,"created_by":15,"id":220,"name":221,"updated":222,"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":224,"created_by":15,"id":225,"name":226,"updated":227,"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":230,"collectionId":51,"collectionName":52,"created":15,"expand":231,"id":242,"slug":243,"updated":244,"views":245},"spm4l1k5bgmhmmt",{"category":232},{"blogIds":233,"collectionId":56,"collectionName":57,"created":234,"created_by":15,"id":230,"image":235,"image_alt":15,"image_path":236,"label":237,"name":238,"priority":239,"publish_at":240,"scheduled_at":15,"status":65,"updated":241,"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":238,"th":238},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","7ks20fg76zrxq5e","chatgpt-atlas-ai-browser-openai","2026-05-23 00:31:57.907Z",244,"voi3jt0i9wd8l1v","2025-11-21 02:22:50.810Z","รู้จัก ChatGPT Atlas เบราว์เซอร์อัจฉริยะจาก OpenAI ที่รวม ChatGPT เข้ากับทุกแท็บ ช่วยสรุป เขียน และวิเคราะห์ข้อมูลได้แบบเรียลไทม์ พร้อมระบบความเป็นส่วนตัวที่ผู้ใช้ควบคุมได้เอง","2026-05-08 06:52:10.848Z",{"alt":251,"cover_image_path":252,"created":253,"expand":254,"id":284,"published_at":285,"school_blog":280,"short_description":286,"title":251,"updated":287,"slug":281,"views":283},"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":255,"locale":274,"school_blog":275},[256,261,262,267,268,269],{"collectionId":12,"collectionName":13,"created":257,"created_by":15,"id":258,"name":259,"updated":260,"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":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},"2026-03-04 08:45:26.685Z","cipipihaumk5zpt","Pipelines","2026-04-10 16:12:58.461Z",{"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":270,"created_by":15,"id":271,"name":272,"updated":273,"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":50,"collectionId":51,"collectionName":52,"created":15,"expand":276,"id":280,"slug":281,"updated":282,"views":283},{"category":277},{"blogIds":278,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":279,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"s28wwjv2p4jxfgu","js2go-ep39-channels-and-pipelines-in-go-for-data-processing","2026-05-22 01:04:28.286Z",227,"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",{"alt":289,"cover_image_path":290,"created":291,"expand":292,"id":325,"published_at":326,"school_blog":321,"short_description":327,"title":289,"updated":328,"slug":322,"views":324},"JS2GO EP.38 การจัดการ Buffer และ Stream ใน Node.js และ Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fnsqblkgbr5lyuql\u002F75_11zon_p7murcdbvq.webp","2026-03-04 08:45:30.996Z",{"keywords":293,"locale":315,"school_blog":316},[294,299,300,305,310],{"collectionId":12,"collectionName":13,"created":295,"created_by":15,"id":296,"name":297,"updated":298,"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},{"collectionId":12,"collectionName":13,"created":301,"created_by":15,"id":302,"name":303,"updated":304,"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":306,"created_by":15,"id":307,"name":308,"updated":309,"updated_by":15},"2026-03-04 08:45:29.064Z","ppd9qfd57kr4d9v","Stream","2026-04-10 16:12:58.890Z",{"collectionId":12,"collectionName":13,"created":311,"created_by":15,"id":312,"name":313,"updated":314,"updated_by":15},"2026-03-04 08:45:29.466Z","ikxxjlf4gp9demr","Buffer","2026-04-10 16:12:59.000Z",{"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":317,"id":321,"slug":322,"updated":323,"views":324},{"category":318},{"blogIds":319,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":320,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"pl5erhc703mzokp","js2go-ep38-buffer-and-stream-in-nodejs-and-go","2026-05-20 05:58:59.063Z",230,"nsqblkgbr5lyuql","2025-11-12 02:36:50.991Z","เรียนรู้แนวทางการจัดการข้อมูลขนาดใหญ่ผ่าน Buffer และ Stream ทั้งใน Node.js และ Go เพื่อให้ระบบทำงานรวดเร็ว ใช้หน่วยความจำอย่างมีประสิทธิภาพ พร้อมตัวอย่างโค้ดจริงและแนวทางใช้งานใน Production","2026-04-25 02:47:54.041Z",{"alt":330,"cover_image_path":331,"created":332,"expand":333,"id":362,"published_at":363,"school_blog":358,"short_description":364,"title":330,"updated":365,"slug":359,"views":361},"JS2GO EP.37 การใช้ Recursion และ Iteration ใน JavaScript และ Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fnp98njk711u28jh\u002F73_11zon_e3x83hj33c.webp","2026-03-04 08:45:32.896Z",{"keywords":334,"locale":352,"school_blog":353},[335,339,340,341,342,347],{"collectionId":12,"collectionName":13,"created":336,"created_by":15,"id":337,"name":62,"updated":338,"updated_by":15},"2026-03-04 08:45:30.765Z","nayuhpre9emd5xw","2026-04-10 16:12:59.160Z",{"collectionId":12,"collectionName":13,"created":295,"created_by":15,"id":296,"name":297,"updated":298,"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":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":343,"created_by":15,"id":344,"name":345,"updated":346,"updated_by":15},"2026-03-04 08:45:31.134Z","erv835t5leo90qz","Iteration","2026-04-10 16:12:59.301Z",{"collectionId":12,"collectionName":13,"created":348,"created_by":15,"id":349,"name":350,"updated":351,"updated_by":15},"2026-03-04 08:45:31.539Z","thoynmyxpcmdicf","Recursion","2026-04-10 16:12:59.439Z",{"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":354,"id":358,"slug":359,"updated":360,"views":361},{"category":355},{"blogIds":356,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":357,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"37rbeb1gdzv1ezc","js2go-ep37-recursion-vs-iteration-in-javascript-and-go","2026-05-13 08:30:34.978Z",229,"np98njk711u28jh","2025-11-12 02:36:45.781Z","เรียนรู้ความแตกต่างระหว่างการเขียนโค้ดแบบ Recursion (การเรียกซ้ำ) และ Iteration (การวนซ้ำ) พร้อมตัวอย่างโค้ดจริงใน JavaScript และ Go เพื่อเปรียบเทียบความเร็ว การใช้หน่วยความจำ และแนวทางเลือกใช้ในระบบจริง","2026-04-25 02:47:54.241Z",{"alt":367,"cover_image_path":368,"created":369,"expand":370,"id":398,"published_at":399,"school_blog":395,"short_description":400,"title":367,"updated":401,"slug":396,"views":70},"JS2GO EP.36 การทำ Searching Algorithms ใน Go และ JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fkc2for0fr30jztz\u002F71_11zon_fhhdh9rncf.webp","2026-03-04 08:45:33.253Z",{"keywords":371,"locale":389,"school_blog":390},[372,373,374,379,384],{"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":375,"created_by":15,"id":376,"name":377,"updated":378,"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":380,"created_by":15,"id":381,"name":382,"updated":383,"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":385,"created_by":15,"id":386,"name":387,"updated":388,"updated_by":15},"2026-03-04 08:34:57.930Z","3j6u3nyhnmlp6ld","Searching Algorithms","2026-04-10 16:12:34.004Z",{"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":391,"id":395,"slug":396,"updated":397,"views":70},{"category":392},{"blogIds":393,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":394,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"zwxfag96iy33ciz","js2go-ep36-searching-algorithms-in-go-and-javascript","2026-05-14 06:01:39.445Z","kc2for0fr30jztz","2025-11-12 02:36:39.446Z","เรียนรู้เทคนิคการค้นหาข้อมูลอย่างมีประสิทธิภาพผ่าน 3 อัลกอริทึมสำคัญ — Linear Search, Binary Search และ Map-based Lookup","2026-04-25 02:47:54.507Z",{"alt":403,"cover_image_path":404,"created":405,"expand":406,"id":430,"published_at":431,"school_blog":427,"short_description":432,"title":403,"updated":433,"slug":428,"views":192},"EP.109 การปรับปรุง Performance สำหรับ WebSocket บนมือถือ","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fketdslo0vzzv5b6\u002F189_11zon_cvsstgpwm1.webp","2026-03-04 08:45:34.928Z",{"keywords":407,"locale":421,"school_blog":422},[408,413,414,415,420],{"collectionId":12,"collectionName":13,"created":409,"created_by":15,"id":410,"name":411,"updated":412,"updated_by":15},"2026-03-04 08:45:34.193Z","6ogs62iwr48p5xn","WebSocket บนมือถือ","2026-04-10 16:12:59.951Z",{"collectionId":12,"collectionName":13,"created":295,"created_by":15,"id":296,"name":297,"updated":298,"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":416,"created_by":15,"id":417,"name":418,"updated":419,"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":135,"created_by":15,"id":136,"name":137,"updated":138,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":141,"collectionId":51,"collectionName":52,"created":15,"expand":423,"id":427,"slug":428,"updated":429,"views":192},{"category":424},{"blogIds":425,"collectionId":56,"collectionName":57,"created":145,"created_by":15,"id":141,"image":146,"image_alt":15,"image_path":147,"label":426,"name":149,"priority":150,"publish_at":151,"scheduled_at":15,"status":65,"updated":152,"updated_by":15},[],{"en":149,"th":149},"ctvrep1frbjn8eq","websocket-mobile-optimization","2026-05-13 05:43:00.501Z","ketdslo0vzzv5b6","2025-11-10 09:14:57.443Z","เรียนรู้เทคนิคปรับปรุง WebSocket Server ให้ทำงานได้อย่างเสถียรและประหยัดพลังงานบนอุปกรณ์พกพา พร้อมโค้ดตัวอย่างระดับ Production เช่น การตั้ง Timeout, การ reconnect อัตโนมัติ และการจัดการ network switching","2026-04-25 02:47:54.660Z",{"alt":435,"cover_image_path":436,"created":437,"expand":438,"id":469,"published_at":470,"school_blog":465,"short_description":471,"title":435,"updated":472,"slug":466,"views":468},"EP.108 การจัดการ Timeout และ Connection Cleanup แบบ Advanced","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F29obs9yzyu0qjp5\u002F187_11zon_jcx1669axb.webp","2026-03-04 08:45:36.600Z",{"keywords":439,"locale":459,"school_blog":460},[440,445,446,451,456,457,458],{"collectionId":12,"collectionName":13,"created":441,"created_by":15,"id":442,"name":443,"updated":444,"updated_by":15},"2026-03-04 08:44:47.385Z","li4cs2v3atd0wds","Production","2026-04-10 16:12:49.890Z",{"collectionId":12,"collectionName":13,"created":416,"created_by":15,"id":417,"name":418,"updated":419,"updated_by":15},{"collectionId":12,"collectionName":13,"created":447,"created_by":15,"id":448,"name":449,"updated":450,"updated_by":15},"2026-03-04 08:45:35.697Z","14mxfvvebe39f82","Cleanup","2026-04-10 16:13:00.513Z",{"collectionId":12,"collectionName":13,"created":452,"created_by":15,"id":453,"name":454,"updated":455,"updated_by":15},"2026-03-04 08:45:35.177Z","ljqmsdx1e0bcmav","Timeout","2026-04-10 16:13:00.233Z",{"collectionId":12,"collectionName":13,"created":295,"created_by":15,"id":296,"name":297,"updated":298,"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":135,"created_by":15,"id":136,"name":137,"updated":138,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":141,"collectionId":51,"collectionName":52,"created":15,"expand":461,"id":465,"slug":466,"updated":467,"views":468},{"category":462},{"blogIds":463,"collectionId":56,"collectionName":57,"created":145,"created_by":15,"id":141,"image":146,"image_alt":15,"image_path":147,"label":464,"name":149,"priority":150,"publish_at":151,"scheduled_at":15,"status":65,"updated":152,"updated_by":15},[],{"en":149,"th":149},"l3cnyp1es5143k8","ep108-timeout-connection-cleanup-websocket-golang","2026-05-14 15:27:56.995Z",226,"29obs9yzyu0qjp5","2025-11-10 09:04:40.562Z","เรียนรู้วิธีจัดการ WebSocket ที่หลุดหรือค้างด้วยเทคนิค Timeout และ Connection Cleanup เพื่อให้ระบบของคุณทำงานได้เสถียรและประหยัด resource มากที่สุด พร้อมตัวอย่างโค้ด Go ที่ใช้ได้จริงใน Production","2026-04-25 02:47:54.914Z",{"alt":474,"cover_image_path":475,"created":476,"expand":477,"id":497,"published_at":498,"school_blog":493,"short_description":499,"title":474,"updated":500,"slug":494,"views":496},"EP.107 การทำ Profiling และ Benchmark WebSocket Server","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fforovlt64om1dpv\u002F185_11zon_d8gvv4sv1g.webp","2026-03-04 08:45:37.532Z",{"keywords":478,"locale":487,"school_blog":488},[479,480,481,486],{"collectionId":12,"collectionName":13,"created":295,"created_by":15,"id":296,"name":297,"updated":298,"updated_by":15},{"collectionId":12,"collectionName":13,"created":87,"created_by":15,"id":88,"name":89,"updated":90,"updated_by":15},{"collectionId":12,"collectionName":13,"created":482,"created_by":15,"id":483,"name":484,"updated":485,"updated_by":15},"2026-03-04 08:45:37.043Z","wyzirss3g26xgv6","Profiling","2026-04-10 16:13:00.577Z",{"collectionId":12,"collectionName":13,"created":135,"created_by":15,"id":136,"name":137,"updated":138,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":141,"collectionId":51,"collectionName":52,"created":15,"expand":489,"id":493,"slug":494,"updated":495,"views":496},{"category":490},{"blogIds":491,"collectionId":56,"collectionName":57,"created":145,"created_by":15,"id":141,"image":146,"image_alt":15,"image_path":147,"label":492,"name":149,"priority":150,"publish_at":151,"scheduled_at":15,"status":65,"updated":152,"updated_by":15},[],{"en":149,"th":149},"q4ahsx2qt6gr1e8","websocket-server-profiling-benchmark","2026-05-13 11:34:52.776Z",220,"forovlt64om1dpv","2025-11-10 09:02:53.837Z","เรียนรู้วิธีใช้ pprof, wrk และ hey เพื่อวัดความเร็ว ความเสถียร และประสิทธิภาพของ WebSocket Server พร้อมแนวทางปรับแต่งระบบสำหรับการใช้งานจริงใน Production","2026-04-25 02:47:55.201Z",8,12,412,35]