[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-6-12-Tailwind%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520CSS-all-all-createdAt:desc-default":3},{"data":4,"page":513,"perPage":514,"totalItems":515,"totalPages":516},[5,68,121,161,209,246,295,336,366,398,440,473],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":64,"published_at":65,"school_blog":60,"short_description":66,"title":6,"updated":67,"slug":61,"views":63},"กว่าจะเป็นภาษา 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":10,"locale":34,"school_blog":44},[11,19,24,29],{"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.060Z","","xcq4mt3coqo1odt","V8 Engine","2026-04-10 16:07:27.526Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"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":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:20:39.625Z","0399whisr6wvh9x","ประวัติ JavaScript","2026-04-10 16:07:28.151Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},"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":45,"collectionId":46,"collectionName":47,"created":15,"expand":48,"id":60,"slug":61,"updated":62,"views":63},"isnp2fv80bn3yem","pbc_2105096300","school_blogs",{"category":49},{"blogIds":50,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":15,"image_alt":15,"image_path":15,"label":54,"name":55,"priority":56,"publish_at":57,"scheduled_at":15,"status":58,"updated":59,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:19:47.590Z",{"en":55,"th":55},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","published","2026-04-25 02:32:14.031Z","n4c7o0yqlwcv639","history-of-javascript-from-10-days-to-global-standard","2026-05-27 05:43:25.252Z",245,"dns2yj06p07cxiw","2026-01-08 05:35:46.937Z","เจาะลึกประวัติศาสตร์ JavaScript จากจุดเริ่มต้นที่ Netscape สู่สงครามเบราว์เซอร์ และการก้าวขึ้นเป็นราชาแห่งการพัฒนาเว็บด้วย V8 Engine","2026-05-11 21:45:19.127Z",{"alt":69,"cover_image_path":70,"created":71,"expand":72,"id":117,"published_at":118,"school_blog":113,"short_description":119,"title":69,"updated":120,"slug":114,"views":116},"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":73,"locale":99,"school_blog":100},[74,79,84,89,94],{"collectionId":12,"collectionName":13,"created":75,"created_by":15,"id":76,"name":77,"updated":78,"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":80,"created_by":15,"id":81,"name":82,"updated":83,"updated_by":15},"2026-03-04 08:44:35.823Z","andd8rbw15sng17","GitHub","2026-04-10 16:12:47.387Z",{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},"2026-03-04 08:44:44.171Z","4i5n5i9cpmuwg5n","ทำงานเป็นทีม","2026-04-10 16:12:49.172Z",{"collectionId":12,"collectionName":13,"created":90,"created_by":15,"id":91,"name":92,"updated":93,"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":95,"created_by":15,"id":96,"name":97,"updated":98,"updated_by":15},"2026-03-04 08:44:36.134Z","pg679bitpkii9vv","Git","2026-04-10 16:12:47.459Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":101,"collectionId":46,"collectionName":47,"created":15,"expand":102,"id":113,"slug":114,"updated":115,"views":116},"spm4l1k5bgmhmmt",{"category":103},{"blogIds":104,"collectionId":51,"collectionName":52,"created":105,"created_by":15,"id":101,"image":106,"image_alt":15,"image_path":107,"label":108,"name":109,"priority":110,"publish_at":111,"scheduled_at":15,"status":58,"updated":112,"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":109,"th":109},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","p8mussz4d3imv1c","git-for-team-professional-workflow-guide","2026-05-29 01:09:45.114Z",442,"qtr2rpue3dll79j","2026-01-07 04:24:33.404Z","เลิกทำบาปต่อเพื่อนร่วมทีม! มาทำความเข้าใจการใช้ Git ในโลกแห่งความจริง ตั้งแต่การวางโครงสร้าง Branch ไปจนถึงกระบวนการ Pull Request และ Code Review เพื่อให้งานเดินหน้าอย่างไม่มีสะดุด","2026-05-08 06:51:56.957Z",{"alt":122,"cover_image_path":123,"created":124,"expand":125,"id":157,"published_at":158,"school_blog":153,"short_description":159,"title":122,"updated":160,"slug":154,"views":156},"กว่าจะเป็นภาษา 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":126,"locale":147,"school_blog":148},[127,132,137,142],{"collectionId":12,"collectionName":13,"created":128,"created_by":15,"id":129,"name":130,"updated":131,"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":133,"created_by":15,"id":134,"name":135,"updated":136,"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":138,"created_by":15,"id":139,"name":140,"updated":141,"updated_by":15},"2026-03-04 08:20:47.293Z","ou39mpoaswi4aaw","ประวัติภาษา C","2026-04-10 16:07:28.935Z",{"collectionId":12,"collectionName":13,"created":143,"created_by":15,"id":144,"name":145,"updated":146,"updated_by":15},"2026-03-04 08:20:49.166Z","sfmbfwte78iapqh","ภาษา C","2026-04-10 16:07:29.136Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":149,"id":153,"slug":154,"updated":155,"views":156},{"category":150},{"blogIds":151,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":15,"image_alt":15,"image_path":15,"label":152,"name":55,"priority":56,"publish_at":57,"scheduled_at":15,"status":58,"updated":59,"updated_by":15},[],{"en":55,"th":55},"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":162,"cover_image_path":163,"created":164,"expand":165,"id":205,"published_at":206,"school_blog":201,"short_description":207,"title":162,"updated":208,"slug":202,"views":204},"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":166,"locale":187,"school_blog":188},[167,172,177,182],{"collectionId":12,"collectionName":13,"created":168,"created_by":15,"id":169,"name":170,"updated":171,"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":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":12,"collectionName":13,"created":178,"created_by":15,"id":179,"name":180,"updated":181,"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":183,"created_by":15,"id":184,"name":185,"updated":186,"updated_by":15},"2026-03-04 08:44:47.385Z","li4cs2v3atd0wds","Production","2026-04-10 16:12:49.890Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":189,"collectionId":46,"collectionName":47,"created":15,"expand":190,"id":201,"slug":202,"updated":203,"views":204},"hsa1afr8fcnd6qb",{"category":191},{"blogIds":192,"collectionId":51,"collectionName":52,"created":193,"created_by":15,"id":189,"image":194,"image_alt":15,"image_path":195,"label":196,"name":197,"priority":198,"publish_at":199,"scheduled_at":15,"status":58,"updated":200,"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":197,"th":197},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-04-25 02:32:14.339Z","2qqbgr4sjupn62h","deploy-application-go-vs-nodejs-production","2026-05-30 23:23:36.909Z",231,"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":210,"cover_image_path":211,"created":212,"expand":213,"id":242,"published_at":243,"school_blog":238,"short_description":244,"title":210,"updated":245,"slug":239,"views":241},"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":214,"locale":232,"school_blog":233},[215,216,221,226,231],{"collectionId":12,"collectionName":13,"created":95,"created_by":15,"id":96,"name":97,"updated":98,"updated_by":15},{"collectionId":12,"collectionName":13,"created":217,"created_by":15,"id":218,"name":219,"updated":220,"updated_by":15},"2026-03-04 08:44:45.516Z","3nmqs1jfzhl7unv","สอน Git","2026-04-10 16:12:49.430Z",{"collectionId":12,"collectionName":13,"created":222,"created_by":15,"id":223,"name":224,"updated":225,"updated_by":15},"2026-03-04 08:44:45.738Z","zii0fvxs1ygxi1r","Git สำหรับมือใหม่","2026-04-10 16:12:49.524Z",{"collectionId":12,"collectionName":13,"created":227,"created_by":15,"id":228,"name":229,"updated":230,"updated_by":15},"2026-03-04 08:44:46.125Z","reeulx12kt2xrmk","พื้นฐาน Git","2026-04-10 16:12:49.619Z",{"collectionId":12,"collectionName":13,"created":90,"created_by":15,"id":91,"name":92,"updated":93,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":101,"collectionId":46,"collectionName":47,"created":15,"expand":234,"id":238,"slug":239,"updated":240,"views":241},{"category":235},{"blogIds":236,"collectionId":51,"collectionName":52,"created":105,"created_by":15,"id":101,"image":106,"image_alt":15,"image_path":107,"label":237,"name":109,"priority":110,"publish_at":111,"scheduled_at":15,"status":58,"updated":112,"updated_by":15},[],{"en":109,"th":109},"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":247,"cover_image_path":248,"created":249,"expand":250,"id":291,"published_at":292,"school_blog":287,"short_description":293,"title":247,"updated":294,"slug":288,"views":290},"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":251,"locale":273,"school_blog":274},[252,257,258,263,268],{"collectionId":12,"collectionName":13,"created":253,"created_by":15,"id":254,"name":255,"updated":256,"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":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"collectionId":12,"collectionName":13,"created":259,"created_by":15,"id":260,"name":261,"updated":262,"updated_by":15},"2026-03-04 08:34:10.799Z","m3qoswhgnc4c38n","Kubernetes","2026-04-10 16:08:08.875Z",{"collectionId":12,"collectionName":13,"created":264,"created_by":15,"id":265,"name":266,"updated":267,"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":269,"created_by":15,"id":270,"name":271,"updated":272,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":275,"collectionId":46,"collectionName":47,"created":15,"expand":276,"id":287,"slug":288,"updated":289,"views":290},"wqxt7ag2gn7xcmk",{"category":277},{"blogIds":278,"collectionId":51,"collectionName":52,"created":279,"created_by":15,"id":275,"image":280,"image_alt":15,"image_path":281,"label":282,"name":283,"priority":284,"publish_at":285,"scheduled_at":15,"status":58,"updated":286,"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":283,"th":283},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","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":296,"cover_image_path":297,"created":298,"expand":299,"id":332,"published_at":333,"school_blog":328,"short_description":334,"title":296,"updated":335,"slug":329,"views":331},"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":300,"locale":322,"school_blog":323},[301,306,307,312,317],{"collectionId":12,"collectionName":13,"created":302,"created_by":15,"id":303,"name":304,"updated":305,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"collectionId":12,"collectionName":13,"created":308,"created_by":15,"id":309,"name":310,"updated":311,"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":313,"created_by":15,"id":314,"name":315,"updated":316,"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":318,"created_by":15,"id":319,"name":320,"updated":321,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-04-10 16:12:50.583Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":275,"collectionId":46,"collectionName":47,"created":15,"expand":324,"id":328,"slug":329,"updated":330,"views":331},{"category":325},{"blogIds":326,"collectionId":51,"collectionName":52,"created":279,"created_by":15,"id":275,"image":280,"image_alt":15,"image_path":281,"label":327,"name":283,"priority":284,"publish_at":285,"scheduled_at":15,"status":58,"updated":286,"updated_by":15},[],{"en":283,"th":283},"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":337,"cover_image_path":338,"created":339,"expand":340,"id":362,"published_at":363,"school_blog":358,"short_description":364,"title":337,"updated":365,"slug":359,"views":361},"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":341,"locale":352,"school_blog":353},[342,343,344,349,350,351],{"collectionId":12,"collectionName":13,"created":302,"created_by":15,"id":303,"name":304,"updated":305,"updated_by":15},{"collectionId":12,"collectionName":13,"created":259,"created_by":15,"id":260,"name":261,"updated":262,"updated_by":15},{"collectionId":12,"collectionName":13,"created":345,"created_by":15,"id":346,"name":347,"updated":348,"updated_by":15},"2026-03-04 08:44:18.923Z","jt1jqlzs29xu1i7","Deploy","2026-04-10 16:12:43.373Z",{"collectionId":12,"collectionName":13,"created":183,"created_by":15,"id":184,"name":185,"updated":186,"updated_by":15},{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"collectionId":12,"collectionName":13,"created":269,"created_by":15,"id":270,"name":271,"updated":272,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":275,"collectionId":46,"collectionName":47,"created":15,"expand":354,"id":358,"slug":359,"updated":360,"views":361},{"category":355},{"blogIds":356,"collectionId":51,"collectionName":52,"created":279,"created_by":15,"id":275,"image":280,"image_alt":15,"image_path":281,"label":357,"name":283,"priority":284,"publish_at":285,"scheduled_at":15,"status":58,"updated":286,"updated_by":15},[],{"en":283,"th":283},"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":367,"cover_image_path":368,"created":369,"expand":370,"id":394,"published_at":395,"school_blog":390,"short_description":396,"title":367,"updated":397,"slug":391,"views":393},"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":371,"locale":384,"school_blog":385},[372,373,377,378,379],{"collectionId":12,"collectionName":13,"created":302,"created_by":15,"id":303,"name":304,"updated":305,"updated_by":15},{"collectionId":12,"collectionName":13,"created":374,"created_by":15,"id":375,"name":283,"updated":376,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-04-10 16:12:50.850Z",{"collectionId":12,"collectionName":13,"created":269,"created_by":15,"id":270,"name":271,"updated":272,"updated_by":15},{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"collectionId":12,"collectionName":13,"created":380,"created_by":15,"id":381,"name":382,"updated":383,"updated_by":15},"2026-03-04 08:44:51.688Z","ztv5f26qud778za","whiteboard","2026-04-10 16:12:50.940Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":275,"collectionId":46,"collectionName":47,"created":15,"expand":386,"id":390,"slug":391,"updated":392,"views":393},{"category":387},{"blogIds":388,"collectionId":51,"collectionName":52,"created":279,"created_by":15,"id":275,"image":280,"image_alt":15,"image_path":281,"label":389,"name":283,"priority":284,"publish_at":285,"scheduled_at":15,"status":58,"updated":286,"updated_by":15},[],{"en":283,"th":283},"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",{"alt":399,"cover_image_path":400,"created":401,"expand":402,"id":436,"published_at":437,"school_blog":432,"short_description":438,"title":399,"updated":439,"slug":433,"views":435},"JS2GO EP.49 Security สำหรับ Backend ด้วย Go และ Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fik5ueoh4be7ojlt\u002Fcover_image_js2_go_ep_49_backend_security_with_go_and_node_3l4haf828s.js.webp","2026-03-04 08:44:53.727Z",{"keywords":403,"locale":426,"school_blog":427},[404,409,414,419,424,425],{"collectionId":12,"collectionName":13,"created":405,"created_by":15,"id":406,"name":407,"updated":408,"updated_by":15},"2026-03-04 08:44:52.376Z","7kgkxt1b9xd0cca","Authorization","2026-04-10 16:12:51.107Z",{"collectionId":12,"collectionName":13,"created":410,"created_by":15,"id":411,"name":412,"updated":413,"updated_by":15},"2026-03-04 08:34:18.095Z","z3u3nql685g5e3b","Authentication","2026-04-10 16:08:11.664Z",{"collectionId":12,"collectionName":13,"created":415,"created_by":15,"id":416,"name":417,"updated":418,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-04-10 16:12:51.264Z",{"collectionId":12,"collectionName":13,"created":420,"created_by":15,"id":421,"name":422,"updated":423,"updated_by":15},"2026-03-04 08:44:52.790Z","tkf1l5rauw0t7m0","Secure API Design","2026-04-10 16:12:51.172Z",{"collectionId":12,"collectionName":13,"created":178,"created_by":15,"id":179,"name":180,"updated":181,"updated_by":15},{"collectionId":12,"collectionName":13,"created":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":189,"collectionId":46,"collectionName":47,"created":15,"expand":428,"id":432,"slug":433,"updated":434,"views":435},{"category":429},{"blogIds":430,"collectionId":51,"collectionName":52,"created":193,"created_by":15,"id":189,"image":194,"image_alt":15,"image_path":195,"label":431,"name":197,"priority":198,"publish_at":199,"scheduled_at":15,"status":58,"updated":200,"updated_by":15},[],{"en":197,"th":197},"q6au12trb7ipmxx","js2go-ep49-backend-security-authentication-authorization-validation","2026-05-29 00:27:23.569Z",257,"ik5ueoh4be7ojlt","2025-12-24 10:19:35.052Z","สรุปพื้นฐาน Security ที่ระบบ Backend ต้องมี ตั้งแต่ Authentication Authorization และ Data Validation พร้อมแนวทางใช้งานจริงใน Go และ Node.js สำหรับระบบ Production","2026-05-08 06:51:59.827Z",{"alt":441,"cover_image_path":442,"created":443,"expand":444,"id":469,"published_at":470,"school_blog":465,"short_description":471,"title":441,"updated":472,"slug":466,"views":468},"JS2GO EP.48 Logging & Monitoring for Production (Go & Node.js)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fssj081nxo3m7iqh\u002Fcover_image_js2_go_ep_48_logging_monitoring_for_production_go_node_qpowgw7zj4.js.webp","2026-03-04 08:44:54.485Z",{"keywords":445,"locale":459,"school_blog":460},[446,451,456,457,458],{"collectionId":12,"collectionName":13,"created":447,"created_by":15,"id":448,"name":449,"updated":450,"updated_by":15},"2026-03-04 08:44:53.651Z","tuo9u1ayxlr8xvm","Monitoring System","2026-04-10 16:12:51.456Z",{"collectionId":12,"collectionName":13,"created":452,"created_by":15,"id":453,"name":454,"updated":455,"updated_by":15},"2026-03-04 08:44:54.012Z","e283qzmjw1vq2l4","Logging Production","2026-04-10 16:12:51.523Z",{"collectionId":12,"collectionName":13,"created":178,"created_by":15,"id":179,"name":180,"updated":181,"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":173,"created_by":15,"id":174,"name":175,"updated":176,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":189,"collectionId":46,"collectionName":47,"created":15,"expand":461,"id":465,"slug":466,"updated":467,"views":468},{"category":462},{"blogIds":463,"collectionId":51,"collectionName":52,"created":193,"created_by":15,"id":189,"image":194,"image_alt":15,"image_path":195,"label":464,"name":197,"priority":198,"publish_at":199,"scheduled_at":15,"status":58,"updated":200,"updated_by":15},[],{"en":197,"th":197},"d8jrjoxb8k7la64","js2go-ep48-logging-monitoring-production-go-nodejs","2026-05-24 03:29:03.812Z",236,"ssj081nxo3m7iqh","2025-12-23 04:57:48.010Z","จากการมีแค่ log สู่การเข้าใจระบบทั้งก้อน เรียนรู้ Structured Logging, Correlation ID, Metrics, Tracing และ Error Monitoring เพื่อให้ระบบ Go และ Node.js พร้อมใช้งานจริงในระดับ Production และ Microservices","2026-05-08 06:51:59.957Z",{"alt":474,"cover_image_path":475,"created":476,"expand":477,"id":509,"published_at":510,"school_blog":505,"short_description":511,"title":474,"updated":512,"slug":506,"views":508},"Work-Life Balance แบบ Programmer: วิธีไม่ให้หมดไฟในวงการนี้","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fkwwrvw3iltat93v\u002Fwork_life_balance_for_programmers_how_to_avoid_burnout_in_the_tech_industry_762b9s96my.webp","2026-03-04 08:44:58.989Z",{"keywords":478,"locale":499,"school_blog":500},[479,484,489,494],{"collectionId":12,"collectionName":13,"created":480,"created_by":15,"id":481,"name":482,"updated":483,"updated_by":15},"2026-03-04 08:35:12.499Z","9bexb3o9mxg9dei","Burnout","2026-04-10 16:12:39.924Z",{"collectionId":12,"collectionName":13,"created":485,"created_by":15,"id":486,"name":487,"updated":488,"updated_by":15},"2026-03-04 08:44:58.046Z","h2p9vyglxcuqfov","ชีวิตโปรแกรมเมอร์","2026-04-10 16:12:52.407Z",{"collectionId":12,"collectionName":13,"created":490,"created_by":15,"id":491,"name":492,"updated":493,"updated_by":15},"2026-03-04 08:44:58.280Z","hoxhv4dr3heikf6","โปรแกรมเมอร์หมดไฟ","2026-04-10 16:12:52.474Z",{"collectionId":12,"collectionName":13,"created":495,"created_by":15,"id":496,"name":497,"updated":498,"updated_by":15},"2026-03-04 08:44:57.697Z","rw5wz1cf9aox58p","Work-Life Balance","2026-04-10 16:12:52.284Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":101,"collectionId":46,"collectionName":47,"created":15,"expand":501,"id":505,"slug":506,"updated":507,"views":508},{"category":502},{"blogIds":503,"collectionId":51,"collectionName":52,"created":105,"created_by":15,"id":101,"image":106,"image_alt":15,"image_path":107,"label":504,"name":109,"priority":110,"publish_at":111,"scheduled_at":15,"status":58,"updated":112,"updated_by":15},[],{"en":109,"th":109},"sy7kac0t03r9dox","work-life-balance-for-programmers","2026-05-29 17:13:11.212Z",233,"kwwrvw3iltat93v","2025-12-22 02:12:40.992Z","การทำงานสายโปรแกรมเมอร์เต็มไปด้วยความกดดัน เดดไลน์ และการเรียนรู้ไม่สิ้นสุด บทความนี้จะพาคุณเข้าใจ Work-Life Balance สำหรับ Programmer อย่างแท้จริง พร้อมแนวคิดและวิธีดูแลตัวเอง เพื่อทำงานได้ดีโดยไม่หมดไฟในระยะยาว","2026-05-08 06:52:01.275Z",6,12,417,35]