Ask HN: I have ssh, they have ssh, how can we chat?
I don't want a dedicated client, I want to go back to the old ways of modem to modem over VT100 links and chatting that way. How can I ssh to another machine, or they to me, and we run a cli app that allows us to chat, something basic like `wall` I think would work, but I have never been able to get that to work.
I am on Mac OS X, and ideally I could do this without installing other software, using something built in.
122 comments
[ 3.9 ms ] story [ 277 ms ] thread;)
Maybe even spin up VMs on demand based on new hostname (if not seen before). First to claim = own. Some rate limiting function.
Shell accounts largely went away due to ease of use, but also local user exploits and abuse, but enh. If you virtualized the network (so you could reroute through a new IP on abuse, or let users own the IP) and restricted functionality it wouldn't be as bad.
No practical purpose, just fun.
(I guess you could run Zephyr with somewhat less than that, and maybe it has improved in the past 15y for small deployments, but, when I tried in 2001 it was insane)
Put this in your .bashrc file:
then run: The & puts tail into the background so it continues running, and "talkfile" needs to be a file that both of you have write access to.You can both communicate simply by using the talk function like any other bash command:
This works on Linux, not sure about Mac.It's nice because it records what you say, so there's no need for the other person to be logged in to get your message, and you get a printout of the last few lines of conversation when you "login" (run the tail -f command). There's nothing extra to install either.
(edit, apparently say is already installed on OS X, so I renamed the function "talk")
Just to note, on the Mac there's already a /usr/bin/say, which invokes the text-to-speech. So if you don't create your function, SSHing to the friend's Mac and typing 'say whatever you want' will have an interesting but probably not desired effect :) I'll admit to having used this on a friend's machine once or twice for amusement.
(And invoking 'say' invokes the TTS even if you SSH in as a user other than the one logged in to the main GUI. I'm pretty sure this wasn't always the case; not sure when it changed.)
Been this way since at least 2008 - I remember doing this back in school when bored in class.
https://wiki.archlinux.org/index.php/Talkd_and_the_talk_comm...
We have a 'jump' server, used to ssh into remote boxes, a truly public space with numerous users, such as myself, logged in poking around looking for the right hostnames etc. Having just learned of the wall command, I alt-tabbed to a session and thinking it fun to give a whirl. My message?
"Whats up playas"
A brief reprieve. But ah the word!
"Yo."
So came the flurry. A new message. And another. And another. Messages scratched across the server wall as though all the company had congregated outside this massive sleek black edifice where our words so glowed. I'm sure even some HR slavers or sales kin made the trek through the Terminal Wastes to bear witness to this spectacle. It was our digital Wailing wall except our shrieks were laughter. We were posting ASCII art by the time a sysadmin stepped in and put a stop to our revelry. Anymore posting would result in bans, temporary of course, but exile nonetheless.
Silence.
Then the CEO:
"Sup."
(Sorry)
Make sure to "mesg y" before :-)
There's also OpenSSL s_client/s_server for an encrypted connection, although you need to setup some certificates first.
https://en.wikipedia.org/wiki/Talk_(software)
There's something to be said of the old-school wonder of fingering random machines on the internet (say, from one's email bang path) for logged-in users then initiating talk sessions.
screen -S chat
The other user types
screen -xr chat
[0] http://tmate.io/
The most difficult part of using this for me seems to be trusting tmate--not that tmate is inherently untrustworthy, but IMO untrustworthy by default is a good policy.
Although, I agree with the "untrusted by default" sentiment of the fellow commenter below :/
EDIT: Oh, it comes with an open-source server? This is brilliant.
But when you mention "wall(1)" it makes it sound like you want to connect to some internet accessible UNIX host via ssh and chat to others who are also connected to that host.
Option 2 would be less complex.
Depending on what software is installed on the host you connect to, there are many possibilities. Back in the old days, talk(1) could be used for split screen chats. Today, tmux(1) would be my choice. Anything that uses UNIX domain sockets could work.
Proof of concept:
Does Darwin have logger(1), syslogd(8) and /etc/syslog.conf(5)?
Decide where to log the messages, e.g., /var/log/messages
Edit /etc/syslog.conf
Start syslogd
logger "your message"
less /var/log/messages
less -F /var/log/messages
tail -f /var/log/messages
Messages have date, time, priority (if any) and hostname.
You said "something basic"; this is about as basic as it gets.
My dad and I have been using it for our instant messaging. We were curious how possible it would be to have timestamps on messages. I suppose we could reprogram the ASM, but x86 ASM is a little inaccessible :)