Fri May 8 03:27:44 CEST 2020

ytalk (rediscovered after 18 years)

Two days ago I was looking for some multi-user collaboration software with these properties:

  1. multi-user chat without line buffering (unlike IRC)
  2. sharing of a shell session
  3. console-based (as opposed to: requiring X11 or even a state-of-the-performance-limits web browser)

I know how to use screen(1) or tmux(1) to this effect but these programs are not easy to use for everybody:

Multi-user screen sessions are by default very independent and you need some extra coordination of terminal sizes and windows/regions viewed. Multi-user tmux sessions can be started to be auto-coordinated in these respects, but all users then also share the same cursor, and so user A cannot comment easily on actions of user B. In both cases, an extra telphone conversation can compensate. But if you are only online, all users are better quite familiar with screen/tmux.

My "aptitude search ..." (debian) and "pkgin search ..." (netbsd) commands led me to the ytalk package. This is patterned after the old BSD talk(1) program and even relies on the original (n)talkd for initiating conversations. It is pimped in two respects:

  1. It is multi-user (and not just for two users).
  2. Users can start a shell in their pane (and not just "talk").

This fits the bill for me perfectly.

On top of all that, ytalk is still pretty easy to use, even for newcomers. Actions and options can be controlled through two simple menues. There is no need to learn control sequences. Also, pane sizes are automatically coordinated between the participants.

It also turned out that ytalk is pretty old: the first version was released in 1993. It even wasn't new to me: I had it installed on miles.marshlabs.gaertner.de in 2002. Back then, though, it still had some significant trouble spots, limiting the use of shells. So I had forgotten about it.

Like the original talk, ytalk it is network-enabled: you can talk with users on other hosts. The prerequisites for this are:

  • Each host has the talkd service enabled, and not just listening on 127.0.0.1.
  • Each host is reachable on legacy IP (IPv4). talk/ytalk won't run over IPv6.
  • No NAT is involved. Just NATting the traffic between the talkds won't do: These packets just coordinate the session between the caller and callee, and their adresses are communicated inside of the session setup packets.

Having said this, ytalk will be fine where all users are on the same host anyway. Also, hosts behind some NAT gateway can still talk to other hosts within a VPN confederation.


Posted by neitzel | Permanent link | File under: learned, done