5 ms·
Doom, Played over Curl
- fao_ 5mo ago> The catch: the shell normally puts the terminal in *cooked mode,* Yeah, that's not the name of the mode. In this sense, it's "canonical mode". Description reads like AI slop where technical content was reformatted into marketing/PRspeak. It feels like a 30 year old PR representative desperately trying to twist any kind of technical language specifically to pander to the AAVE-derived slang of the younger set of internet-addled minds. As a result, this does not interest me. For anyone who is interested in ANSI terminal stuff, or building their own, Lexi Hale had a decent article on this: https://xn--rpa.cc/irl/term.html https://xn--rpa.cc/irl/term.html which got discussion here about eight years ago: https://news.ycombinator.com/item?id=24436860 https://news.ycombinator.com/item?id=24436860
- bevr1337 5mo agoTop comment on the previous thread was someone complaining about the writing style of kids these days. Huh.
- cmovq 5mo agoExcept it’s actually called “cooked mode” [1] and predates the use of the slang. [1]: https://en.wikipedia.org/wiki/Terminal_mode https://en.wikipedia.org/wiki/Terminal_mode https://www.linusakesson.net/programming/tty/ https://www.linusakesson.net/programming/tty/
- fao_ 5mo ago"cooked mode" refers to physical teletypes, though. In the POSIX spec[1] it's called "canonical mode", same for the other specifications (if they're mentioned at all, I don't think the ANSI specification mentions either term). https://en.wikipedia.org/wiki/POSIX_terminal_interface#Canonical_mode_processing https://en.wikipedia.org/wiki/POSIX_terminal_interface#Canon...
- thomasfl 5mo agoThis is a good template for making terminal based apps that run on remote servers.
- kaoD 5mo agoOr just use SSH.
- anthk 5mo agoYou are reinventing telnet.
- stratos123 5mo agoThis idea has the rather severe problem that it requires piping an untrusted remote script directly into bash.
- deleted 5mo ago[deleted]
- deleted 5mo ago[deleted]
- varun_ch 5mo agoOne interesting side effect of having a LLM write the thing including the README, is that the models tend to leave little hints of the authors intention or prompt as over-explained passages that make it obvious that AI help was used. https://github.com/xsawyerx/curl-doom?tab=readme-ov-file#how-does-it-work https://github.com/xsawyerx/curl-doom?tab=readme-ov-file#how... eg. > A browser hitting the same URL gets a tiny landing page that just shows the one-liner it’s subtle but once you notice it, it’s hard to miss. As an aside, I feel like projects like this used to be really fun and impressive (I guess due to the fact that you’d think “Wow a human put their time into this wacky crazy thing”), whereas now you can have Claude consistently crap out something like this in 5 minutes, so it ruins the whole appeal to me…
- z3c0 5mo agoNot to mention that the objectively bad practice of piping a curl call to bash is nowhere close to "playing doom via curl". It's almost as if they simply prompted "play doom with curl". In my experience, almost any overly-ambitious prompt ends similarly.
- varun_ch 5mo agoOh wait I didn't even register that! yeah of course you can do anything in a terminal using curl if you're piping to bash!!!
- moeffju 5mo agoBut that's not what it does, the bash option just saves you from doing stty setup and reset I think? You can just type it all out by hand, too, as the readme explains
- z3c0 5mo agoYou know what, I stand corrected. I missed this portion of play.sh: https://github.com/xsawyerx/curl-doom/blob/ae1edb82e48efcd2dfde6e9f4bfd6d25bdb7ad92/play.sh#L117 https://github.com/xsawyerx/curl-doom/blob/ae1edb82e48efcd2d... I'm not changing where I stand on piping to bash.
- Leomuck 5mo agoWhat the hell. First, I thought this was crazy. How could you do anything crazy with curl? But of course, curling a bash script opens lots of opportunities. Given the right permissions, you could run an enterprise Jira server via only a curl to a bash script. Still cool that people find more ways to play doom, but calling it "via curl" seems a little missleading to me. "Playing doom via a simple bash script" would have felt more appropriate.
- anthk 5mo agoPlay nethack with a simple oneliner: nc nethack.alt.org 23
- moeffju 5mo agoIsn't it literally playing it via curl though - curl reads STDIN and transmits that to the server, which responds. The whole bash thing is completely optional and only saves you some tty setup.
- deleted 5mo ago[deleted]
- reactordev 5mo agooddly enough, this is how it looked when I ran it on my 486 when I was a kid. Pretty accurate except this runs at a faster fps than mine did... ;)
- nurettin 5mo agoI remember Liquid crystal displays having an unintended blur effect when something animates or rotates, but it wasn't as bad as ansi chars.
- reactordev 5mo agorofl, my AGP VGA CRT had permanent ghosting damage from the Doom logo. So yeah, I feel this.
- azalemeth 5mo agoReminds me of libcaca - http://caca.zoy.org/wiki/libcaca http://caca.zoy.org/wiki/libcaca - which can render many things natively in ascii, really incredibly effectively.
- robinpie 5mo agoI'm writing an X server in libcaca right now. It's great fun. https://github.com/robinpie/xcaca https://github.com/robinpie/xcaca
- ehtbanton 5mo agoThis is very impressive, have tried it out. If only everyone was as good at making performant terminal applications (cough cough Anthropic)
- BobbyTables2 5mo agoI’m shocked that curl is fancy enough to start reading and outputting the HTTP response before the request has even been fully sent! I wasn’t expecting that a “simple” command line application supports this kind of thing — the HTTP spec is crazy enough that I can’t say I’m surprised it’s not forbidden.
- vjay15 5mo agoSo coool