Introduction (Or: The problem)

If you are a member of a project you know that from time to time some brainstorming or technical discussion is necessary. This is quite easy if you and you members are located in the same building or at least in the same city, but gets much more complicated if the distances are much further.

Of course, you can phone each other and today instant messengers are heavily used for those purposes. But if you need a small drawing or a sketch to explain something, things get difficult. You may need to mail you sketches around or put it onto a webpage, but this strategy reduces interactivity. This is where NetworkSketchpad enters the stage.

A solution (Or: What NetworkSketchpad can do for you)

NetworkSketchpad is a simple vector drawing program. This means, you create drawings by placing drawing primitives such as lines, rectangles, dots, etc. onto the virtual sheet of paper. To use the networking capabilities of NetworkSketchpad, you need to connect to a NetworkSketchpad server. Having done so, all elements you place onto the drawing are sent to the server which distributes the information to the other clients. Every object you place will appear on the other clients too in (nearly) realtime. But not only you can draw, all clients can draw concurrently.

License

NetworkSketchpad is licensed under GPL.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Getting started

At first, you need to get it from sourceforge. You will need at least the package called nwsketchpad_client. This is enough if you don't want to use the networking features (well, it gets quite useless without networking) or if someone other runs a NetworkSketchpad server to which you can connect. To run the software you need the Java Runtime Environment (short: JRE) installed and you need at least version 1.5.x. (The 1.4.x versions work too, but you'll need to recompile the class files.)

After downloading the client, extract it somewhere. To simply try it out, you can run the batch file called 'run_local.bat'. This will run the NetworkSketchpad in local-only mode which is enough to play a bit with it. If you run 'run_ask.bat' instead, it will pop up a window where you can enter the IP or hostname and port of a server (needed to use the networking features).

If you wish to try NetworkSketchpad before downloading and have a Java-enabled browser, you can click here to try it as applet. Keep in mind, that it will work only in local-only-mode (you can't share drawing with other clients) because there is no public sketchpad-server. Additionally some features (such as loading and saving) are not available in Applet-mode.

The basic UI

The main window looks like:

On the left side, you can see the drawing objects which can be placed. The right side shows buttons for the most important functions: The area which shows The NetworkSketchpad V0.25 in the picture will show the extended attributes (like size, shape, ...) if you select a drawing object in the list which has such a capability.
Above this area there are 2 JSpinners with which you can alter the drawing grid in pixels. If the checkbox on the right of the second JSpinner is checked, the raster will be displayed onto the drawing, but only if the raster size is greater than 4.

The Menu

Running a server

The simple way to start the server is to run the batch file called 'run.bat'. This will start a NetworkSketchpad server listening on port 10000 to which clients can connect. You should note, that the server doesn't support what is called 'rooms' when talking about chats. This means, that all clients connected to one server [task] will share one drawing.

What's new (Or: Where's the news?)

This webpage is only a basic introduction and new features won't be annouced here if they don't concern the basic usage (or how to get started). Detailed information about the changes is provided in the CHANGES section in the readme file.

Command line syntax

NetworkSketchpad client

To run the client via command line, use:
Server and portnumber are optional, but if one of them is missing, the client will pop up a window where you must enter connection information. If the client cannot connect to the given server, it defaults to the 'local only mode' and nothing will be send over the network. This mode can be used to prepare drawings for later usage in a networking session.

Starting with Version 0.26, the NetworkSketchpad client has its own configuration file (nwskpd.cfg) in which some basic settings can be altered. Detailed information about the possible configuration parameters are provided in the configuration file itself (via comments).

NetworkSketchpad server

To start a server thread, you can use:
The port number is mandatory. To stop the server simply kill its task or "CTRL-C" it. The server has no connection number limit and all data sent to it by a client will be forwarded to all other clients (but not the sender itself).

Since Version 0.04 the parameters are:
The server will listen to ports ranging from (including) port_min to (including) port_max. A seperate drawing is hosted on each port. The nobuffer option is optional and disables local buffering. Please read the readme file for details on that. (Really, read it as it is security relevant, too.)

Important notes for NetworkSketchpad 0.3

Beginning with version 0.3 of the NetworkSketchpad client, MD5-Authentication with the server is supported. The only drawback of this is, that the Java-Server is no longer supported, you have to use the C-Server (sketch_server_auth to be precise). The reason is that I don't have time to implement everything twice (in the C-Version and in the Java-Version). I decided to stop development of the Java-Server, because the C-Server is more portable. ("That's not right! Java is platform indepentdent!" I hear you scream. Well. You are right. But only as long as you have a JRE whereas ANSI/POSIX C runs on nearly anything. The C-Server for exmaple can even be run on linksys routers.)

Clients > 0.3

The command line parameters are exactly the same as before. There's no need to change anything.

C-Server with authentication

Start it with: port is the port to listen on. Either auth or noauth have to be given. If you supply a bufferfilename, it will buffer the drawings, as usual in the older version.

The Password file has the following format:
Username0		password0
Username1		password1	# Comment
The Username-length is limited to 31 characters. The passwords are cleartext (They get MD5-hashed upon load) and may have an arbitrary length but the total line length must be below 80 characters.
Written and Copyright (C) 2006, 2007 by Wiesner Thomas
EMail: w15mail (at) yahoo.de