Java Development
Javica and Beyond Software and the moving image

Developing JAVA on a Linux LAN

November 17th, 1998

My experience with installing and using Linux on computers that most modern operating systems would discard as "legacy hardware", coupled with my recent development of a java application on both the Win32 and MacOS platforms inspired me to write this short article about what an absolute joy it is to write in Java, using an inexpensive LAN and the Linux operating system.

To summarize the fruit of my efforts, let me describe how effortless it is now to develop Javica for both platforms at the same time. I compile, and I double-click two icons, one on my iMac, one on my Toshiba running Windows 95. The same program, using exactly the same 'object code' loads over the network and runs perfectly on different machines of different hardware architectures running different operating systems. Beautiful. It's how programming should be done.

To achieve this wonder of modern software, I cobbled together some hardware components that had been tossed out by a small startup company and assembled my own, modest Local Area Network, pictured below:

My Home LAN

As you can hopefully tell, I have an iMac and two laptops. One is more obvious than the other. The grey one on the desk is my Toshiba 220 CDS, a 133Mhz machine that's just over a year old. The other, far less obvious one is an ancient (1993) IBM Thinkpad 350C, a 486 25MHz machine that, minus a Maths Co-Processor, isn't much of a work-horse. But with Linux installed as the OS, functions perfectly well as a robust file server that talks both SMB and Appletalk, and can therefore share folders over the network that are visible to both other machines.

The thinkpad is a tough little metal box (it's clearly been dropped a few times in its life) and can (I hope) withstand the not insignificant weight of the all-in-one iMac. As you can see, my "file server" is tucked underneath the iMac, with it's rear facing outward, for easy access to the ports. That's an IOMega Zip drive attached to its parallel port, and sitting on the left.

Thinkpad FileServer

The whole thing is hooked together using an inexpensive 10-port 10BaseT Ethernet workgroup hub from LinkSYS. Even new, these things are pretty cheap. This one, like the thinkpad, was discarded.

Linksys Ethernet HUB

Linux lets you telnet to the machine and do all your configuration and manipulation over the network, so there's never any need to open up the laptop cover and use the keyboard or the display. While I've worked with 'headless' NT servers like this before, Linux is much more stable.

Linux allows you to install and configure file server daemons that lets the machine serve files to Mac and Windows computers. The Windows service is called samba, the Mac one is called netatalk. I set my thinkpad file server up to share both a portion of its hard disk (/usr/data) and the connected Zip drive to both machines. Thus, both drives show up as folders on the other machines:

Shared drives
The Shared Drives visible from Windows
Shared drives
The same Drives visible on Mac desktop

Incidentally, the Thinkpad is called "Kinghorn", the iMac is "Aberdour" and the Toshiba is "Burntisland".

I keep the source on Kinghorn, and compile it to two adjacent directories. One holds the win32 release, which is built, thanks to MicroSoft's excellent SDK for Java, into a self-contained executable, and the other holds a Javica program put together by the JBindery program, a primary component of the considerably less excellent Mac Java development environment. When the compilation ends, I have two icons that I just double-click to launch, and voila - Javica is running at the same time on both machines.

Shared drives Shared drives

Not only does Linux let me use the extra capacity on the Thinkpad fileserver as shareable space between the two machines, it also lets me share the Zip Drive. Normally, I would have been forced to buy a Mac Zip Drive in order to use it on a Mac. But there's more.

The iMac comes with a V.90 Modem, and I bought a 56k modem / 100Mbit ethernet PCMCIA card for the Toshiba last year. But I only have one phone line, so only one computer can be on the internet at the same time. Not so. Linux can be configured to dial up the internet and share the V.90 connection between the other machines, so all three can see the internet at the same time. You can surf the web, FTP files, and even play Quake World from either machine. True, the iMac modem is not being used, but who cares? Linux acts as my router, webserver (I designed and tested this site on Apache) and file server, all while running on a machine that would NEVER be able to run Windows NT.

Click for Javica Mac OS 8 Screenshot (640x480)
Click for Javica Windows Screenshot (640x480)

It's all just one man's opinion. Copyright 1998, 1999, 2000, 2001 Michael Shivas. All Rights Reserved.