Fancy

An open-source Hotline client written in Java

Users Guide, 1 december 1998

Table of contents:

  • Introduction
  • Acknowledgements
  • Feature overview
  • System requirements
  • Distribution
  • Installation
  • Usage
  • Known problems
  • Author
  • License
  • Disclaimer
  • Version history
  • To do
  • Introduction

    The Hotline protocol was developed by the company called Hotline Communications. It is a essentially a lightweight protocol that allows chatting and filetransfer over the Internet. It also defines a means of remote administration.
    Over the past years, the Hotline community has been steadily growing. In part, that's because you can get thousands of megabytes of illegal software via the warez sites. But also because Hotline somehow recaptures the BBS spirit of the pre-Internet era. There's a directness that the web is missing and a simplicity that IRC lacks. And all this is grafted on top of the Internet so that you can reach people at the other end of the world at the cost of on more than a local phonecall.
    However, contrary to the nature of the BBS world and the Internet world, Hotline Communications has never opened up the workings of the protocol to the public. Stifling the potential of the protocol itself. Look at how many FTP clients there are, and in how many ways the protocol itself is used.
    That has been the motivation for creating an open-source alternative not just to the Hotline client, but also to provide an open-source library that will encourage inventive uses of the protocol by making the Hotline protocol easy to incorporate in other applications.
    The Java language was chosen because it's cross platform, object oriented and multithreaded to the core.

    Acknowledgements

    Thanks to Trevor Jennings.
    Thanks to Exodus from DevZone.
    Thanks to Imagine from Viva hx!
    Thanks to the hx 0.7.9 coders. A lot of the code in Fancy was derived from hx 0.7.9.
    Thanks to Hotline Communications Ltd..

    Feature overview

    Fancy has most of the features of the commercial Hotline client. It also has a couple of features that are not found in the commercial client. Here's roughly how it breaks down:

    Supported features:
    Some of the most obvious unsupported features:
    Features that the Fancy has but the commercial client hasn't:
    Here is a screenshot of Fancy in action.

    System requirements

    Fancy should run, or run with minor adjustments, on all platforms that support the JDK 1.1 Java standard. It has only been tested on the Mac however.

    Where to get a Java runtime:

    Mac:
    Mac users should get the latest version of the MRJ from Apple at http://www.applejava.apple.com. As of this writing, the latest version of the MRJ is 2.1EA3. Versions of the MRJ prior to the 2.1EA3 beta will work but there will be a myriad of problems.

    Windows, Unix:
    Windows and Unix users can get their Java runtime from Sun at http://www.sun.com. Fancy has not been tested on either platform however.

    Distribution

    This document is located at https://members.tripod.com/wasbeer/fancy_doc/README.html. The client comes in several distributional flavors:

    Fancy_R6-Mac.sit.bin
    This is a Mac-only packaging of the client, without the source.
    Fancy_R6-Unix.tar.gz
    This is a gzipped Unix packaging of the client, without the source. This distribution appears courtesy of Trevor Jennings; please direct all comments concerning the packaging to him.
    Fancy_R6.jar
    This is a distribution of the client as a .jar archive containing the compiled Java class files. It doesn't contain the source. It should be possible to make this work more or less with any Java 1.1 platform. This .jar archive was linked with the cross-platform version of WasbeerCommonClasses and lacks some features over the Macintosh distribution (namely it does not send the resource forks of files when uploading).
    Fancy_R6-source.zip
    This .zip file contains the source code for Fancy. To compile Fancy, you also need the source code for HLC or the HLC classlibrary. Look for the latest version at https://members.tripod.com/wasbeer/.

    Installation

    Mac:
    Mac users are best off just getting the Mac release of Fancy. You can place the application anywhere on your disk.

    Unix:
    Unix users can download the Unix distribution of Fancy. Follow the instructions in the included README file.

    Windows:
    On Windows the CLASSPATH needs to be properly set up to allow the Java runtime to find the Fancy classes. You can then run Fancy from the commandline using sun's java tool. E.g. java Fancy. If you have experience on how exactly this should be done for a particular platform, please submit that information! If you can create a nice package for your platform then please submit that, too.

    Usage

    This section assumes a basic familiarity with the commercial Hotline client. If you have never used Hotline before, then you may want to take a look at the commercial client's manual if this confuses you.
    Fancy looks and behaves much like the commercial client, except where this is impossible due to Java limitations or lack of time. When Fancy is started, it presents you with a window that looks much like this:

    The main window

    The Options button opens the Options window. This is where you set preferences like your icon number and your nick.
    The Connect to... button opens the Connect to window. From this window you can make a connection to a Hotline server.
    The Bookmarks button opens the Bookmarks window. The Bookmarks window allows you to edit your bookmarks and connect to them.
    The Tracker button opens the Tracker window.

    The Options window

    The bookmark path specifies the directory that contains the Hotline bookmarks. Fancy can read and write bookmarks in a format that is compatible with the commercial client.
    The Download retries value determines the number of times that Fancy should retry a download when it is denied for some reason. It is good advice to see why a server is denying a donwload before setting this option to a very high value.
    The Use random color option determines whether or not Fancy should give every new connection a random background color.
    Log and Show join/leave in chat determine whether or not new connections have logging (see the Chat window). and/or show join/leave (see the Users window) turned on or off.
    Fancy features a Load news toggle switch. If you turn this switch off, then Fancy will not retrieve news from the server when it opens a connection. This may allow for faster connecting and can help slow Java implementations.

    The Connect to window

    In the Connect to window you can enter a server, port, login and password.
    The Connect button opens a connection window to connect to the server.
    The Save... button allows you to save the information as a bookmark.

    The Bookmarks window

    The bookmarks window shows all the bookmark files in the directory specified by the bookmarks option (in the Options window).
    Doubleclick an entry to open a connection window to connect to the server.
    Option-click an entry to display it in the Connect to window.

    The Tracker window

    The bookmarks window shows all the servers on the tracker specified by the tracker option (in the Options window).
    Doubleclick an entry to open a connection window to connect to the server.
    Option-click an entry to display it in the Connect to window.
    When the list of servers has focus, you can enter some characters to show only those servers whose name or description contains the characters you entered. You can also enter a phrase in the text field following Display servers containing and press return.

    The connection window

    The News button opens the News window.
    The Post... button opens a message window.
    The Users button opens the Users window.
    The Chat button opens the Chat window.
    The Files button opens a files window for the root directory.
    The windows for every connection are differently coloured so you can easily distinguish between the different connections. Sometimes this is "less aesthetically pleasing" (ugly).
    Mute audio mutes any sounds for the server.
    Crypto is a feature not found in the commercial client that serves to encrypt outgoing communications.
    You can use the crypto feature by typing a keyphrase into the box labelled Crypto: and pressing return. You can turn crypto off by emptying the box and pressing return.
    Crypto works by encrypting anything you chat or message to other people with the keyphrase. Only people using Fancy that have Crypto enabled with the same keyphrase will receive the original message. People not using Fancy, or using it with a different keyphrase, will see garbage.

    The News window

    The news window displays the news.

    The Users window

    The users window displays the list of online users. The first two characters indicate special features of the user. "-*" means that the user can disconnect other users. "z-" means that the user is asleep.
    Doubleclick a user to open a message window to send a message to the user.
    The top three buttons labelled i,m and k serve to respectively get info on a user, send a message to a user or kick a user. When the kick button is clicked while holding down the Alt or Option key, that user is banned. When the Show join/leave in chat option is enabled, then every time a user enters or leaves this will be mentioned in the chat window. Whether this option is on or off when opening a new connection depends on the option with the same name in the Options window.

    The Chat windows

    The chat window displays the chat. It also displays any name changes of users, and may also display the arrival and leave of users to the server if the Show join/leave in chat option in the Users window is on. If a chat message is preceded by '/me' in the chat, this will turn it into a chat action. For example, '/me is sleeping' turns up in the chat as '*** wasbeer is sleeping'. When the Log option is enabled, then all text in the chat is written to a file called Chat (server-ip) in the Log directory. Whether this option is on or off when opening a new connection depends on the option with the same name in the Options window.

    The message windows

    This window (or something that is very similar) is used to send and receive messages. A window like this is also used for posting news.

    The file windows

    This window displays a list of files.
    The U/l... button presents a file dialog to select a file for uploading. A transfer window will open to display the progress.
    The Dir... button prompts you for the name of a directory to create.
    The Del button deletes the selected file/folder, after prompting for confirmation.
    The Find... button opens a search window where you can type a phrase to look for on the server.
    Doubleclicking a directory opens another file window.
    Doubleclicking a file open a transfer window to download the file.

    The transfer windows

    This window displays the progress of a file transfer. When the transfer finishes, the window dissappears. Close the window to cancel the tranfer, but be warned that Fancy does not support resuming filetransfers.

    The search windows

    This window allows you to enter a phrase to search for in the files on the server. To begin a search, enter a phrase and press return. To stop the search, clear the input and press return.

    Other features

    ColorSchemes
    Since version R6, Fancy has cool ColorSchemes. This makes it possible to use specific foreground and background colors for specific connections. ColorSchemes are very simple to create and apply. To use a ColorScheme, create a textfile with the exact same name as the IP or DNS of the server that you want to apply the ColorScheme to. Fill this textfile with two lines:

    foreground = 0
    background = ffffff

    Then store this textfile in a directory called ColorSchemes residing in the same place as the Fancy application. This sets the text color of the server to black and the background color to white. The values are hexadecimal color numbers, as with HTML, but with no preceding symbols. For a ColorScheme to be recognized, it's filename needs to be exactly identical to the address you are using to connect to a server. For example, say there was a server called server.domain.com with IP 111.1.1.1. If you make a ColorScheme called 111.1.1.1 then the ColorScheme will only work when you connect to 111.1.1.1; not when you connect to server.domain.com.

    Sounds
    Since version R6, Fancy has sound. Sounds are stored in the directory Sounds. The sound files must be in 8Khz mu-Law encoded Sun .au format. If you want specific sounds turned on or off then you can remove them from the Sounds directory.

    Known problems

    Author

    Get in touch! Email wasbeer: ahaakmat@cable.a2000.nlif you want to participate in the project or if you have suggestions.

    License

    This software is distributed under the terms of the GNU Public License. This means essentially that without my further consent, you can hack this code only if the results of your hacking are also hackable themselves. See the file COPYING for the precise terms and conditions of the GPL.

    Disclaimer

    This software comes with no warranties whatsoever.

    Version history

    Rx denotes the release number.

    To do

    Urgent: Nice: Codemeister: