Earlier quoted context omitted.
Long running network servers, such as most IRC servers, were written using select. Example: https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_C...
IRC servers were indeed written using select(2), because interaction between the clients is the whole point of IRC; that gets a great deal more difficult if you spawn off a separate process for each client! I think ICB/FNet predates IRC slightly and was also written using select(2). But IRC wasn't written until 1988, at which point select(2) and inetd were already about ten years old, and things like (most) FTP serve…
Old box, dumb code, few thousand connections, no big deal
71–80 of 288 posts
Re: Old box, dumb code, few thousand connections, no big deal
#72"at least one stupid chat client that's actually a giant piggy web browser running" I wonder what app that could be :-)
I’ll bite, is it slack?
- Slack
- Keybase
- Mattermost
- Discord
- Microsoft Teams
- Facebook Messenger (incl. Work)
All of these fine folks apparently use Electron or a similar technology...
Re: Old box, dumb code, few thousand connections, no big deal
#73Earlier quoted context omitted.
IRC servers were indeed written using select(2), because interaction between the clients is the whole point of IRC; that gets a great deal more difficult if you spawn off a separate process for each client! I think ICB/FNet predates IRC slightly and was also written using select(2). But IRC wasn't written until 1988, at which point select(2) and inetd were already about ten years old, and things like (most) FTP serve…
I think the previous poster was just exaggerating... "All" network servers is a pretty broad category. They were never all written using select.
Re: Old box, dumb code, few thousand connections, no big deal
#74I remember when C10K was the big challenge, but even the naive approach of spawning a thread per connection now can handle that.
Re: Old box, dumb code, few thousand connections, no big deal
#75Re: Old box, dumb code, few thousand connections, no big deal
#76should try this in erlang/elixir. i’m gonna bet you it could handle hundred of thousands of connections on a beefy machine (an million of connections w/ optimizations)
Re: Old box, dumb code, few thousand connections, no big deal
#77Whether intended or not, there's an undercurrent of "you're all so dumb for using Python" (or Ruby, or PHP, or other similarly performant language) here. I want to surface that and question it a bit. It's totally reasonable for a company to choose the Python/Gunicorn option if they already have a bunch of people who know Python and they don't need to serve tons of requests per second. Even if they do need to serve to…
> Even if they do need to serve tons of requests per second, it's totally reasonable for them to still choose Python/Gunicorn if the cost of the additional servers is less than the cost of having to support multiple languages. How hard is it to get up to speed on any other tech stack? ASP.NET Core is extremely fast and the learning curve is close to none, for example. If someone was able to wrap his head around backe…
(On the plus side, seems my Jetbrain kit includes PyCharm, so I've even got an IDE!)
Re: Old box, dumb code, few thousand connections, no big deal
#78Whether intended or not, there's an undercurrent of "you're all so dumb for using Python" (or Ruby, or PHP, or other similarly performant language) here. I want to surface that and question it a bit. It's totally reasonable for a company to choose the Python/Gunicorn option if they already have a bunch of people who know Python and they don't need to serve tons of requests per second. Even if they do need to serve to…
> Even if they do need to serve tons of requests per second, it's totally reasonable for them to still choose Python/Gunicorn if the cost of the additional servers is less than the cost of having to support multiple languages. How hard is it to get up to speed on any other tech stack? ASP.NET Core is extremely fast and the learning curve is close to none, for example. If someone was able to wrap his head around backe…
Re: Old box, dumb code, few thousand connections, no big deal
#79Earlier quoted context omitted.
What the author did was build a prototype to demonstrate and explore what was possible. That is exactly what engineers do when exploring a problem.
When you hear "Engineer", you often think of calculus, statistics, formal testing, requirements gathering, documentation, repeatable results, etc... along with a fundamental understanding of the problem space and possible solutions. I think this is akin to NASA working on the Apollo program vs. someone in their garage attempting to build a go-cart for the first time. When you just slap things together and see if they…
Why not? That's basically what testing is. Which was one of the attributes you attributed to "Engineer" >formal testing
>I think we often cross "research and development" with "engineering"
My general take:
Scientists primarily focus on learning and proving new knowledge & ideas. (i.e. they research)
Engineers focus in using proven knowledge and applying it to design and create things or solve problems. When things are not perfectly certain, they can prototype and do tests similar to how scientists do experiments (e.g. aerodynamics in wind tunnels). (i.e. development)
Re: Old box, dumb code, few thousand connections, no big deal
#80Whether intended or not, there's an undercurrent of "you're all so dumb for using Python" (or Ruby, or PHP, or other similarly performant language) here. I want to surface that and question it a bit. It's totally reasonable for a company to choose the Python/Gunicorn option if they already have a bunch of people who know Python and they don't need to serve tons of requests per second. Even if they do need to serve to…