You are viewing a read-only archive of the Blogs.Harvard network. Learn more.
 

Thoughts: Windows and defaults

December 5th, 2007

A few days ago, a friend mentioned that one of the great things about Windows was that he could call a tech support number and get immediate help with any hardware or software problems. Having called tech support (not for Windows) in my earlier years, and finding it neither immediate nor helpful, I found his argument unpersuasive. A little while later, he lamented the problem of choosing a distribution and the difficulty of acquiring a copy of Linux to install. While I was sympathetic to the information overload involved in choosing a distribution, I found the other argument strange. Linux strikes me as one of the easiest pieces of software to acquire, period. You can buy it in a store, have a disk mailed free of charge, or download it over http, ftp, and bittorrent.

I only realized later that he wasn’t arguing that it is difficult per se to get Linux – because it clearly isn’t. What he really meant is that it is difficult to make a choice among all the different avenues of acquisition. It isn’t that major Linux websites make it a chore to find an install link – it’s the fact that there are so many of them, and that you have to make a choice as to which one you want. What he, likes about Windows (and implicitly, OSX) is not the technical superiority or troubleshooting efficiency – but the fact that it has clear defaults. Want to install Windows? Choose Vista or XP. How are you going to get it? Go to a store and buy it. Having trouble with your new webcam? Call the listed tech support number. It doesn’t matter that a one-size-fits-all operating system is the computer equivalent of an elastic waistband (as compared with a tailored suit), it doesn’t matter that I can download an install disk faster than I could drive to a computer store, and it doesn’t matter that 10 minutes of googling will get you better results than 45 minutes on hold at tech support. The choice has been made for the user and that is why it is straightforward and easy – and inefficient.

Interestingly enough, software repositories, one of my favorite aspects of Linux and other Unix-like systems, closely resemble this idea of defaults. Software repositories are a great way to let one centralized system handle your installation, uninstallation, and upgrading of all the software on your Linux system. Many Linux distributions come preset with a main software repository that serves as your source of programs, drivers and updates.

The fact that I can now pick and choose the software that I want from a single program stands in stark contrast to fond memories of browsing Tucows and other shareware sites in my youth. Indeed, software on Windows is still a very decentralized experience. Shareware, freeware and independent software developers are still major sources of Windows programs, not to mention major developers and Microsoft itself. Programs tend to have their own separate little update applets, and even have their own uninstall icons in the Start menu (although there is a nice unified uninstall interface in Windows). So interestingly enough, software repositories appear to be a default implemented by your Linux distribution – that is to say, a default source of new programs.

However you can still find Linux software in the same decentralized manner as you would with Windows. Just browse SourceForge or sites dedicated to specific software projects, download, compile (if necessary), and use. In fact, whenever I need a new version of a piece of software really quickly, either because the one in the repositories hasn’t been updated fast enough for me, or if a piece of software isn’t in the repositories at all, that is exactly what I do.

But one great feature of the repository system is that it can have all the benefits of centralized software management with the benefits of decentralized software choice. True, I can go to different websites to download new programs and run them – either on Windows or on Linux. But on Linux, I can add third-party repositories.

What this means is that if a third-party software developer or interested user creates their own repository (and many do), then I can add it to my system simply by copy-pasting the repository address into my preferences. This means that I can have my cake and eat it too: I get to enjoy all the Linux software out there, and my system updates and manages it in one central location, without any extra work for me.

Adding a Third-Party Repository
Adding a Third-Party Repository

Although Linux repositories appear to be a default set for you by your Linux distribution on a very important choice (source of software), in reality the repository system enables choice by making it easier to manage a wide variety of software from different sources. Thus, just as you get the benefits of both centralization and decentralization of acquiring and maintaining software, you also get the benefits of having a default (main distribution repository) and of having choice (easy addition of third-party repositories).


Part I: Birth of a Nerd

December 3rd, 2007

A Letter of IntroductionNerd graphic

To know where I’m going, it should help to know where I’ve been. I’m also writing this partly in order to establish my credibility with readers who don’t know me personally. It’s easy, and perhaps understandable, to dismiss what I say on the basis that I’m in law school rather than pursuing a CS PhD. While my skills don’t even begin to approach those exhibited by many of the tremendously talented individuals in the Linux community, I hope that my life history can convey what abilities and knowledge I do have, and my passion for computing in general and Linux in particular. In any case, what follows is a brief overview of my desktop computing history.

My formative years were spent in dual environments. On the one hand, I spent countless hours behind books, developing a love of reading and a familiarity with the original text-based interface. On the other, I spent time both at school and at home on Macintoshes, and avoided clicking on anything that didn’t have a fun-looking icon (Shufflepuck and Dark Castle were my favorites). Perhaps the first indication that I was a budding computer nerd was my delight at “discovering” the debug prompt after a rare crash.

A few years later I was running a 486 DX/33 (8 MB RAM, 100 MB HDD, 15″ SVGA CRT…what a beautiful machine it was!) with a “Turbo” button on the front that I would click on so that I could play Tie Fighter and other games (the former listed a 66 Mhz machine as part of the minimum specs, but thankfully my machine, running at half that clock speed, handled it gracefully).

MSDOSI would like to focus, however, on the command line interface (CLI) that led me to what I am today. True, my 486 ran Windows 3.1 – but it didn’t boot directly into a GUI. Instead, the vendor had set up the system so that it booted into MSDOS, at which point I could type in ‘win’, and the familiar Windows splash screen would appear onscreen. This small configuration choice exposed me to the CLI, and on many days I would prefer to play around in DOS before reluctantly typing ‘win’ in order to write up my homework.

Here I learned a valuable lesson:

* Curiosity is crucial. Sometimes you must be willing to sacrifice efficiency in order to satisfy your curiosity. This is a necessary cost of learning a new system.

Were it not for my curiosity at the little blinking cursor and the wise counsel of my father, I might never have typed that first DIR command, and the many, many other commands after it. I was genuinely curious about this strange, arcane interface, and spent many happy hours reading through bulky manuals and 3-2-1 Contact! articles on elementary BASIC programming. Much as my switch from MacOS to MSDOS required that I sacrifice time and energy to learn the system, so it did with going from Windows to Linux, but the key was that I found it genuinely enjoyable to do something as seemingly mundane as editing autoexec.bat (or as the case may be now, xorg.conf).

Time went on and I acquired a Windows 95 machine. The migration to Win95 was smooth because the investment I had made in MSDOS and Win3.1 was directly applicable to Win95 and the newer included version of MSDOS. However, while the initial fixed cost I paid (learning to use the system) was low, the continuing operational cost (actually using the system) was relatively high. As a prospective IT professional, I experimented in many areas – networking, security, and other aspects of system administration that were accessible to someone with few programming skills. I began to find it difficult, however, to maintain the little computer setup I had at home – many tasks too big to be done easily by a human but too small for a full blown compiled program were completed inefficiently through semi-manual means (RECORDER.EXE and clunky batch file scripting come to mind). As I developed into a power user with thousands of files and multiple boxes, I found my consumer-oriented OS constraining.

I built my next system around Windows 98, and later Windows XP, where I enjoyed the ease of use and widespread compatibility that Windows affords, but suffered initially from the same power user problems as I had with Win95. The introduction of the internet into my family’s home helped enormously – all of a sudden, I could seek out and install third-party programs that made my system more powerful and flexible, and I continued to spend time playing and learning. I could look for ways to hack the Windows registry and other parts of the OS, and in the process of following others’ instructions, I often taught myself new things as well. For several enjoyable years, I was content with my desktop computing experience. My hardware worked great, I had lots of great software to play around with, and for the most part, my system was stable. Looking back, I realized something important:

* Many power users can configure their systems to their satisfaction. They may not see significant room for improvement in their computing experience. They don’t know what they are missing.

Soon I was off to college with an iMac running a newly-released copy of Mac OSX. The interface was beautiful then, as it is today. However, the real key for me was the discovery of Terminal.app, the first second CLI in an Apple operating system. OSX’s BSD underpinnings meant that I was exposed to a truly powerful CLI, and gradually materials referencing Unix and Unix-like systems became a little less mysterious.

* Linux and Unix can seem strange and mysterious to a dyed-in-the-wool Windows user. That is normal, and that is natural – but it is mistaken. Despite what you may have heard, Linux can be demystified.Cha-ching

My iMac’s major shortcoming was that it was just barely powerful enough to run OSX. I would have preferred to run MacOS 9 (the original installed OS), but the fact of the matter was that I had a copy of Office that ran on OSX, not on OS 9. Eventually it came time to build or buy a new system. Thanks to my growing familiarity with various operating systems, whether through first-hand knowledge or hearsay, I had a variety of choices in front of me:

  • Buy a Mac. Pros: Familiar GUI, BSD base. Cons: Expensive, can’t build my own.
  • Build a Windows box. Pros: Familiar GUI, large software library, cheaper hardware. Cons: Have to pay for XP.
  • Build a Linux or BSD box. Pros: Free (can buy faster hardware), Unix underpinnings. Cons: Almost completely unfamiliar territory, no games.

Part II: A Choice is Made
Part III: An Inconvenient Choice


A Letter of Introduction

December 3rd, 2007

Linux InsideI have had a life-long love of computers and technology. While in college, I made a decision that has both enriched and complicated my computing experience: I switched to Linux.

One of the more common topics (and subject of a long-running Slashdot joke) that I see discussed online is the issue of how to get beginning Windows users to switch to Linux. While this is an interesting and important issue for the Linux community, it is not the focus of this blog.

Instead, I am interested in people like my old self: advanced computer users running Windows who don’t see Linux as a viable choice for an operating system. I have drawn upon a number of sources, including online forum postings and discussions with friends, in thinking about this topic. Ultimately, however, I plan on using my personal computing history as the main narrative here. Instead of presenting a bullet-point list of arguments for and against switching to Linux, I want to let you walk in my shoes to get a better understanding of what switching to Linux entails.

Richard M. StallmanHowever, there are a few things I am not here to do. I am not here to give step-by-step instructions for switching. I am not here to write about how to get a new driver working (Please do that in the proper forum! I am semi-active on the Ubuntu boards and am happy to help there). I am not going to give you cost-benefit analysis or tell you in strictly logical terms why you should switch to Linux. I am not here to bash Windows or Microsoft, or Apple for that matter. I am not here to talk about open source software or free software per se, although obviously there is much overlap between those concepts and Linux. Despite the warm fuzzy feeling that I get from running an open-source operating system and free software, my immediate interest is in what works best for me (or you) in the here and now. Though I love Linux, I try not to be a zealot or elitist (although I should note that I am willing to put up with quite a bit in order to continue running it on my personal desktop). If I were to talk to you in real life, I might think it in your best interest not to switch – or I may think that it is, or perhaps I might think that a dual-boot is best; in some cases, I might have no idea. My point is, I am trying to make my arguments in the same way that I made them to myself while I contemplated whether or not to switch – honest, straightforward, and in an informed manner.

This site is ultimately meant to foster a dialog – your comments, criticism and questions are encouraged. Welcome and enjoy your stay.

Part I: Birth of a Nerd
Part II: A Choice is Made
Part III: An Inconvenient Choice