Troubleshooters.Com Presents

Linux Productivity Magazine

Volume 2 Issue 6, June 2003

Introduction to Gnumeric

Copyright (C) 2003 by Steve Litt. All rights reserved. Materials from guest authors copyrighted by them and licensed for perpetual use to Linux Productivity Magazine. All rights reserved to the copyright holder, except for items specifically marked otherwise (certain free software source code, GNU/GPL, etc.). All material herein provided "As-Is". User assumes all risk and responsibility for any outcome.


See also Troubleshooting Techniques of the Successful Technologist
and Rapid Learning: Secret Weapon of the Successful Technologist
by Steve Litt

[ Troubleshooters.Com | Back Issues |Troubleshooting Professional Magazine ]


 
You don't know what you've got; until you lose it. -- Ral Donner (from a 1961 song)

CONTENTS

Editor's Desk

By Steve Litt
Spreadsheets were the "killer app" that brought personal computers to the forefront. They're handy little devils. I use spreadsheets for tax calculations, for quick and dirty calculations of all kinds. On a building project, before the trip to Home Depot or Lowes, I list all the materials, and their quantities, so that my shopping goes quickly.

Columnar charts are a snap with spreadsheets. Multiplication tables, bicycle gear ratio charts, and your kids' growth records are just a few examples.

Spreadsheets make the ideal on-the-fly data acquisition app. They're rows and columns, just like a database table. In the spreadsheet format, it's easy to add, delete or rearrange columns, sort rows, or search for rows with specific attributes.

Most spreadsheets have excellent export mechanisms, meaning that at a later date you can copy your spreadsheet data into a database table with the same structure. So spreadsheets give you the benefit of just in time data acquisition, and yet when the time comes you can easily put collected data in a real database.

Spreadsheets are here to stay, so the remaining question is, which spreadsheet? Certainly Excel is excellent if you're a Windows or Crossover Office user. I used Excel for a little while, but it was so featureful I never quite trusted it, preferring DOS Lotus and Quattro Pro instead.

When I got to Linux, Gnumeric was my choice. It just worked, every time. If you've ordered books from Troubleshooters.Com after 1/2002, your order info is in a Gnumeric spreadsheet. There's a sheet for each year, and columns for each field on the bookstore order form, in the same order as they appear on the order form. I have Vim scripts to produce mailing labels from spreadsheet rows.

I'm not saying Gnumeric is for everyone. For one thing, Gnumeric has no macros. Also, it might not be quite as "user friendly" as spreadsheets like Excel. And it doesn't have every last feature. But I've found Gnumeric to be rock solid, so that what it does, it does excellently. This Linux Productivity Magazine introduces this great spreadsheet, and gives a few examples of how to use it.

So kick back, relax, and have fun reading learning more about Gnumeric. And remember -- if you enjoy, use, or write Open Source software, this is your magazine.
Steve Litt is the author of Samba Unleashed.   Steve can be reached at Steve Litt's email address.

Help Publicize Linux Productivity Magazine

By Steve Litt
Loyal readers, I need your help.

For months I've publicized Linux Productivity Magazine, expanding it from a new magazine to a mainstay read by thousands. There's a limit to what I can do alone, but if you take one minute to help, the possibilities are boundless.

If you like this magazine, please report it to one of the Linux magazines. Tell them the URL, why you like it, and ask them to link to it.

I report it to them, but they don't take it very seriously when an author blows his own horn. When a hundred readers report the magazine, they'll sit up and take notice.

Reporting is simple enough. Just click on one of these links, and report the magazine. It will take less than 5 minutes.

News Mag
Submission URL or Email address
Comments
Slashdot
http://slashdot.org/submit.pl
Just fill in the short form.
LinuxToday
http://linuxtoday.com/contribute.php3
Just fill in the short form.
Linux Weekly News
lwn@lwn.net
Just tell them the URL, why you like it.
NewsForge
webmaster@linux.com
Just tell them the URL, why you like it.
VarLinux
http://www.varlinux.org/vlox/html/modules/news/submit.php
Just fill in the short form.
LinuxInsider.Com,
Newsfactor Network
http://www.newsfactor.com/perl/contact_form.pl?to=contact
Just tell them the URL, why you like it.
The Linux Knowledge Portal
webmaster@linux-knowledge-portal.org
Just tell them the URL, why you like it.
OS News
http://www.osnews.com/submit.php
Just tell them the URL, why you like it.
DesktopLinux
http://www.desktoplinux.com/cgi-bin/news_post.cgi
Only for LPM issues involving the Linux desktop, not for programming or server issues.

If you really like this magazine, please take 5 minutes to help bring it to a wider audience. Submit it to one of the preceding sites.
Steve Litt is the author of Samba Unleashed.   Steve can be reached at Steve Litt's email address.

Introduction to Gnumeric

By Steve Litt
This article introduces Gnumeric, showing how to run it, how to create, save and open spreadsheets, and how to do very basic math functions with it.

Opening Gnumeric

To open Gnumeric, run the following command at the command prompt:
gnumeric
Gnumeric will come up, looking like a typical spreadsheet, as the following screenshot shows:
Screenshot of Gnumeric

If you get a "command not found" message, Gnumeric probably isn't installed. Most distros come with Gnumeric, so find the package and install it. Or go to the Gnumeric website (URL in URL's section of this magazine), download it, and follow the compilation instructions.

User Interface Areas

The standard Gnumeric user interface has seven areas:
  1. The Menubar
  2. The Standard toolbar
  3. The Format toolbar
  4. The Data entry area
  5. The Cell grid area
  6. The Information area
  7. The Object toolbar
The following annotated screenshot shows those areas in green italics:
Map of user interface areas

Correcting Mistakes

Entering data in Gnumeric is as simple as navigating to the desired cell, using either the mouse or cursor keys, and then typing in the desired string, number or formula. You can always overwrite the contents of a cell by navigating to that cell and typing, in which case the original contents are overwritten. To correct an entry rather than erasing and overwriting, navigate to the cell, and then make the correction in the data entry area.

Adding

Adding and multiplying are simple, as long as you remember to preface formulas with an equal sign. With the mouse or cursor keys, navigate to cell B3 and place the number 30 there. Similarly, place the number 40 in cell B4. Now navigate to cell C1, and type the following:
=b3+b4
After entering the information, press the Enter key. You'll notice that the number 70 appears in cell C1, but if you look at the data entry area, you'll see the formula =b3+b4. Now change the contents of cell B3 to 1030, and you'll see C1 change to 1070. The spreadsheet recalculates on any input to the sheet.

Subtracting, Multiplying and Dividing

Subtracting, multiplying and dividing work the same as adding. So if you change the + to a - in cell C1, C1 shows the difference between B3 and B4 instead of the sum. Here are the operator symbols used in Gnumeric:
Sign
Function

+
addition

-
subtraction

*
multiplication

/
division

()
grouping (perform operations inside the parens first)


A division example

You previously input 1030 into B3, and 40 into B4, and =B3+B4 into C1. Into C2 input the following:
=C1/10
C2 should now read 107.

Inputting Text

It's very simple to input text. Just navigate to the desired cell and start typing. As long as part of the string is not numeric, the text will be taken as a string. If you look in the data entry area, you will see that the text is preceded by a single quote. That signifies the string is text. If you want to strongarm something to text when it would normally signify a number (let's say 400), you can simply precede it with a single quote. Oppositely, if you want to strongarm something to numeric, precede it with an equal sign, or it it's a signed number, a minus sign.

Summary

This article discussed running Gnumeric, and simple addition, subtraction, multiplication, and divsion, as well as inputting text. The main thing to keep in mind is that when you input non-numeric text it is automatically prepended with a single quote. When you input a number it is left as is, and is available for numeric calculations. If you want to input a formula, you must prepend either an equal sign or a minus sign to inform Gnumeric that it is to be treated as a number, not a string.

There are seven areas of the Gnumeric user interface:
  1. The Menubar
  2. The Standard toolbar
  3. The Format toolbar
  4. The Data entry area
  5. The Cell grid area
  6. The Information area
  7. The Object toolbar
You normally input data in the cell grid area, but if you want to modify (not overwrite) an existing cell entry, you do so by navigating to that cell and then working in the data entry area.
Steve Litt is the author of "Troubleshooting Techniques of the Successful Technologist".  Steve can be reached at Steve Litt's email address .

Cell Formatting

By Steve Litt
Wordprocessor formatting is mainly cutesy stuff like font and spacing. Spreadsheet cell formatting is fundamental to the entire meaning of the spreadsheet. This article details major cell formatting options. Here is a list of your main Gnumeric cell formatting options:
Format
Type

Explanation
Number
What kind of number should it be formatted as. Options include:
General
This is the default. It attempts to choose a format appropriate to the cell's value. It's an excellent choice for a quick and dirty spreadsheet.
Number
Right justifies and formats as a decimal number. You can choose how many places to the right of the decimal, and whether you want a thousand's separator. You can choose from among 4 formats to represent a negative number.
Currency
This is like the Number format, but includes a configurable currency symbol which defaults to $. Use this for all cells containing money.
Accounting
This is like the Currency format, but removes several of the options. The negative number representation is always parentheses with no color change, and there's always a thousands separator.
Date
A huge variety of numeric ways to represent the date. It accepts 2 digit years and figures out which century you probably "meant", but be careful -- the actual data is a 2 digit year so someday the interpretation could change. I suggest using 4 digit years for everything, which is guaranteed good until Y10K. A couple formats include hours and minutes, but unfortunately none is adequate for a timestamp.

To a certain extent, you can input one format and have it show as another. For instance, if you choose yyyy/mm/dd, you can input numbers as mm/dd/yyyy. However, the data stored is the data input. They seem to sort reasonably. Be careful when inputting a format different from the displayed format.
Time
A huge variety of ways to represent time, including a couple that prepend the date, which unfortunately aren't adequate for timestamp use.
Percentage
Formats as a percentage with a trailing percent sign. You can configure the places to the right of the decimal. You can input a number, in which case that number will be multiplied by 100. Or you can input a percentage, with an appended percent sign, in which case that will be taken as the literal percentage. The actual data stored is what you input, so be consistent.
Fraction
This is cool. You input a decimal number, and it tries its best to find a numerator and denominator to represent the fractional part of the number you put in. You can choose between limiting numerator and denominator to 1 digit or 2. Probably they didn't include any more digits because 3 would bring a Pentium 150 with 64MB to its knees.
Scientific
Formats as scientific notation.
Text
Formats as text, even if it's a number. But BE CAREFUL. Although it formats existing numbers as text, they are still right justified and their data is still numeric. However, inputting a new number into a cell formatted as text automatically prepends a single quote, thus making the actual data text. Be consistent.
Special
I don't know what this is. Email me if you find out.
Custom
This is a sort of "roll your own" number format.


Alignment
Here's where you choose from left or right alignment, whether you zero fill, whether you expand to fill the space (full justification), whether you wrap text. You also define the vertical alignment here.

In a typical columnar spreadsheet, you'd let the numeric formatting determine alignment. But sometimes you need to strongarm. For instance, you'd right align headers for numeric fields.
Font
Everything you'd expect from a font dialog box.
Border
You can choose the type and weight of borders, and choose which sides of the cell or group of cells should be bordered.
Background
Choose the background color, and if you'd like, a nice background pattern.
Protection
This effects only protected worksheets, and only for .xls format. There's no such thing as cell protection in Gnumeric, and you can type into protected cells.
Validation
This would kewl if it worked right. You can validate for specific types of data, in specific value ranges, and you can set what happens if bad data is input:
  • None (silently accept bad data)
  • Stop (disallow bad data)
  • Warning (prompt user asking if he really wants to input this bad data)
  • Information (accept the data, but print

DANGER WILL ROBINSON!
On my copy of Gnumeric, setting to date changes the displayed format, and worse yet, you cannot get go back to no protection (or at least I haven't found a way).

If your work resembles mine, formatting will be on a per-column basis, because my columns usually represent a type of information, such as quantity, unit price, tax, total price, description and the like. To format an entire column, single click the column header button (containing a letter representing the column, at the top of the cell grid area). The entire column highlights. Then right click the column header button, select format cells from the popup menu, and make your format selections. After formatting the column's cells, if you have column headers that should be formatted differently, left click the header's cell to remove all highlighting, then right click within that cell and make your format selections. By formatting an entire column first, you guarantee that when adding rows, those rows will be bound by the column's formatting.
Steve Litt is the author of the Universal Troubleshooting Process courseware.   Steve can be reached atSteve Litt's email address.

Formulas

By Steve Litt
A formula is an equation based on constants and cell values that evaluates to a number, or occasionally to a string. So that formulas are not assumed to be strings, they must start with an equal sign or a minus sign. There are actually other signs that tell Gnumeric it's a formula, but the equal sign and minus sign are sufficient for any application.

As a simple formula, input the following into C1:

=(a1+a2)*a3

Now put 1 into cell a1, 2 into a2, and 3 into a3. The result is, as expected, 9 (3 x 3). If you change a1 to 11, the result becomes, as expected, 39 (13 x 3). Formulas re-evaluate on the fly as long as all their component information is contained on the current worksheet. If they depend on information from other worksheets, recalculate with Edit->Recalculate.

Functions

Gnumeric has a rich collection of built in functions. A function is a named formula that evaluates to a number. Some of the most used built in functions are:
There's a volumninous collection of built in functions covering date and time, interest calculations, trigonometry, statistics, math, geometry, random numbers, strings, complex numbers, and much more. Functions take arguments in parentheses. These arguments can be formulas, cell values, or constants.

Place 1 in a1, 2 in a2, 3 in a3, and then in C1 place
=SUM(a1,a2,a3)
C1 evaluates to 6, the sum of the three cells.

Ranges

More handily, make it a range:
=SUM(a1:a3)
C1 once again evaluates to 6. This is a great way for summing entire ranges of numbers. Better yet, there are a couple shortcuts.

Click C1 and press the Del key to delete its contents (the formula). Now type the following, without pressing Enter:
=SUM(
Now click cell A1, and shift-click A3, and notice that Gnumeric fills in the range for you. Press the Enter key, and Gnumeric auto-fills the trailing paren for you and calculates. This is very handy for running a formula on any type of range.

Range summing is such a common operation that there's a button to write the =SUM( for you. It's the sum button, and it looks like this:
Graphic of Gnumeric sum button

Ranges are typically contiguous, but they can also be disjunct. For instance, you could have the following formula:
=sum(A1:A2,B4:B5)
The preceding represents the sum of range A1 to A2, and range B4 to B5. You can have Gnumeric fill it in for you by typing =SUM(, selecting the first range with the mouse, then pressing the comma button to insert a comma after the range, and use the mouse to select the second range, on and on until all range components are selected.

Experiment with mouse selection of ranges and cells within formulas. On large spreadsheets, it makes things much easier. Also experiment with the many functions available.
Steve Litt is the author of the Universal Troubleshooting Process courseware.   Steve can be reached atSteve Litt's email address.

Using Gnumeric for Quick and Dirty Data Entry

By Steve Litt
We all know data should be kept in a database. Databases are optimized for insertion, retrieval, and relational linkage.

But sometimes you need to capture data quickly. You don't have time to add a table, and you REALLY don't have time to create a front end for that table, and you ESPECIALLY don't have time to input data using SQL statements into the universal front-end packaged with the database (e.g, Postgres' psql).

Sometimes it' not a matter of time, but a matter of expecting the table's structure to change. How many times do you want to execute an Alter Table SQL statement.

At such times, consider using Gnumeric to capture the data. Start with an empty Gnumeric workbook, and make column headers corresponding to database columns in the order you will be receiving them from a paper form or a questionaire or whatever. Once the headers are in place, you want to make them visible even after you've entered so much data that the headers would have normally scrolled off the page. You accomplish this with the "Freeze Panes" Gnumeric feature.

Place the cursor immediately below and to the right of that first header. If your leftmost header is at cell A1, place the cursor in cell B2. Next, View->Freeze_Panes, and note that a horizontal line appears below your headers, and a vertical line appears to the right of your first column. You can now scroll down as far as you want and still see the headers. You can also scroll as far to the right as you want and see the first column. This behavior is EXTREMELY handy for data entry. Note that although the freeze-panes feature is in the View menu, it's persistent within the workbook, and survives exit from the program and reentry into the program.

You're not done yet. Each column needs to be formatted for the data it will hold. Left click the column head button to highlight the column, then right click it, choose Format, and then format as approppriate. Do that for each column. Save, back up, and you then can begin to add data.

If your columns are in the same order as the information you're receiving, data entry is lightning quick. Type the data for a column, then then press the Tab key to go to the next column. When finished with the last column, press Enter key and the cursor will move to the column below the last one you punched data into, which is the new row to be filled. Then press the Home key to move to the start of the new row. This is a faster user interface than the typical data entry program.

Fringe Benefits

It's quick! It's dirty! But wait, there's more.

Using Gnumeric to punch data means you can total fields on the fly. Use the techniques described in the Introduction to Gnumeric article and the Formulas article to do any necessary calculations, no matter how difficult. Use cells outside the data columns to hold the formulas.

Gnumeric is a wonderful table prototyping tool. You might not have known the exact column layout when you started. Using Gnumeric, you can quickly add, delete, change, and even reorder columns. To add a column, left click the column header button of the column BEFORE which the new one should be inserted. Then rightclick, choose Insert Columns, and boom, you have a new column to headerize and format.

To switch two columns, follow this procedure:

Other rearrangements can be done in a similar manner.

Last but not least, when your table structure is stable, and you've had a chance to build a user interface app for the table in a real database, you can move your Gnumeric data into a database table. Read on...
Steve Litt is the author of Rapid Learning: Secret Weapon of the Successful Technologist. He can be reached atSteve Litt's email address.

Exporting Gnumeric Data

By Steve Litt
First, be aware that Gnumeric native format is XML, which means if nothing else works, you or a computer programmer of your choosing can always write a program to parse and reformat its data. Wouldn't you like that privelege in MS Office apps?

Fortunately there's usually an even simpler choice -- data export. It's trivially simple. You export to a comma separated file. Unfortunately, you cannot export a selection -- it needs to be an entire worksheet, or even a workbook. So if you need to export just a selection, copy and paste that selection into a new sheet and export that sheet.

To export, perform the following:
  1. Pick the separator character. It must be a single character. Find a character that does not exist in the worksheet. The pipe symbol is often a good choice. Check with Gnumeric's search function (F7 key) to verify that your chosen character doesn't exist in the worksheet. If it does, either choose a different character, or within the worksheet change the data so the character no longer appears.
  2. File->Save as
  3. Set File format to Text export(configurable) in the dropdown list box
  4. Pick a filename, NO EXTENSION
  5. Click OK
  6. If prompted whether you want to overwrite an existing file, either click Yes or click No and try again with a different filename
  7. You're now on the "Export structured text" dialog box.
  8. Choose the worksheet you want to export, then click Next
  9. Choose the appropriate line termination (Unix for Linux users)
  10. Change the separator character to the one you picked in step 1. If that is not one of the choices, pick "Custom", and type your chosen character in the field.
  11. Choose "None" for quoting. Other forms of quoting in Gnumeric exports are inconsistent and hard to parse.
  12. Leave quote character alone -- you're not using quoting
  13. Click Finish
You now have a file showing all rows and columns. If you had column headers, they appear also. Edit the file to get rid of any garbage that isn't legitimate table data. When you have a file consisting of pure data, use a good editor such as Vim to convert this file to a series of SQL statements capable of building the new table. Then use your packaged database front end (e.g. psql for Postgres) to run that file, loading the new table.

That's it. During the period where you're experimenting with the table's structure, you can use Gnumeric to house its data. Once everything's set, you can export the data, convert it to a series of SQL statements, and run the file of SQL statements to build the table.
Steve Litt is the author of the Universal Troubleshooting Process courseware.   Steve can be reached atSteve Litt's email address.

Gnumeric Gotchas

By Steve Litt
Now I'll show you the landmines so you can stay away from them.

First, WATCH OUT for search and replace (F6). NEVER use search and replace to perform simple searches. Use simple search (F7) instead. Using search and replace silently replaces with whatever's in the replace field, and if that field is blank, it deletes the search term. The way F6 works, you can end up thinking Gnumeric has garbled your data, when in reality it just did what you said to do.

Next, beware of cell validation (Format->Cells->Validation_tab). On my copy of Gnumeric, setting validation to date changes the displayed format, and worse yet, you cannot get go back to no protection (or at least I haven't found a way). In general, once you've set validation for a cell or group of cells, you can't turn it off. If you know of a way to get around this behavior, please email me.
Steve Litt is the author of the course on the Universal Troubleshooting Process.  He can be reached at Steve Litt's email address.

Gnumeric Quickhacks

By Steve Litt
Here's an exercise that demonstrates the Autofill feature, copy and paste, relative and absolute cell addresses, and creating/expanding selections with the mouse and with the keyboard. We'll make a multiplication table in 2 minutes.
Feature
Purpose
Comments
Autofill
Create sequences
The first 2 define the starting point and increments, and the rest of the selection is filled with resulting values.
Relative cell reference
Keeps relative context when copied
The default. Lack of dollar sign on a row or column designation of a cell makes that row or column designation relative. This only matters when copied.
Absolute cell reference
Forces absolute context when copied.
The dollar sign on a row or column designation of a cell makes that row or column designation absolute, meaning that when copied, the new cell's row or column remains the same as the original. This only matters when copied.
Selection
Creates an area to be copied from or pasted to
You can use the mouse's shift+click to define a selection, or you can use the keyboard's shift+End or shift+arrow to grow a selection. You can use the keyboard to create a selection, grow it from a single cell.

Use autofill to automatically create sequences. Choose from relative and absolute cell references, on either/both column and/or row, in order to set copied cell references as either relative to the original's references, or identical to the original's references. Use selections to copy, paste, and autofill.

Creating A Fibonacci Sequence

The Fibonacci series is a numeric series in which each member of the sequence is the sum of the previous 2:
Creating this series is a 20 second endeavor:
This is an example how quickly you can work with Gnumeric.
Steve Litt is the author of "Troubleshooting Techniques of the Successful Technologist".  Steve can be reached at Steve Litt's email address.

Learning More About Gnumeric

By Steve Litt
The info in this Linux Productivity Magazine issue is enough to get you started, but it's just the tip of the iceberg. Your next stop is the outstanding Gnumeric help system. Clicking on the Gnumeric menu's Help choice brings up Gnumeric manual, Gnumeric function reference, and About. The function reference lists every built in function, its arguments, and what it does. You'll learn whether the function is Excel compatible (many are).

The manual tells you almost everything you'd want to know about Gnumeric. Its organization is such that you might have to do a little looking, but it's all there. It makes a good read for a rainy Saturday afternoon.

Armed with the info in the manual, you can now proceed to the net. Insert the word Gnumeric plus the subject you want to find. For instance, to learn details about graphing in Gnumeric, insert Gnumeric graphs into Google. DO NOT use doublequotes, as you're looking for two keywords, not one phrase.
Steve Litt is the author of "Troubleshooting Techniques of the Successful Technologist".  Steve can be reached at Steve Litt's email address.

Life After Windows: SCO and Microsoft: More Questions than Answers

Life After Windows is a regular Linux Productivity Magazine column, by Steve Litt, bringing you observations and tips subsequent to Troubleshooters.Com's Windows to Linux conversion.
By Steve Litt
Some consider me an alarmist. So don't take my word for it. Look at SCO's own website:
The first quote threatens END USERS of Linux. The fact that they limit this threat to "commercial" users isn't reassuring. After all, why use Linux if not to make money. Also interesting is their characterization of Linux as an "unauthorized derivative of UNIX", especially in light of the GNU project's cleanroom construction of GNU, including its name, which stands for "GNU's Not Unix". Are they saying that Linus constructed the kernel while simultaneously viewing UNIX source code?

The financials in the second quote are also interesting. With "SCOsource licensing", they expect to be $4M in the black per quarter. According to their quoted figures, without it, they would be $4.2M in the red. There's the motive, folks.

If their motive were merely protecting their "intellectual property", SCO would simply say "packages x, y and z are ours". The Linux community would then clean-room rewrite those packages, and all would be well. But according to Computerworld, SCO was unwilling to state which Linux code was pilferred:
So perhaps the motive is more than mere intellectual property protection. Is it spiteful revenge against the OS that ruined SCO's marketplace? Is it a parasitic attempt to leach onto Linux' success? Or is it something darker?

Recent headlines announce that Microsoft licensed SCO's code. Here's the press release from SCO's own website:
Does this sound like the Microsoft that you know? The Microsoft that outlasted the Clinton era justice department, and sweethearted the Bush era justice department? Is big, bad Microsoft scared of little old SCO? Or is Microsoft just being ethical?

Or is it something darker?

Let's look at the proabable results of Microsoft's licensing SCO's code and patents:
  1. Microsoft money keeps SCO's doors open, so SCO can continue to intimidate would-be Linux users
  2. Microsoft's acquiescense discourages others from defying SCO's threats
For pocket change, Microsoft can introduce a brand new type of fear, uncertainty, and doubt into the Linux world, thereby hurting their only major operating system competitor. Could this be Microsoft's motive for "giving in" to dinky SCO?

Maybe. But in that case, why wouldn't Microsoft simply buy every share of SCO stock, so that they own the intellectual property, after which Microsoft's lawyers could start suing Linux end users. That might quickly put Linux out of business.

Perhaps Judge Colleen Kollar-Kotelly isn't as pro-Microsoft as we all thought. After all, she ruled that she be left in the loop. If Microsoft acquired ownership of the intellectual property purporting to prevent its only competition from functioning, perhaps that might raise a red flag.

Or perhaps Microsoft is worried about the future. But for 500 votes in the 2000 election, Microsoft might have had severe behavoral, or possibly even structural penalties. With the economy failing, the current monopoly tolerant administration might fall, replaced by trust-busters. The government brought 2 antitrust actions against Microsoft in 5 years. Perhaps, with a new administration, a new antitrust action might be brought in 2005. If so, directly threatening users of the one remaining competitor might not look too good. So perhaps it's best to let another company do the threatening. After all, who could fault Microsoft for licensing technology? You have to admit, it's pretty slick.

Can it get any darker than this? Perhaps...

It was recently reported that SCO, formerly Caldera, is busy shredding the paperwork from their DR-DOS lawsuit against Microsoft. Follow the steps here. Microsoft, who beat the United States Justice Department, merrily hands over cash to puny SCO for some "intellectual property" that questionably applies to Linux. And SCO shreds what could be the most damning antitrust evidence ever gathered on Microsoft. Hmmm...

How will the Open Source community respond to this new challenge? Will we ignore it, hoping that somehow the problem will go away? Will we refuse to get involved out of a belief that government should not interfere with the software marketplace, while SCO uses government laws, government courts and government guns to intimidate Linux users?

Will we band together to create a legal fund, so that the first end-user victim of an SCO lawsuit will be suitably fortified, making SCO sorry they'd ever gone to court? Will we each obtain a single share of SCO, and then create dozens of stockholder resolutions banning Linux suits, creating poison pills that turn its intellectual property to GPL upon sale, and the like? Will we organize a boycott of SCO?

Will SCO's actions be the catalyst that finally forces us to take our heads out of the sand, understand that the world isn't a meritocracy, and admit we need publicity and legal strategy. Will RedHat, SuSe, FSF, EFF, IBM, and Linux International lead the way to provide legal strategy and lobbying? Will the nation's and world's LUGs provide manpower and contributory financial help for this endeavor?

This article asks many questions and gives no answers. I have no crystal ball, nor do I have electronic bugs planted in the meeting rooms at SCO and Microsoft. It would be nice to end this article with a statement, but there's no certain statement to be made. So this article ends with yet another question:

Will we band together to help Linux survive this crisis? Or will we impotently mutter after it's gone?
Steve Litt is the author of the course on the Universal Troubleshooting Process.  He can be reached at Steve Litt's email address.

Letters to the Editor

All letters become the property of the publisher (Steve Litt), and may be edited for clarity or brevity. We especially welcome additions, clarifications, corrections or flames from vendors whose products have been reviewed in this magazine. We reserve the right to not publish letters we deem in bad taste (bad language, obscenity, hate, lewd, violence, etc.).
Submit letters to the editor to Steve Litt's email address, and be sure the subject reads "Letter to the Editor". We regret that we cannot return your letter, so please make a copy of it for future reference.

How to Submit an Article

We anticipate two to five articles per issue, with issues coming out monthly. We look for articles that pertain to the Linux or Open Source. This can be done as an essay, with humor, with a case study, or some other literary device. A Troubleshooting poem would be nice. Submissions may mention a specific product, but must be useful without the purchase of that product. Content must greatly overpower advertising. Submissions should be between 250 and 2000 words long.

Any article submitted to Linux Productivity Magazine must be licensed with the Open Publication License, which you can view at http://opencontent.org/openpub/. At your option you may elect the option to prohibit substantive modifications. However, in order to publish your article in Linux Productivity Magazine, you must decline the option to prohibit commercial use, because Linux Productivity Magazine is a commercial publication.

Obviously, you must be the copyright holder and must be legally able to so license the article. We do not currently pay for articles.

Troubleshooters.Com reserves the right to edit any submission for clarity or brevity, within the scope of the Open Publication License. If you elect to prohibit substantive modifications, we may elect to place editors notes outside of your material, or reject the submission, or send it back for modification. Any published article will include a two sentence description of the author, a hypertext link to his or her email, and a phone number if desired. Upon request, we will include a hypertext link, at the end of the magazine issue, to the author's website, providing that website meets the Troubleshooters.Com criteria for links and that the author's website first links to Troubleshooters.Com. Authors: please understand we can't place hyperlinks inside articles. If we did, only the first article would be read, and we can't place every article first.

Submissions should be emailed to Steve Litt's email address, with subject line Article Submission. The first paragraph of your message should read as follows (unless other arrangements are previously made in writing):

Copyright (c) 2003 by <your name>. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, version  Draft v1.0, 8 June 1999 (Available at http://www.troubleshooters.com/openpub04.txt/ (wordwrapped for readability at http://www.troubleshooters.com/openpub04_wrapped.txt). The latest version is presently available at  http://www.opencontent.org/openpub/).

Open Publication License Option A [ is | is not] elected, so this document [may | may not] be modified. Option B is not elected, so this material may be published for commercial purposes.

After that paragraph, write the title, text of the article, and a two sentence description of the author.

Why not Draft v1.0, 8 June 1999 OR LATER

The Open Publication License recommends using the word "or later" to describe the version of the license. That is unacceptable for Troubleshooting Professional Magazine because we do not know the provisions of that newer version, so it makes no sense to commit to it. We all hope later versions will be better, but there's always a chance that leadership will change. We cannot take the chance that the disclaimer of warranty will be dropped in a later version. 

Trademarks

All trademarks are the property of their respective owners. Troubleshooters.Com(R) is a registered trademark of Steve Litt.

URLs Mentioned in this Issue