[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-15-12-How%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520to-all-all-createdAt:desc-default":3},{"data":4,"page":538,"perPage":539,"totalItems":540,"totalPages":541},[5,85,127,179,225,265,304,346,378,415,454,500],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":81,"published_at":82,"school_blog":77,"short_description":83,"title":6,"updated":84,"slug":78,"views":80},"EP.77 Building an Instant Notification System with WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fpsp95z1edvqnsgr\u002F126_11zon_kq568q7625.webp","2026-03-04 08:47:09.667Z",{"keywords":10,"locale":49,"school_blog":59},[11,19,24,29,34,39,44],{"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:46:14.508Z","","1q1s7e3t7jazcq5","Real-Time Messaging","2026-04-10 16:13:10.467Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:47:08.221Z","1uy0kc96zxn0um4","Instant Notification","2026-04-10 16:13:24.118Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:47:08.604Z","qgbhpvuawt0d7sv","real-time alerts","2026-04-10 16:13:24.200Z",{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"updated_by":15},"2026-03-04 08:45:13.578Z","qwq1kseajvv4cne","notification system","2026-04-10 16:12:55.954Z",{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},"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":60,"collectionId":61,"collectionName":62,"created":15,"expand":63,"id":77,"slug":78,"updated":79,"views":80},"wqxt7ag2gn7xcmk","pbc_2105096300","school_blogs",{"category":64},{"blogIds":65,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":71,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":72,"th":72},"Golang The Series",1,"2026-03-16 04:39:38.440Z","published","2026-04-25 02:32:15.470Z","363m2ttpfonee1y","websocket-instant-notification-system","2026-05-14 09:21:36.840Z",265,"psp95z1edvqnsgr","2025-08-18 02:21:19.539Z","Learn how to build an Instant Notification System using WebSocket to deliver real-time updates and alerts to users. Includes complete code examples in Go for both server and client sides.","2026-05-06 08:38:16.157Z",{"alt":86,"cover_image_path":87,"created":88,"expand":89,"id":123,"published_at":124,"school_blog":119,"short_description":125,"title":86,"updated":126,"slug":120,"views":122},"EP.76 Handling Large Data Transfers in WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fi7znffdimqdo31v\u002F124_11zon_s35ncqh7nk.webp","2026-03-04 08:47:12.552Z",{"keywords":90,"locale":113,"school_blog":114},[91,96,101,102,107,112],{"collectionId":12,"collectionName":13,"created":92,"created_by":15,"id":93,"name":94,"updated":95,"updated_by":15},"2026-03-04 08:47:10.798Z","mu7d30ixs5imzak","Large Data","2026-04-10 16:13:24.725Z",{"collectionId":12,"collectionName":13,"created":97,"created_by":15,"id":98,"name":99,"updated":100,"updated_by":15},"2026-03-04 08:44:23.473Z","z6zahdl1nko078y","Data Streaming","2026-04-10 16:12:44.470Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},"2026-03-04 08:46:12.615Z","ex0f61ubqeln8vw","Real-Time Communication","2026-04-10 16:13:10.105Z",{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},"2026-03-04 08:47:11.464Z","hhr4sn231xomudr","Binary Data","2026-04-10 16:13:25.012Z",{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":115,"id":119,"slug":120,"updated":121,"views":122},{"category":116},{"blogIds":117,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":118,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"dexn9bg9teychy4","websocket-large-data-transfer","2026-05-20 08:49:40.612Z",373,"i7znffdimqdo31v","2025-08-15 02:43:24.067Z","Explore techniques for efficiently sending large data over WebSocket using chunking, compression, and binary data — optimized for real-time applications that handle high data volume.","2026-04-25 02:48:13.143Z",{"alt":128,"cover_image_path":129,"created":130,"expand":131,"id":175,"published_at":176,"school_blog":172,"short_description":177,"title":128,"updated":178,"slug":173,"views":174},"Full Code vs Low Code vs No Code: Complete Guide with Pros and Cons for Beginner Programmers","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fd4qwhfkgsvy30uj\u002F2_11zon_26_zo2wyafqw0.webp","2026-03-04 08:47:19.730Z",{"keywords":132,"locale":158,"school_blog":159},[133,138,143,148,153],{"collectionId":12,"collectionName":13,"created":134,"created_by":15,"id":135,"name":136,"updated":137,"updated_by":15},"2026-03-04 08:47:16.247Z","mqoaqhalr7kb3k9","code","2026-04-10 16:13:26.328Z",{"collectionId":12,"collectionName":13,"created":139,"created_by":15,"id":140,"name":141,"updated":142,"updated_by":15},"2026-03-04 08:31:26.855Z","gm7zvudx341kzsm","Programmer","2026-04-10 16:07:40.730Z",{"collectionId":12,"collectionName":13,"created":144,"created_by":15,"id":145,"name":146,"updated":147,"updated_by":15},"2026-03-04 08:47:16.909Z","3pl0puo9e4b1w2n","Low Code","2026-04-10 16:13:26.636Z",{"collectionId":12,"collectionName":13,"created":149,"created_by":15,"id":150,"name":151,"updated":152,"updated_by":15},"2026-03-04 08:47:17.814Z","psozbwuweckzgk4","Full Code","2026-04-10 16:13:26.950Z",{"collectionId":12,"collectionName":13,"created":154,"created_by":15,"id":155,"name":156,"updated":157,"updated_by":15},"2026-03-04 08:47:18.408Z","bkkg39u1nnyo5wj","No Code","2026-04-10 16:13:27.236Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":160,"collectionId":61,"collectionName":62,"created":15,"expand":161,"id":172,"slug":173,"updated":15,"views":174},"spm4l1k5bgmhmmt",{"category":162},{"blogIds":163,"collectionId":66,"collectionName":67,"created":164,"created_by":15,"id":160,"image":165,"image_alt":15,"image_path":166,"label":167,"name":168,"priority":169,"publish_at":170,"scheduled_at":15,"status":75,"updated":171,"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":168,"th":168},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","9k5l6n65fmu6roh","full-code-vs-low-code-vs-no-code-beginner-guide",213,"d4qwhfkgsvy30uj","2025-08-15 02:19:37.174Z","Discover the differences between Full Code, Low Code, and No Code development approaches. Learn the advantages, disadvantages, and how to choose the right path for your programming journey as a beginner developer.","2026-04-25 02:48:14.124Z",{"alt":180,"cover_image_path":181,"created":182,"expand":183,"id":221,"published_at":222,"school_blog":217,"short_description":223,"title":180,"updated":224,"slug":218,"views":220},"Which Programming Language is Best for Each Type of Job","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fwvuneeidymusssx\u002F15_2_11zon_77rcqm0pww.webp","2026-03-04 08:47:35.324Z",{"keywords":184,"locale":211,"school_blog":212},[185,186,191,196,201,206],{"collectionId":12,"collectionName":13,"created":139,"created_by":15,"id":140,"name":141,"updated":142,"updated_by":15},{"collectionId":12,"collectionName":13,"created":187,"created_by":15,"id":188,"name":189,"updated":190,"updated_by":15},"2026-03-04 08:47:19.476Z","w78r7qflj698r6y","Developer","2026-04-10 16:13:27.311Z",{"collectionId":12,"collectionName":13,"created":192,"created_by":15,"id":193,"name":194,"updated":195,"updated_by":15},"2026-03-04 08:32:45.900Z","8iavk2ouwtkr5he","Swift","2026-04-10 16:07:59.824Z",{"collectionId":12,"collectionName":13,"created":197,"created_by":15,"id":198,"name":199,"updated":200,"updated_by":15},"2026-03-04 08:20:28.340Z","s9cc7gm6633rsnk","Python","2026-04-10 16:07:26.827Z",{"collectionId":12,"collectionName":13,"created":202,"created_by":15,"id":203,"name":204,"updated":205,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":12,"collectionName":13,"created":207,"created_by":15,"id":208,"name":209,"updated":210,"updated_by":15},"2026-03-04 08:27:03.313Z","n1eqjd4qznwpb8n","programming languages","2026-04-10 16:07:38.053Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":160,"collectionId":61,"collectionName":62,"created":15,"expand":213,"id":217,"slug":218,"updated":219,"views":220},{"category":214},{"blogIds":215,"collectionId":66,"collectionName":67,"created":164,"created_by":15,"id":160,"image":165,"image_alt":15,"image_path":166,"label":216,"name":168,"priority":169,"publish_at":170,"scheduled_at":15,"status":75,"updated":171,"updated_by":15},[],{"en":168,"th":168},"n9929xfl2d9qcm1","programming-languages-career-guide-2025","2026-05-21 04:29:07.959Z",212,"wvuneeidymusssx","2025-08-14 11:08:40.713Z","Complete guide to choosing the right programming language for your career! Compare JavaScript, Python, Java, C++, Swift, Go, and Rust with job market insights, salary expectations, and 2025 trends for beginners and professional developers.","2026-04-25 02:48:16.633Z",{"alt":226,"cover_image_path":227,"created":228,"expand":229,"id":261,"published_at":262,"school_blog":257,"short_description":263,"title":226,"updated":264,"slug":258,"views":260},"JS2GO EP.11 Concurrency: How Go and JavaScript Handle Concurrency","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Funy0i1ns5o5937a\u002F22_11zon_cfbiwpgkmd.webp","2026-03-04 08:47:22.352Z",{"keywords":230,"locale":243,"school_blog":244},[231,236,237,238],{"collectionId":12,"collectionName":13,"created":232,"created_by":15,"id":233,"name":234,"updated":235,"updated_by":15},"2026-03-04 08:24:38.707Z","v8n5s20nj500amh","JavaScript vs Go","2026-04-10 16:07:29.238Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":202,"created_by":15,"id":203,"name":204,"updated":205,"updated_by":15},{"collectionId":12,"collectionName":13,"created":239,"created_by":15,"id":240,"name":241,"updated":242,"updated_by":15},"2026-03-04 08:24:48.143Z","dourw0uuydrrh1h","Concurrency","2026-04-10 16:07:30.157Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":245,"collectionId":61,"collectionName":62,"created":15,"expand":246,"id":257,"slug":258,"updated":259,"views":260},"hsa1afr8fcnd6qb",{"category":247},{"blogIds":248,"collectionId":66,"collectionName":67,"created":249,"created_by":15,"id":245,"image":250,"image_alt":15,"image_path":251,"label":252,"name":253,"priority":254,"publish_at":255,"scheduled_at":15,"status":75,"updated":256,"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":253,"th":253},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-04-25 02:32:14.339Z","r3y9ogxazoy3s96","concurrency-javascript-vs-go","2026-05-14 11:24:48.285Z",251,"uny0i1ns5o5937a","2025-08-14 02:28:17.323Z","A comparison of concurrency handling in JavaScript and Go, along with the advantages and disadvantages of managing concurrent processes in each language.","2026-04-25 02:48:14.605Z",{"alt":266,"cover_image_path":267,"created":268,"expand":269,"id":300,"published_at":301,"school_blog":297,"short_description":302,"title":266,"updated":303,"slug":298,"views":299},"Should Beginner Developers Start Freelancing?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ftflynnxb4ucbf7l\u002F10_4_11zon_w34xbhzlo1.webp","2026-03-04 08:47:38.447Z",{"keywords":270,"locale":291,"school_blog":292},[271,276,281,286],{"collectionId":12,"collectionName":13,"created":272,"created_by":15,"id":273,"name":274,"updated":275,"updated_by":15},"2026-03-04 08:47:36.008Z","ltd92l6xoqeginj","beginner developer freelance","2026-04-10 16:13:30.913Z",{"collectionId":12,"collectionName":13,"created":277,"created_by":15,"id":278,"name":279,"updated":280,"updated_by":15},"2026-03-04 08:47:36.645Z","8lswdkbw8h1en5g","Starting Freelance","2026-04-10 16:13:31.174Z",{"collectionId":12,"collectionName":13,"created":282,"created_by":15,"id":283,"name":284,"updated":285,"updated_by":15},"2026-03-04 08:47:37.128Z","g9ojzn4tylvdke3","Freelance Developer","2026-04-10 16:13:31.382Z",{"collectionId":12,"collectionName":13,"created":287,"created_by":15,"id":288,"name":289,"updated":290,"updated_by":15},"2026-03-04 08:47:37.637Z","5k8bee4vff7orco","beginner developer","2026-04-10 16:13:31.750Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":160,"collectionId":61,"collectionName":62,"created":15,"expand":293,"id":297,"slug":298,"updated":15,"views":299},{"category":294},{"blogIds":295,"collectionId":66,"collectionName":67,"created":164,"created_by":15,"id":160,"image":165,"image_alt":15,"image_path":166,"label":296,"name":168,"priority":169,"publish_at":170,"scheduled_at":15,"status":75,"updated":171,"updated_by":15},[],{"en":168,"th":168},"shlei4m4zvxbg1n","should-beginner-developers-start-freelancing-honest-guide",206,"tflynnxb4ucbf7l","2025-08-13 10:23:00.064Z","For new developers who are hesitating! Analyze pros & cons, 12-month roadmap, readiness checklist, realistic pricing guide, and tips to avoid common mistakes from real freelancer experiences. Perfect for coding bootcamp graduates and junior developers.","2026-04-25 02:48:16.922Z",{"alt":305,"cover_image_path":306,"created":307,"expand":308,"id":342,"published_at":343,"school_blog":338,"short_description":344,"title":305,"updated":345,"slug":339,"views":341},"EP.75 Using Redis for User State Management in WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F7gwkb5q2w0kv9lo\u002F122_11zon_39rhxueass.webp","2026-03-04 08:47:14.040Z",{"keywords":309,"locale":332,"school_blog":333},[310,315,320,321,326,327],{"collectionId":12,"collectionName":13,"created":311,"created_by":15,"id":312,"name":313,"updated":314,"updated_by":15},"2026-03-04 08:47:12.508Z","rjl0l49347kfuke","Distributed Architecture","2026-04-10 16:13:25.192Z",{"collectionId":12,"collectionName":13,"created":316,"created_by":15,"id":317,"name":318,"updated":319,"updated_by":15},"2026-03-04 08:40:54.606Z","s26m2zvbm8amosp","Real-time Systems","2026-04-10 16:12:40.769Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":322,"created_by":15,"id":323,"name":324,"updated":325,"updated_by":15},"2026-03-04 08:47:12.717Z","gcx28k3rmbtt0ij","User State","2026-04-10 16:13:25.295Z",{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},{"collectionId":12,"collectionName":13,"created":328,"created_by":15,"id":329,"name":330,"updated":331,"updated_by":15},"2026-03-04 08:44:31.678Z","bd6jtks2o3q53bx","Redis","2026-04-10 16:12:46.240Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":334,"id":338,"slug":339,"updated":340,"views":341},{"category":335},{"blogIds":336,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":337,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"4rpshti4th04y0d","redis-user-state-management-websocket","2026-05-13 20:32:39.180Z",232,"7gwkb5q2w0kv9lo","2025-08-13 02:09:57.929Z","Discover how to use Redis to manage user state in WebSocket servers — including online tracking, connection updates, and real-time data retrieval — for scalable and high-performance applications.","2026-05-06 08:38:16.998Z",{"alt":347,"cover_image_path":348,"created":349,"expand":350,"id":374,"published_at":375,"school_blog":371,"short_description":376,"title":347,"updated":377,"slug":372,"views":373},"JS2GO EP.10 Error Handling: JavaScript vs Go – How Do They Differ?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fxaf668xjfrlp5ij\u002F20_11zon_1_nwxvzum61p.webp","2026-03-04 08:24:44.199Z",{"keywords":351,"locale":365,"school_blog":366},[352,353,354,355,360],{"collectionId":12,"collectionName":13,"created":202,"created_by":15,"id":203,"name":204,"updated":205,"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":232,"created_by":15,"id":233,"name":234,"updated":235,"updated_by":15},{"collectionId":12,"collectionName":13,"created":356,"created_by":15,"id":357,"name":358,"updated":359,"updated_by":15},"2026-03-04 08:24:40.766Z","u50t7vedc00sef8","Differences between Go and JavaScript","2026-04-10 16:07:29.650Z",{"collectionId":12,"collectionName":13,"created":361,"created_by":15,"id":362,"name":363,"updated":364,"updated_by":15},"2026-03-04 08:24:43.639Z","mjcndls2y3h9ob6","Error Handling","2026-04-10 16:07:29.897Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":245,"collectionId":61,"collectionName":62,"created":15,"expand":367,"id":371,"slug":372,"updated":15,"views":373},{"category":368},{"blogIds":369,"collectionId":66,"collectionName":67,"created":249,"created_by":15,"id":245,"image":250,"image_alt":15,"image_path":251,"label":370,"name":253,"priority":254,"publish_at":255,"scheduled_at":15,"status":75,"updated":256,"updated_by":15},[],{"en":253,"th":253},"nlgomfnea8ggviu","error-handling-javascript-vs-go",222,"xaf668xjfrlp5ij","2025-08-11 03:41:12.212Z","A comparison of error handling methods in JavaScript and Go to help you understand the advantages and disadvantages of each language in managing errors.","2026-05-11 21:45:19.616Z",{"alt":379,"cover_image_path":380,"created":381,"expand":382,"id":411,"published_at":412,"school_blog":408,"short_description":413,"title":379,"updated":414,"slug":409,"views":410},"EP.74 Customizing WebSocket Server for Multilingual Support","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fmwmvgb83gcd8oly\u002F120_11zon_8snewlriet.webp","2026-03-04 08:47:14.699Z",{"keywords":383,"locale":402,"school_blog":403},[384,389,394,395,396,401],{"collectionId":12,"collectionName":13,"created":385,"created_by":15,"id":386,"name":387,"updated":388,"updated_by":15},"2026-03-04 08:47:14.191Z","7u338iztio7kpzz","Multilingual Support","2026-04-10 16:13:25.674Z",{"collectionId":12,"collectionName":13,"created":390,"created_by":15,"id":391,"name":392,"updated":393,"updated_by":15},"2026-03-04 08:33:59.315Z","btmgtfwmgpke1aa","Go language","2026-04-10 16:08:04.625Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"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":397,"created_by":15,"id":398,"name":399,"updated":400,"updated_by":15},"2026-03-04 08:46:14.782Z","v0mhensk18fofru","WebSocket Chat","2026-04-10 16:13:10.563Z",{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":404,"id":408,"slug":409,"updated":15,"views":410},{"category":405},{"blogIds":406,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":407,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"0fq0xx5x6dd7v81","websocket-multilingual-support",231,"mwmvgb83gcd8oly","2025-08-08 01:58:21.005Z","Learn how to enable multilingual support in your WebSocket Chat application using user language preferences, automatic translation, and UI localization techniques — all to enhance global user experience.","2026-05-06 08:38:17.310Z",{"alt":416,"cover_image_path":417,"created":418,"expand":419,"id":450,"published_at":451,"school_blog":447,"short_description":452,"title":416,"updated":453,"slug":448,"views":174},"From Junior to Senior Developer","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fjvsaufijaklf15d\u002F22_2_11zon_a053i8lgen.webp","2026-03-04 08:47:24.307Z",{"keywords":420,"locale":441,"school_blog":442},[421,426,431,436],{"collectionId":12,"collectionName":13,"created":422,"created_by":15,"id":423,"name":424,"updated":425,"updated_by":15},"2026-03-04 08:47:22.808Z","n2bknlct6miikb9","Developer Skills","2026-04-10 16:13:27.799Z",{"collectionId":12,"collectionName":13,"created":427,"created_by":15,"id":428,"name":429,"updated":430,"updated_by":15},"2026-03-04 08:31:30.481Z","jw4gh3r5wdnqgs0","programming career","2026-04-10 16:07:41.821Z",{"collectionId":12,"collectionName":13,"created":432,"created_by":15,"id":433,"name":434,"updated":435,"updated_by":15},"2026-03-04 08:47:23.373Z","zh3dptlbrj2joe9","Senior Developer","2026-04-10 16:13:27.961Z",{"collectionId":12,"collectionName":13,"created":437,"created_by":15,"id":438,"name":439,"updated":440,"updated_by":15},"2026-03-04 08:47:23.793Z","oprv50jx3w8tx9j","Junior Developer","2026-04-10 16:13:28.101Z",{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":160,"collectionId":61,"collectionName":62,"created":15,"expand":443,"id":447,"slug":448,"updated":449,"views":174},{"category":444},{"blogIds":445,"collectionId":66,"collectionName":67,"created":164,"created_by":15,"id":160,"image":165,"image_alt":15,"image_path":166,"label":446,"name":168,"priority":169,"publish_at":170,"scheduled_at":15,"status":75,"updated":171,"updated_by":15},[],{"en":168,"th":168},"0sqvwtr67jg16ii","junior-to-senior-developer-complete-guide","2026-05-12 10:35:04.191Z","jvsaufijaklf15d","2025-08-07 11:25:47.046Z","Discover the systematic path to grow from Junior to Senior Developer. Learn essential technical skills, soft skills, and development strategies that will accelerate your programming career and help you achieve senior-level expertise.","2026-04-25 02:48:14.778Z",{"alt":455,"cover_image_path":456,"created":457,"expand":458,"id":496,"published_at":497,"school_blog":493,"short_description":498,"title":455,"updated":499,"slug":494,"views":495},"EP.73 Enhancing WebSocket Performance with Compression","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvp2idcuz47xrphb\u002F118_11zon_fnwr5gm9h6.webp","2026-03-04 08:47:25.633Z",{"keywords":459,"locale":487,"school_blog":488},[460,465,470,475,476,481,486],{"collectionId":12,"collectionName":13,"created":461,"created_by":15,"id":462,"name":463,"updated":464,"updated_by":15},"2026-03-04 08:47:24.440Z","cl84rkd6759ji3m","Web Performance","2026-04-10 16:13:28.376Z",{"collectionId":12,"collectionName":13,"created":466,"created_by":15,"id":467,"name":468,"updated":469,"updated_by":15},"2026-03-04 08:40:54.493Z","te1uagqlfki2src","Bandwidth Optimization","2026-04-10 16:12:40.617Z",{"collectionId":12,"collectionName":13,"created":471,"created_by":15,"id":472,"name":473,"updated":474,"updated_by":15},"2026-03-04 08:34:09.677Z","zy6p9bub451w3c8","NGINX","2026-04-10 16:08:08.440Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":477,"created_by":15,"id":478,"name":479,"updated":480,"updated_by":15},"2026-03-04 08:47:05.949Z","caufix9o52uw4bh","Real-Time Chat","2026-04-10 16:13:23.517Z",{"collectionId":12,"collectionName":13,"created":482,"created_by":15,"id":483,"name":484,"updated":485,"updated_by":15},"2026-03-04 08:34:06.204Z","uki2mmns85up9uf","Compression","2026-04-10 16:08:07.193Z",{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":489,"id":493,"slug":494,"updated":15,"views":495},{"category":490},{"blogIds":491,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":492,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"0aje18jzn8u64d1","websocket-compression-ep73-en",282,"vp2idcuz47xrphb","2025-08-07 01:39:55.378Z","Learn how to boost WebSocket efficiency using compression techniques to reduce bandwidth and increase transmission speed, with examples using Go and NGINX","2026-04-25 02:48:15.052Z",{"alt":501,"cover_image_path":502,"created":503,"expand":504,"id":534,"published_at":535,"school_blog":530,"short_description":536,"title":501,"updated":537,"slug":531,"views":533},"EP.72 Implementing Message Logging in WebSocket Chat with Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fai3fxhmkkxys7wr\u002F116_11zon_yam6ns1fs5.webp","2026-03-04 08:47:26.792Z",{"keywords":505,"locale":524,"school_blog":525},[506,507,512,517,522,523],{"collectionId":12,"collectionName":13,"created":477,"created_by":15,"id":478,"name":479,"updated":480,"updated_by":15},{"collectionId":12,"collectionName":13,"created":508,"created_by":15,"id":509,"name":510,"updated":511,"updated_by":15},"2026-03-04 08:45:08.439Z","wscthqnz8vx2sox","PostgreSQL","2026-04-10 16:12:54.755Z",{"collectionId":12,"collectionName":13,"created":513,"created_by":15,"id":514,"name":515,"updated":516,"updated_by":15},"2026-03-04 08:46:50.361Z","5j4lrpjcv3ucyqq","chat system","2026-04-10 16:13:19.700Z",{"collectionId":12,"collectionName":13,"created":518,"created_by":15,"id":519,"name":520,"updated":521,"updated_by":15},"2026-03-04 08:47:26.375Z","rxfyvn7erlu30jf","Message Logging","2026-04-10 16:13:28.739Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":45,"created_by":15,"id":46,"name":47,"updated":48,"updated_by":15},{"code":50,"collectionId":51,"collectionName":52,"created":53,"flag":54,"id":55,"is_default":56,"label":57,"updated":58},{"category":60,"collectionId":61,"collectionName":62,"created":15,"expand":526,"id":530,"slug":531,"updated":532,"views":533},{"category":527},{"blogIds":528,"collectionId":66,"collectionName":67,"created":68,"created_by":15,"id":60,"image":69,"image_alt":15,"image_path":70,"label":529,"name":72,"priority":73,"publish_at":74,"scheduled_at":15,"status":75,"updated":76,"updated_by":15},[],{"en":72,"th":72},"b02q9ypqv7t4g2q","message-logging-in-websocket-en","2026-05-11 11:21:08.378Z",211,"ai3fxhmkkxys7wr","2025-08-06 05:13:11.167Z","Learn how to build a real-time chat message logging system using WebSocket and Go, with PostgreSQL integration for storing and retrieving chat history","2026-04-25 02:48:15.191Z",15,12,410,35]