trouble v.2.0 for Unix Copyright 1996-2000, Mark Swartz Trouble is now in its second major version. The code has been pretty radically rewritten to streamline trouble for the modern environment. In the early days, Ultras running in the NOCs of major national ISPs were sufficient to handle the load on a typical networked trouble server; nowadays high speed, multiprocessor machines are pushed to the limit with requests for answers to the question on every network administrator's mind: what is the problem, and what's being done about it? This version of trouble, besides running faster, offers many improvements. Most important, perhaps, is the new -v switch, which will aid even the most inexperienced trouble user in determining which version he or she is using! I. INSTALLATION OK, now you have trouble. As distributed, there are small nagging problems with trouble which can't really be nailed down, but may cause intermittent slowing or stoppage of trouble results. Large telecommunications corporations will be unable to do anything about these minor glitches, but will troubleshoot the problem for weeks if you let them. When pressed, they will say that there is most likely something wrong with your equipment. Actually, you just have to customize your installation a bit. Do the following: - Put the data files somewhere comfortable; /etc/troubledb is standard. - Edit the 'trouble' script so that: the first line calls your perl executable, and $troubleroot points to the data/ directory. - Put the 'trouble' executable somewhere in your command path. /usr/local/bin/trouble is standard. - Put the man page somewhere in your man path; /usr/local/man/man1 is standard. II. OPERATION You get one trouble description each time you execute the script. Trouble ships with 10 entries in each of the six data files, giving you one million possible trouble results right out of the box. The data files are flat text files which can be modified with any text editor, so trouble is infinitely customizable, and will evolve to overcome even the cleverest solutions. And trouble costs nothing! As noted earlier, trouble v.2 ships with the handy -v switch. The other switches allow you to override the random selection of data and provide user-definable trouble bits as command line arguments. Each field is overridden by its own switch, followed by the data to be substituted. If your data contains whitespace, enclose it in quotes. III. SETTING UP A NETWORKED TROUBLE SERVER If your machine is connected to the Internet full-time, why not join the International Fraternity of Internet Trouble Servers? It's easy. Trouble via Telnet: Telnet trouble servers are compact, stylish and efficient. Contact your trouble database quickly and easily from any simple text-based terminal. - Edit your /etc/services file to include trouble. I run trouble on port 2323, but it seems to turn up on port 666 almost everywhere else for some reason... the line in my /etc/services file reads: trouble 2323/tcp trouble # trouble! - Edit your /etc/inetd.conf file to direct inetd to the trouble executable. The line in my file looks like this: trouble stream tcp nowait root /usr/local/bin/trouble - Restart inetd. There you go... trouble city. Now you should be able to do something like this: pops: {42} % telnet trouble.23.com 2323 Trying 206.163.46.66... Connected to pops.23.com. Escape character is '^]'. The RJ45 to ffd-ca is AFU because of flooding... SNET is confused. Connection closed by foreign host. Trouble via the Web: People who run http trouble servers are universally happy and successful! Trouble Web Servers are flashy and pleasing to the eye. - Read the comments at the end of the executable; edit the script accordingly so that trouble's output is marked as text/html for your web server. - Install the trouble executable in your cgi-bin directory. Set up the data files somewhere accessible; I use /etc/troubledb. - Call the script from the middle of an otherwise ordinary SHTML page with a line like this: Spruce trouble up with headline tags, special fonts and colors, or my personal favorite, the tag. IMPORTANT! If you set up an Internet accessible trouble server, please report the location to troublemaster@23.com so we can link to you. Trouble servers of all nations unite! IV. ACKNOWLEDGEMENTS Trouble has been helped in its early evolution by many like minded individuals, all united in the idea that the actual cause of an unsolvable problem is less important than a nice explanation containing code words or abbreviations that the afflicted indiviual cannot understand. Jason Newquist and Erik Muller contributed to code beautification efforts in the distant past. NYNEX, US West, ELI and the State Telephone Network of the former USSR were the telcos most influential in the development of my opinion of the industry. Curtis at NYNEX needs to be thanked personally. Bell South contributed 'the automated sprinkler system' and 'birds and fog' to the RFOs db; many former customers will find themselves immortalized in both the link destination and RFO databases. Most of all, I'd like to thank electrons. Without electrons, circuit-related problems of the type trouble deals with simply could not exist. Mark Swartz 7 February 2000 V. VERSION HISTORY Version 2.0, 2/18/2000 - dramatic and shocking rewrite of perl code to reduce accusations of trouble being an overgrown BASIC program - standardized on /etc/troubledb for datafile location; this is still customizable for the power trouble user - added support for -v switch - data fields can now be supplied on the command line, overriding randomization - trouble now consistently returns exit status of 0 - added the trouble man page Version 1.0, late 1996 - the beginning of all my troubles