Monday, March 22, 2010

PDF vs. DOC vs. DOCX vs. ODF vs. RTF

The following are a series of charts comparing different document formats:

General information

Native program1 Language2
PDF Adobe Acrobat PDF (a subset of PostScript)3
DOCX MS Word 2007– XML4
DOC MS Word 97–2003 Binary (0s and 1s)
ODT Writer XML
RTF MS WordPad RTF (similar to TeX)

  1. Native program. The program most-commonly used to edit the file type.
  2. Language. The computer language used to create the document. In other words, if you decompressed the file and then opened it inside Notepad, it is the language you would see.
  3. PDF stands for Portable Document Format.
  4. XML (Extensible Markup Language) is a tag-based language that is similar to HTML.

Size of a hello-world document

Fonts not embedded Fonts embedded
PDF 6.0 KB 23.9 KB
DOCX 9.7 KB 940.0 KB
DOC 19.5 KB 192.0 KB
ODT 7.8 KB Not applicable.
RTF 3.8 KB (1.5 KB when zipped) Not applicable.


Macros Font embedding Digital signatures
PDF Yes Yes Yes
DOCX Yes Yes Yes
DOC Yes Yes Yes
ODT Yes No Yes
RTF No No No

Features (continued)

Font sub-setting1 Embedded video Bookmarks
PDF Yes Yes Yes
DOCX No No Yes
DOC No Yes Yes
ODT No Yes Yes
RTF No Yes Yes

  1. Font sub-setting. Unlike font embedding, where all the characters belonging to a font family are inserted into the document, font subsetting only embeds the characters used in the document in question (e.g., A, E, and F instead of A through Z). This reduces the file's size.


File size

So, which format is best? It depends on your needs. If file-size is the most important issue, choose RTF.  DOCX, ODF, and PDF files are larger, even though they are compressed by default, and RTF is not. RTF is plain text. You can open it in Notepad and see all the statements. For example, here's what I see when I open my RTF hello-world document with Notepad (not WordPad):

and here is what I see when I open up my DOCX hello-world document:

Is the second document XML? No. It's XML compressed into zeroes and ones. If you want to see the real XML, change the extension of the file from .docx to .zip and uncompress it. Then, you will see the XML file. Open that in Notepad.

So, to repeat, RTF is smaller than the other formats, even though they are compressed and RTF is not. When I zip up my RTF file, it shrinks to 1.54 KB. Not bad!


When it comes to features, there's no comparison. PDF wins hands down. It's not just font-subsetting. PDF also gives you explicit control over the layers, view, and color of a document.

Layers.  Other formats like DOC and ODT also have layers, but they're hidden. The only time you deal with them is when you send an object behind another object. Adobe Acrobat has a panel devoted just to layers and when you open a PDF in Adobe Illustrator, you can edit them individually.

View.  You can also control how PDFs are viewed down to a minute detail. You can specify the initial zoom level and page when the document is opened. You can also allow or deny editing, printing, and copying of text on a case-by-case basis.

Color.  The PDF also gives you extensive control over the color of your documents. Computer monitors display everything in mixtures of red, green, and blue (RGB). Printers work in CMYK (cyan, magenta, yellow, and black). A PDF file can be saved in both modes. It can also be saved as an LAB (luminance a-b) image.


To be fair, some features are not universally liked. Macros, for example, can be used to spread virii. Macro viruses are especially common in Adobe PDF and Word Documents. Here's a summary of the types of macros each document format supports:

PDF: JavaScript
DOC: Visual Basic
ODT: Basic, Python, and JavaScript
RTF: Not applicable

So, if you like writing macros, may suit you best. If you prefer security, use RTF, as it doesn't support macros.

Thursday, February 18, 2010

A Web-based HTML Editor

I like web-based applications. You don't have to install anything on your computer to use them. They're usually free, too. So, I have created the world's first web-based HTML editor, here: Unlike other free HTML editors, it gives you hints while writing your code. It also color-codes your HTML. (Although, currently, the color-coding feature only works in Internet Explorer.) There is also a real-time preview displayed in the lower half of the page. You can also save your code by clicking on the disk icon at the top and to the right on the page.

The editor uses JavaScript to provide the code hints and color the text. It of course also uses HTML and CSS. The buttons were created in Adobe Flash.

Monday, August 31, 2009

Why Firefox Should Support ActiveX

Check it out. Pretty sweet, huh? If you're using Firefox or Safari, you won't be able to see it. It's a calendar. All you have to do to embed one in a page is type the following code:

<object classid="clsid:232E456A-87C3-11D1-8BE3-0000F8754DA1"></object>

That's one line of code. In contrast, I made a calendar on my site in HTML, CSS, and Javascript that performs most of the same functions: I made that with 95 lines of code, plus 33 lines of CSS and a 40 lines of JavaScript. I had to add the JavaScript to ensure it would display properly in browsers other than Internet Explorer. There are many other ActiveXObjects you can use. You can browse them using OLE View. Unfortunately, Internet Explorer 8 seems to be moving away from ActiveX. I added a Windows Media Player object to a site of mine and whenever someone tries to view it, it displays a warning asking if the user is sure they want to watch the movie. Flash objects don't trigger the warning. It must be a security issue, but crackers can exploit all features of a browser, including JavaScript, for malicious purposes. Should we disable JavaScript, too?

Thursday, August 27, 2009

List of Navigator Attributes by Browser and Operating System

As a web designer, I have had to test my sites in many different browsers. My pages tend to be customized for each browser, and over time, I've accumulated a list of navigator attributes that I test for. Sometimes I redirect a browser based on what operating system they use (navigator.platform) other times by language (navigator.systemLangauge, which isn't supported by Firefox). So, here's a table of the attributes for which I've tested. I believe that some people would find it useeful. Note that these were obtained in different operating systems (usually virtual machines). Internet Explorer 2 is not included in the results because it did not support scripting:

Windows (all 32-bit versions)  Win32
Mac OS 10.5  MacIntel
openSUSE 11.1  Linux i686
Ubuntu 8.04  Linux x686
Solaris 9  SunOS5.5.1_i86pc

BrowserUser agent
Internet Explorer 8 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Internet Explorer 7 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Internet Explorer 6 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Internet Explorer 5 Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Internet Explorer 4 Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)
Internet Explorer 3 Mozilla/2.0 (compatible; MSIE 3.02; Update a; Windows NT)
Firefox 3 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)
Firefox 2 Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: Gecko/20081217 Firefox/
Firefox 1 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Safari 4 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2 Safari/530.19.1
Safari 3 Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.28 (KHTML, like Gecko) Version/3.2.2 Safari/525.28.1
Safari 2 Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3
Konqueror 4.1 Mozilla/5.0 (compatible; Konqueror/4.1; Linux) KHTML/4.1.3 (like Gecko) SUSE
Opera 9.64 Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1
Opera 8.5 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50
Opera 7 Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.02 [en]
Chrome 2 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/ Safari/530.5
Netscape 4.79 Mozilla/4.79 [en] (Windows NT 5.0; U)
You may have noticed that Opera 8.5 identifies itself as Internet Explorer 6.0 by default, although this can be changed by going to Tools → Preferences → Advanced and selecting another option from the Browser Identification drop-down menu. That browser never ceases to impress me.

You may have also noticed that almost every browser includes the word Mozilla in its application version information. It has nothing to do with Firefox. This is an old spoof used by browsers to pretend that they were Netscape Navigator.

BrowserApp name
Internet Explorer 8 Microsoft Internet Explorer
Internet Explorer 7 Microsoft Internet Explorer
Internet Explorer 6 Microsoft Internet Explorer
Internet Explorer 5 Microsoft Internet Explorer
Internet Explorer 4 Microsoft Internet Explorer
Internet Explorer 3 Microsoft Internet Explorer
Firefox 3 Netscape
Firefox 2 Netscape
Firefox 1 Netscape
Safari 4 Netscape
Safari 3 Netscape
Safari 2 Netscape
Konqueror 4.1 Netscape
Opera 9.64 Opera
Opera 8.5 Microsoft Internet Explorer
Opera 7 Microsoft Internet Explorer
Chrome 2 Netscape
Netscape 4.79 Netscape
As you may have guessed from the above answers, detecting Netscape Navigator is a bit tricky today! It makes me wonder whether the usage share of Netscape Navigator is under-estimated by HitsLink!
BrowserApp version
Internet Explorer 8 4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)
Internet Explorer 7 4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Internet Explorer 6 4.0 (compatible; MSIE 6.0; Windows 98)
Internet Explorer 5 4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Internet Explorer 4 4.0 (compatible; MSIE 4.01; Windows 95)
Internet Explorer 3 2.0 (compatible; MSIE 3.02; Update a; Windows NT)
Firefox 3 5.0 (Windows; en-US)
Firefox 2 5.0 (Windows; en-US)
Firefox 1 5.0 (Windows; en-US)
Safari 4 5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2 Safari/530.19.1
Safari 3 5.0 (Macintosh; U; Intel Mac OS X 10_5_5; en-us)
Safari 2 5.0 (Macintosh; U; PPC Mac OS X; en)
Konqueror 4.1 5.0 (Compatible; Konqueror/4.1; Linux) KHTML/4.1.3 (like Gecko) SUSE
Opera 9.64 9.63 (Windows NT 5.1; U; en)
Opera 8.5 4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)
Opera 7 4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1)
Chrome 2 5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/ Safari/530.5
Netscape 4.79 4.79 [en] (Windows NT 5.0; U)
To test this out in your own browser, type the following code into a text file and save it with a .html or .htm extension:

      <script type='text/javascript'>
         document.write("User agent: " + navigator.userAgent + "<br/>");
         document.write("App name: " + navigator.appName + "<br/>");
         document.write("App version: " + navigator.appVersion);

Wednesday, July 22, 2009

What is "computer science"?

How academics are limiting our understanding of computers

Edsger Dijkstra said that computer science is no more about computers than astronomy is about telescopes. He couldn't have been more wrong. To define the term as anything more than the sum of those two words is exaggeration. In reality, academics like Dijkstra have re-defined computer science as a synonym for programming, largely ignoring other fields such as networking, administration, and hardware. My alma mater has a computer-science curriculum mostly devoted to learning Java. They have a second major called "Applied Computing Technology" with a strong emphasis on artificial intelligence. They offer two elective courses on networking. I majored in computer-information systems (among other things) at CSU.1 That major required you to take two courses covering networking. But those just scratch the surface.

I just earned my Network+ certification. It's one test, but it covers more ground than both CIS networking courses. And Network+ is considered an entry-level certification. In order to become a CCNA (Cisco Certified Network Associate), you have to pass two challenging tests. Then, you can become a CCNP (Cisco Certified Network Professional) after passing two more tests. And there are three different types of CCNPs. You can be a CCNP specializing in routing, voice communication, or security. There are people who have all three CCNP certifications. Then, you can become a CCIE (Cisco Certified Internetworking Expert), specializing again in voice, routing, or security. You can also earn one of the many certifications from Microsoft if you want to learn how to run a Windows server. There are separate Microsoft tests for e-mail servers (Exchange), Active Directory, and so on. You can also earn a certification on how to run a Linux server. As you may have guessed, you could easily fit all of this material into a Ph.D. education with material left to spare.

Cisco Certification Path
The Cisco certification path.

So, I think categorizing these programs at universities as "computer science" is misleading. My friend majored in computer science at CSU and he said that he's a "networking guy." There are many students like him who enter college thinking they will learn about networking (or system administration), but end up studying Java — or worse — programming theory.

There are two solutions to this problem. The first is to admit that your students are studying programming and rename the department and major to take this into account. The other solution is to create a second major and call it "networking." Then, rename the computer-science major to "Programming." The networking major could include courses devoted to routing, security, telephony, wireless networking, databases, Windows-server administration, and Linux-server administration. You could easily make room for these subjects by eliminating courses you don't need. At CSU, for example, they teach a course on artificial intelligence, which is ridiculous. They also teach a course on graphics with 3-D modeling using Google SketchUp. Replace both of those courses with networking ones. Google SketchUp isn't used for 3-D modeling outside of CSU and you shouldn't be teaching modeling when there are art and construction departments at CSU that can go into it in more detail. They also offer a web-design course for CS students covering HTML, CSS, and PHP. Web design technically isn't networking, but in my experience, it still helps to understand it. They offer a web-design course for CIS students at CSU, as well, but it covers ColdFusion. ColdFusion is not nearly as common for server-side programming as PHP or ASP.NET. The same goes for Java. Java is being replaced on the server side by PHP and ASP.NET. On the client side, it is being replaced by Flash and AJAX. This re-inforces my view that universities in general are mismanaged. I had a similar experience while earning my bachelor's degree in "business management." A couple of the courses for that major taught us how to organize companies (something a president or vice president might worry about, but not a fresh college graduate). They also offered a course on public relations. Universities are lost in theory.

So, in order to prepare students for the real world, better equipment and professors help. But what is needed the most is direction. Universities need to teach the right things to their students. I've learned far more by reading books on my own than I have in school. There was no professor telling me what to study. There were no computer labs. And yet, I can still put what I know on my resume and tell employers what I know in interviews. I emphasize what I know and not what courses I took. Does that say more to an employer than a degree? I think so.

1. They should name it "Business Information Systems."

Wednesday, June 18, 2008

Comparing Linux to Windows










  The quality of Linux distributions has improved dramatically in recent years. Mark Shuttleworth, a wealthy South African, invested millions of dollars into developing his own free distribution called Ubuntu, first released in 2004. In 2005, Novell released a free version of SUSE Linux called Open SUSE. And in 2002, Sun Microsystems introduced a free alternative to Microsoft Office based on its own Star Office suite called Open Office.Because of the gains it has made, it is a good time to write a complete, fresh evaluation of the strengths of Linux and Windows. Linux is more secure and stable and is less expensive than Windows. But due to issues of compatibility and utility, it is not a viable alternative to Windows for desktop users, although it remains viable for business applications. Today, Linux is the second-most popular operating system for business desktops.1


Security.  Linux is more secure than Windows against external threats. For one, Linux is based on a mlti-user operating system (UNIX). Thus, there is a clear separation between accounts and their functions in Linux. Unlike in Windows, users are not given administrative privileges by default. In order to perform an administrative task — like access a control panel or install a program — a user must enter the administrator’s password. At the command prompt in Linux, a user can type su, “substitute user”2 to log in as root (administrator) for the session. They can also type sudo, “substitute-user do” to perform a single command as root. Windows Vista also prompts users before making important changes, although this is user confirmation, not authentication. Linux even has a firewall called iptables built into the kernel. It has no services that await external connections like Windows. In the past, worms such as Blaster used this vulnerability to spread.3

In Windows, viruses have infected users of Outlook who simply opened e-mails — not their attachments. Others have been infected just by visiting web sites. Others still have been infected by doing nothing at all: They simply connected their computers to the internet. No doubt, many undiscovered vulnerabilities exist in Linux, but there has not been as much motivation on the part of the criminals to exploit them. Less than one percent of consumer desktop computers use Linux, so even if an individual machine is compromised, there is little possibility of a virus spreading to other Linux machines. In 2007, 91 percent of desktop computers ran Windows.4 Although there have been viruses that have targeted Linux in the past, there are currently none in the wild.

Internal security, however, is a different matter. There are many internal security flaws in Linux. For example, if you have forgotten your password, you can log into BASH as root by editing the boot options in GRUB (a Linux boot loader), although GRUB can be protected by a password.

Servers.  Linux Apache servers have fewer security issues than Microsoft IIS servers.5 One reason some give for this is the smaller surface area of a Linux server. The surface area is the footprint in terms of code, ports, and features that expose it to the Internet.6 Windows Server 2008 will try to address this issue by installing fewer features by default. Having fewer features installed reduces the number of patches administrators have to install whenever vulnerability is discovered. This is not to say that Linux servers are immune to threats. An example of malware that targeted Apache servers was the Slapper worm of 2002. Unlike desktop computers, a significant percentage of servers use Linux. The most-recent survey from Netcraft shows 48% of servers using Apache and 37% using Microsoft, although the latter are gaining ground.7

Fewer third-party security applications are designed to run on Linux than on Windows, although there are still many choices. Bit Defender – ranked fourth by Consumer Reports in 20078 – offers an antiviral program for Linux and Windows. McAfee also sells a program called Linux Shield. Other antiviral programs for Linux include Kaspersky, AVG, and Avast! However, three other popular antiviral programs — ZoneAlarm, Trend Micro, and Live OneCare — have not been ported to Linux.

Novell’s App Armor is a firewall and access-control program built into SUSE Linux and the latest versions of Ubuntu and Mandriva. One can also install SE Linux or Systrace for this purpose.

Stability.  Unlike NTFS or FAT, the ext3 file system does not need defragmentation.9 Although there are defragmentation programs available for Linux, none of these work well enough to warrant using. To reduce fragmentation, some distributions create separate partitions for the page file (called the swap partition) and for a user’s home directory. The latter is important because more of the fragmentation in hard drives results from the movement of documents, pictures, and music, than programs.

However, unlike the NTFS, the ext3 system does not calculate a checksum when writing to the journal. This raises the danger of corruption of the journal if a system crashes.

Luckily, Linux almost never crashes.10 Individual programs may freeze, but the system as a whole does not need rebooting. It is possible to leave a Linux machine running for months without restarting it.11 This is an advantage especially for servers. Windows is improving, though: Windows Server 2003 requires fewer restarts than Windows 2000.12

Tom Yager wrote in InfoWorld that Linux loses when it comes to the other sense of stability: consistency over time. According to him, Linux changes too often to win over business customers.13


Hardware.  Unfortunately, some peripheral hardware manufacturers do not make drivers for Linux. Those that do so often make them for certain distributions. For example, my scanner from Canon will not work in Linux because Canon does not make Linux drivers for it. However, Linux hardware compatibility did improve with the release of version 2.6 of the Linux kernel in 2003.14

Linux was actually designed to run easily on many types of computers. It can run on mainframes with very few modifications to the kernel15 (although mainframes are designed to run many types of operating systems). Compatibility does depend on the distribution, though. For example, Debian and Gentoo Linux can run on x86, Power PC, Itanium, SPARC, ARM, MIPS, PA-RISC, DEC Alpha, and ESA/390 processors. Fedora, on the other hand, can only use x86 or Power PC processors. Because of the range of hardware supported, Linux may be a viable option for older computers running unsupported versions of Windows (e.g., Windows NT or 98). Emerging security holes in Linux are patched, whereas those in unsupported Windows releases are not.

Linux tends to scale well.16 Figure 1 in the Appendix shows an experiment conducted with an IBM zSeries processor using Linux. It shows that the response time of the CPU increased at a linear rate as copies of a workload were added. Each time a CPU was added to compensate, the response time was roughly halved.

Windows.  Installing a new operating system is usually difficult and dangerous. This is especially true when trying to run two operating systems on the same computer. But Microsoft has made this more difficult than would normally be true. It has made very little effort to provide interoperability with Linux. Windows will only see Linux partitions or drives if you install an add-on from a third party. Consequently, booting both Windows XP and Linux is best done using the Linux boot loader. Linux distributions usually automatically add Windows to their boot menus, but Windows does not. It is relatively easy to configure Vista’s boot loader for this, though.

Although newer Linux distributions automatically see Windows drives, not all automatically support writing. Open SUSE users can only read NTFS files by default. Ubuntu users can edit them by default. There is a risk of damaging NTFS partitions when mounting them as writable.17 However, I have had no problems with this nor have my friends. The worst I have ever seen was a Windows disk check at boot-up. FAT 32 partitions are mounted as writable in all distributions.

Can free software be valuable? It depends. Even commercial versions of Linux compare favorably with Windows in terms of licensing costs. In 2004, for example, a copy of Red Hat Linux cost $50 compared to $200 for Windows XP. And if you purchase a copy of Linux, you can usually install it on as many machines as you wish without any extra fees.18 Almost all applications that run on Linux are free, as well.

However, most business computing costs result not from software licensing (typically 8-10% of costs) but from administration, development, and support (50-70% of costs)

Figure 1


The total cost of ownserhip of Linux.
Source: McMillan, Robert. “The Business Case for Desktop Linux,” InfoWorld, Vol. 26, Issue 31 (2004) p.50

Windows XP Professional comes with a group of servers called IIS (Internet Information Services). So if you already own a copy of Windows, you can conceivably run a server on it for free. Apache can also be run without cost on Windows. However, XP restricts the number of simultaneous connections to the server to ten and the number of hosted web sites to one.19 Windows Vista also comes with a server but does not restrict the number of simultaneous connections. However, both Windows XP Professional and Vista Ultimate only support up to two processors running on one computer. The number of processors supported on Windows Server 2003 ranges from four (for the Web Edition) to 64 (for the data center edition).20 See ‘Compatibility’ above for information on how Linux can create value through its long hardware support cycle.

Windows is more user-friendly than Linux, although this is changing. Today, practically anyone can install and use Linux, although usability varies depending on the distribution. For example, the newest version of Ubuntu Linux automatically configures a user’s printer during installation. Likewise, SUSE downloads the printer drivers for its users during installation. On the other hand, in Debian, a GUI is not installed by default.21 Individual packages (e.g., CDW, a CD-ROM burning package) are selected during installation. Gentoo’s files must be compiled before installation. Another factor that determines the usability of a distribution is the choice between the GNOME and KDE desktop environments. Those used to Windows have a harder time learning GNOME because it is less similar to the Windows GUI. For Macintosh users, GNOME might be easier to learn. Many distributions offer a choice between the two during installation. (See Figure 2 in the Appendix.)

Figure 2
Ease of use by operating system

Another usability problem with Linux involves documentation. The built-in GUI help documentation of Linux is less comprehensive than Microsoft’s. In most cases, it is of no use. To be fair, the documentation for the command line in Linux is very good, but the most comprehensive and readable Linux manuals have to be purchased.

Insallation.  Program installation is more difficult in a Linux environment than in Windows. For example, to install programs in older versions of Red Hat, SUSE and Fedora Linux, one had to download an .rpm (Red Hat Package Manager) file, navigate to its folder in the command prompt, and type rpm -i [file name]. To uninstall it, you had to search for the package name (rpm -qa), then uninstall it (rpm -e [package name]). Today, in many distributions common Linux programs are listed in graphical configuration tools. SUSE uses a program called YAST for this. Fedora has a graphical installer as well located in the System menu named Add/Remove Programs. In Ubuntu, it is in the Applications as Add/Remove. But the easiest to use of all is the new double-click installation feature introduced in Open SUSE 10.3.

Newer Debian-based operating systems (Ubuntu, Debian, Xandros, and Knoppix) have an installation command called apt-get, “application package tool-get.” You type apt-get install [program] and the computer will download and install the program for you. However, if you mis-spell the program’s name, the utility will return an error message.

Unfortunately, obscure Linux programs are often distributed as source code. For these, users create make-files, then install any missing supporting programs for the application, and then install them – all from the command line.

For businesses, switching to Linux can present daunting difficulties. For them, a strategy of gradually introducing open-source applications may be a better alternative than installing an entire Linux operating system. For example, having employees use Open Office inside Windows reduces the training they will need when they switch to Linux.

Configuration.  Although many settings can be configured via the graphical interface in Linux (e.g., the screen resolution), many settings are still set by editing text files. For example, in SUSE, you can configure boot settings via YAST, but in Ubuntu, you must edit the GRUB.LST file in the /ETC/GRUB directory. In Windows XP, you click on the following links: Control Panel → Performance and Maintenance → System → Advanced → Startup and Recovery.

Linux’s Apache web server also relies on editing text files for configuration, while Microsoft’s Server 2003 primarily relies on a GUI. Some Linux distributions allow the configuration of Apache via a graphical tool, though. For example, SUSE Linux allows Apache configuration using YAST. Some have said that server patch management is easier using YAST than Windows Server 2003.22

The Linux community is helpful to fellow users. There are many forums where one can post questions, and you usually receive an answer within 24 hours. Of course, Windows users have their own forums to do this, as well. At least a dozen people – usually more – read each post. Often, though, none of them know how to fix the problem. Of course, in many businesses, a 24-hour maintenance window would not be good enough. For them, distributors like SUSE and Red Hat sell packages with support contracts. Linspire, a commercial distribution, also offers e-mail support (albeit with a 24-48 hour window).23

Application.  There are many more applications designed to run on Windows than Linux. However, there are free Linux replacements available for the most-popular programs. For example, there are Evolution, K-Mail, Thunderbird, and Kontact for Outlook. However, these applications are harder to use and have fewer features. For example, Linux mail programs generally cannot access HTML mail sites within the client. In addition, importing contacts or mail from other applications is very difficult.For chat, Linux uses a free application called Pidgin. It was very easy to configure for me and it works flawlessly with my AOL screen-name. There are also free photo editors, word processors, PDF editors, calendars, and games. The quality of some of these applications comes close to those found in Windows. For example, the GIMP image editor contains many features and is considered by many to be a viable alternative to Photoshop.24 Likewise, although not considered superior, the Open Office suite is considered a viable alternative to Microsoft’s Office. Users can export presentations as flash files. They can also export documents as PDF files (Office 2007 has an add-on that also does this). Nevertheless, learning how to use another set of applications is never quick or easy. Recently, improvements in a Linux application called Wine have enabled Linux users to install and run simple Windows applications. Another program called CrossOver enables users to run certain complex programs, like Microsoft Office, World of Warcraft, and Adobe Photoshop, on Linux – although the program must be purchased and it does not support some of the newer program versions. Unlike in the desktop arena, more applications are available for Linux mainframes than for other operating systems.25 Simpler Linux distributions are useful in other respects. For example, distributions like Slackware, Gentoo, and Debian force the user to learn how their system works. They also tend to run faster. This is especially true without a GUI installed and when they are compiled on the user’s machine. Some say that using a command prompt is slower because it takes longer to type commands than use a mouse. But these people may not be factoring in the faster response time of the prompt to commands once they are submitted. Simple distributions also require less disk space. Slackware, for example, only occupies about 100 megabytes.26 Finally, they are very customizable.

If you want to try a Linux distribution, you can download a live CD. Live CDs are self-contained Linux installations that you can run from a CD drive. They make no modifications to hard drives and store all of their working files in memory. But because they tie to take up more of a system’s memory, they run slower. SUSE, Mandriva, Ubuntu, Linspire, Fedora, Slackware,27 and Gentoo offer live CDs.

Linux is still a work in progress and cannot replace Windows. However, dual-booting Linux is useful. Given the progress it is making, Linux will soon become a viable alternative.


Figure 1


The performance of Linux as workloads are added.

Figure 2
Desktop selection in Open SUSE Linux

Figure 3


Type of program
Word processor
Microsoft Word
OpenOffice Writer
 Microsoft Excel
OpenOffice Calc
Microsoft PowerPoint
OpenOffice Impress
Adobe Illustrator
Microsoft Access
OpenOffice Base
Web pages
Adobe Dreamweaver
Microsoft Outlook
Contact manager
Microsoft Outlook
Web browser
Internet Explorer
Mozilla Firefox
Disc burning
Music player
Windows Media Player
Movie player
Windows Media Player
Movie editor
Movie Maker
Image editor
Microsoft Paint
Command line
Text Editor


1. McMillan, Robert. “The Business Case for Desktop Linux,” InfoWorld, Vol. 26, Issue 31 (2004) p. 45
2. Hagen, William von. Ubuntu Linux Bible, (Wiley, 2007) p. 104.
3. Ibid. p. 171.
4. Thomas, Keir. Beginning Ubuntu Linux. Second Edition (Apress, 2007) p. 6
5. Combating Spyware in the Enterprise. (Syngress Publishing) p. 268
6. “Windows Server 2008 Features Address Linux Challenge” eWeek (May 17, 2007)
7. “October 2007 Web Server Survey” Netcraft.
8. “Net Threats,” Consumer Reports, Vol. 72, Issue 9 (September 2007)
9. Easttom, Chuck. Moving from Windows to Linux, (Charles River Media, 2004), p. 11.
10. Thomas. p. 8
11. Gagné, Marcel. Moving to Linux: Kiss the Blue Screen of Death Goodbye (Addison-Wesley, 2003)
12. Tittel, Ed and James Michael Stewart. Windows Server 2003 for Dummies (Wiley, 2004)
13. Yager, Tom. “Linux Can’t Kill Windows” InfoWorld. (2007) p. 58
14. McMillan, op. cit., p. 50
15. Eilert, John. Linux on the Mainframe (Prentice Hall, 2003) p. 31
16. Ibid. p. 33
17. Thomas, Keir. Beginning Suse Linux. (Apress, 2006) p. 274.
18. Easttom. op. cit.
19. “Internet Information Services 5.1”
20. Tittel. op. cit.
21. Barkakati, Naba. Linux All-in-One Desk Reference for Dummies (Wiley, 2006) p. 43
22. McMillan. op. cit., p. 50
23. “Support” (Linspire, 2007) [Accessed November 19, 2007]
24. Easttom. op. cit. p. 286
25. Ibid. p. 41
26. Negus, Christopher. Linux Bible. (Wiley, 2007) p. 42
27. The Slackware live CD (Slax) is offered through a separate project.

Copyright © 2008. Richard Maxwell.