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).


Thoughts: The future of Linux

December 5th, 2007

Occasionally, you will be frustrated with Linux. A driver won’t work. Maybe it will work, but poorly. Maybe it works, but only the core features work. Maybe some functionality in a program hasn’t arrived or is in its infancy. Or maybe you will just be tired of your boot-up splash screen looking kind of funny because of an obscure bug.

Ubuntu LogoWhatever the problem is, you can rest assured that time will heal your wounds. Better drivers get released. New features show up in your system updates. Soon, your irritation with that obscure bug may lead you to spend a few hours fixing it, and learning a little something in the process. I can only offer anecdotal evidence, but I can happily report that my Ubuntu system (with the exact same hardware) is prettier, speedier, and more robust than it was a year ago.

But of course, this is to be expected. Such is the nature progress. And your friends and colleagues running Windows and OSX have upgraded to Vista and Leopard, and the same rings true for them (well, more or less).

In fact, it may look to you like Linux is constantly in a game of catch-up with its more expensive cousins. It certainly looks that way to me. But my observations over the past few years have indicated that the catch-up game is moving faster.

* The passage of time brings more users to Linux. More users means greater support from hardware manufacturers and vendors. More support from them means a better Linux experience. And that improved experience leads to more users, starting the cycle all over again, only faster.

For a humorous alternative perspective, click on Steve below:

Switch to Linux()
Switch to Linux() (click to open in new window)


Part III: An Inconvenient Choice

December 4th, 2007

A Letter of Introduction
Part I: Birth of a Nerd

Part II: A Choice is Made

Cute TuxIt is all too easy for me to wax poetic about the joys of my operating system while forgetting of the trials and tribulations that switching to Linux entailed. Many, if not all, prospective switchers are concerned about compatibility with both hardware and software. In short, my experience is that compatibility out-of-the-box (so to speak) is lower than Windows, and generally speaking can be improved to a level comparable to Windows, but not always 100%. This is of course a very rough sketch, and is highly context-dependent. That being said, I think that the most useful information I can pass to the prospective switcher is that your best bet when faced with a compatibility issue is to follow a few general principles:

  1. Do your research
  2. Pick a few short-list candidates
  3. Make a choice
  4. Don’t be afraid to change your choice

I Can Has Tech Support?These are of course skills that are just as useful on Linux as they are on Windows; however, at least in my experience, it is easier to run Windows and never really need to make use of them, either because the compatibility is already there, or because a Windows user can just call a telephone number or two and get some help. Unless you have a local Linux expert who will take full care of your system, or for whatever reason you never run into any issues, you ought to be willing and able to hone both your troubleshooting skills and Linux familiarity throughout the tenure of its operation.

* With help from others, you will be your own support system – and the people you talk to will be better than anyone on the other end of a tech support line.

Hardware compatibility with Linux is a mixed bag. While older hardware generally is well supported, newer hardware can pose problems. I have encountered variable levels of compatibility:

  1. Hardware that works perfectly out of the box
  2. Hardware that works perfectly but needs a little work (e.g., downloading and installing a driver on my own)
  3. Hardware similar to #’s 1 and 2 above, but works imperfectly (e.g., core features may work, but other features may not)
  4. Hardware that does not work at all (it may work for people with different systems, or it may not work for anyone)

Designed for LinuxOf course, the ideal situation is to choose hardware that is compatible with Linux. This requires an additional step of research beyond what you would normally do for purchasing new hardware (such as comparing price, specs, etc.). There are a number of general and distribution-specific hardware compatibility lists (HCL’s) that serve as an excellent starting point.

* When buying hardware, do your research. Apply the same principles of thorough research, short-listing, and making a choice. You will be rewarded by having smoothly running hardware and will avoid frustrating experiences trying to make your expensive new piece of hardware functional.

But not everyone can afford new hardware, and many of us already have hardware that we would like to use. The same general principles apply. Do your research on the various HCL’s, forums, wikis, and bug trackers to see what other people are doing. This is not a bulletproof advice, and it will surely turn off many prospective switchers. It’s just the way it is.

* Sometimes, no matter what you do, you won’t be able to get a piece of hardware or software working. It might be that something else in your system is in conflict with it, or that better drivers or new bugfixes are needed. It might even be possible for you to fix it, but you just don’t have the time or inclination to do so at the moment. If this happens, you can:

  1. Buy new hardware
  2. Leave Linux, or
  3. Grin and bear it.

I personally have never been inclined to resort to #1. Several times, I have nearly gone to #2. For several years, I lived with #3, but my patience was rewarded with excellent drivers released earlier this year.

Many Windows users enjoy having access to a large selection of software, especially games. The prospective Linux switcher can essentially make one of two choices:

  1. Run the same Windows software under Wine or VMWare Player, or any number of other similar software packages, or
  2. Experiment with different Linux programs that provide similar or identical functionality to find a solution.

I don’t have too much experience with #1, and suggest that you explore the Wine compatibility database for a better understanding of their state of affairs. The reason I have not needed Wine or VMWare is that #2 has always worked for me.

* Many Linux distributions come with access to very large software repositories. This means that you can search, download, install and update software through a single program. This is a fantastic way to install 3-4 different programs of a similar nature and play around with all of them, and lets you easily uninstall the ones you don’t want.

* If your distribution’s repository doesn’t have the program (or program version) you want, you can download it directly from the software developer’s website. Depending on your Linux familiarity and the nature of the program, this can be easy or it can be more involved.

If there is one thing I can point to and say, “THAT is why I run Linux,” it would be the concept and implementation of repositories. I cannot speak highly enough of them.*


Software installation on Ubuntu (click to enlarge)

One last point: things can break. You may have your system up and running nicely, and a software update may end up causing a bug. This is, unfortunately, a normal (though not regular) part of the Linux experience. Linux ownership is active ownership, and you as a power user must be involved keeping your system running smoothly.

* When things break, you must either return to the past or move to the future. You can return to the past by rolling back your software update to its prior state. You can move to the future by seeking out a newer version of the offending software – one that hopefully does not have the breakage.

Note: Software repositories are not a feature exclusive to Linux, but in the desktop computing world, they are certainly absent from Windows and OSX. Back


Part II: A Choice is Made

December 3rd, 2007

A Letter of Introduction
Part I: Birth of a Nerd

Linus TorvaldsI decided in my second year of college that it was time for a new system. Price was clearly a major concern, both due to my status as a student and the occasional unpleasantness of running software on a slow system. Coupled with the recent advances in Linux usability on the desktop, my growing familiarity with Unix-like systems and an unpleasant experience reinstalling Windows XP on my parents’ computer, I decided that it was time to give Linux a shot – after all, if it didn’t work, what would be the harm? An hour and a fifty cent CD-R down the drain was no big deal.

* Taking Linux for a test run costs very little in terms of time and out-of-pocket costs. A Linux LiveCD gives you a great sneak-peek at Linux without installing anything onto your computer. If you don’t like it, eject the CD, reboot, and you’re back to normal.

After doing my due diligence on various distributions (more colorfully called “flavors”) of Linux, I had amassed a list of candidates with pros and cons for each one. This was not an easy process. There are literally hundreds of distributions. Each one may have several different releases or versions varying in age and stability available for download. My strategy was to focus on the best-known distributions, which I researched on Wikipedia and different distribution-specific forums.

* At some point, you just have to pick a distribution and run with it.  I personally would recommend Ubuntu.  Here is a great online quiz that will help you narrow it down.

Once I had settled on a distribution and release, I then had to choose how to acquire it (bittorrent? download from a mirror? if so, which one?) and how to install it (download one large install file, or download off the net during the install process?).

* Linux means choice. Being comfortable with winnowing down a large field of choices, researching the remaining ones, and making a decision is crucial to enjoying and fully utilizing a Linux system.

I should note how helpful it is to have someone experienced to help you when you are switching to Linux. I made the mistake of not having that someone. Instead, I used online forums as my surrogate local computer guru. Although forums and mailing lists are fantastic resources, and I have tremendous respect for those who populate them, remote troubleshooting is inherently more difficult than in-person troubleshooting simply due to the time lag and potential for miscommunication. In any case, as time progressed my self-sufficiency increased. However, I do not recommend such a path for anyone not willing to put in blood, sweat and tears in order to get something to work.

* A local expert is key for a beginning Linux user. Google, online forums, bug tracking websites, and mailing lists are invaluable resources. Consistent use of these resources will lead to self-sufficiency in troubleshooting.

DebianIn case you were wondering, I settled on Debian as my distribution, “testing” as my release (which struck a nice balance between stability and cutting-edge software), from a direct http download for the install using a mirror hosted on a nearby university; I chose to download software packages on-the-fly during the install (a “net install“) so I would download only what I wanted.

Part III: An Inconvenient Choice


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