[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-4-12-superdev%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520academy-all-all-createdAt:desc-default":3},{"data":4,"page":573,"perPage":574,"totalItems":575,"totalPages":576},[5,82,125,182,241,305,342,384,417,459,506,546],{"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},"Cover image for Rust programming tutorial on installing Rustup and setting up VS Code and RustRover by Superdev Academy","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fzhz9rrnn0mjmtav\u002F4xvjqch85u2_c3doph7yjr.png","2026-03-23 03:27:16.550Z",{"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-23 03:26:35.686Z","76qprkevbgfdps8","lxf3i0dmdedlx7f","Install Rust","2026-06-07 06:48:59.604Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-23 03:26:43.307Z","pf009wnev852vvt","Rust tutorial","2026-06-07 06:48:59.753Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-23 03:26:51.317Z","vnqjzw7zge6vw5a","Rustup guide","2026-06-07 06:48:59.922Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-23 03:26:58.067Z","v8uuhglvmd7n0py","VS Code Rust setup","2026-06-07 06:49:00.066Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:20:06.235Z","254619mvnk1hr7y","Rust","2026-06-07 06:45:07.039Z",{"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","13h228aiodane7p","install-rustup-vscode-rustrover-setup","2026-06-15 02:06:02.579Z",152,"zhz9rrnn0mjmtav","2026-03-23 03:31:52.156Z","Start your Rust programming journey! A complete beginner's guide to installing Rustup and configuring VS Code or RustRover for the best development experience.","How to Install Rustup & Setup IDE (VS Code & RustRover) | Rust The Series EP.2","2026-06-07 06:44:48.093Z",{"alt":83,"cover_image_path":84,"created":85,"expand":86,"id":120,"published_at":121,"school_blog":116,"short_description":122,"title":123,"updated":124,"slug":117,"views":119},"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":87,"locale":110,"school_blog":111},[88,93,94,99,104,109],{"collectionId":12,"collectionName":13,"created":89,"created_by":15,"id":90,"name":91,"updated":92,"updated_by":15},"2026-03-04 08:20:08.348Z","ux2m77tsy8v19bg","Rust Programming","2026-06-07 06:45:07.353Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":95,"created_by":15,"id":96,"name":97,"updated":98,"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":100,"created_by":15,"id":101,"name":102,"updated":103,"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":105,"created_by":15,"id":106,"name":107,"updated":108,"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},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":58,"expand":112,"id":116,"slug":117,"updated":118,"views":119},{"category":113},{"blogIds":114,"collectionId":62,"collectionName":63,"created":64,"created_by":15,"id":55,"image":65,"image_alt":58,"image_path":66,"label":115,"name":68,"priority":69,"publish_at":70,"scheduled_at":58,"status":71,"updated":72,"updated_by":15},[],{"en":68,"th":68},"qopjdv8pbq5vd5r","why-rust-programming-language-ep1","2026-06-14 16:54:13.807Z",234,"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":126,"cover_image_path":127,"created":128,"expand":129,"id":177,"published_at":178,"school_blog":173,"short_description":179,"title":180,"updated":181,"slug":174,"views":176},"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":130,"locale":161,"school_blog":162},[131,136,141,146,151,156],{"collectionId":12,"collectionName":13,"created":132,"created_by":15,"id":133,"name":134,"updated":135,"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":137,"created_by":15,"id":138,"name":139,"updated":140,"updated_by":15},"2026-03-04 08:34:47.544Z","3ky9n7b9hsgjf35","Ruby","2026-06-07 06:46:16.683Z",{"collectionId":12,"collectionName":13,"created":142,"created_by":15,"id":143,"name":144,"updated":145,"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":147,"created_by":15,"id":148,"name":149,"updated":150,"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":152,"created_by":15,"id":153,"name":154,"updated":155,"updated_by":15},"2026-03-16 05:49:18.125Z","0runldorrswj5ds","MINASWAN","2026-06-07 06:48:57.120Z",{"collectionId":12,"collectionName":13,"created":157,"created_by":15,"id":158,"name":159,"updated":160,"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":163,"collectionId":56,"collectionName":57,"created":58,"expand":164,"id":173,"slug":174,"updated":175,"views":176},"isnp2fv80bn3yem",{"category":165},{"blogIds":166,"collectionId":62,"collectionName":63,"created":167,"created_by":15,"id":163,"image":58,"image_alt":58,"image_path":58,"label":168,"name":169,"priority":170,"publish_at":171,"scheduled_at":58,"status":71,"updated":172,"updated_by":15},[],"2026-03-04 08:19:47.590Z",{"en":169,"th":169},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","2026-06-07 06:45:01.789Z","g8t67hwsdyuoztk","evolution-of-ruby-for-developer-happiness","2026-06-15 01:02:25.067Z",151,"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":183,"cover_image_path":184,"created":185,"expand":186,"id":236,"published_at":237,"school_blog":232,"short_description":238,"title":239,"updated":240,"slug":233,"views":235},"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":187,"locale":218,"school_blog":219},[188,193,198,203,208,213],{"collectionId":12,"collectionName":13,"created":189,"created_by":15,"id":190,"name":191,"updated":192,"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":194,"created_by":15,"id":195,"name":196,"updated":197,"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":199,"created_by":15,"id":200,"name":201,"updated":202,"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":204,"created_by":15,"id":205,"name":206,"updated":207,"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":209,"created_by":15,"id":210,"name":211,"updated":212,"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":214,"created_by":15,"id":215,"name":216,"updated":217,"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":220,"collectionId":56,"collectionName":57,"created":58,"expand":221,"id":232,"slug":233,"updated":234,"views":235},"spm4l1k5bgmhmmt",{"category":222},{"blogIds":223,"collectionId":62,"collectionName":63,"created":224,"created_by":15,"id":220,"image":225,"image_alt":58,"image_path":226,"label":227,"name":228,"priority":229,"publish_at":230,"scheduled_at":58,"status":71,"updated":231,"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":228,"th":228},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-06-07 06:45:02.533Z","s3vhc075erm9t15","best-macbook-monitors-for-programmers-2026","2026-06-14 21:32:35.480Z",170,"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":242,"cover_image_path":243,"created":244,"expand":245,"id":300,"published_at":301,"school_blog":296,"short_description":302,"title":303,"updated":304,"slug":297,"views":299},"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":246,"locale":282,"school_blog":283},[247,252,257,262,267,272,277],{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"collectionId":12,"collectionName":13,"created":253,"created_by":15,"id":254,"name":255,"updated":256,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-06-07 06:45:55.734Z",{"collectionId":12,"collectionName":13,"created":258,"created_by":15,"id":259,"name":260,"updated":261,"updated_by":15},"2026-03-04 08:46:00.361Z","wq8gqpsnvd2bmma","Enterprise","2026-06-07 06:46:59.463Z",{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"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":268,"created_by":15,"id":269,"name":270,"updated":271,"updated_by":15},"2026-03-16 03:49:11.920Z","68w24pqpvxluy94","Roadmap","2026-06-07 06:48:55.437Z",{"collectionId":12,"collectionName":13,"created":273,"created_by":15,"id":274,"name":275,"updated":276,"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":278,"created_by":15,"id":279,"name":280,"updated":281,"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":284,"collectionId":56,"collectionName":57,"created":58,"expand":285,"id":296,"slug":297,"updated":298,"views":299},"wqxt7ag2gn7xcmk",{"category":286},{"blogIds":287,"collectionId":62,"collectionName":63,"created":288,"created_by":15,"id":284,"image":289,"image_alt":58,"image_path":290,"label":291,"name":292,"priority":293,"publish_at":294,"scheduled_at":58,"status":71,"updated":295,"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":292,"th":292},"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-06-15 21:49:49.385Z",167,"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":306,"cover_image_path":307,"created":308,"expand":309,"id":338,"published_at":339,"school_blog":334,"short_description":340,"title":306,"updated":341,"slug":335,"views":337},"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":310,"locale":328,"school_blog":329},[311,312,313,318,323],{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"updated_by":15},{"collectionId":12,"collectionName":13,"created":253,"created_by":15,"id":254,"name":255,"updated":256,"updated_by":15},{"collectionId":12,"collectionName":13,"created":314,"created_by":15,"id":315,"name":316,"updated":317,"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":319,"created_by":15,"id":320,"name":321,"updated":322,"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":324,"created_by":15,"id":325,"name":326,"updated":327,"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":284,"collectionId":56,"collectionName":57,"created":58,"expand":330,"id":334,"slug":335,"updated":336,"views":337},{"category":331},{"blogIds":332,"collectionId":62,"collectionName":63,"created":288,"created_by":15,"id":284,"image":289,"image_alt":58,"image_path":290,"label":333,"name":292,"priority":293,"publish_at":294,"scheduled_at":58,"status":71,"updated":295,"updated_by":15},[],{"en":292,"th":292},"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":343,"cover_image_path":344,"created":345,"expand":346,"id":380,"published_at":381,"school_blog":376,"short_description":382,"title":343,"updated":383,"slug":377,"views":379},"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":347,"locale":370,"school_blog":371},[348,353,358,363,368,369],{"collectionId":12,"collectionName":13,"created":349,"created_by":15,"id":350,"name":351,"updated":352,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"collectionId":12,"collectionName":13,"created":354,"created_by":15,"id":355,"name":356,"updated":357,"updated_by":15},"2026-03-04 08:44:10.705Z","xicaissou94ouj5","Protobuf","2026-06-07 06:46:28.338Z",{"collectionId":12,"collectionName":13,"created":359,"created_by":15,"id":360,"name":361,"updated":362,"updated_by":15},"2026-03-04 08:44:11.548Z","ezm3p0vsuowuadd","Latency","2026-06-07 06:46:28.821Z",{"collectionId":12,"collectionName":13,"created":364,"created_by":15,"id":365,"name":366,"updated":367,"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":253,"created_by":15,"id":254,"name":255,"updated":256,"updated_by":15},{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":284,"collectionId":56,"collectionName":57,"created":58,"expand":372,"id":376,"slug":377,"updated":378,"views":379},{"category":373},{"blogIds":374,"collectionId":62,"collectionName":63,"created":288,"created_by":15,"id":284,"image":289,"image_alt":58,"image_path":290,"label":375,"name":292,"priority":293,"publish_at":294,"scheduled_at":58,"status":71,"updated":295,"updated_by":15},[],{"en":292,"th":292},"fwr0pxtvmc42yqk","go-websocket-latency-monitoring-performance-tuning","2026-06-15 12:28:22.013Z",215,"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":385,"cover_image_path":386,"created":387,"expand":388,"id":413,"published_at":414,"school_blog":409,"short_description":415,"title":385,"updated":416,"slug":410,"views":412},"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":389,"locale":403,"school_blog":404},[390,391,392,393,398],{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"updated_by":15},{"collectionId":12,"collectionName":13,"created":253,"created_by":15,"id":254,"name":255,"updated":256,"updated_by":15},{"collectionId":12,"collectionName":13,"created":349,"created_by":15,"id":350,"name":351,"updated":352,"updated_by":15},{"collectionId":12,"collectionName":13,"created":394,"created_by":15,"id":395,"name":396,"updated":397,"updated_by":15},"2026-03-04 08:34:45.957Z","gk56ug8j38rhci3","cybersecurity","2026-06-07 06:46:15.958Z",{"collectionId":12,"collectionName":13,"created":399,"created_by":15,"id":400,"name":401,"updated":402,"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":284,"collectionId":56,"collectionName":57,"created":58,"expand":405,"id":409,"slug":410,"updated":411,"views":412},{"category":406},{"blogIds":407,"collectionId":62,"collectionName":63,"created":288,"created_by":15,"id":284,"image":289,"image_alt":58,"image_path":290,"label":408,"name":292,"priority":293,"publish_at":294,"scheduled_at":58,"status":71,"updated":295,"updated_by":15},[],{"en":292,"th":292},"e48pslht6qcpb01","go-enterprise-websocket-security-guide-best-practices","2026-06-01 11:23:16.207Z",208,"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":418,"cover_image_path":419,"created":420,"expand":421,"id":455,"published_at":456,"school_blog":451,"short_description":457,"title":418,"updated":458,"slug":452,"views":454},"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":422,"locale":445,"school_blog":446},[423,424,425,430,435,440],{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"updated_by":15},{"collectionId":12,"collectionName":13,"created":253,"created_by":15,"id":254,"name":255,"updated":256,"updated_by":15},{"collectionId":12,"collectionName":13,"created":426,"created_by":15,"id":427,"name":428,"updated":429,"updated_by":15},"2026-03-04 08:44:14.062Z","z1020rjuhndf8m9","Versioning","2026-06-07 06:46:29.576Z",{"collectionId":12,"collectionName":13,"created":431,"created_by":15,"id":432,"name":433,"updated":434,"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":436,"created_by":15,"id":437,"name":438,"updated":439,"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":441,"created_by":15,"id":442,"name":443,"updated":444,"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":284,"collectionId":56,"collectionName":57,"created":58,"expand":447,"id":451,"slug":452,"updated":453,"views":454},{"category":448},{"blogIds":449,"collectionId":62,"collectionName":63,"created":288,"created_by":15,"id":284,"image":289,"image_alt":58,"image_path":290,"label":450,"name":292,"priority":293,"publish_at":294,"scheduled_at":58,"status":71,"updated":295,"updated_by":15},[],{"en":292,"th":292},"s6w8li1iqpuuwka","go-websocket-versioning-strategies-guide","2026-06-15 16:31:10.111Z",247,"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":460,"cover_image_path":461,"created":462,"expand":463,"id":502,"published_at":503,"school_blog":498,"short_description":504,"title":460,"updated":505,"slug":499,"views":501},"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":464,"locale":485,"school_blog":486},[465,470,475,480],{"collectionId":12,"collectionName":13,"created":466,"created_by":15,"id":467,"name":468,"updated":469,"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":471,"created_by":15,"id":472,"name":473,"updated":474,"updated_by":15},"2026-03-04 08:44:16.902Z","1pf59ie7wale4so","Localhost","2026-06-07 06:46:30.326Z",{"collectionId":12,"collectionName":13,"created":476,"created_by":15,"id":477,"name":478,"updated":479,"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":481,"created_by":15,"id":482,"name":483,"updated":484,"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":487,"collectionId":56,"collectionName":57,"created":58,"expand":488,"id":498,"slug":499,"updated":500,"views":501},"rfxf19ot4iq992c",{"category":489},{"blogIds":490,"collectionId":62,"collectionName":63,"created":491,"created_by":15,"id":487,"image":492,"image_alt":58,"image_path":493,"label":494,"name":495,"priority":229,"publish_at":496,"scheduled_at":58,"status":71,"updated":497,"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":495,"th":495},"Web Development","2025-01-21 03:43:00.282Z","2026-06-07 06:45:03.121Z","98jiz88lg5ihh7t","how-to-use-cloudflare-tunnel-localhost","2026-06-15 07:01:26.481Z",225,"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":507,"cover_image_path":508,"created":509,"expand":510,"id":543,"published_at":537,"school_blog":539,"short_description":544,"title":507,"updated":545,"slug":540,"views":542},"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":511,"locale":528,"school_blog":529},[512,517,522,527],{"collectionId":12,"collectionName":13,"created":513,"created_by":15,"id":514,"name":515,"updated":516,"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":518,"created_by":15,"id":519,"name":520,"updated":521,"updated_by":15},"2026-03-04 08:19:53.527Z","kxb5av8exza7ssd","Laravel","2026-06-07 06:45:05.748Z",{"collectionId":12,"collectionName":13,"created":523,"created_by":15,"id":524,"name":525,"updated":526,"updated_by":15},"2026-03-04 08:19:53.961Z","2irxiuyeoskuui2","WordPress","2026-06-07 06:45:05.933Z",{"collectionId":12,"collectionName":13,"created":157,"created_by":15,"id":158,"name":159,"updated":160,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":530,"collectionId":56,"collectionName":57,"created":58,"expand":531,"id":539,"slug":540,"updated":541,"views":542},"102u7miss0ec94h",{"category":532},{"blogIds":533,"collectionId":62,"collectionName":63,"created":534,"created_by":15,"id":530,"image":58,"image_alt":58,"image_path":58,"label":535,"name":536,"priority":170,"publish_at":537,"scheduled_at":58,"status":71,"updated":538,"updated_by":15},[],"2026-03-04 08:19:48.998Z",{"en":536,"th":536},"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-05-12 07:30:32.748Z",209,"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":547,"cover_image_path":548,"created":549,"expand":550,"id":569,"published_at":171,"school_blog":565,"short_description":570,"title":571,"updated":572,"slug":566,"views":568},"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":551,"locale":559,"school_blog":560},[552,553,554],{"collectionId":12,"collectionName":13,"created":518,"created_by":15,"id":519,"name":520,"updated":521,"updated_by":15},{"collectionId":12,"collectionName":13,"created":523,"created_by":15,"id":524,"name":525,"updated":526,"updated_by":15},{"collectionId":12,"collectionName":13,"created":555,"created_by":15,"id":556,"name":557,"updated":558,"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":163,"collectionId":56,"collectionName":57,"created":58,"expand":561,"id":565,"slug":566,"updated":567,"views":568},{"category":562},{"blogIds":563,"collectionId":62,"collectionName":63,"created":167,"created_by":15,"id":163,"image":58,"image_alt":58,"image_path":58,"label":564,"name":169,"priority":170,"publish_at":171,"scheduled_at":58,"status":71,"updated":172,"updated_by":15},[],{"en":169,"th":169},"38enfgkirmgpypq","history-of-php-from-resume-tool-to-web-king","2026-06-15 01:36:27.326Z",280,"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",4,12,427,36]