and you can turn this into a state-of-the art encrypted chat.
(Note that to really turn this into a secure chat you need to also add key management code. I'm working on that part now.)
Author, can you add a simplified python client with exactly the same functionality as the lisp one?
This is the simplified version making the same output of the lisp version.
I was wondering about race conditions when I try close the read stream on finally keyword. Seems crash sometimes. However I never got this on the Lisp version. Funny.
I hope you like it. Maybe I should push this version to the repository?
I love the brevity of this code! Awesome work.
Are you on Lainchan?
On client written Lisp I have a problem with asynchronous STDIN and STDOUT yet. When the user is typing a message input, a message from server may comes and print in middle of the input, so the console will be mixed with stdin and stdou... a messy. .
After looking for a solution almost everybody points to use curses... but I was hesitant for it because I wish keep server and client as more simple possible. As was proposed, the Python client using curses doesn't has this problem and works fine.
Curious question about Lainchan. In another days I posted some programming related stuff on there and a personal music album. Why are you asking?
I'm not sure that using quicklisp that way is kosher. Quicklisp doesn't allow you to pin a particular version of a dependency. The upshot is that your code that works today may not work tomorrow.
I've been looking for a best practice and all I can seem to come up with is make a bundle and include it in your repo.
Internet Relay Chat: Client Protocol https://tools.ietf.org/html/rfc2812
Internet Relay Chat: Server Protocol https://tools.ietf.org/html/rfc2813
Sorry if this annoys you. You are correct, would be better implement a well-known protocol for chat like IRC, is unnecessary as you say. But I think is still useful for learning purposes.
Thanks for looking it, anyway.
Was my first front-end on HN.
Ps.: Lain + Lisp?