[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-5-12-Golang%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520The%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Series-all-all-createdAt:desc-default":3},{"data":4,"page":565,"perPage":566,"totalItems":567,"totalPages":568},[5,82,139,198,262,299,340,372,414,461,501,528],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":77,"published_at":78,"school_blog":73,"short_description":79,"title":80,"updated":81,"slug":74,"views":76},"Rust programming language logo and Rust The Series featured image by Superdev Academy","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fra8my54ngib50ra\u002F2zjiecmhony_i5ddukfc7q.png","2026-03-16 05:19:27.487Z",{"keywords":10,"locale":44,"school_blog":54},[11,19,24,29,34,39],{"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:08.348Z","76qprkevbgfdps8","ux2m77tsy8v19bg","Rust Programming","2026-06-07 06:45:07.353Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:20:06.235Z","254619mvnk1hr7y","Rust","2026-06-07 06:45:07.039Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-16 05:18:56.520Z","imb6broxcylj4d0","Why Rust","2026-06-07 06:48:56.460Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:34:53.925Z","49lu29jndnk3lah","memory safety","2026-06-07 06:46:19.341Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-16 05:19:11.843Z","62q2nsrftel85x3","Ownership and Borrowing","2026-06-07 06:48:56.604Z",{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"updated_by":15},"2026-03-04 08:44:11.146Z","gms2qr4xg6qv65e","Superdev Academy","2026-06-07 06:46:28.624Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},"en","pbc_1989393366","locales","2026-01-22 11:00:02.726Z","twemoji:flag-united-states","qv9c1llfov2d88z",false,"English","2026-04-10 15:42:46.825Z",{"category":55,"collectionId":56,"collectionName":57,"created":58,"expand":59,"id":73,"slug":74,"updated":75,"views":76},"mfqe235iv6x1or8","pbc_2105096300","school_blogs","",{"category":60},{"blogIds":61,"collectionId":62,"collectionName":63,"created":64,"created_by":15,"id":55,"image":65,"image_alt":58,"image_path":66,"label":67,"name":68,"priority":69,"publish_at":70,"scheduled_at":58,"status":71,"updated":72,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-16 04:40:07.104Z","47vt5s1gglj_tz0b90vnge.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fmfqe235iv6x1or8\u002F47vt5s1gglj_tz0b90vnge.png",{"en":68,"th":68},"Rust The Series",2,"2026-03-16 04:40:09.199Z","published","2026-06-07 06:45:03.994Z","qopjdv8pbq5vd5r","why-rust-programming-language-ep1","2026-06-29 02:47:47.751Z",256,"ra8my54ngib50ra","2026-03-23 03:07:44.530Z","Why is Rust the most loved language for 10 years? Learn about its origin from a broken elevator and the 3 pillars: Speed, Safety, and Fearless Concurrency.","Why Rust? Meet the World's Most Loved Programming Language | Rust The Series EP.1","2026-06-07 06:44:46.680Z",{"alt":83,"cover_image_path":84,"created":85,"expand":86,"id":134,"published_at":135,"school_blog":130,"short_description":136,"title":137,"updated":138,"slug":131,"views":133},"The bright red Ruby programming language logo with a creative and happy developer workspace background.","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ferby2ett3ey5sod\u002F2q5mgphj7g2_48s1iwjgkx.png","2026-03-16 05:54:04.252Z",{"keywords":87,"locale":118,"school_blog":119},[88,93,98,103,108,113],{"collectionId":12,"collectionName":13,"created":89,"created_by":15,"id":90,"name":91,"updated":92,"updated_by":15},"2026-03-16 05:53:14.820Z","j85uu14nwfncx1a","Ruby History","2026-06-07 06:48:57.251Z",{"collectionId":12,"collectionName":13,"created":94,"created_by":15,"id":95,"name":96,"updated":97,"updated_by":15},"2026-03-04 08:34:47.544Z","3ky9n7b9hsgjf35","Ruby","2026-06-07 06:46:16.683Z",{"collectionId":12,"collectionName":13,"created":99,"created_by":15,"id":100,"name":101,"updated":102,"updated_by":15},"2026-03-16 05:53:24.913Z","3agesqkm8jsfhwm","What is Ruby","2026-06-07 06:48:57.454Z",{"collectionId":12,"collectionName":13,"created":104,"created_by":15,"id":105,"name":106,"updated":107,"updated_by":15},"2026-03-16 05:49:10.525Z","s0pqrcq7u7b17fv","Yukihiro Matsumoto","2026-06-07 06:48:56.899Z",{"collectionId":12,"collectionName":13,"created":109,"created_by":15,"id":110,"name":111,"updated":112,"updated_by":15},"2026-03-16 05:49:18.125Z","0runldorrswj5ds","MINASWAN","2026-06-07 06:48:57.120Z",{"collectionId":12,"collectionName":13,"created":114,"created_by":15,"id":115,"name":116,"updated":117,"updated_by":15},"2026-03-04 08:19:55.412Z","hz7yzm54i2o6cl7","web development","2026-06-07 06:45:06.116Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":120,"collectionId":56,"collectionName":57,"created":58,"expand":121,"id":130,"slug":131,"updated":132,"views":133},"isnp2fv80bn3yem",{"category":122},{"blogIds":123,"collectionId":62,"collectionName":63,"created":124,"created_by":15,"id":120,"image":58,"image_alt":58,"image_path":58,"label":125,"name":126,"priority":127,"publish_at":128,"scheduled_at":58,"status":71,"updated":129,"updated_by":15},[],"2026-03-04 08:19:47.590Z",{"en":126,"th":126},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","2026-06-07 06:45:01.789Z","g8t67hwsdyuoztk","evolution-of-ruby-for-developer-happiness","2026-06-29 13:12:36.798Z",152,"erby2ett3ey5sod","2026-03-18 04:46:34.062Z","Discover why Ruby is the most beloved language for developers. Explore the MINASWAN philosophy and the power of Ruby on Rails in the startup world.","The History of Ruby: A Language Designed for Developer Happiness and Humanity","2026-06-07 06:44:47.072Z",{"alt":140,"cover_image_path":141,"created":142,"expand":143,"id":193,"published_at":194,"school_blog":189,"short_description":195,"title":196,"updated":197,"slug":190,"views":192},"5 Best MacBook External Monitors for Programmers 2026 featuring ARZOPA Z1RC and BenQ RD280U","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ffcbqg0wgyzvpf4g\u002F22lezkx5a7a_9qza66zcpf.png","2026-03-16 06:50:00.366Z",{"keywords":144,"locale":175,"school_blog":176},[145,150,155,160,165,170],{"collectionId":12,"collectionName":13,"created":146,"created_by":15,"id":147,"name":148,"updated":149,"updated_by":15},"2026-03-16 06:48:56.529Z","t89p5msf6snqcxd","MacBook external monitor","2026-06-07 06:48:58.197Z",{"collectionId":12,"collectionName":13,"created":151,"created_by":15,"id":152,"name":153,"updated":154,"updated_by":15},"2026-03-16 06:49:05.338Z","87md0kh84kqbx8c","best monitor for programming 2026","2026-06-07 06:48:58.337Z",{"collectionId":12,"collectionName":13,"created":156,"created_by":15,"id":157,"name":158,"updated":159,"updated_by":15},"2026-03-16 06:29:41.694Z","0jobzj69zmb9rsg","ARZOPA Z1RC","2026-06-07 06:48:57.855Z",{"collectionId":12,"collectionName":13,"created":161,"created_by":15,"id":162,"name":163,"updated":164,"updated_by":15},"2026-03-16 06:49:22.523Z","bszj87t9ek8zlas","BenQ RD280U","2026-06-07 06:48:58.480Z",{"collectionId":12,"collectionName":13,"created":166,"created_by":15,"id":167,"name":168,"updated":169,"updated_by":15},"2026-03-16 06:49:51.533Z","5eyvwytlle97npa","programmer setup","2026-06-07 06:48:58.677Z",{"collectionId":12,"collectionName":13,"created":171,"created_by":15,"id":172,"name":173,"updated":174,"updated_by":15},"2026-03-16 06:49:58.837Z","u1s8mqzkkosas82","developer gadgets","2026-06-07 06:48:58.816Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":177,"collectionId":56,"collectionName":57,"created":58,"expand":178,"id":189,"slug":190,"updated":191,"views":192},"spm4l1k5bgmhmmt",{"category":179},{"blogIds":180,"collectionId":62,"collectionName":63,"created":181,"created_by":15,"id":177,"image":182,"image_alt":58,"image_path":183,"label":184,"name":185,"priority":186,"publish_at":187,"scheduled_at":58,"status":71,"updated":188,"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":185,"th":185},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-06-07 06:45:02.533Z","s3vhc075erm9t15","best-macbook-monitors-for-programmers-2026","2026-07-03 03:01:22.955Z",216,"fcbqg0wgyzvpf4g","2026-03-17 03:05:00.000Z","Stop wasting money on the wrong screen! Discover the top 5 monitors for MacBook tailored for developers, from portable ARZOPA Z1RC to pro-coding BenQ RD280U.","5 Best MacBook External Monitors for Programmers (2026 Update)","2026-06-07 06:44:47.608Z",{"alt":199,"cover_image_path":200,"created":201,"expand":202,"id":257,"published_at":258,"school_blog":253,"short_description":259,"title":260,"updated":261,"slug":254,"views":256},"Article cover for Golang The Series EP.140 Finale, featuring production-grade Go code snippets for an Enterprise WebSocket server.","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fo74ygkohmq4k9nf\u002Farticle_cover_for_golang_the_series_ep_874pa0lrr4.eWebSocketserver.png","2026-03-16 04:03:45.337Z",{"keywords":203,"locale":239,"school_blog":240},[204,209,214,219,224,229,234],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-06-07 06:45:55.734Z",{"collectionId":12,"collectionName":13,"created":215,"created_by":15,"id":216,"name":217,"updated":218,"updated_by":15},"2026-03-04 08:46:00.361Z","wq8gqpsnvd2bmma","Enterprise","2026-06-07 06:46:59.463Z",{"collectionId":12,"collectionName":13,"created":220,"created_by":15,"id":221,"name":222,"updated":223,"updated_by":15},"2026-03-04 08:44:21.262Z","f2p94t41e9t8hnv","system design","2026-06-07 06:46:31.636Z",{"collectionId":12,"collectionName":13,"created":225,"created_by":15,"id":226,"name":227,"updated":228,"updated_by":15},"2026-03-16 03:49:11.920Z","68w24pqpvxluy94","Roadmap","2026-06-07 06:48:55.437Z",{"collectionId":12,"collectionName":13,"created":230,"created_by":15,"id":231,"name":232,"updated":233,"updated_by":15},"2026-03-16 04:03:30.341Z","xbv6j7jyjlxdqqv","Software Engineering","2026-06-07 06:48:55.885Z",{"collectionId":12,"collectionName":13,"created":235,"created_by":15,"id":236,"name":237,"updated":238,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-06-07 06:46:40.599Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":242,"id":253,"slug":254,"updated":255,"views":256},"wqxt7ag2gn7xcmk",{"category":243},{"blogIds":244,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":248,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"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":249,"th":249},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-06-07 06:45:03.856Z","c2puowxb5818jta","go-enterprise-websocket-roadmap-series-finale","2026-07-02 11:23:45.870Z",169,"o74ygkohmq4k9nf","2026-03-17 02:55:25.743Z","The epic conclusion to our 140-episode journey. Master the 4 pillars of enterprise WebSockets, access our production-ready code template, and discover what to study next to become a top-tier Real-time Architect.","Golang The Series EP.140: Enterprise WebSocket Roadmap & The Grand Finale","2026-06-07 06:44:46.237Z",{"alt":263,"cover_image_path":264,"created":265,"expand":266,"id":295,"published_at":296,"school_blog":291,"short_description":297,"title":263,"updated":298,"slug":292,"views":294},"Golang The Series EP.139: Mobile & Low-bandwidth – Optimizing WebSockets for Unstable Networks","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvtglxlbfpe6ol4j\u002Fcover_image_golang_the_series_ep_xh66sejcok.nstableNetworks.webp","2026-03-04 08:43:14.983Z",{"keywords":267,"locale":285,"school_blog":286},[268,269,270,275,280],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":271,"created_by":15,"id":272,"name":273,"updated":274,"updated_by":15},"2026-03-04 08:40:54.386Z","hmclps1vkgyr7my","Mobile Development","2026-06-07 06:46:27.790Z",{"collectionId":12,"collectionName":13,"created":276,"created_by":15,"id":277,"name":278,"updated":279,"updated_by":15},"2026-03-04 08:40:54.493Z","te1uagqlfki2src","Bandwidth Optimization","2026-06-07 06:46:27.903Z",{"collectionId":12,"collectionName":13,"created":281,"created_by":15,"id":282,"name":283,"updated":284,"updated_by":15},"2026-03-04 08:40:54.606Z","s26m2zvbm8amosp","Real-time Systems","2026-06-07 06:46:28.003Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":287,"id":291,"slug":292,"updated":293,"views":294},{"category":288},{"blogIds":289,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":290,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"3kpsi6righezgrh","go-websocket-mobile-resilience-strategies","2026-06-09 17:41:41.698Z",212,"vtglxlbfpe6ol4j","2026-03-02 08:50:25.730Z","Master WebSocket resilience for mobile users. Learn expert strategies for battery efficiency, adaptive heartbeats, and message recovery to keep your real-time app running smoothly on 3G or jittery connections.","2026-06-07 06:43:13.899Z",{"alt":300,"cover_image_path":301,"created":302,"expand":303,"id":336,"published_at":337,"school_blog":333,"short_description":338,"title":300,"updated":339,"slug":334,"views":192},"Golang The Series EP.138: Mastering WebSocket Latency & Performance Optimization","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fimmh876ctlnb2zk\u002Fcover_image_golang_the_series_ep_9ceb66i80j.nceOptimization.webp","2026-03-04 08:44:12.640Z",{"keywords":304,"locale":327,"school_blog":328},[305,310,315,320,325,326],{"collectionId":12,"collectionName":13,"created":306,"created_by":15,"id":307,"name":308,"updated":309,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"collectionId":12,"collectionName":13,"created":311,"created_by":15,"id":312,"name":313,"updated":314,"updated_by":15},"2026-03-04 08:44:10.705Z","xicaissou94ouj5","Protobuf","2026-06-07 06:46:28.338Z",{"collectionId":12,"collectionName":13,"created":316,"created_by":15,"id":317,"name":318,"updated":319,"updated_by":15},"2026-03-04 08:44:11.548Z","ezm3p0vsuowuadd","Latency","2026-06-07 06:46:28.821Z",{"collectionId":12,"collectionName":13,"created":321,"created_by":15,"id":322,"name":323,"updated":324,"updated_by":15},"2026-03-04 08:44:12.339Z","s0awvhr8cgjuosg","Performance Tuning","2026-06-07 06:46:29.100Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":329,"id":333,"slug":334,"updated":335,"views":192},{"category":330},{"blogIds":331,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":332,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"fwr0pxtvmc42yqk","go-websocket-latency-monitoring-performance-tuning","2026-06-17 14:06:18.478Z","immh876ctlnb2zk","2026-03-02 04:30:24.037Z","Stop relying on averages! Dive into P95\u002FP99 latency metrics and expert Go optimization techniques like sync.Pool, Protobuf, and TCP tuning to build lightning-fast, real-time systems.","2026-06-07 06:43:14.548Z",{"alt":341,"cover_image_path":342,"created":343,"expand":344,"id":368,"published_at":369,"school_blog":365,"short_description":370,"title":341,"updated":371,"slug":366,"views":294},"Golang The Series EP.137: Enterprise WebSocket Security – Building an Unbreakable Fortress","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F45evsjmefj3c18r\u002Fgolang_the_series_ep_9gpmj14jad.eakableFortress.webp","2026-03-04 08:44:14.305Z",{"keywords":345,"locale":359,"school_blog":360},[346,347,348,349,354],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":306,"created_by":15,"id":307,"name":308,"updated":309,"updated_by":15},{"collectionId":12,"collectionName":13,"created":350,"created_by":15,"id":351,"name":352,"updated":353,"updated_by":15},"2026-03-04 08:34:45.957Z","gk56ug8j38rhci3","cybersecurity","2026-06-07 06:46:15.958Z",{"collectionId":12,"collectionName":13,"created":355,"created_by":15,"id":356,"name":357,"updated":358,"updated_by":15},"2026-03-04 08:44:13.045Z","g4w6cq87d9yzbaz","CSWSH","2026-06-07 06:46:29.315Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":361,"id":365,"slug":366,"updated":367,"views":294},{"category":362},{"blogIds":363,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":364,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"e48pslht6qcpb01","go-enterprise-websocket-security-guide-best-practices","2026-06-25 13:47:39.603Z","45evsjmefj3c18r","2026-02-24 02:34:28.466Z","Beyond WSS: Master the 5 pillars of Enterprise WebSocket security. Learn how to prevent CSWSH hijacking, implement ticket-based authentication, and mitigate DoS attacks in your high-scale Go applications.","2026-06-07 06:43:14.950Z",{"alt":373,"cover_image_path":374,"created":375,"expand":376,"id":410,"published_at":411,"school_blog":406,"short_description":412,"title":373,"updated":413,"slug":407,"views":409},"Golang The Series EP.136: WebSocket Versioning & Backward Compatibility – Seamless Upgrades","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fmlecj7zimfn4ncf\u002Fcover_image_for_golang_the_series_ep_8hjmrmne9l.eamlessUpgrades.webp","2026-03-04 08:44:15.459Z",{"keywords":377,"locale":400,"school_blog":401},[378,379,380,385,390,395],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":381,"created_by":15,"id":382,"name":383,"updated":384,"updated_by":15},"2026-03-04 08:44:14.062Z","z1020rjuhndf8m9","Versioning","2026-06-07 06:46:29.576Z",{"collectionId":12,"collectionName":13,"created":386,"created_by":15,"id":387,"name":388,"updated":389,"updated_by":15},"2026-03-04 08:44:14.480Z","d23neji0er26rrf","Backward Compatibility","2026-06-07 06:46:29.681Z",{"collectionId":12,"collectionName":13,"created":391,"created_by":15,"id":392,"name":393,"updated":394,"updated_by":15},"2026-03-04 08:44:14.705Z","7qpvbtbl99sazyl","API Design","2026-06-07 06:46:29.806Z",{"collectionId":12,"collectionName":13,"created":396,"created_by":15,"id":397,"name":398,"updated":399,"updated_by":15},"2026-03-04 08:44:15.009Z","kjorqkld4c8r3lc","Subprotocol","2026-06-07 06:46:29.966Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":402,"id":406,"slug":407,"updated":408,"views":409},{"category":403},{"blogIds":404,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":405,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"s6w8li1iqpuuwka","go-websocket-versioning-strategies-guide","2026-06-30 19:02:59.771Z",254,"mlecj7zimfn4ncf","2026-02-23 03:15:08.855Z","Don't break your real-time app! Master professional WebSocket versioning strategies in Go. Learn Path-based, Subprotocol, and Payload versioning to ensure a seamless experience for users on older app versions.","2026-06-07 06:43:15.356Z",{"alt":415,"cover_image_path":416,"created":417,"expand":418,"id":457,"published_at":458,"school_blog":453,"short_description":459,"title":415,"updated":460,"slug":454,"views":456},"How to Use Cloudflare Tunnel to Expose Localhost Without Port Forwarding","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fbm8dllzwthuvdi5\u002Fcover_image_how_to_use_cloudflare_tunnel_to_expose_localhost_without_port_forwarding_3ltp5dhqn6.webp","2026-03-04 08:44:18.025Z",{"keywords":419,"locale":440,"school_blog":441},[420,425,430,435],{"collectionId":12,"collectionName":13,"created":421,"created_by":15,"id":422,"name":423,"updated":424,"updated_by":15},"2026-03-04 08:44:16.622Z","7k1sal58dnj3ycv","Cloudflare Zero Trust","2026-06-07 06:46:30.108Z",{"collectionId":12,"collectionName":13,"created":426,"created_by":15,"id":427,"name":428,"updated":429,"updated_by":15},"2026-03-04 08:44:16.902Z","1pf59ie7wale4so","Localhost","2026-06-07 06:46:30.326Z",{"collectionId":12,"collectionName":13,"created":431,"created_by":15,"id":432,"name":433,"updated":434,"updated_by":15},"2026-03-04 08:44:17.506Z","2hw2c6o2elosloo","Cloudflare Tunnel","2026-06-07 06:46:30.614Z",{"collectionId":12,"collectionName":13,"created":436,"created_by":15,"id":437,"name":438,"updated":439,"updated_by":15},"2026-03-04 08:44:17.746Z","il984gdus3ha65e","how to use cloudflare tunnel","2026-06-07 06:46:30.713Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":442,"collectionId":56,"collectionName":57,"created":58,"expand":443,"id":453,"slug":454,"updated":455,"views":456},"rfxf19ot4iq992c",{"category":444},{"blogIds":445,"collectionId":62,"collectionName":63,"created":446,"created_by":15,"id":442,"image":447,"image_alt":58,"image_path":448,"label":449,"name":450,"priority":186,"publish_at":451,"scheduled_at":58,"status":71,"updated":452,"updated_by":15},[],"2026-03-04 08:32:03.969Z","7acfigk1qkd_lv1k6bkji3.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Frfxf19ot4iq992c\u002F7acfigk1qkd_lv1k6bkji3.png",{"en":450,"th":450},"Web Development","2025-01-21 03:43:00.282Z","2026-06-07 06:45:03.121Z","98jiz88lg5ihh7t","how-to-use-cloudflare-tunnel-localhost","2026-07-02 15:14:50.701Z",233,"bm8dllzwthuvdi5","2026-02-19 02:03:40.665Z","Learn how to use Cloudflare Tunnel to expose your localhost project to the internet securely. No port forwarding or public IP required. The ultimate guide for developers.","2026-06-07 06:43:15.840Z",{"alt":462,"cover_image_path":463,"created":464,"expand":465,"id":498,"published_at":492,"school_blog":494,"short_description":499,"title":462,"updated":500,"slug":495,"views":497},"The History of PHP: From a Simple Resume Tool to Powering 70% of the Web","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fo7hs062vt49pkic\u002Fcover_image_for_the_history_of_php_from_a_simple_resume_tool_to_powering_70_of_the_web_x7joyixjaq.webp","2026-03-04 08:19:55.978Z",{"keywords":466,"locale":483,"school_blog":484},[467,472,477,482],{"collectionId":12,"collectionName":13,"created":468,"created_by":15,"id":469,"name":470,"updated":471,"updated_by":15},"2026-03-04 08:19:51.822Z","53qj3tq2f8ryvz4","PHP History","2026-06-07 06:45:05.466Z",{"collectionId":12,"collectionName":13,"created":473,"created_by":15,"id":474,"name":475,"updated":476,"updated_by":15},"2026-03-04 08:19:53.527Z","kxb5av8exza7ssd","Laravel","2026-06-07 06:45:05.748Z",{"collectionId":12,"collectionName":13,"created":478,"created_by":15,"id":479,"name":480,"updated":481,"updated_by":15},"2026-03-04 08:19:53.961Z","2irxiuyeoskuui2","WordPress","2026-06-07 06:45:05.933Z",{"collectionId":12,"collectionName":13,"created":114,"created_by":15,"id":115,"name":116,"updated":117,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":485,"collectionId":56,"collectionName":57,"created":58,"expand":486,"id":494,"slug":495,"updated":496,"views":497},"102u7miss0ec94h",{"category":487},{"blogIds":488,"collectionId":62,"collectionName":63,"created":489,"created_by":15,"id":485,"image":58,"image_alt":58,"image_path":58,"label":490,"name":491,"priority":127,"publish_at":492,"scheduled_at":58,"status":71,"updated":493,"updated_by":15},[],"2026-03-04 08:19:48.998Z",{"en":491,"th":491},"The Origin of Code","2026-02-18 01:59:52.528Z","2026-06-07 06:45:02.012Z","mne53jn0lm6k2tx","evolution-of-php-from-personal-tool-to-web-giant","2026-06-27 20:24:35.443Z",211,"o7hs062vt49pkic","Discover the evolution of PHP—from Rasmus Lerdorf’s personal scripts to the most dominant server-side language in web history.","2026-06-07 06:42:42.945Z",{"alt":502,"cover_image_path":503,"created":504,"expand":505,"id":524,"published_at":128,"school_blog":520,"short_description":525,"title":526,"updated":527,"slug":521,"views":523},"History of PHP from a resume tracking script to a global web standard","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F674ffks78w25zf4\u002F2k36ktce3wm_xovvij6qyy.png","2026-05-25 05:41:16.526Z",{"keywords":506,"locale":514,"school_blog":515},[507,508,509],{"collectionId":12,"collectionName":13,"created":473,"created_by":15,"id":474,"name":475,"updated":476,"updated_by":15},{"collectionId":12,"collectionName":13,"created":478,"created_by":15,"id":479,"name":480,"updated":481,"updated_by":15},{"collectionId":12,"collectionName":13,"created":510,"created_by":15,"id":511,"name":512,"updated":513,"updated_by":15},"2026-05-25 05:21:48.990Z","ri85qu1k1oz6573","PHP","2026-06-07 06:49:20.547Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":120,"collectionId":56,"collectionName":57,"created":58,"expand":516,"id":520,"slug":521,"updated":522,"views":523},{"category":517},{"blogIds":518,"collectionId":62,"collectionName":63,"created":124,"created_by":15,"id":120,"image":58,"image_alt":58,"image_path":58,"label":519,"name":126,"priority":127,"publish_at":128,"scheduled_at":58,"status":71,"updated":129,"updated_by":15},[],{"en":126,"th":126},"38enfgkirmgpypq","history-of-php-from-resume-tool-to-web-king","2026-07-01 10:00:38.660Z",286,"674ffks78w25zf4","A summary of the history of PHP, from its origin as Rasmus Lerdorf's personal tool to its development into the backend language powering over 70% of websites today.","History of PHP: From a Resume Tool to the Backend of 70% of Websites","2026-06-07 06:45:00.368Z",{"alt":529,"cover_image_path":530,"created":531,"expand":532,"id":561,"published_at":562,"school_blog":557,"short_description":563,"title":529,"updated":564,"slug":558,"views":560},"Golang The Series EP 135: CI\u002FCD for WebSocket Servers – Seamless Deployment Guide","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fuciara056gpthn7\u002Fcover_image_golang_the_series_ep_jygzx7lhwz.DeploymentGuide.webp","2026-03-04 08:44:19.424Z",{"keywords":533,"locale":551,"school_blog":552},[534,535,540,541,546],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"collectionId":12,"collectionName":13,"created":536,"created_by":15,"id":537,"name":538,"updated":539,"updated_by":15},"2026-03-04 08:44:18.322Z","1n94l86nx7etuf9","CI\u002FCD","2026-06-07 06:46:30.916Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":542,"created_by":15,"id":543,"name":544,"updated":545,"updated_by":15},"2026-03-04 08:44:18.652Z","jr5zczy6qrxmd88","Docker","2026-06-07 06:46:30.990Z",{"collectionId":12,"collectionName":13,"created":547,"created_by":15,"id":548,"name":549,"updated":550,"updated_by":15},"2026-03-04 08:44:18.923Z","jt1jqlzs29xu1i7","Deploy","2026-06-07 06:46:31.098Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":553,"id":557,"slug":558,"updated":559,"views":560},{"category":554},{"blogIds":555,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":556,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"b5wbtaxm8jlj8ec","go-websocket-cicd-seamless-deployment-strategies","2026-06-12 19:11:12.501Z",213,"uciara056gpthn7","2026-02-17 01:37:55.380Z","Master CI\u002FCD for stateful systems. Learn how to deploy Go WebSocket servers seamlessly without dropping connections using GitHub Actions, Docker, and Graceful Shutdown patterns.","2026-06-07 06:43:16.014Z",5,12,438,37]