[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-6-12-Tailwind%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520CSS-all-all-createdAt:desc-default":3},{"data":4,"page":503,"perPage":504,"totalItems":505,"totalPages":506},[5,64,112,149,189,242,282,326,363,404,441,471],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":60,"published_at":61,"school_blog":56,"short_description":62,"title":6,"updated":63,"slug":57,"views":59},"กว่าจะเป็นภาษา 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","76qprkevbgfdps8","iv9nlsz49oc0x6p","ประวัติ Python","2026-06-07 06:45:10.124Z",{"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-06-07 06:45:08.957Z",{"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-06-07 06:45:10.234Z",{"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":43,"expand":44,"id":56,"slug":57,"updated":58,"views":59},"isnp2fv80bn3yem","pbc_2105096300","school_blogs","",{"category":45},{"blogIds":46,"collectionId":47,"collectionName":48,"created":49,"created_by":15,"id":40,"image":43,"image_alt":43,"image_path":43,"label":50,"name":51,"priority":52,"publish_at":53,"scheduled_at":43,"status":54,"updated":55,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:19:47.590Z",{"en":51,"th":51},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","published","2026-06-07 06:45:01.789Z","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-06-07 06:42:44.428Z",{"alt":65,"cover_image_path":66,"created":67,"expand":68,"id":108,"published_at":109,"school_blog":104,"short_description":110,"title":65,"updated":111,"slug":105,"views":107},"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":69,"locale":90,"school_blog":91},[70,75,80,85],{"collectionId":12,"collectionName":13,"created":71,"created_by":15,"id":72,"name":73,"updated":74,"updated_by":15},"2026-03-04 08:44:41.631Z","sipxojme8z97ei7","WebSocket TLS","2026-06-07 06:46:37.399Z",{"collectionId":12,"collectionName":13,"created":76,"created_by":15,"id":77,"name":78,"updated":79,"updated_by":15},"2026-03-04 08:44:41.420Z","xjki2vhsm3f0jb4","WSS WebSocket","2026-06-07 06:46:37.337Z",{"collectionId":12,"collectionName":13,"created":81,"created_by":15,"id":82,"name":83,"updated":84,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-06-07 06:45:55.734Z",{"collectionId":12,"collectionName":13,"created":86,"created_by":15,"id":87,"name":88,"updated":89,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":92,"collectionId":41,"collectionName":42,"created":43,"expand":93,"id":104,"slug":105,"updated":106,"views":107},"wqxt7ag2gn7xcmk",{"category":94},{"blogIds":95,"collectionId":47,"collectionName":48,"created":96,"created_by":15,"id":92,"image":97,"image_alt":43,"image_path":98,"label":99,"name":100,"priority":101,"publish_at":102,"scheduled_at":43,"status":54,"updated":103,"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":100,"th":100},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-06-07 06:45:03.856Z","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-06-07 06:43:21.662Z",{"alt":113,"cover_image_path":114,"created":115,"expand":116,"id":145,"published_at":146,"school_blog":141,"short_description":147,"title":113,"updated":148,"slug":142,"views":144},"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":117,"locale":135,"school_blog":136},[118,119,120,125,130],{"collectionId":12,"collectionName":13,"created":81,"created_by":15,"id":82,"name":83,"updated":84,"updated_by":15},{"collectionId":12,"collectionName":13,"created":86,"created_by":15,"id":87,"name":88,"updated":89,"updated_by":15},{"collectionId":12,"collectionName":13,"created":121,"created_by":15,"id":122,"name":123,"updated":124,"updated_by":15},"2026-03-04 08:44:42.096Z","kr1dmn7sxgv9vxg","JWT WebSocket","2026-06-07 06:46:37.493Z",{"collectionId":12,"collectionName":13,"created":126,"created_by":15,"id":127,"name":128,"updated":129,"updated_by":15},"2026-03-04 08:44:42.406Z","julxx94rca568ku","WebSocket Authentication","2026-06-07 06:46:37.674Z",{"collectionId":12,"collectionName":13,"created":131,"created_by":15,"id":132,"name":133,"updated":134,"updated_by":15},"2026-03-04 08:44:13.770Z","ij1u9pugpnctjvk","WebSocket Security","2026-06-07 06:46:29.432Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":92,"collectionId":41,"collectionName":42,"created":43,"expand":137,"id":141,"slug":142,"updated":143,"views":144},{"category":138},{"blogIds":139,"collectionId":47,"collectionName":48,"created":96,"created_by":15,"id":92,"image":97,"image_alt":43,"image_path":98,"label":140,"name":100,"priority":101,"publish_at":102,"scheduled_at":43,"status":54,"updated":103,"updated_by":15},[],{"en":100,"th":100},"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-06-07 06:43:21.752Z",{"alt":150,"cover_image_path":151,"created":152,"expand":153,"id":185,"published_at":186,"school_blog":181,"short_description":187,"title":150,"updated":188,"slug":182,"views":184},"กว่าจะเป็นภาษา 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":154,"locale":175,"school_blog":176},[155,160,165,170],{"collectionId":12,"collectionName":13,"created":156,"created_by":15,"id":157,"name":158,"updated":159,"updated_by":15},"2026-03-04 08:20:36.060Z","xcq4mt3coqo1odt","V8 Engine","2026-06-07 06:45:09.934Z",{"collectionId":12,"collectionName":13,"created":161,"created_by":15,"id":162,"name":163,"updated":164,"updated_by":15},"2026-03-04 08:20:38.187Z","b4o3toqgoc84295","Brendan Eich","2026-06-07 06:45:10.401Z",{"collectionId":12,"collectionName":13,"created":166,"created_by":15,"id":167,"name":168,"updated":169,"updated_by":15},"2026-03-04 08:20:39.625Z","0399whisr6wvh9x","ประวัติ JavaScript","2026-06-07 06:45:10.618Z",{"collectionId":12,"collectionName":13,"created":171,"created_by":15,"id":172,"name":173,"updated":174,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-06-07 06:45:10.888Z",{"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":43,"expand":177,"id":181,"slug":182,"updated":183,"views":184},{"category":178},{"blogIds":179,"collectionId":47,"collectionName":48,"created":49,"created_by":15,"id":40,"image":43,"image_alt":43,"image_path":43,"label":180,"name":51,"priority":52,"publish_at":53,"scheduled_at":43,"status":54,"updated":55,"updated_by":15},[],{"en":51,"th":51},"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-06-07 06:42:44.726Z",{"alt":190,"cover_image_path":191,"created":192,"expand":193,"id":238,"published_at":239,"school_blog":234,"short_description":240,"title":190,"updated":241,"slug":235,"views":237},"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":194,"locale":220,"school_blog":221},[195,200,205,210,215],{"collectionId":12,"collectionName":13,"created":196,"created_by":15,"id":197,"name":198,"updated":199,"updated_by":15},"2026-03-04 08:44:43.803Z","tsn8jg792h1wac5","Code Review","2026-06-07 06:46:37.827Z",{"collectionId":12,"collectionName":13,"created":201,"created_by":15,"id":202,"name":203,"updated":204,"updated_by":15},"2026-03-04 08:44:35.823Z","andd8rbw15sng17","GitHub","2026-06-07 06:46:35.932Z",{"collectionId":12,"collectionName":13,"created":206,"created_by":15,"id":207,"name":208,"updated":209,"updated_by":15},"2026-03-04 08:44:44.171Z","4i5n5i9cpmuwg5n","ทำงานเป็นทีม","2026-06-07 06:46:37.953Z",{"collectionId":12,"collectionName":13,"created":211,"created_by":15,"id":212,"name":213,"updated":214,"updated_by":15},"2026-03-04 08:44:35.619Z","9z8e1xfjt07e7n9","Git Workflow","2026-06-07 06:46:35.800Z",{"collectionId":12,"collectionName":13,"created":216,"created_by":15,"id":217,"name":218,"updated":219,"updated_by":15},"2026-03-04 08:44:36.134Z","pg679bitpkii9vv","Git","2026-06-07 06:46:36.158Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":222,"collectionId":41,"collectionName":42,"created":43,"expand":223,"id":234,"slug":235,"updated":236,"views":237},"spm4l1k5bgmhmmt",{"category":224},{"blogIds":225,"collectionId":47,"collectionName":48,"created":226,"created_by":15,"id":222,"image":227,"image_alt":43,"image_path":228,"label":229,"name":230,"priority":231,"publish_at":232,"scheduled_at":43,"status":54,"updated":233,"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":230,"th":230},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-06-07 06:45:02.533Z","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-06-07 06:43:22.195Z",{"alt":243,"cover_image_path":244,"created":245,"expand":246,"id":278,"published_at":279,"school_blog":274,"short_description":280,"title":243,"updated":281,"slug":275,"views":277},"กว่าจะเป็นภาษา 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":247,"locale":268,"school_blog":269},[248,253,258,263],{"collectionId":12,"collectionName":13,"created":249,"created_by":15,"id":250,"name":251,"updated":252,"updated_by":15},"2026-03-04 08:20:42.894Z","q8fw2bf4sm83pak","Bell Labs","2026-06-07 06:45:10.977Z",{"collectionId":12,"collectionName":13,"created":254,"created_by":15,"id":255,"name":256,"updated":257,"updated_by":15},"2026-03-04 08:20:45.500Z","9f8c26oyzxwvs13","Dennis Ritchie","2026-06-07 06:45:11.224Z",{"collectionId":12,"collectionName":13,"created":259,"created_by":15,"id":260,"name":261,"updated":262,"updated_by":15},"2026-03-04 08:20:47.293Z","ou39mpoaswi4aaw","ประวัติภาษา C","2026-06-07 06:45:11.423Z",{"collectionId":12,"collectionName":13,"created":264,"created_by":15,"id":265,"name":266,"updated":267,"updated_by":15},"2026-03-04 08:20:49.166Z","sfmbfwte78iapqh","ภาษา C","2026-06-07 06:45:11.704Z",{"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":43,"expand":270,"id":274,"slug":275,"updated":276,"views":277},{"category":271},{"blogIds":272,"collectionId":47,"collectionName":48,"created":49,"created_by":15,"id":40,"image":43,"image_alt":43,"image_path":43,"label":273,"name":51,"priority":52,"publish_at":53,"scheduled_at":43,"status":54,"updated":55,"updated_by":15},[],{"en":51,"th":51},"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-06-07 06:42:45.041Z",{"alt":283,"cover_image_path":284,"created":285,"expand":286,"id":322,"published_at":323,"school_blog":318,"short_description":324,"title":283,"updated":325,"slug":319,"views":321},"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":287,"locale":304,"school_blog":305},[288,293,294,299],{"collectionId":12,"collectionName":13,"created":289,"created_by":15,"id":290,"name":291,"updated":292,"updated_by":15},"2026-03-04 08:44:47.024Z","p4tvi007knx0nib","Deploy Application","2026-06-07 06:46:38.718Z",{"collectionId":12,"collectionName":13,"created":86,"created_by":15,"id":87,"name":88,"updated":89,"updated_by":15},{"collectionId":12,"collectionName":13,"created":295,"created_by":15,"id":296,"name":297,"updated":298,"updated_by":15},"2026-03-04 08:24:40.405Z","05u3tysava2z6ga","Node.js","2026-06-07 06:45:12.195Z",{"collectionId":12,"collectionName":13,"created":300,"created_by":15,"id":301,"name":302,"updated":303,"updated_by":15},"2026-03-04 08:44:47.385Z","li4cs2v3atd0wds","Production","2026-06-07 06:46:38.822Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":306,"collectionId":41,"collectionName":42,"created":43,"expand":307,"id":318,"slug":319,"updated":320,"views":321},"hsa1afr8fcnd6qb",{"category":308},{"blogIds":309,"collectionId":47,"collectionName":48,"created":310,"created_by":15,"id":306,"image":311,"image_alt":43,"image_path":312,"label":313,"name":314,"priority":315,"publish_at":316,"scheduled_at":43,"status":54,"updated":317,"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":314,"th":314},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-06-07 06:45:02.240Z","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-06-07 06:43:22.811Z",{"alt":327,"cover_image_path":328,"created":329,"expand":330,"id":359,"published_at":360,"school_blog":355,"short_description":361,"title":327,"updated":362,"slug":356,"views":358},"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":331,"locale":349,"school_blog":350},[332,333,338,343,348],{"collectionId":12,"collectionName":13,"created":216,"created_by":15,"id":217,"name":218,"updated":219,"updated_by":15},{"collectionId":12,"collectionName":13,"created":334,"created_by":15,"id":335,"name":336,"updated":337,"updated_by":15},"2026-03-04 08:44:45.516Z","3nmqs1jfzhl7unv","สอน Git","2026-06-07 06:46:38.371Z",{"collectionId":12,"collectionName":13,"created":339,"created_by":15,"id":340,"name":341,"updated":342,"updated_by":15},"2026-03-04 08:44:45.738Z","zii0fvxs1ygxi1r","Git สำหรับมือใหม่","2026-06-07 06:46:38.466Z",{"collectionId":12,"collectionName":13,"created":344,"created_by":15,"id":345,"name":346,"updated":347,"updated_by":15},"2026-03-04 08:44:46.125Z","reeulx12kt2xrmk","พื้นฐาน Git","2026-06-07 06:46:38.568Z",{"collectionId":12,"collectionName":13,"created":211,"created_by":15,"id":212,"name":213,"updated":214,"updated_by":15},{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":222,"collectionId":41,"collectionName":42,"created":43,"expand":351,"id":355,"slug":356,"updated":357,"views":358},{"category":352},{"blogIds":353,"collectionId":47,"collectionName":48,"created":226,"created_by":15,"id":222,"image":227,"image_alt":43,"image_path":228,"label":354,"name":230,"priority":231,"publish_at":232,"scheduled_at":43,"status":54,"updated":233,"updated_by":15},[],{"en":230,"th":230},"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-06-07 06:43:22.517Z",{"alt":364,"cover_image_path":365,"created":366,"expand":367,"id":400,"published_at":401,"school_blog":396,"short_description":402,"title":364,"updated":403,"slug":397,"views":399},"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":368,"locale":390,"school_blog":391},[369,374,375,380,385],{"collectionId":12,"collectionName":13,"created":370,"created_by":15,"id":371,"name":372,"updated":373,"updated_by":15},"2026-03-04 08:44:48.724Z","s6xhnfomy7n5ycp","WebSocket Server","2026-06-07 06:46:39.070Z",{"collectionId":12,"collectionName":13,"created":86,"created_by":15,"id":87,"name":88,"updated":89,"updated_by":15},{"collectionId":12,"collectionName":13,"created":376,"created_by":15,"id":377,"name":378,"updated":379,"updated_by":15},"2026-03-04 08:34:10.799Z","m3qoswhgnc4c38n","Kubernetes","2026-06-07 06:46:00.116Z",{"collectionId":12,"collectionName":13,"created":381,"created_by":15,"id":382,"name":383,"updated":384,"updated_by":15},"2026-03-04 08:44:49.054Z","vbjgbr5ah0kh43p","Real-time System","2026-06-07 06:46:39.270Z",{"collectionId":12,"collectionName":13,"created":386,"created_by":15,"id":387,"name":388,"updated":389,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":92,"collectionId":41,"collectionName":42,"created":43,"expand":392,"id":396,"slug":397,"updated":398,"views":399},{"category":393},{"blogIds":394,"collectionId":47,"collectionName":48,"created":96,"created_by":15,"id":92,"image":97,"image_alt":43,"image_path":98,"label":395,"name":100,"priority":101,"publish_at":102,"scheduled_at":43,"status":54,"updated":103,"updated_by":15},[],{"en":100,"th":100},"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-06-07 06:43:23.353Z",{"alt":405,"cover_image_path":406,"created":407,"expand":408,"id":437,"published_at":438,"school_blog":433,"short_description":439,"title":405,"updated":440,"slug":434,"views":436},"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":409,"locale":427,"school_blog":428},[410,411,412,417,422],{"collectionId":12,"collectionName":13,"created":81,"created_by":15,"id":82,"name":83,"updated":84,"updated_by":15},{"collectionId":12,"collectionName":13,"created":86,"created_by":15,"id":87,"name":88,"updated":89,"updated_by":15},{"collectionId":12,"collectionName":13,"created":413,"created_by":15,"id":414,"name":415,"updated":416,"updated_by":15},"2026-03-04 08:44:32.154Z","u0s66bjop3dljau","Horizontal Scaling","2026-06-07 06:46:34.757Z",{"collectionId":12,"collectionName":13,"created":418,"created_by":15,"id":419,"name":420,"updated":421,"updated_by":15},"2026-03-04 08:44:49.245Z","mmj7m8vbrznqxx6","Geo-Distributed","2026-06-07 06:46:39.431Z",{"collectionId":12,"collectionName":13,"created":423,"created_by":15,"id":424,"name":425,"updated":426,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-06-07 06:46:39.574Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":92,"collectionId":41,"collectionName":42,"created":43,"expand":429,"id":433,"slug":434,"updated":435,"views":436},{"category":430},{"blogIds":431,"collectionId":47,"collectionName":48,"created":96,"created_by":15,"id":92,"image":97,"image_alt":43,"image_path":98,"label":432,"name":100,"priority":101,"publish_at":102,"scheduled_at":43,"status":54,"updated":103,"updated_by":15},[],{"en":100,"th":100},"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-06-07 06:43:23.504Z",{"alt":442,"cover_image_path":443,"created":444,"expand":445,"id":467,"published_at":468,"school_blog":463,"short_description":469,"title":442,"updated":470,"slug":464,"views":466},"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":446,"locale":457,"school_blog":458},[447,448,449,454,455,456],{"collectionId":12,"collectionName":13,"created":81,"created_by":15,"id":82,"name":83,"updated":84,"updated_by":15},{"collectionId":12,"collectionName":13,"created":376,"created_by":15,"id":377,"name":378,"updated":379,"updated_by":15},{"collectionId":12,"collectionName":13,"created":450,"created_by":15,"id":451,"name":452,"updated":453,"updated_by":15},"2026-03-04 08:44:18.923Z","jt1jqlzs29xu1i7","Deploy","2026-06-07 06:46:31.098Z",{"collectionId":12,"collectionName":13,"created":300,"created_by":15,"id":301,"name":302,"updated":303,"updated_by":15},{"collectionId":12,"collectionName":13,"created":86,"created_by":15,"id":87,"name":88,"updated":89,"updated_by":15},{"collectionId":12,"collectionName":13,"created":386,"created_by":15,"id":387,"name":388,"updated":389,"updated_by":15},{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":92,"collectionId":41,"collectionName":42,"created":43,"expand":459,"id":463,"slug":464,"updated":465,"views":466},{"category":460},{"blogIds":461,"collectionId":47,"collectionName":48,"created":96,"created_by":15,"id":92,"image":97,"image_alt":43,"image_path":98,"label":462,"name":100,"priority":101,"publish_at":102,"scheduled_at":43,"status":54,"updated":103,"updated_by":15},[],{"en":100,"th":100},"jdvfu3khsdfw08k","deploy-websocket-server-kubernetes-production","2026-06-06 18:59:46.687Z",276,"7zzc9diqnbfzpd5","2025-12-29 10:10:07.916Z","เรียนรู้วิธี Deploy WebSocket Server ด้วย Kubernetes ตั้งแต่การสร้าง Docker Image, ตั้งค่า Load Balancer, ใช้ Sticky Session, Auto Scaling และจัดการ Graceful Shutdown ให้พร้อมใช้งานในระดับ Production จริง","2026-06-07 06:43:23.871Z",{"alt":472,"cover_image_path":473,"created":474,"expand":475,"id":499,"published_at":500,"school_blog":495,"short_description":501,"title":472,"updated":502,"slug":496,"views":498},"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":476,"locale":489,"school_blog":490},[477,478,482,483,484],{"collectionId":12,"collectionName":13,"created":81,"created_by":15,"id":82,"name":83,"updated":84,"updated_by":15},{"collectionId":12,"collectionName":13,"created":479,"created_by":15,"id":480,"name":100,"updated":481,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-06-07 06:46:40.040Z",{"collectionId":12,"collectionName":13,"created":386,"created_by":15,"id":387,"name":388,"updated":389,"updated_by":15},{"collectionId":12,"collectionName":13,"created":86,"created_by":15,"id":87,"name":88,"updated":89,"updated_by":15},{"collectionId":12,"collectionName":13,"created":485,"created_by":15,"id":486,"name":487,"updated":488,"updated_by":15},"2026-03-04 08:44:51.688Z","ztv5f26qud778za","whiteboard","2026-06-07 06:46:40.164Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":92,"collectionId":41,"collectionName":42,"created":43,"expand":491,"id":495,"slug":496,"updated":497,"views":498},{"category":492},{"blogIds":493,"collectionId":47,"collectionName":48,"created":96,"created_by":15,"id":92,"image":97,"image_alt":43,"image_path":98,"label":494,"name":100,"priority":101,"publish_at":102,"scheduled_at":43,"status":54,"updated":103,"updated_by":15},[],{"en":100,"th":100},"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-06-07 06:43:24.279Z",6,12,421,36]