I remember a number of years ago I was setting up a shared access shell machine, and came across the idea of piping pine directly into the IMAP server via domain sockets, in an on-demand fashion. It was a revelatory experience for me in the Unix way, seeing how interchangeable TCP, domain sockets, and files are in general. Even this article's example is quite a bit more abstracted than the simplest case in ruby (which itself is quite a bit more abstracted than what you can do with building blocks like `nc` and `echo`).
Being able to see that 'socket / file duality' is one the best observational powers a network-facing developer can have. It's also one of the biggest worries I have about HTTP 2.0.
Combining FastCGI and Rack? You've effectively described Phusion Passenger, because that's exactly what it is. It doesn't use the FastCGI wire protocol but how it works is exactly that: integrated in the web server, reuses a Ruby process for multiple requests to avoid the startup overhead, using Rack as the gateway interface, etc.
Indeed. The code is even simpler, and you're getting the shell out of the equation. Remember that bash bug from late last year?
Also the use of the phrase "bare metal" in reference to a ruby CGI script is pretty lulzy. I suppose thats the new normal. The embedded programmers of the world must feel pretty annoyed when people do that. I suppose they're too high on magic smoke to care.
There is much to Ruby that is not about the Web. The idea that the post is getting at is an important one: CGI as an ubiquitous interface; but the title is terrible.
Meh. "The real thing is using 3-4 gems. That’s it." - So how did those gems get on the server? How do you know which gem versions the app should use without a Gemfile(.lock), and how do the versions of gems and ruby itself get updated for bug/security fixes?
An interesting article, but the use case here is pretty esoteric. For most people a simple sinatra service w/ a reverse proxy would work just as well for a pretty minimal increase in complexity
Being able to see that 'socket / file duality' is one the best observational powers a network-facing developer can have. It's also one of the biggest worries I have about HTTP 2.0.