Tombstone
ZMultiCastToolBox
May 2001 – Jul 2001 · age 19
What it was
A three-day probe of IP multicast on Windows, written in C++ with MFC and the Winsock 2 multipoint API. The app asked which local network interface to use, then joined three multicast groups as both sender and receiver, with a reader thread per socket waiting on network events. The demo was a shared whiteboard with no server at all. A left click packed a nine-byte message, a 'd' and the click's x and y, and sent it to the group. Every machine that had joined, including the sender, received it and painted a blue rounded square at that spot. The event was the message, and there was no session and no stored state. A text chat was started and commented out. One follow-up edit in July touched the socket class, and then it stopped.
Wins, for the age
- At nineteen, in three early-morning sessions, Jeff built a working serverless collaborative canvas. The MBone whiteboard of 1992 and Doom's peer broadcast had shown the same shape; this primate found it again alone: share events, not pictures, and let every peer apply them.
- Asked for the local interface before joining, the detail that makes multicast work on a machine with more than one adapter, which most first attempts miss.
- Handed the reader thread its own copy of the socket, with a comment explaining the worry about concurrent send and receive. Already thinking about which thread owns what.
- Cut the chat and kept the dot. The demo was reduced to the one thing that proved the idea.
What it taught
- Isolate the unknown, build the smallest thing that exercises it end to end, keep the demo, stop. That pattern runs through the early work.
- Event-driven socket reading on a worker thread, and plain C callbacks with a user pointer to deliver into an object from another thread.
- The interesting part of a networking demo is the application semantics, not the transport.
- Probes leave loose wires: two of the three groups had reader threads running with no callback set, so a packet on either would have jumped into garbage.
Genealogy
Ancestors: none on record. A standalone probe of one platform feature. Descendants: Adama Net: peers sharing state without a central server, as gossip. Goat: a board game on every screen in the room, found by broadcast beacons.
Epitaph
Here lies ZMultiCastToolBox, which joined three groups, used one, and drew a blue dot on every screen in the room without asking a server's permission.