1.1 * August 7, 1996
Both the server and client have had large blocks of code cleaned up - Ewgie is slowly becoming a "real" application! Here is a summary of the more significant changes from 1.0:
Server and Client
- Added support for multiple rooms!
- All the code has been compiled and optimized with the 1.0.2 JDK
- No platform-dependent code exists anywhere (yay!)
- The output streams used for communication now automatically flush
- The elapsed times function now reports correct elapsed times
- The core protocol has been streamlined slightly; many new commands have been added as well
- GMT times are converted to the client's local time automatically
- All strings are contained in one file for easier internationalization
- Images are distributed in a slightly more sane manner
Client
- Ewgie now runs in a number of ways - as a standalone application or an applet, with or without a login dialog
- Ewgie now has a control panel in which you can view people and rooms!
- Many components in the interface are optional
- New commands: /me, /connect, /fontsize, /version, /motd, /whowas, /notify, /nonotify, /notice, /shutdown, /join, /leave, /topic, /rooms, /names, /remove, /invite, slight syntax changes in other commands
- New parameters: fontsize, bgcolor, fgcolor, namepanel, statuspanel, buttonpanel, login, controlpanel
- A new chat menu bar has common chat commands
- The status panel has more information and when selected sends you away or returns you
- When run standalone, the application/applet can be cloned
- Lists of names can be specified in most commands
- Names in commands are now case-insensitive
- You can save the chat text to a file
- You can load a GIF image from a file!
- You can save the board image as a GIF file!
- A resize thread handler has been written so that Ewgie doesn't stop when the browser is resized (if run as an applet)
- Custom layout managers have been written for major interface portions to make things look good and act better
- Customizable foreground and background colors correctly propagate to all windows
- If in chat, using the name field now renames you
- WINDOW_DESTROY events are now trapped in all non-modal windows
- The default welcome message has been rewritten
- More basic help for /chat help - concise HTML help written in the documentation
- All dialogs are modal where appropriate
- The EwgieBoard color picker has had a variety of problems fixed
- The board's live pointer tool has been changed a little to save bandwidth
- The live pointer icon is easier to see and move
- Board menus are properly disabled and checkmarked
- The enter and return key in all fields is trapped (so Ewgie is usable on Macintoshes)
- Less restrictions on nicknames - they cannot contain commas
- Almost all layouts have been rewritten so that all coordinates and widgets are properly displayed and handled on different platforms
- Movement of the board status panel has been fixed
- Loading images from a URL displays a "http://" in the dialog by default
- Words that look like Web addresses are followed when others type them
- The FixedGrabber class has been done away with (fixed by Sun)
- A zipped class archive and HTML templates are provided for "zip-capable" browsers
Server
- The server can have room-specific transcript files
- New code to support new commands
- A general password can be used for the system
- An operator password can be supplied to shutdown the server remotely and send notices
- New configuration directives: timestamp, generalPassword, operatorPassword, noNewRooms, makeRoom, debug
- Configuration directives are now fully case-insensitive
- A regular time stamp can be inserted into the transcript
- The transcript has much nicer formatting and colors, and 8-bit characters and links in the text are automatically converted to HTML
- Clarified server configuration file comments slightly
Known Bugs
Most of these problems can be attributed to inconsistencies in the implementations of the Java virtual machine on different platforms. Because the current implementations are so poor, I recommend you run Ewgie under the Java Developer's Kit on a Sun machine. Note that because new versions are being released weekly, some of these problems may already be fixed.
- If run as an applet you must be on the same page the applet was started from or you will not be able to follow anyone (launch new pages automatically) - this seems to be a browser-specific problem, or a security feature :)
- The scroll bars in the whiteboard do not work yet
- On startup the text may wrap too much (due to slow Java machines)
- Under Mac Netscape, input from the server is received very very slowly - chat is usable; image distribution works but is so slow it is unusable
- Buttons do not enable/disable or show/hide properly (Mac Netscape)
- Detaching and attaching the control panel multiple times may result in a bus error (Solaris JDK)
- Cloning and closing multiple instances of the client may cause a segmentation violation (Solaris JDK)
- The enter/return key may not work in certain situations (Netscape)
- The program may hang when using the board's selection tool (Netscape)
- There may be redraw problems when showing the control panel buttons (Netscape/Explorer for Windows)
- The client's command menu may appear disabled when actually enabled (Explorer for Windows)
- The applet may not start at all (Explorer for Windows)
- The board color picker may appear twice (Explorer for Windows)
- Some layout margins are bigger and smaller than they should be (Explorer for Windows)
- When running as a standalone application, completely quitting Ewgie when there is more than one cloned window open may cause a segmentation fault (Solaris 1.0.2 JDK)
- Because buffered input streams do not seem to work on Mac Netscape, they are not implemented in this release
- The JDK really should support the PNG image format in addition to GIF
1.0 * May 1, 1996
Most of the bugs in this release can be attributed to bugs in Java, more specifically to the cross-platform incompatibilities that arise:
- Inconsistency in widget sizes
- Inconsistency in fonts and font metrics
- Inconsistency in coordinate systems
- Inconsistency in graphics and memory handling
- Inconsistency in the display of colors
- Inconsistency in event handling in widgets
Miscellaneous Problems
- If you experience crashes or freezes, this is likely due to problems in the Java virtual machine you are running. The Ewgie client runs best under appletviewer on Solaris or Windows 95. The server appears to run best on UNIX systems.
- The x,y status coordinates don't update on startup and after pasting.
- The angle indictator in the status panel is sometimes filled with funny characters under Windows.
- Loading images doesn't always work for some strange reason. The same code sometimes works and sometimes doesn't.
- Some of the menu options in tne white board should have check marks and deselected options.
- On Windows 3.1 and Windows NT, the left side of the Ewgie client screen may be blank.
- On Windows, the status palette location is slightly to the right of where it should be.
- On some Windows platforms, cutting and pasting may result in black boxes filling the cut and pasted areas.
- When a user is removed due to timing out, the "has left" message appears more than once in the transcript.
- On different machines, the tool and status panels may show up behind the menubar. Ideally, their default location should be just below the menu bar.
- The pointer tool may not work if you're using an SGI machine.
- If you are using a Macintosh, you may not be able to make any network connections (while using the client or server).
For the technical-minded, the following Java problems have appeared while developing Ewgie with JDK 1.0 (aside from those mentioned above):
- You cannot grab regions of offscreen images. This has been fixed with the workaround FixedGrabber class included with the distribution. Even then this operation is quite slow on many platforms.
- You cannot always get the proper bounds of a frame relative to the environment on some platforms, and you cannot get the bounds of the browser an applet is running in.
- Dialog boxes don't seem to work under appletviewer.
- One has to layout frames for Netscape in funny ways in order to make space for the applet security warning label.
- Sometimes certain events like mouseMove() are not sent until paint() is called or mouseDown() is called. They all seem to depend on each other in strange ways.
- One cannot compress (zip) the classes. This would decrease the startup time by at least 5 times, by my estimate.
- I have not been able to find a freely available (deflate or LZ77-based) compression class for Java. Since I don't know how to code this stuff, I have made a compression class that uses a combination of RLE and Huffman techniques that is used to transmit image data to and from clients. My class allows one to compress and decompress data from streamed sources in a passable manner, but image transmission could be sped up by a factor of at least 7 by my estimates if I had the right code to do this.
|