Computing: Free Application Software and Open Data Standards (Part 3)

A 516Kb PDF of this article as it appeared in the magazine—complete with images—is available by clicking HERE

The first two installments of this three-part series focused on 1) two prominent problems that modern computer users are experiencing, 2) a description of the Linux operating system, and 3) several examples (out of a very large number) of application software available for Linux.

Returning briefly to the main topic of the first installment, one of the major consequences of using free open source application software is that the specification of the data formats used is necessarily (by the very definition of open source) open and made available to all who are interested. The use of open source software will tend to make users less susceptible to having their data "held hostage," particularly if a widely used open data standard (such as that used by OpenOffice) is chosen. Note that many commercial, non-open source programs do in fact support a data format which is open, frequently by means of an "export" function, and having that feature in software which primarily employs a proprietary format is surely helpful in maintaining access to your data. However, if you decide that you need to transform your data files from a proprietary, native format to an open format, there could be a formidable amount of labor involved. (If you use a coordinate geometry program, how long would it take you to export every data file you have to ASCII files of point coordinates suitable for import into a new COGO program?) The advantage of data openness has to be awarded to the open source software method–open data and open source software are philosophically and practically linked to each other.

Additional Linux Traits
GNU/Linux has inherited all of the key design traits which has made UNIX a very highly respected operating system. One of the key characteristics of UNIX and Linux is that they are designed to be "portable." This means that it is comparatively easy for operating system programmers to make Linux work on different types of computer hardware, and it is not limited to running solely on Intel-based PCs. Linux is available for Apple’s line of computers, for PDAs (personal digital assistants), for sophisticated high-end workstations and supercomputers, for game machines like Microsoft X Box and Sony PlayStation 2, for specialized electronic devices, and more. After Intel and AMD introduced their latest generation 64-bit CPUs, Linux was rapidly ported to 64-bit versions which take full advantage of the enhanced capabilities of these new CPUs. (At the time of this writing, a couple of prominent commercial operating systems still are not offered in 64-bit versions, despite the availability of 64-bit hardware in their platform domain.)

This advantage of portability also applies to much of the open-source application software which runs on Linux. The combination of open data standards and the portability of open source software which runs on Linux should mean fewer "compelled" updates for users and a freer choice in both software and hardware.

Linux is a true multiuser operating system and supports concurrent usage of a computer by multiple users. UNIX and UNIX-like operating systems have very powerful networking capabilities which allow users to operate them from distant locations. While these capabilities are historically associated with the idea of many users logging in to a big UNIX timesharing mainframe computer, system administrators and even some ordinary users will find reasons to appreciate the power of these features for desktop personal computers. One example of the utility of these features is that one Linux computer could be installed in an office having a network of several Windows desktop computers. The users of the Windows computers could then run the software on the Linux computer due to this support for multiple concurrent users and remote logins. (Depending on the particular methods used, additional software may be necessary on the Windows computers.)

Linux inherits UNIX’s design of including a number of "utility" programs as part of the operating system, and each of them is designed to do a specific task. Most of these programs are able to accept as input the results from other programs by means of a method called "piping," and these programs are executed by using the keyboard and command line interface. If you are repulsed by the thought of typing commands into a computer rather than "pointing and clicking," and believe this to be a technological step backward (what’s next, punch cards?), know that this method of operation is another UNIX trait which can have a huge positive impact on the way a computer can be used to attack data processing problems. It encourages users to methodically break down a computational chore into a sequence of sub-tasks, with each sub-task corresponding to one of the UNIX utility programs (or perhaps another custom program created to so something brand new). It is impressive to watch a skilled UNIX user manipulate potentially large and complex sets of data using a handful of commands, often using only these basic UNIX/Linux utilities. Even a Linux box with no specialized surveying and mapping programs can be used to manipulate and analyze data in electronic data collection files and ASCII output from other surveying software. Its utility is probably limited only by the user’s creativity.

The best part is that because of UNIX’s design, these utility programs have worked the same way for three decades so far and will continue to work the same way for as long as UNIX and Linux exist. When you devise a way to solve a problem or perform some task using the UNIX/Linux tools, you will not be forced to learn a new way to accomplish the same thing a few years later. This characteristic is not often found in software.

Drawbacks to Linux
What are Linux’s current drawbacks? For one thing, there are occasional problems with Linux not being 100% compatible with some hardware. When that happens, it typically means that not all capabilities of some particular piece hardware are available. This is not the norm, and when this occurs it’s frequently because a hardware manufacturer has not revealed complete information about how to interface with their device. A "Winmodem" is a classic example of a device which typically has a secret proprietary interface. Winmodems therefore tend to be difficult to use under Linux. A few models of laptop computers and a few graphics adapters are also somewhat problematic for Linux for this reason. In general, however, Linux’s support of hardware is excellent, and the major distributions have good reputations for correctly detecting your hardware and properly configuring the operating system when it is installed. Some vendors will sell computers with Linux pre-installed, which means they’ve selected hardware which is supported by Linux.

There will be an investment in time required to learn to use and maintain a Linux system. Modern distributions of Linux come with a graphical interface which operates very similarly to Microsoft Windows and Apple’s line of computers, so basic application usage will not cause any big problems for most computer users. However, the software installation procedure typically used for Linux is different and causes some new users to complain. If you do your own system configuration and administration for Windows or Apple computers, or if you maintain your own LAN (local area network), there will be some new things for you to learn in order to configure a Linux system. If you wish to use the UNIX utility programs mentioned above (and I strongly encourage learning to use them), that will also time to learn. I don’t think it’s generally any more
difficult to learn to use Linux and its software tools than it is to learn to use our current generation of application programs and commercial operating systems, but a commitment to learning is always necessary in order to efficiently use any new software.

As with any other software, your means of obtaining technical support needs to be considered. You can choose to be self-supporting. To this end, the resources available on the Internet are generally very good, and help is available for beginners and experts alike. There may be a Linux user group near you if you want to meet other Linux users face-to-face. User-to-user support is a community affair with FOSS, and you will see users of open source software frequently and freely offer help to others. Alternatively, you may decide to pay for installation and support, and there are firms which do this as well. If your firm has an IT department, these duties would presumably fall upon it. If you’re totally new to Linux, I recommend that you do seek advice from other Linux users in order get a the best possible start in using the new technology.

Conclusion
Software and computer technology will continue to evolve. Linux and other open source software is providing us with an opportunity to do two things: First, mitigate some of the problems we’re currently experiencing; and second, re-examine the ways we manipulate and maintain our data. Linux and other free open source software are offering us new choices. I encourage you to further look into this software trend as time goes on.

Loren Gibson is a Project Surveyor at Keith and Schnars, P.A., Fort Lauderdale, FL.

A 516Kb PDF of this article as it appeared in the magazine—complete with images—is available by clicking HERE