Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Articles
Search: 

Status of the Linux Desktop and an Introduction to Kylix
Jerry Kreps, July 1, 2001
For The Curious: The Birth of Linux In the fall of 1991, a Finnish college student by the name of Linus Torvalds began writing a Unix compatible kernel to help in his study of operating systems for a computer science class. His motivation was simple. He couldn't afford the commercially ...

For The Curious: The Birth of Linux

In the fall of 1991, a Finnish college student by the name of Linus Torvalds began writing a Unix compatible kernel to help in his study of operating systems for a computer science class. His motivation was simple. He couldn't afford the commercially available versions of Unix, and even if he could, none were available for his particular PC, as the legend goes. Linus was in contact with other programmers via the Internet and he made his project available to them, asking for their input. Soon a network of programmers were working on the kernel. I have read estimates that nearly 10,000 programmers have contributed to the Linux kernel in the last 10 years. However, contrary to what some folks think and some companies FUD, there is only one kernel and what goes into that kernel is under the control of Linus Torvalds, who owns a copyright to the use of the name "Linux". Linus Torvalds' "right hand man" is Alan Cox. His web site is at http://www.linux.org.uk and "Alan's Diary" is frequently read by many Penguins. If something were to happen to Linus many feel Alan is the "heir apparent" and would step in as concert master to the Orchestra of Linux kernel coders.

Here is the URL of the site that documents the history of the Linux kernel. Some of the very early kernels are missing but those that are avaliable are copies of the actual kernel released at their respective times. Remember, these kernels represent a linear chain of ancestry from the first kernel uploaded to the Internet ten years ago. http://www.memalpha.cx/Linux/Kernel

How To Identify a Linux Kernel

Versions of the Linux kernel are numbered as X.Y.Z. X is the major version number. Y refers to the stability of the kernel. A version with an even value of Y is a 'stable' version, one that has passed certain milestones in testing. Odd values of Y indicate experimental versions of the kernel. Many programmers and testers download and install experimental versions of the kernel to test it for kernel bugs or compatibility problems with hardware. NO ONE uses experimental versions of the Linux kernel in production environments, or they do so at their own risk, regardless of how many "it works OK for me" messages they see in the news groups. Z is a counter indicating how many times the X.Y kernel has been compiled and released for testing. Many testers are also programmers. They make modifications to their copy of an experimental version for what ever purposes they want. If their ideas or purposes work out they submit patches to Linux for inclusion into the main trunk. Linus may or may not merge such patches into the main experimental code trunk. After Linus merges worthy patches and compiles a new kernel, X.Y.Z+1, it is uploaded to www.kernel.org, from which many mirrors reflect it around the world. After considerable testing of an odd numbered kernel, and after conferring with major contributors, Linus may increment Y and upload the next production kernel to www.kernel.org. And, of course, there are many corporations and organizations with talented programmers who can customize the kernel source and tailor it to their specific needs, all within the GPL because they never share their changes. They can keep their patches separate and if they decide to upgrade to a new kernel they merely have to issue a "patch -p1" on the source of the new kernel and then recompile. The patch command takes all the work out of it.

Glossary of Linux Terms for use at the console or in terminal windows on desktops.

If you don't plan to pop open a terminal, or do anything at the console of a Linux distro, then you can ignore this section. Also, there's a lot more to Linux lingo than this, but it's a start. Remember, Linux is case-sensitive everywhere, so the only terms that are uppercased in this list are the acronyms. You can also look at Eric Raymond's large jargon site for additional terms.

TermDefinitionNotes
.aObject archive. Concatenation of multiple .os.Win32 analog: .LIB
bashBourne-Again Shell. Command line shell derived from Bourne shell.Win32 analog: CMD.EXE
coreLinux coredump file. These things turn up all over your hard disk, and some of them are not small. Delete with extreme prejudice.Win32 analog: UAE / GPF
cpCopy a file.Win32 analog: copy
ELFExecutable and Linkable Format.Win32 analog: PE
locate 'someword'List files they contain 'someword' in their name.Win32 analog: WE search
lsList file names in a directory.columns of file names
dirList file names in a directory.Win32 analog: dir
vdirList file names in a directory.Win32 analog: dir
mkdirCreate a directory.Win32 analog: md
mvMove a file to a new location replacing the existing file, or rename a file.Win32 analog: move or rename
mcSimilar to it's namesake: Midnight Commander.Win32 analog: none
.oObject file.Win32 analog: .OBJ
PICPosition Independent Codecode gen required for .so
psList installed servicesWin32 analog: depends on OS version
rmDelete a file.Win32 analog: del
rmdirRemove a directory.Win32 analog: rd
.soShared Object LibraryWin32 analog: DLL
suLog to another account, default to root accountWin32 analog: none
symlinkSymbolic Link. A file name that points to another file on disk. Place symlinks in the global "bin" directory that point to your application's main files and you don't have to muck with the system searh path.Win32 analog: none. (that works)
tarballstarballs: Archive of files in a directory tree, created by using the tar utility.Win32 Analog: ZIP file (without the compression)
bzip2, bunzip2Compress files to zip files, or unzip zip files.Win32 analog: pkzip

History of the Linux Graphical User Interface (GUI)

In less than a year after the birth of the Linux kernel, four developers began a project to bring a graphical interface (not to be confused withe a desktop) to Linux. The project that has become XFree86 (http://www.xfree86.org) was initiated in April of 1992 with a goal of cloning and enhancing Release 5 of Version 11 of the X Window System (X11R5), which had been written for Unix platforms in 1986. X Window (http://www.x.org) was supported by a consortium of Unix companies and their constant fighting for advantage produced an Intel-based Unix platform that was unstable, and performed poorly on the current display technology. Such corporate behavior was characteristic of the 'Unix wars' of the period, and led to several incompatible proprietary versions of Unix and X windows. These four individuals had been working on enhancements, independently, and at (sometimes) cross-purposes. The decision of the four to unite their development efforts has led to one of the most successful free software projects in history.

From their web-site... "The XFree86 Project, Inc, is a not-for-profit corporation of the state of Texas. Our primary charter is to design, implement, and distribute, as free software, enhancements to The X Window System[TM], product of the X Consortium, Inc. Our primary product, XFree86[TM], provides ports of X to many Intel-base UNIX[TM] and UNIX-like operating systems, along with a family of high-performance X Window System Servers for a large class of PC-clone video hardware. All products of The XFree86 Project, Inc, are freely available, and freely redistributable. Our software is covered by a copyright statement that allows use of our code for any purpose, free or commercial, as long as the copyright notices remain intact. All we ask in return is that we be acknowledged for our work, in product documentation, literature, or other forms".

Even though the GUI server in Linux is called "X server", it usually is a version of the XFree86 driver, not the driver from X.org, and is shipped with every Linux distro I'm familiar with. The XFree86 configuration software, either XF86Setup or xf86config, creates the files that INITializes the X server and then runs the selected desktop. All Linux distros have the ability to boot right into the desktop without showing a console. They usually include their own console graphical X server configuration program, too. If you do not configure your Linux system to boot directly to a window manager the you can fire up a window manager from the console by issuing the command 'startx ' from the command line. My SuSE distro, like many others, uses an environmental variable called WINDOWMANAGER, that contains the full path and name of the window manager that I prefer to run. I can start my preferred window manager by simply issuing 'startx' from the command line. My preferred window manager (desktop) is KDE2. If I wanted to run another desktop, say fvwm95, I could issue the command "startx fvwm95" and that Win95 look-alike would appear. (It's a look-alike, not an act-a-like. KDE behaves more like a WinXX desktop than any other Linux desktop.) If I do not configure SuSE to run KDE it defaults to one of the most rudimentary desktops of all, 'fvwm'. My wife, on the other hand, doesn't want to be bothered, so her PC boots directly into the KDE2 desktop automatically.

There may be as many as 20 or more desktops available in Linux. Why so many? Maybe you have an old 486DX-66 with 4MB of RAM and a 1MB video card that your want to run Linux-2.0.36 on and you want a GUI on it too. Fvwm is your desktop. On it you can run "GTK-Desktop", a simple but useful "office suite'. Or, perhaps you will use it as a small network or web server and will run one of several X programs that can be used to configure them. Maybe you have a P166 with 64MB of RAM and you want to devote most of your RAM to sound processing, but you need a little more power than fwm. So, you use fwwm95 or icewm or ... Well, let me show you. Here is what is on my SuSE 7.1 distro.

There are legions of Linux fans devoted to almost each one. As more Windows users migrate to Linux the market share of KDE and GNOME will continue to increase. If Linux is still around 10 or 20 years from now there will still be those advocating one of the odd window mangers in the list. Each exists for a need, and 20 years from now that need may still exist. We are still running FoxPro for DOS apps where I work because those apps are still better, for what they do, than anything else available. "If it's not broke, don't fix it."

What is the Most Popular Linux Desktop?

In a word, KDE by virtue of it's 70% market share. Their web site is at the following URL: http://www.kde.org/whatiskde/index.html Generally, the minimum box required to run KDE is a P133 with 32MB of RAM, unless you are a very patient person :). Neither KDE nor GNOME will run in an acceptable manner on a 486 PC, but many of the other desktops will!

The Windows GUI is, well, the Windows GUI. That's your only choice. KDE is one of many GUI's for Linux. While running KDE I use Cntrl-C and Cntrl-V to Cut&Paste. I use Alt-Tab to switch between open applications. I have and use a clipboard. There is a icon bar running along the bottom of my screen and a system tray resides on the right end of the icon bar. Program icons occupy the toolbar, along with a "K" button that leads to the menu structure. The desktop itself has program icons scattered across it. Clicking on an empty area of the desktop with the right mouse button causes the usual menu structure to popup. A waste can and peripheral icons occupy the left side of my desktop. KDE has a Theme manager, but I stick to a monocolor Blue desktop. The latest version of KDE is 2.1.1 and is built upon Qt-2.3 in combination with XFree86's Xft extension, allowing it and its applications to sport anti-aliased fonts. Here is the KDE.org URL showing screenshots of both KDE1 and the newer KDE2: http://www.kde.org/screenshots/index.html

KDE comes with many integrated programs, including an office suite called KOffice. Screenshots are at http://www.koffice.org. The components of the office suite are in various stages of development and include KWord, KSpread, KPresenter, KChart, KIllustrator, KMail, KNews, KOrganizer, Konqueror and some other packages. Competing against KOffice is OpenOffice, which has a GIANT head start over KOffice because it is a conversion of StarOffice 5.2 from it's monolithic proprietary (but free) binary form into a modular form that includes Open Source code. It is at http://www.openoffice.org. OpenOffice will be desktop independent. Like KOffice, however, not all the components are progressing at the same rate.

I use KMail to handle my multi-ISP, multi-account email requirements and I use KNews to visit the various Linux and Kylix newsgroups, but I must confess that I use StarOffice 5.2 for some word processing, spreadsheets and other such tasks, although KOffice is starting to take over in areas as it improves. My house plans were drawn with QCad. My web site HTML pages were written using Quanta+. My Bible study is aided by BibleTime. When OpenOffice gets farther down the development cycle I may check it out to see if it is ready to replace StarOffice. Both are free. My math models are done using MuPAD, and numerical and physical modeling are done with Sci-Lab-2.6. If you want to see what my desktop looks like then visit this site: http://www.jlkreps.net/howImadethewebpage.html and scroll halfway down. or visit the following site to see the NEW SuSE 7.2 desktop. http://www.suse.de/en/produkte/susesoft/linux/screenshots/desktop/kde2.png It's release date was set for June 15th, so it is already on the market.

Some have called Konqueror the Crown Jewel of KDE, and I agree. It is very convenient to have your local file system in the left panel and an Internet FTP site in the right panel. Downloading is merely dragging and dropping one or more files or directories from the right panel to a directory in the left panel, because from the beginning Konqueror has focused on network transparency. In fact, from SuSE's FTP KDE site I dropped SuSE's KDE folder icon on to my /stuff partition and went to bed. When I got up in the morning I had 575MB of new KDE2.0 directories and RPM files, and a hundreds of KDE apps, setting in a KDE subdirectory under /stuff. That was on my Sony VAIO, P166, by the way. Konqueror supports Netscape plugins like Flash, RealPlayer (which I am using to listen to Christian Pirate Radio, www.mycpr.com, as I write this), and other multi-media programs. Seamless support exists for browsing the Linux File System, Windows shares, NFS shares, web pages, FTP sites, LDAP directories, zip files, RPM packages, tar files, gz files, and others. Konqueror includes HTML thumbnails, text and preview images. If you enter "#" into Konqueror's location bar it will display results of that command in the active panel. For example: "floppy:/" will cause the active panel to display the directory structure of the floppy drive, and "#DF" will open a dialog and display HD usage.

Windows has its Network Neighborhood. KDE has LISa, the LAN information server, which is installed as a daemon on a workstation. By entering "lan:/" into Konqueror's location bar you will be presented with a list of all discovered servers and their associated services. Having more clients on a network running LISa will increase its efficiently because they share information, thus reducing network traffic.

For a complete overview concerning DCOP messaging, KParts components, KIO network technology, XML GUI builder and the KHTML rendering engine, and to see other screen shots of the KDE desktop visit the following web site: http://www.kde.org/info/overview.html

At the last count SourceForge (http://sourceforge.net) was hosting 21,813 Open Source and/or GPL software project involving 188,654 coders and, I would wager, these projects may not represent even half of those out on the Internet. Not all of these projects will produce a working application and many die shortly after they are announced on SourceForge because enthusiasm is a poor substitute for knowledge and skill. However, for KDE alone there are well over 3,000 GPL applications, in a wide variety of disciplines, that have been built using the Qt widget set, posted for downloading, and are into version 2 or 3 and beyond.

With the exception of MoneyDance and Kylix, every program I wanted to have on my Linux desktop was free, was on one of the SuSE CDs, and was installed when I selected 'everything'. That includes the most recent release of PostgreSQL

Michel Fournier asked me to write this article on June 5th. On June 8th the July issue of Linux Journal arrived! It's theme is "Program Development" and KDevelop 1.4 is reviewed on page 56, KDE 2.1.1 is reviewed on page 66 and CVS (Concurrent Version System) is reviewed on page 72. A good article about Glade, the GUI-RAD IDE associated with GNOME, is reviewed on page 88. To see screenshots of KDevelop and read about it visit http://www.kdevelop.org.

And Now, Kylix!

Kylix: An ancient Greek two handled shallow drinking cup ("Symposium-vase")

Let me start by giving Borland's URL for Kylix: www.borland.com/kylix/linux, and for the Kylix Community: community.borland.com/linux/0,1419,4,00.html, and to the Borland newsgroups: http://www.borland.com/newsgroups. If you are browsing Borland's newsgroups page using Konqueror you can click on a newsgroup and KNews will open automatically, subscribe to the group, download the current headers and messages, and displays them! I considered including a GIF of Kylix but decided instead to include a URL pointing to one on Borland's page: http://www.borland.com/kylix/delphi. Click on it and it will blow up into a full screen picture. And likewise, I could be a copy cat and list Kylix features here, but here is a URL instead: http://www.borland.com/kylix/k1/features.html.

What's in the box?

Kylix comes with three manuals, three CDs, and a large glossy poster showing the Kylix Object Hierarchy, which can neatly fold up and reside in the back of any of the manuals.

One of the CDs contains a copy of SuSE 7.0. I have used SuSE since SuSE 5.3, and wouldn't you know it...version 7.0 is the worst version SuSE has released since 5.3. (A lot of distros appearing at that time had similar problems for same reasons.) By the time you read this, version 7.2 will have been on the market 5 days and promises to be the best and the most graphical version yet made. SuSE 7.2 includes graphical hard disk partitioning and resizing software, the latest version of KDE and the 2.4.x Linux kernel. Over 2,000 applications fill three of the CDs! The DVD CD contains the other six and allows a single CD install. It would be well worth your time to bypass the singe CD version of SuSE that comes with Kylix and go straight to SuSE 7.2 Pro. It comes on 6 CDs, 1 DVD and includes four manuals. Mandrake 8.0 and RedHat 7.1 will work as well, since differences are, for the most part, only skin deep.

The smallest manual, "Quick Start", introduces you to Kylix, takes you on a tour of the desktop, jumps into developing a "TextEditor" application to demonstrate basic techniques and methods, then closes by showing how to customize the Kylix IDE.

The first seven chapters of "Object Pascal Language Guide" describes most of the language elements used in ordinary programming. Chapter eight summarizes standard routines for file I/O and string manipulation. Chapter nine describes language extensions and restrictions for dynamic-linked libraries and packages, and chapter ten does the same for object interfaces. The next three chapters address advanced topics: memory management, program control and assembly- language routines within Object Pascal programs.

"Developer's Guide" is a 31 chapter, 500+ page book divided into four sections.

Part I, "Programming with Kylix", describes how to build general purpose Kylix applications, including how to use the Component Library for Cross Platform objects (CLX). Other topics in this section include developing cross platform apps, multi-threaded apps, working with packages and components, creating international apps and deploying apps. Design-time packages simplify the tasks of distributing and installing custom components. Runtime packagess, which are optional, offer several advantages over conventional programming. By compiling reused code into a runtime library, you can share it among applictions, and Kylix itself!

Create a package when you want to make a custom component that's available through the IDE. Create a standard shared object file (*.so) when you want to build a library that can be called by any application, regardless of the development tool used to build the application.

Part II, "Developing Database applications", describes how to build database apps using database tools and components. Kylix lets you access SQL server databases using DBExpress, but different DBExpress drivers come with different versions of Kylix. The Server Edition includes more DBExpress drivers than the other editions, but individual drivers can be purchased separately.

Part III, "Writing Distributed applications", describes how to create applications that are distributed over a LAN. These include Web server applications such as Apache and CGI applications (on the Server Edition, but not one the Standard or Open Edition).

Part IV, "Creating custom components", describes how to design and implement your own components, and how to make them available on the Component palette in Kylix's development environment.

WARNING! WARNING! WARNING! NONE of the manuals that come with Kylix teach how to program using the Pascal language!

The "Object Pascal Language Guide" only describes extensions to Pascal that define Object Pascal. Another book must be used to learn how to program in Pascal, and there are many on the market, and free Internet tutorials.

Here is the URL to a self-guided tutorial on learning Pascal: http://goforit.unk.edu/pascal/pstart.htm The tutorial includes timely self- tests with answers to help you evaluate your learning progress. This tutorial is especially good in that it only uses a console display, so all practice programs can use the console object from the Repository. From the File menu choose New, on the dialog click the New tab. and from the New tab choose 'Console'. You will be presented with a naked Pascal program outline that you can file in to make your 'console' application, as shown below. Notice the compiler directive.

program Project1;
{$APPTYPE CONSOLE}
begin
end.
Using the Console template bypasses the complications of a form, menus, properties, methods and events that could make learning Pascal itself confusing.

Like VFP, Kylix offers the programmer the ability to create console ("DOS") applications, such as a service that doesn't need the X windows or a Desktop manager, or any visible component or interface. They can be executed manually, from the command line, or from a script, or even from a menu option of a desktop. A "script" is merely an ASCII text file containing some bash shell commands, similar to DOS commands, but on the first line of the script is "#!/bin/bash", and the script is made executable with "cmod a+x scriptname". Scripts are similar to BAT files in DOS.

Bash (Bourne Again SHell, indicating it is a versiion of the old Bourne shell) is the name of the shell that presents the user with an interface that will parse human readable commands. It is similar to COMMAND.COM in DOS. After all, DOS started off as QDOS (Quick and Dirty Operating System) which was developed by Seattle Computer Products to run on IBM's new PC. Bill Gates purchased if for $50K and sold it to IBM for big $$$, which started his climb to become the world's richest man. It also shows that writing a program is not the same as knowing what to do with it, or of even having an opportunity to do anything with it at all.

In DOS, programs are BAT, COM or EXE's. In Linux programs are ELF binaries or s cripts, providing the execute attribute, 'x', is set on them, otherwise neither type of file will run. The Linux equivilent of the COM executable is the old binary format, which is not used on modern Linux distributions. The standard console library, ncurses, is not needed to write Kylix console programs.

Kylix supplies the programmer with a Console Template that automatically generates the framework of a console program. All templates are stored in the Repository, which can reside in a directory shared by all team members, and can be put under version control. In Linux the most common version control software is CVS. It is a GPL version. A KDE GUI front end for CVS is called Cervisia. CVS has a long history and is a mature program.

Kylix offers two GUI application models: SDI and MDI. Only an MDI model is offered in in the New Items Dialog. To change the MDI to an SDI change the FormStyle property to fsNormal. To make it a MDI main form set FormStyle to fsMDIForm, and for a child use the fsMDIChild setting. It is a good idea to define a base class for your child forms and derive each child form from this class, to avoid having to reset the child form's properties.

A brief summary of how to write an SDI application using Kylix (with comparisons to Visual FoxPro 6.0, where applicable.)

Create a new directory to contain your new project files. It can be under your home directory, or any other location where you have 'rwx' permission. Give the directory the same name as your project name, which is usually the name of your project executable file.

Select New from the File menu to open the Application Repository and from the New tab of the New Items dialog form select the Application Template to create a new project. Immediately select the Save option under the File menu and select your newly created project directory as the destination of your project files. Three files are saved. A "Project1.dpr", "Unit1.pas", and "Unit1.xfm". If we had created a second form the files "Unit2.pas" and "Unit2.xfm" would have been added to the project directory.

Each Kylix component is a class; placing a component on a form creates an instance of that class. Once the component is on the form Kylix generates the code necessary to construct an instance of the object when your application is running.

Drag your principal components from the Component Palette onto the form, setting their properties in the Object Inspector (Properties dialog in VFP). For the application to do anything it needs menus, commands, and perhaps a toolbar. Though you can code the commands separately, Kylix provides an actionList component to help centralize the code. There are two kinds of 'Actions': New actions that you create and write the methods for yourself (user defined methods in VFP) or Standard actions which create methods and add all the necessary code. (Nothing like this in VFP!) There are twenty two Standard Actions including 'Cut','Paste', 'copy', 'delete', 'Save', etc., of which ten are data-aware actions including navigation, add, delete, save, cancel, and other actions. The Standard Actions are predefined objects in the Object Hierarchy, such as "TDataSetDelete", which is one of over 100 children of the TDataSet object. THe TDataSet object is one of many children of the TDataSetDesigner, the only object that is listed in the Object Hierarchy Poster! You will alway drop one "ActionList" (similar to 'events' in VFP) component on each form you create. Another component you will always use is the "ImageList" object. It contains an editor which allows you to manage all the icons and images an application uses. The ImageList object will know the location of each image and assign an integer number to it. When you want to connect an image to a menu option or a button, for example, you select the ImageIndex property on the Object Inspector for that button and from the drop-down combo box select the image you want to use. The image index value appears in the ImageIndex property.

Likewise, if you want a menu on an application you will drop a Menu Component onto its main form. Like the ActionList, the MainMenu component contains an Editor which appears when you double-click on it. The 'editor' looks just like a minature form with a simple menu structure already on it. As you add to this menu structure the added items appear in the Object Inspector where the item properties, actions and images can be assigned. For Standard Actions the code already exists in Unit1.pas and merely needs to be selected in the OnClick Event of the menu option to make the link.

The next task to do is fill in the code for the procedures and/or functions that the "New" action option added to the Unit1.pas file, then link them to any menu or other controls on the form via the Object Inspector.

Finally, a control-F9 will compile your application, or you may choose to merely build it via the Project|Build menu option. Building an application does everything except create the executable binary. It also gives all files the same timestamp. If you choose the Run option from the menu you can exercise the project and if bugs appear the debugger will appear, allowing you all the same options that the VFP debugger allows.

This is the complete listing of the tutorial application published in the "Quick Start" manual, contained in chapter four. That program TextEditor is actually in the file TextEditor.dpr. The 'dpr' stands for Delphi Project Resource. The rest of the files shown here are the Unit.pas files of the project and the form object file, called TextEditor.xfm. The file TextEditor.kof contains the compiler directives for the project. TextEditor.conf is a config file. Files that end with dcu are binary image files for the form. Remember that all the code you see was generated automatically except for the contents of the TForm1.File*** prococedures, where approximately 20 lines were manually entered. Here, you can view the file that holds the object declarations for the form and its components, plus the binary code that creates the graphical icons of the TextEditor form. The form image itself is stored in *.dcu files.

I will bring this article to a close with a brief discussion on what it will take to create applications that can compile in both the Linux and Windows platforms without changing a line. Borland only guarantees Delphi 6 as a target for Kylix source code, and only when components are limited to CLX objects, that is, those that are children of the TComponent object. Borland deliberately waited until Kylix was delivered before it began finalizing the Delphi 6 GUI-RAD IDE, so that cross compatibility was guaranteed. Be aware that cross compiling will require a licensed copy of both Kylix and Delphi 6, but if a developer is working both sides of the OS gulf that expense is necessary.

Some final comments: It is good to now have a Pascal based tool in my tookbox that is as powerful, if not more so, than any offered by any other software house. And, for a Penquin like me, to have it on the Linux platform is an added bonus. In one stroke, Borland has lifted the Linux GUI-RAD IDE standard up to, if not beyond, that set in the Windows environment by Borland and Microsoft. In providing a solution to potential clients I can eliminate the client's server and workstation licensing or upgrade costs by using an inexpensive copy of a Linux distro, legally. This frees up more of the client's bugeted monies to pay for software development. In other words, to pay ME! This will make it difficult for other developers to compete against my total solution.

Jerry Kreps, Nebraska Dept of Revenue
More articles from this author
Jerry Kreps, August 1, 2001
June and Jerry I am 1.89 Billion seconds old, and have been married to my college sweetheart, June, for nearly 1.26 Billion seconds. It like only a day and it seems like forever! She is still as beautiful as when I first saw her but, unfortunately for her, I've turned into an...
Jerry Kreps, July 20, 2000
VNC Freely available here! Some recent changes: Windows packages updated to 3.3.3r7- 26/5/00 Unix packages updated to 3.3.3r1- 9/2/00 More info on using VNC with SSH- 13/1/00 Note: The FAQ and some other bits of the documentation are constantly being updated. We only record major chang...
Jerry Kreps, January 1, 2001
A review of Nelson King’s "Visual Foxpro 5.0 For Windows - Developing an Application Framework," 892 pages, ISBN 1-55851-560-7, with a 1.44 Mb diskette containing a sample framework. The book is rated at "Intermediate to Advanced" It is not. It would be better described as being at the beginning ...