[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-6-12-Web%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Development-all-all-createdAt:desc-default":3},{"data":4,"page":502,"perPage":503,"totalItems":504,"totalPages":505},[5,63,111,148,188,241,281,325,362,403,440,470],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":59,"published_at":60,"school_blog":55,"short_description":61,"title":6,"updated":62,"slug":56,"views":58},"กว่าจะเป็นภาษา Python: จากงานอดิเรกวันคริสต์มาส สู่ภาษาอันดับ 1 ของโลก AI","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F250hnpwl1lt455z\u002Fcover_image_the_origin_of_python_from_a_christmas_hobby_to_the_1_language_for_ai_3jw6cj247w.webp","2026-03-04 08:20:38.336Z",{"keywords":10,"locale":29,"school_blog":39},[11,19,24],{"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.417Z","","iv9nlsz49oc0x6p","ประวัติ Python","2026-04-10 16:07:27.698Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:20:28.340Z","s9cc7gm6633rsnk","Python","2026-04-10 16:07:26.827Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:20:37.794Z","x2c5z8w1cr41ij3","ภาษาโปรแกรมมิ่ง","2026-04-10 16:07:27.917Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},"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":40,"collectionId":41,"collectionName":42,"created":15,"expand":43,"id":55,"slug":56,"updated":57,"views":58},"isnp2fv80bn3yem","pbc_2105096300","school_blogs",{"category":44},{"blogIds":45,"collectionId":46,"collectionName":47,"created":48,"created_by":15,"id":40,"image":15,"image_alt":15,"image_path":15,"label":49,"name":50,"priority":51,"publish_at":52,"scheduled_at":15,"status":53,"updated":54,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:19:47.590Z",{"en":50,"th":50},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","published","2026-04-25 02:32:14.031Z","2ds3ja0ldoccxbe","history-of-python-from-hobby-to-ai","2026-06-05 15:57:43.488Z",239,"250hnpwl1lt455z","2026-01-14 05:00:27.370Z","เจาะลึกเส้นทาง Python จากโปรเจกต์แก้เบื่อของ Guido van Rossum สู่การเป็นภาษาหลักที่ NASA และวงการ AI ระดับโลกเลือกใช้","2026-05-11 21:45:18.883Z",{"alt":64,"cover_image_path":65,"created":66,"expand":67,"id":107,"published_at":108,"school_blog":103,"short_description":109,"title":64,"updated":110,"slug":104,"views":106},"EP.125 TLS \u002F WSS และ Certificate Management สำหรับ WebSocket (Production & Enterprise)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Frn62rb24heeyiyo\u002Fcover_image_ep_1msbjluc3y.EnterpriseGuide.webp","2026-03-04 08:44:42.802Z",{"keywords":68,"locale":89,"school_blog":90},[69,74,79,84],{"collectionId":12,"collectionName":13,"created":70,"created_by":15,"id":71,"name":72,"updated":73,"updated_by":15},"2026-03-04 08:44:41.631Z","sipxojme8z97ei7","WebSocket TLS","2026-04-10 16:12:48.685Z",{"collectionId":12,"collectionName":13,"created":75,"created_by":15,"id":76,"name":77,"updated":78,"updated_by":15},"2026-03-04 08:44:41.420Z","xjki2vhsm3f0jb4","WSS WebSocket","2026-04-10 16:12:48.600Z",{"collectionId":12,"collectionName":13,"created":80,"created_by":15,"id":81,"name":82,"updated":83,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":91,"collectionId":41,"collectionName":42,"created":15,"expand":92,"id":103,"slug":104,"updated":105,"views":106},"wqxt7ag2gn7xcmk",{"category":93},{"blogIds":94,"collectionId":46,"collectionName":47,"created":95,"created_by":15,"id":91,"image":96,"image_alt":15,"image_path":97,"label":98,"name":99,"priority":100,"publish_at":101,"scheduled_at":15,"status":53,"updated":102,"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":99,"th":99},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","fi5y0zd7vudw30e","ep-125-tls-wss-certificate-management-for-websocket","2026-05-28 15:14:41.972Z",238,"rn62rb24heeyiyo","2026-01-12 03:50:15.171Z","เจาะลึกการใช้งาน TLS และ WSS สำหรับ WebSocket ตั้งแต่ความแตกต่างของ HTTPS vs WSS, การทำงานของ TLS Handshake, การจัดการ Certificate, Let’s Encrypt ไปจนถึง Zero-downtime Renewal สำหรับระบบ Production และ Enterprise","2026-05-08 06:51:56.053Z",{"alt":112,"cover_image_path":113,"created":114,"expand":115,"id":144,"published_at":145,"school_blog":140,"short_description":146,"title":112,"updated":147,"slug":141,"views":143},"EP.124 Security & Authentication ขั้นสูงสำหรับ WebSocket (JWT, Token Strategy & Secure Handshake)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F6ywcs1la9t4zwi0\u002Fcover_image_ep_qhtvcctin6.SecureHandshake.webp","2026-03-04 08:44:43.684Z",{"keywords":116,"locale":134,"school_blog":135},[117,118,119,124,129],{"collectionId":12,"collectionName":13,"created":80,"created_by":15,"id":81,"name":82,"updated":83,"updated_by":15},{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},{"collectionId":12,"collectionName":13,"created":120,"created_by":15,"id":121,"name":122,"updated":123,"updated_by":15},"2026-03-04 08:44:42.096Z","kr1dmn7sxgv9vxg","JWT WebSocket","2026-04-10 16:12:48.849Z",{"collectionId":12,"collectionName":13,"created":125,"created_by":15,"id":126,"name":127,"updated":128,"updated_by":15},"2026-03-04 08:44:42.406Z","julxx94rca568ku","WebSocket Authentication","2026-04-10 16:12:48.917Z",{"collectionId":12,"collectionName":13,"created":130,"created_by":15,"id":131,"name":132,"updated":133,"updated_by":15},"2026-03-04 08:44:13.770Z","ij1u9pugpnctjvk","WebSocket Security","2026-04-10 16:12:41.774Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":91,"collectionId":41,"collectionName":42,"created":15,"expand":136,"id":140,"slug":141,"updated":142,"views":143},{"category":137},{"blogIds":138,"collectionId":46,"collectionName":47,"created":95,"created_by":15,"id":91,"image":96,"image_alt":15,"image_path":97,"label":139,"name":99,"priority":100,"publish_at":101,"scheduled_at":15,"status":53,"updated":102,"updated_by":15},[],{"en":99,"th":99},"r4w3srsh9edadud","websocket-security-authentication-jwt-secure-handshake","2026-05-29 02:25:49.776Z",229,"6ywcs1la9t4zwi0","2026-01-12 03:40:06.435Z","เจาะลึกการออกแบบระบบ Security สำหรับ WebSocket ในระดับ Production และ Enterprise ครอบคลุม JWT, Token Strategy, การป้องกัน WebSocket Hijacking และการทำ Secure Handshake อย่างถูกต้อง เพื่อรองรับระบบที่มีข้อมูลสำคัญและผู้ใช้จำนวนมาก","2026-05-08 06:51:56.302Z",{"alt":149,"cover_image_path":150,"created":151,"expand":152,"id":184,"published_at":185,"school_blog":180,"short_description":186,"title":149,"updated":187,"slug":181,"views":183},"กว่าจะเป็นภาษา JavaScript: ภาษาที่สร้างใน 10 วัน แต่ครองโลกทั้งใบ","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fdns2yj06p07cxiw\u002Fbrendan_eich_the_creator_of_java_script_at_netscape_featuring_the_js_logo_and_code_snippets_p5l8mdud8o.webp","2026-03-04 08:20:47.880Z",{"keywords":153,"locale":174,"school_blog":175},[154,159,164,169],{"collectionId":12,"collectionName":13,"created":155,"created_by":15,"id":156,"name":157,"updated":158,"updated_by":15},"2026-03-04 08:20:36.060Z","xcq4mt3coqo1odt","V8 Engine","2026-04-10 16:07:27.526Z",{"collectionId":12,"collectionName":13,"created":160,"created_by":15,"id":161,"name":162,"updated":163,"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":165,"created_by":15,"id":166,"name":167,"updated":168,"updated_by":15},"2026-03-04 08:20:39.625Z","0399whisr6wvh9x","ประวัติ JavaScript","2026-04-10 16:07:28.151Z",{"collectionId":12,"collectionName":13,"created":170,"created_by":15,"id":171,"name":172,"updated":173,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":40,"collectionId":41,"collectionName":42,"created":15,"expand":176,"id":180,"slug":181,"updated":182,"views":183},{"category":177},{"blogIds":178,"collectionId":46,"collectionName":47,"created":48,"created_by":15,"id":40,"image":15,"image_alt":15,"image_path":15,"label":179,"name":50,"priority":51,"publish_at":52,"scheduled_at":15,"status":53,"updated":54,"updated_by":15},[],{"en":50,"th":50},"n4c7o0yqlwcv639","history-of-javascript-from-10-days-to-global-standard","2026-06-04 06:48:50.724Z",247,"dns2yj06p07cxiw","2026-01-08 05:35:46.937Z","เจาะลึกประวัติศาสตร์ JavaScript จากจุดเริ่มต้นที่ Netscape สู่สงครามเบราว์เซอร์ และการก้าวขึ้นเป็นราชาแห่งการพัฒนาเว็บด้วย V8 Engine","2026-05-11 21:45:19.127Z",{"alt":189,"cover_image_path":190,"created":191,"expand":192,"id":237,"published_at":238,"school_blog":233,"short_description":239,"title":189,"updated":240,"slug":234,"views":236},"Git for Team: ทำงานร่วมกับทีมอย่างไรให้โปร? คู่มือวาง Workflow ไม่ให้โค้ดพัง","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fqtr2rpue3dll79j\u002Finfographic_showing_team_collaboration_using_git_and_git_hub_illustrating_branching_merging_and_pull_x2kuoopv4i.webp","2026-03-04 08:44:45.153Z",{"keywords":193,"locale":219,"school_blog":220},[194,199,204,209,214],{"collectionId":12,"collectionName":13,"created":195,"created_by":15,"id":196,"name":197,"updated":198,"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":200,"created_by":15,"id":201,"name":202,"updated":203,"updated_by":15},"2026-03-04 08:44:35.823Z","andd8rbw15sng17","GitHub","2026-04-10 16:12:47.387Z",{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},"2026-03-04 08:44:44.171Z","4i5n5i9cpmuwg5n","ทำงานเป็นทีม","2026-04-10 16:12:49.172Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},"2026-03-04 08:44:35.619Z","9z8e1xfjt07e7n9","Git Workflow","2026-04-10 16:12:47.226Z",{"collectionId":12,"collectionName":13,"created":215,"created_by":15,"id":216,"name":217,"updated":218,"updated_by":15},"2026-03-04 08:44:36.134Z","pg679bitpkii9vv","Git","2026-04-10 16:12:47.459Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":221,"collectionId":41,"collectionName":42,"created":15,"expand":222,"id":233,"slug":234,"updated":235,"views":236},"spm4l1k5bgmhmmt",{"category":223},{"blogIds":224,"collectionId":46,"collectionName":47,"created":225,"created_by":15,"id":221,"image":226,"image_alt":15,"image_path":227,"label":228,"name":229,"priority":230,"publish_at":231,"scheduled_at":15,"status":53,"updated":232,"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":229,"th":229},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","p8mussz4d3imv1c","git-for-team-professional-workflow-guide","2026-06-05 02:34:57.735Z",450,"qtr2rpue3dll79j","2026-01-07 04:24:33.404Z","เลิกทำบาปต่อเพื่อนร่วมทีม! มาทำความเข้าใจการใช้ Git ในโลกแห่งความจริง ตั้งแต่การวางโครงสร้าง Branch ไปจนถึงกระบวนการ Pull Request และ Code Review เพื่อให้งานเดินหน้าอย่างไม่มีสะดุด","2026-05-08 06:51:56.957Z",{"alt":242,"cover_image_path":243,"created":244,"expand":245,"id":277,"published_at":278,"school_blog":273,"short_description":279,"title":242,"updated":280,"slug":274,"views":276},"กว่าจะเป็นภาษา C: รากฐานที่สร้างโลกโปรแกรมมิ่งสมัยใหม่","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F1g5o0h6567abvrn\u002Fcover_image_the_origin_of_c_the_foundation_of_modern_programming_8of9mwux13.webp","2026-03-04 08:20:49.766Z",{"keywords":246,"locale":267,"school_blog":268},[247,252,257,262],{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"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":253,"created_by":15,"id":254,"name":255,"updated":256,"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":258,"created_by":15,"id":259,"name":260,"updated":261,"updated_by":15},"2026-03-04 08:20:47.293Z","ou39mpoaswi4aaw","ประวัติภาษา C","2026-04-10 16:07:28.935Z",{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},"2026-03-04 08:20:49.166Z","sfmbfwte78iapqh","ภาษา C","2026-04-10 16:07:29.136Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":40,"collectionId":41,"collectionName":42,"created":15,"expand":269,"id":273,"slug":274,"updated":275,"views":276},{"category":270},{"blogIds":271,"collectionId":46,"collectionName":47,"created":48,"created_by":15,"id":40,"image":15,"image_alt":15,"image_path":15,"label":272,"name":50,"priority":51,"publish_at":52,"scheduled_at":15,"status":53,"updated":54,"updated_by":15},[],{"en":50,"th":50},"si4b3bern5ywhh2","history-of-c-programming-language","2026-05-21 03:18:26.648Z",240,"1g5o0h6567abvrn","2026-01-01 04:09:12.321Z","เจาะลึกประวัติศาสตร์ภาษา C จากจุดเริ่มต้นที่ Bell Labs สู่การเป็นรากฐานของ OS และภาษาโปรแกรมมิ่งทั่วโลก เรียนรู้เบื้องหลังความท้าทายทางเทคนิคที่เปลี่ยนโลกนักพัฒนาไปตลอดกาล","2026-05-11 21:45:19.372Z",{"alt":282,"cover_image_path":283,"created":284,"expand":285,"id":321,"published_at":322,"school_blog":317,"short_description":323,"title":282,"updated":324,"slug":318,"views":320},"JS2GO EP.50 การ Deploy Application: Go vs Node.js สำหรับระบบ Production","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F8hbhqgc0757fiic\u002Fcover_image_js2_go_ep_50_deploying_applications_go_vs_node_156u4kg4w1.oductionSystems.webp","2026-03-04 08:44:47.832Z",{"keywords":286,"locale":303,"school_blog":304},[287,292,293,298],{"collectionId":12,"collectionName":13,"created":288,"created_by":15,"id":289,"name":290,"updated":291,"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":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},{"collectionId":12,"collectionName":13,"created":294,"created_by":15,"id":295,"name":296,"updated":297,"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":299,"created_by":15,"id":300,"name":301,"updated":302,"updated_by":15},"2026-03-04 08:44:47.385Z","li4cs2v3atd0wds","Production","2026-04-10 16:12:49.890Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":305,"collectionId":41,"collectionName":42,"created":15,"expand":306,"id":317,"slug":318,"updated":319,"views":320},"hsa1afr8fcnd6qb",{"category":307},{"blogIds":308,"collectionId":46,"collectionName":47,"created":309,"created_by":15,"id":305,"image":310,"image_alt":15,"image_path":311,"label":312,"name":313,"priority":314,"publish_at":315,"scheduled_at":15,"status":53,"updated":316,"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":313,"th":313},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-04-25 02:32:14.339Z","2qqbgr4sjupn62h","deploy-application-go-vs-nodejs-production","2026-06-01 06:48:16.599Z",232,"8hbhqgc0757fiic","2025-12-30 10:59:34.161Z","บทสรุป End-to-End Deployment เปรียบเทียบ Go และ Node.js ในโลก Production ตั้งแต่ Build, Docker, Secrets, CI\u002FCD ไปจนถึง Zero-downtime Deployment จากประสบการณ์ใช้งานจริง","2026-05-08 06:51:57.596Z",{"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},"Git สำหรับผู้เริ่มต้น: เข้าใจ Add, Commit, Push แบบเห็นภาพ ไม่ต้องท่องจำ","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F0nq4jactw3ay5um\u002Finfographic_showing_git_workflow_working_directory_staging_area_and_local_repository_xretq2u7fp.webp","2026-03-04 08:44:47.152Z",{"keywords":330,"locale":348,"school_blog":349},[331,332,337,342,347],{"collectionId":12,"collectionName":13,"created":215,"created_by":15,"id":216,"name":217,"updated":218,"updated_by":15},{"collectionId":12,"collectionName":13,"created":333,"created_by":15,"id":334,"name":335,"updated":336,"updated_by":15},"2026-03-04 08:44:45.516Z","3nmqs1jfzhl7unv","สอน Git","2026-04-10 16:12:49.430Z",{"collectionId":12,"collectionName":13,"created":338,"created_by":15,"id":339,"name":340,"updated":341,"updated_by":15},"2026-03-04 08:44:45.738Z","zii0fvxs1ygxi1r","Git สำหรับมือใหม่","2026-04-10 16:12:49.524Z",{"collectionId":12,"collectionName":13,"created":343,"created_by":15,"id":344,"name":345,"updated":346,"updated_by":15},"2026-03-04 08:44:46.125Z","reeulx12kt2xrmk","พื้นฐาน Git","2026-04-10 16:12:49.619Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":221,"collectionId":41,"collectionName":42,"created":15,"expand":350,"id":354,"slug":355,"updated":356,"views":357},{"category":351},{"blogIds":352,"collectionId":46,"collectionName":47,"created":225,"created_by":15,"id":221,"image":226,"image_alt":15,"image_path":227,"label":353,"name":229,"priority":230,"publish_at":231,"scheduled_at":15,"status":53,"updated":232,"updated_by":15},[],{"en":229,"th":229},"8ljoi174s3n7xdv","git-for-beginners-visual-guide","2026-05-29 13:20:11.082Z",279,"0nq4jactw3ay5um","2025-12-30 10:31:28.406Z","เลิกตั้งชื่อไฟล์ Project_Final ได้แล้ว! มาทำความเข้าใจพื้นฐาน Git ผ่านภาพจำที่เข้าใจง่าย เรียนรู้ขั้นตอน Add, Commit และ Push แบบโปรแกรมเมอร์มืออาชีพ","2026-05-08 06:51:57.438Z",{"alt":363,"cover_image_path":364,"created":365,"expand":366,"id":399,"published_at":400,"school_blog":395,"short_description":401,"title":363,"updated":402,"slug":396,"views":398},"EP.123 Load Balancing & Sticky Sessions สำหรับ WebSocket (Production-Ready Guide)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F9jkgoya0lc1xyon\u002Fcover_image_ep_gqh5x2ytmj.onsforWebSocket.webp","2026-03-04 08:44:49.572Z",{"keywords":367,"locale":389,"school_blog":390},[368,373,374,379,384],{"collectionId":12,"collectionName":13,"created":369,"created_by":15,"id":370,"name":371,"updated":372,"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":85,"created_by":15,"id":86,"name":87,"updated":88,"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:34:10.799Z","m3qoswhgnc4c38n","Kubernetes","2026-04-10 16:08:08.875Z",{"collectionId":12,"collectionName":13,"created":380,"created_by":15,"id":381,"name":382,"updated":383,"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":385,"created_by":15,"id":386,"name":387,"updated":388,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":91,"collectionId":41,"collectionName":42,"created":15,"expand":391,"id":395,"slug":396,"updated":397,"views":398},{"category":392},{"blogIds":393,"collectionId":46,"collectionName":47,"created":95,"created_by":15,"id":91,"image":96,"image_alt":15,"image_path":97,"label":394,"name":99,"priority":100,"publish_at":101,"scheduled_at":15,"status":53,"updated":102,"updated_by":15},[],{"en":99,"th":99},"rr43ycru4104v7f","ep-123-load-balancing-sticky-sessions-websocket","2026-05-27 08:01:51.970Z",270,"9jkgoya0lc1xyon","2025-12-30 09:45:56.384Z","เจาะลึกการออกแบบ Load Balancer สำหรับ WebSocket ตั้งแต่หลักการ Sticky Session ไปจนถึงแนวทาง Scale ระบบจริงบน Kubernetes เพื่อป้องกันการหลุดของ connection และรองรับผู้ใช้จำนวนมากในระดับ Production","2026-05-08 06:51:58.260Z",{"alt":404,"cover_image_path":405,"created":406,"expand":407,"id":436,"published_at":437,"school_blog":432,"short_description":438,"title":404,"updated":439,"slug":433,"views":435},"EP.122 ขยายระบบ WebSocket ข้าม Region ด้วย Geo-distributed Scaling","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fknc34p98jnuu78s\u002Fcover_image_ep_wgq6o3mql5.iesforWebSocket.webp","2026-03-04 08:44:49.918Z",{"keywords":408,"locale":426,"school_blog":427},[409,410,411,416,421],{"collectionId":12,"collectionName":13,"created":80,"created_by":15,"id":81,"name":82,"updated":83,"updated_by":15},{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},{"collectionId":12,"collectionName":13,"created":412,"created_by":15,"id":413,"name":414,"updated":415,"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":417,"created_by":15,"id":418,"name":419,"updated":420,"updated_by":15},"2026-03-04 08:44:49.245Z","mmj7m8vbrznqxx6","Geo-Distributed","2026-04-10 16:12:50.450Z",{"collectionId":12,"collectionName":13,"created":422,"created_by":15,"id":423,"name":424,"updated":425,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-04-10 16:12:50.583Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":91,"collectionId":41,"collectionName":42,"created":15,"expand":428,"id":432,"slug":433,"updated":434,"views":435},{"category":429},{"blogIds":430,"collectionId":46,"collectionName":47,"created":95,"created_by":15,"id":91,"image":96,"image_alt":15,"image_path":97,"label":431,"name":99,"priority":100,"publish_at":101,"scheduled_at":15,"status":53,"updated":102,"updated_by":15},[],{"en":99,"th":99},"br3q5z8ln357s53","websocket-geo-scaling-strategies","2026-05-13 08:24:48.462Z",226,"knc34p98jnuu78s","2025-12-30 09:45:47.000Z","เรียนรู้แนวทางขยาย WebSocket Server แบบข้ามภูมิภาค เพื่อลด latency รองรับผู้ใช้ทั่วโลก และวางโครงสร้างให้พร้อมระดับ Enterprise","2026-05-08 06:51:58.530Z",{"alt":441,"cover_image_path":442,"created":443,"expand":444,"id":466,"published_at":467,"school_blog":462,"short_description":468,"title":441,"updated":469,"slug":463,"views":465},"EP.121 Deploy WebSocket Server บน Kubernetes ให้เสถียรและพร้อมใช้งานจริง","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F7zzc9diqnbfzpd5\u002Fcover_image_ep_itflh3jc0p.oductionSystems.webp","2026-03-04 08:44:50.865Z",{"keywords":445,"locale":456,"school_blog":457},[446,447,448,453,454,455],{"collectionId":12,"collectionName":13,"created":80,"created_by":15,"id":81,"name":82,"updated":83,"updated_by":15},{"collectionId":12,"collectionName":13,"created":375,"created_by":15,"id":376,"name":377,"updated":378,"updated_by":15},{"collectionId":12,"collectionName":13,"created":449,"created_by":15,"id":450,"name":451,"updated":452,"updated_by":15},"2026-03-04 08:44:18.923Z","jt1jqlzs29xu1i7","Deploy","2026-04-10 16:12:43.373Z",{"collectionId":12,"collectionName":13,"created":299,"created_by":15,"id":300,"name":301,"updated":302,"updated_by":15},{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},{"collectionId":12,"collectionName":13,"created":385,"created_by":15,"id":386,"name":387,"updated":388,"updated_by":15},{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":91,"collectionId":41,"collectionName":42,"created":15,"expand":458,"id":462,"slug":463,"updated":464,"views":465},{"category":459},{"blogIds":460,"collectionId":46,"collectionName":47,"created":95,"created_by":15,"id":91,"image":96,"image_alt":15,"image_path":97,"label":461,"name":99,"priority":100,"publish_at":101,"scheduled_at":15,"status":53,"updated":102,"updated_by":15},[],{"en":99,"th":99},"jdvfu3khsdfw08k","deploy-websocket-server-kubernetes-production","2026-05-19 09:18:42.195Z",275,"7zzc9diqnbfzpd5","2025-12-29 10:10:07.916Z","เรียนรู้วิธี Deploy WebSocket Server ด้วย Kubernetes ตั้งแต่การสร้าง Docker Image, ตั้งค่า Load Balancer, ใช้ Sticky Session, Auto Scaling และจัดการ Graceful Shutdown ให้พร้อมใช้งานในระดับ Production จริง","2026-05-08 06:51:58.854Z",{"alt":471,"cover_image_path":472,"created":473,"expand":474,"id":498,"published_at":499,"school_blog":494,"short_description":500,"title":471,"updated":501,"slug":495,"views":497},"EP.120 Whiteboard & Real-time Drawing Synchronization ด้วย WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fb3o64zx8imsejrd\u002Fcover_image_ep_siccboj32o.onwithWebSocket.webp","2026-03-04 08:44:52.925Z",{"keywords":475,"locale":488,"school_blog":489},[476,477,481,482,483],{"collectionId":12,"collectionName":13,"created":80,"created_by":15,"id":81,"name":82,"updated":83,"updated_by":15},{"collectionId":12,"collectionName":13,"created":478,"created_by":15,"id":479,"name":99,"updated":480,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-04-10 16:12:50.850Z",{"collectionId":12,"collectionName":13,"created":385,"created_by":15,"id":386,"name":387,"updated":388,"updated_by":15},{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},{"collectionId":12,"collectionName":13,"created":484,"created_by":15,"id":485,"name":486,"updated":487,"updated_by":15},"2026-03-04 08:44:51.688Z","ztv5f26qud778za","whiteboard","2026-04-10 16:12:50.940Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":91,"collectionId":41,"collectionName":42,"created":15,"expand":490,"id":494,"slug":495,"updated":496,"views":497},{"category":491},{"blogIds":492,"collectionId":46,"collectionName":47,"created":95,"created_by":15,"id":91,"image":96,"image_alt":15,"image_path":97,"label":493,"name":99,"priority":100,"publish_at":101,"scheduled_at":15,"status":53,"updated":102,"updated_by":15},[],{"en":99,"th":99},"clsm7oxkvsptxhx","ep-120-realtime-whiteboard-drawing-websocket","2026-05-25 19:49:50.035Z",241,"b3o64zx8imsejrd","2025-12-29 04:41:19.809Z","ออกแบบระบบ Whiteboard ที่รองรับการวาดพร้อมกันหลายคนแบบเรียลไทม์ ด้วย Go และ WebSocket พร้อมแนวคิด undo\u002Fredo และ performance optimization","2026-05-08 06:51:59.489Z",6,12,421,36]