[{"channel_id":1139345084,"post_id":1165,"date":1778488329000,"views":"52","text":"\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e \u043b\u0438\u043c\u0438\u0442\u044b - \u043f\u0440\u043e \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432<br><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/www.linkedin.com\/posts\/creotiv_softwarearchitecture-distributedcomputing-ugcPost-7459503773598797824-IWEw?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAPl0X4BWZSqccqAVcirdBAwe5jWKVOQ9fI\">https:\/\/www.linkedin.com\/posts\/creotiv_softwarearchitecture-distributedcomputing-ugcPost-7459503773598797824-IWEw?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAPl0X4BWZSqccqAVcirdBAwe5jWKVOQ9fI<\/a>","text_length":248,"media":{"root":"\/00b\/jQQAALwG6UMAAAAAkEJnd8QET08","webpage":{"url":"https:\/\/www.linkedin.com\/posts\/creotiv_softwarearchitecture-distributedcomputing-ugcPost-7459503773598797824-IWEw?rcm=ACoAAAPl0X4BWZSqccqAVcirdBAwe5jWKVOQ9fI","type":"photo","title":"#softwarearchitecture #distributedcomputing #k8s #rest #api #ratelimiting | Andrii Nikishaiev UA","site_name":"LinkedIn","display_url":"linkedin.com\/posts\/creotiv_softwarearchitecture-distributedcomputing-activity-7459503774508949504-QfvY","description":"How to make Rate Limiting correctly\n\nToken Bucket and GCRA solve the same problem - rate limiting - but they think differently.\n\nToken Bucket is simple: tokens refill at a fixed speed, every request spends one token. If the bucket is full, you can make a burst. That makes it great for systems where short spikes are acceptable and only the average rate matters.\n\nGCRA works differently: it schedules the next allowed request time. Instead of asking \u201cdo I have tokens?\u201d, it asks \u201cis this request too early?\u201d. That makes it much stricter and smoother.\n\nFor distributed RPS limiting in Kubernetes, Token Bucket is often good enough. But if a provider has hard limits and punishes short bursts with 429, GCRA is usually safer.\n\nMy rule:\n\nToken Bucket - We dont have hard RPS limits\nGCRA - Hard limiting, burst will lead to banning\n\n#softwarearchitecture #distributedcomputing #k8s #rest #api #ratelimiting","thumbs":{"m":{"w":256,"h":320,"hash":"46azzUihoGgHT2UdlNCTKg&ts=1780178096"},"x":{"w":640,"h":800,"hash":"j455JuvjBnmHkV7oID7zAA&ts=1780178096"},"y":{"w":1024,"h":1280,"hash":"8NMCX6LoRuzr60Y8UedK9A&ts=1780178096"},"w":{"w":1122,"h":1402,"hash":"HY3maC3E2B9SXBRUG6urxQ&ts=1780178096"},"i":{"bytes":"AoACA|DKjO05wrexGacJVH\/LOM856URMgDBhn0pnJyKqxNx28f3FH4UxjuPQD6ClX3\/lQetBQClGMnOKP4RSZPPWgQv8XGKRutL2BzzSHnOaAHDAUYbn0pMZ70UUCDHbIpKKKBn\/2Q=="}}}}},{"channel_id":1139345084,"post_id":1162,"date":1778154706000,"views":"67","text":"There are plenty of recommendations around the internet that you need to use more sugar from JS, as it makes you better developer.<br><br>But the problem, that its not. On the screen you see 2 variants A and B. A variant is &quot;better&quot;, based on internet &quot;experts&quot;, but its not.<br><br>Lets see rewritten versions of both with most basics operations only (just for examples its not 100% same)<br><br>Problem that variant A looks more professional, but in reality produce more problems. Both variants not ideal and have problems, but the first one not only have more of them but also hide them from viewer.<br><br>So before use any sugar - I strongly recommend to read it internal code to see how it really behave and what problems have.<br><br><b>#js<\/b> <b>#hiload<\/b> <b>#bugs<\/b> <b>#issues<\/b> <b>#memoryusage<\/b> <b>#speed<\/b> <b>#architecture<\/b> <b>#systemprogramming<\/b>","text_length":789,"grouped_id":14225237651098610,"media":{"gallery":[{"root":"\/003\/igQAALwG6UMAAAAAsElxFchPTn8","photo":{"thumbs":{"m":{"w":320,"h":320,"hash":"UtuWUM9Ll9o4eR0LZLwrTw&ts=1780178096"},"x":{"w":800,"h":800,"hash":"bvOIpeSreLBjxrhJASrcaw&ts=1780178096"},"y":{"w":1200,"h":1200,"hash":"9bLQz1Njh3dw25irIlj66w&ts=1780178096"},"i":{"bytes":"AoACg|DKopVGeccCj5fegBKKKcSv9z9aAG0UHrwMUUAAp34Cm5I6UZPrQAHrSim0uaAAiiiigAooooAKKKKACiiigD\/\/2Q=="}}}},{"root":"\/001\/iwQAALwG6UMAAAAAAbUmADoKJD0","photo":{"thumbs":{"m":{"w":320,"h":320,"hash":"9T0bSHeDC18M2NJss3kgjQ&ts=1780178096"},"x":{"w":800,"h":800,"hash":"bwz8kCzaSrECIgJQFWHYzQ&ts=1780178096"},"y":{"w":1254,"h":1254,"hash":"5qdbaKCNCrM3MlfTq5CyWw&ts=1780178096"},"i":{"bytes":"AoACg|DKpce9KDxgniggZ7UANpce4pQcHg0EemKAG0UpFFACrS5+v50g\/CjPsKAAfe9Kfj3qPvTs\/SgBpooNFACZozRRQAZpc0UUAJRRRQB\/\/9k="}}}},{"root":"\/006\/jAQAALwG6UMAAAAASRbQBbJEGMU","photo":{"thumbs":{"m":{"w":320,"h":320,"hash":"1Tv1sJ6zni6OplX_-W0Vgw&ts=1780178096"},"x":{"w":800,"h":800,"hash":"_uXaOO3hiHdx1q8tKPIZyg&ts=1780178096"},"y":{"w":1254,"h":1254,"hash":"hQ8EGRPSM5T9xf4L5ScajA&ts=1780178096"},"i":{"bytes":"AoACg|DKpy7P4t34UKTg4JH40YoAUiPsW\/KkbZ\/AW\/EUYoxQA2ilNFACr3o\/KhO9H5UAFFH4UfhQAhooNFACUUUUALk0ZPtRRQAlFFFAH\/\/Z"}}}}]}},{"channel_id":1139345084,"post_id":1152,"date":1774983826000,"forwards":"2","views":"37","text":"\u041a\u043e\u043c\u0443 \u0441\u043e\u0440\u0446\u0438 Claude Code?<br><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/github.com\/DonutShinobu\/claude-code-fork\/tree\/main\">https:\/\/github.com\/DonutShinobu\/claude-code-fork\/tree\/main<\/a>","text_length":82,"media":{"root":"\/001\/gAQAALwG6UMAAAAAAbUmADoKJD0","webpage":{"url":"https:\/\/github.com\/DonutShinobu\/claude-code-fork\/tree\/main","type":"photo","title":"GitHub - DonutShinobu\/claude-code-fork: Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands. All original source code is the property of Anthropic.","site_name":"GitHub","display_url":"github.com\/DonutShinobu\/claude-code-fork\/tree\/main","description":"Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflo...","thumbs":{"m":{"w":320,"h":160,"hash":"F7b5dFxqVhFAv_zycDf_mA&ts=1780178096"},"x":{"w":800,"h":400,"hash":"2ChU8fcDyL2x4zByNZpfzw&ts=1780178096"},"y":{"w":1200,"h":600,"hash":"AScmtIXPwZFdS0tJGdDaAw&ts=1780178096"},"i":{"bytes":"AUACg|DWZyGxj9DSKzHsPxBFPOc\/\/XpMHPX9aAEPm54CfmaJmKQsw6gUuPf9aUqGXB5BoAqQXLtc+UxBGM8CirCQRRnKIAaKAKf26X+6n5Gj7dL\/AHU\/I0UVRIn26Xn5U\/I0v26X+6n5GiigA+3S\/wB1PyNFFFAH\/9k="}}}}},{"channel_id":1139345084,"post_id":1150,"date":1770637918000,"views":"79","fwd_from":[],"text":"\u041f\u043e\u0442\u0440\u0456\u0431\u043d\u043e 37\u043a \u0433\u0440\u043d \u0441\u044c\u043e\u0433\u043e\u0434\u043d\u0456 \u043e\u043f\u043b\u0430\u0442\u0438\u0442\u0438 \u0437\u0430 \u0457\u0436\u0443. \u041d\u0430 \u0437\u0430\u0432\u0442\u0440\u0430 \u0457\u0436\u0438 \u0442\u0432\u0430\u0440\u0438\u043d\u0430\u043c \u0432\u0436\u0435 \u043d\u0435\u043c\u0430\u0454.<br><br>\u0414\u0443\u0436\u0435 \u043f\u0440\u043e\u0448\u0443 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u0442\u0438 \u0437\u0430\u043a\u0440\u0438\u0442\u0438 \u0440\u0430\u0445\u0443\u043d\u043e\u043a. \u0412 \u043d\u0430\u0441 \u0431\u0456\u043b\u044c\u0448\u0435 200 \u043a\u043e\u0442\u0438\u043a\u0456\u0432 \u0443 \u043f\u0440\u0438\u0442\u0443\u043b\u043a\u0443<br><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/send.monobank.ua\/jar\/6NekQ6ChYd\">https:\/\/send.monobank.ua\/jar\/6NekQ6ChYd<\/a>","text_length":191,"grouped_id":14165103349924410,"media":{"gallery":[{"root":"\/012\/fgQAALwG6UMAAAAAmd-rDQ159gI","photo":{"thumbs":{"m":{"w":148,"h":320,"hash":"-b9BPaoxM6rPMba83CVMBA&ts=1780178096"},"x":{"w":369,"h":800,"hash":"I9UAXdjpI-Gh5NLqqEOq0w&ts=1780178096"},"y":{"w":591,"h":1280,"hash":"4GJq1EIFCOr9gCNgnRtqgw&ts=1780178096"},"i":{"bytes":"AoABM|DJBXaARk0rr5bDIx7A0xcZ5GasNIsfAQEHuD\/iKAKxJJzRT2kyxO2igDZtrW3aFGMaklRUGp28UcKmNApzzj6VHFdzxxKEAwB3qG7uZp1AkVcA5GBQBTooooAlUnH3wPagjI5cUUUAIUXP+sX9aKKKoD\/\/2Q=="}}}},{"root":"\/001\/fwQAALwG6UMAAAAAAbUmADoKJD0","photo":{"thumbs":{"m":{"w":180,"h":320,"hash":"qO2TzamDP4Ob5B3S65WgCg&ts=1780178096"},"x":{"w":450,"h":800,"hash":"YdgQmW7C3qZisy2AjSjZpg&ts=1780178096"},"y":{"w":720,"h":1280,"hash":"xqdYth7N9RUPKn7M1xUh5Q&ts=1780178096"},"i":{"bytes":"AoABc|CVTlzz2pLWRJAyrnKnmoVRlJCw4B7+ZUccDrlyNjHPfn9KQy7DMkykqMEcEHtRVQgCELuKnvgmimIs5qCadEIBPWiV9oyTis2Ry0oL9O1Kwy4zhn20VBFJ8xZlyelFAEt1KrnBRkbAGPf1p8gtdyx4+XPLZ5oopgPCwzkrGcc5IySKKKKqxJ\/\/2Q=="}}}}]}}]