tkbroadcast version 3.0b1 ----------------------- Ethan Gold (etgold@cs.vassar.edu), July 1997 (Ethan or Clavius at the sitcom.vassar.edu:5500 metaserver) http://www.cs.vassar.edu/~etgold/tkbc.html (version 1.0 Jan-May 1996, unreleased - be glad) (disclaimer follows) WARNING! This version is VERY beta. It might not work. If it does, however, you can still send messages to and receive messages from the older versions (2.1 recommended) though 2.1 users won't show up in the metaserver list. READ the changes section at the bottom carefully and understand how the new code ought to work (from the user end) before emailing me. Tkbroadcast is an Xwindows based messaging utility designed to provide the funtionality of broadcast on the Apple Macintosh. While appletalk broadcast is available for Unix, it isn't as slick as theMac version, and it requires appletalk. If you are mainly interested in messaging between unix workstations, then tkbroadcast is for you! Written entirely in standard tcl/tk, tkbroadcast should be highly portable - EVEN to the Mac and Windows (NT?), and since it uses IP instead of a proprietary LAN protocal, it should works across the internet. NOTE: a major overhaul was done for 2.0 AND 3.0. Please read the changes section towards the end of this document if you are upgrading from an earlier version. REQUIREMENTS: * tcl/tk versions 7.5 and 4.1 or greater RECOMMENDATIONS: * GNU date since I rewrote version 2.0 under Linux INSTRUCTIONS: Edit the top of the script to point to the copy of wish on your system. Copy the tkbroadcast scripts into a directory in your PATH. I recommend the following link command: ln -s tkbroadcast.tcl tkbc Create a .tkbcrc file in your HOME directory and follow the sample .tkbcrc file format. All of the fields in the sample file are required. Note that the "record" fields are no longer used. Actually you might now be able to create this initial file entirely from within tkbc. if you're going to run the METASERVER Hopefully you know of a metaserver that is already running that you would like to be registered on. Config that metaserver into your .tkbcrc file. If you would like to run a metaserver you need to pick an unused port to run the metaserver on. Pick something that people won't try to use for anything else (such as tkbc clients). Follow the sample metaconfig.sample file. The metaserver looks for it's config in your home directory in a file called .tkbcmsrc unless you specify another file as the first argument on the command line. Run the metaserver in the background and then config your client to point to it (if you want). Publish your site. Start tkbc. You will only receive messages when tkbc is running! This is a change from early versions which used a seperate daemon process to handle incoming messages. The text entry box in tkbc lets you spcify a machine and port directly instead of having to read it from the metaserver. Try sending a message to yourself by selecting your name and clicking "send" or by double-clicking your name in the listbox. All the information stored in the resource file ~/.tkbcrc SHOULD be manageable from the GUI. I recommend running tkbc from your .xinitrc file or whatever file you use to set up your X clients unless you are on the slow side of a dialup connection. Use the -iconic command line option to start tkbc iconified to avoid desktop clutter. The included pixmap tkbroadcast.xpm is the original icon for Macintosh Broadcast by Joachim Lindenberg. I use an entry for tkbc in my window manager resource file that uses this icon. BUGS: * Not even worth trying to catalogue. Tons of error handling is needed. * Try underlines instead of spaces in usernames until the protocol between the metaserver and client can handle them. FEATURES: * Files can be inserted into outgoing messages * Keypad Enter in the message box will send an outgoing message just like in the Mac version. * Excepting firewalls and other unfortunate obstacles, tkbroadcast should work across the internet. * On the fly address and personal info management * Incoming messages can be saved * Multiple compose windows * Automatically updating userlist FUTURE: * menu to select multiple meta servers (soon) * metaserver metaserver? * lurker option like "receiver off" in appletalk broadcast. Will keep other people from seeing you on your server while still letting you initiate normal conversation. (soon) * Browing other "zones" without changing the metaserver you're currently registered with. (soon) * File browser for "insert file" on outgoing messages and file browser and save funtion for incoming messages * Personalized Icons? * Send to All has be moved off the work queue. With the advent of the metaserver too much potential for spam exits. * Error log file for the metaserver * Rewrite this README which still smacks of version 1.8 CHANGES: since 2.1: * implemented the metaserver which keeps a running tab of people "registered" using tkbc. The Metaserver ages entries. * The main gui no longer maintains it's own user list. The user list is now read from the configured metaserver. * Send to All has been removed (never worked anyway) * Deleting entries is no longer applicable. since 2.0: * added -iconic command line option to start iconified * added -version command line option * squashed changing Own Info bug, but there's another * squashed geometryless incoming and outgoing windows bug since 1.8: * A major overhaul was done for 2.0. From the user's perspective things are mostly the same, but internally everything's been mushed around. The 4 different scripts from version 1.X have been merged into one big script which maintains everything. The advantages to this approach are MUCH smaller memory footprint, greater likelyhood of cross- platform compatibility (ever try to "exec" on a mac?) faster operation, easier to manager source (I think) and the removal of the problem of interprocess communication, a possibility of a "send to all" function (as requested, but not yet working) and a sure fire way to make sure tkbc quits when X exits. This last item opens up the possibility for a tkbc metaserver which you can register yourself with which can then be queried by other users. This is something for 3.0. * The main tkbc interface now MUST BE RUNNING for you to receive messages since the "server" code is now merged into everything else. This is not to pretty from a user perspective, but it makes my end much simpler. Sorry, folks, you'll have to start tkbc from your .xinitrc files. * Multiple database files - this was initially done to make it easy to test the "send to all" code, but was left in 'caue it's cool. * Beginnings of "send to all" * Incoming messages now display the time and date * Later incoming messages should start appearing back on screen earlier (around 600y pixels instead of 7600.. oops) since 1.7: *Fixed absolute name resolution by parsing /etc/resolv.conf for the domain name. *Added an undocumented (ha!) feature that will play a sound for incoming messages that can be toggled with the line: sound on in the .tkbcrc file. there is currently no widget to supply this information, hence its "undocumented" status. *Fixed initial focus for outgoing messages *Turned on word wrap in the text widgets since 1.6: *Added save options to incoming messages *better key bindings in filename entry widgets *a little more immune to quitting on an error (little) since 1.5: *fixed "dummy" entry *fixed required extra blank line in .rc file *added tilde expansion in the "insert file" entry box. *improved some keyboard bindings *reread now properly rereads the resource file *Added "add new" so new addresses can be added without having to edit the file *address deletion and personal info management from within tkbc. you shouldn't even have to touch the rc file. CONTACT INFO: Please direct any problems, questions, suggestions to etgold@cs.vassar.edu (that's me) and I'll get back to you. I'd love to find out who's using my software, so if you decide to keep it, drop me a line. ACKNOWLEDGEMENTS: Thanks to Joachim Lindenberg for Appletalk Broadcast and John Ousterhout for tcl/tk, David Chappell for his suggestions, and all the patient Vassar computer science majors. DISCLAIMER: ----------- THIS SOFTWARE IS PROVIDED ENTIRELY WITHOUT WARRANTY, EXPLICIT OR IMPLIED! I'M AM NOT RESPONSIBLE FOR LOST DATA, MISUSED/ABUSED NETWORK RESOURCES, WASTES OF TIME/MONEY/PRODUCTIVITY. DISTRIBUTE THIS SOFTWARE UNDER THE TERMS OF THE GNU PUBLIC LICENSE. THE SUITABILITY OF THIS PRODUCT FOR ANY PURPOSE IS NOT GUARANTEED.