A Little Explanation

Well considering the amount of talking I’ve done about “free software” and “GNU/Linux” over the past few weeks, it’s about time I explain myself. During the past 6 months or so, I’ve learned a lot about a little thing called free software. I’d like to take a few minutes and explain what free software is and why I find it so exciting. I will try to do this in “laymen’s terms” so that everyone can follow me, if they want to. [UPDATE: This post got a little lengthy. If you'd like to just skip to the final thoughts, click here.]

Free software is all over the place, and you probably use it (at least in a sense) every single day. Most web servers are run on GNU/Linux, so almost every web page you view is displayed by free software. This blog is powered by WordPress, which is free software, and being free software is what has made WordPress the most powerful and widespread blogging platform in the world. It’s so good that proprietary software can’t even come close to competing anymore. But what is free software?

In 1983 (n.b. the year I was born), a man named Richard Stallman became fed up with his situation. Back then, computers were mainly only found at universities and large companies and the main operating system (MS Windows is an operating system) that computers ran on was called Unix. Unix was a proprietary operating system (created by AT&T employees), meaning that AT&T owned the computer code that made up Unix. Other computer programmers were not able to edit this code or change anything about the way Unix worked. If you didn’t like the way Unix did something, tough cookies. This is very similar to the way Microsoft Windows and Mac OS X work today.

Stallman, then a programmer for the MIT AI Lab, decided he didn’t like this way of doing business. For him, computer software was just a way to make a computer do what he wanted it to. But what if you didn’t like Unix or if a Unix (or one of it’s programs) didn’t work the way you thought it should? You should be able to change that program and “fix” it to suit your needs. Since Unix was proprietary, Stallman couldn’t “fix” it or change it at all without infringing on copyrights and patents.

Rather than face prison, Stallman decided to write his own operating system. It would be just like Unix in many ways, except not Unix. He quit his job at MIT (to keep them from claiming any right to what he was going to write) and founded a project called GNU (say guh-NEW) in 1983. GNU was to be an operating system, just like Unix, except that all of it’s code would be open and free to anyone who wanted to examine it. Futhermore, if you wanted to change it to fit your needs, go right ahead! Thus the concept of free software was born. With it was born the Free Software Foundation (FSF)

When you hear the term “free software”, Stallman warns that you need to think of “free” as in “free speech” (liberty) and not as in “free beer” (no cost). This becomes a confusing definition, since many free software projects are also available at no cost. He states that in order for software to be completely free, it must comply with 4 rules. 1. The freedom to run the program, for any purpose. 2. The freedom to study how the program works, and adapt it to your needs. 3. The freedom to redistribute copies so you can help your neighbor. 4. The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.

Thus, you should be free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission. You should also have the freedom to make modifications and use them privately in your own work or play, without even mentioning that they exist. If you do publish your changes, you should not be required to notify anyone in particular, or in any particular way. -GNU.org

Now, you might be saying to yourself, “Who cares? I’m not a programmer”. Fair enough. Most end users do not have the knowledge or desire to modify a program (but for anyone who does, this is a major issue). But even end users have two very good reasons to want free software. First and foremost it gives you permission to use it. You can install it on your computer, everyone in your family’s computers, and your friend’s computers. You never have to ask anyone for permission to use it, and you can use it for whatever purpose you want. If I were to “buy” a song on iTunes, the program limits how much I am able to use it: “iTunes DRM-protected music includes audio with a bit rate of 128 kbps and allows users to transfer songs and videos to up to five computers, burn seven copies of the same playlist to CD, and sync to an unlimited number of iPods.” (Apple). The craziest part of that is that I can only burn 7 copies of the same playlist to a CD. With how easily cd’s get scratched, broken, or lost, are you kidding me iTunes?!

The second freedom available to end users is the ability to invoke change. Just because you do not know how to program or how to change something about a program, does not mean you shouldn’t be able to. There are plenty of freelance computer programmers out there. If you’d like a program to be able to do something new or change the way it works, you can always pay a programmer to change it. If you’d like to share your changes with the community, you may find you have a following, and your changes could make it in to the next version. If others do the same, you’ve got a lot of new features! Additionally, free software projects tend to have a strong programmer backing. This means that merely requesting a useful feature can often get it incorporated into a future release, assuming the author(s) think it’s a good idea. But again, you always have the choice to make changes yourself (or through a surrogate programmer).

Overall though, the point of the free software movement is that it’s a matter of principle. It’s a philosophy. The two most popular responses in defense of proprietary software are “I don’t have any problems with [software]” and “There’s no free software that does what [software] does (or it doesn’t do as good of a job).” The fact of the matter is that no matter how “good” a piece of non-free software is, it is inherently flawed by being non-free. It is the free software philosophy that “[software] might be great, but it restricts my freedoms. As such, I’m choosing not to use it, and/or I will wait until a free version is available.” This can be a hard dish to swallow for most people (including me). This attitude can be especially difficult when the software you’re talking about is used for something like work or school. I think the point (at least for me) is that a concerted effort must be made to choose free software when at all possible. This might mean making a few sacrifices, but understand that it comes with many more advantages.

I know a lot of you reading this (if you’re even still reading it) are still not too concerned with your software freedom. The main purpose of this article was just to let you know that free software exists and what it is. I don’t hope to necessarily persuade you to use free software, but rather to make your decision to use proprietary software a conscious one. To illustrate my point, take this crude example. A slave’s life is easier than a free man’s in some respects. After all, one could argue that being told when to work, rest, bathe, and eat would be simpler than having to keep track of everything for yourself. But alas, not too many people volunteer to be slaves or to go to prison. My point is that freedom is something you have to want and more importantly something you have to fight to preserve every day because it’s always going to be easier for someone to rule you. And they’ll always be willing to do it, especially if you’re going to pay them for it.

I know not what course others may take; but as for me, give me liberty or give me death! -Patrick Henry to the Virginia House of Burgesses (1775)

Thanks for reading!

The premise of education

I read a very interesting article today, linked from an article on ifacethoughts (a blog I read). The article itself is about undergraduate Computer Science majors, but I felt like the premise goes far beyond that specific example. In reality it speaks to the terms of higher education in general, and I’m going to try to take it to heart in my own education.

See, I seldom think about the professional nature of the physician anymore. The way they throw facts at you in Anatomy and Physiology (not to mention Pharmacology and the rest to come), it seems like anyone with half a brain and a whole lot of hard work can memorize them all and become a successful physician. After all, there are government recommendations and guidelines for treating almost everything. While this may be true, I’m reminded of something I heard here at Rush (although I can’t remember where) that was reflected in that article. In it, Braithwaite probes at the nature of the undergrad CS major, who claims that more class time should be devoted to teaching more computer languages and detail in programming. If most of their students simply go to work for businesses who want them to be programmers who can produce solutions for them, why isn’t more time spent on teaching the ins and outs of various programming languages?

You are describing a vocational job to me. The rote application of practical principles is nothing more and nothing less. How is what you’re describing any different than a job as an accounts receivable clerk or a dental technician? Or a land surveyor? Or a architectural draftsperson?

He goes on to point out that there’s nothing wrong with vocational work or being a technician as long as you’re not lying to yourself about it. His greater point is to emphasize that it is not incredibly difficult to earn a degree, even with high marks, while understanding very little about the field.

The reality is that your degree is only a pacifier, a way to make you feel good about yourself. The industry is selling you the illusion of respect. I’m telling you this because the sooner you figure out the game, the sooner you can start playing instead of being played. If you really want to be more than a clerk, you can pay more attention to what is to be done and how much freedom you have to do it and less attention to whether there is a title or a degree involved.

It’s easy to get lost in the minutiae of details presented in class every day and forget about the bigger picture. But the point is that it’s not enough to just know the facts. If you do, then you are just a form of “clerk”. You need to understand the processes, why things are done (and even taught) the way they are, and why the field is going where it’s going. Otherwise you’ll not be in charge of your professional career and where it’s leading you. This is one of the main goals of education, although it’s often lost somewhere along the way.

On a sort of tangential note, this is an aspect of being a full-time practicing physician that worries me. In a linked article to the one above, he speaks about the role of academics in progressing the field, citing that most of their advances come from academia. I worry about becoming a person who only practices a craft as opposed to being a developer.

Help Desk Urgent Care

Dr: Hello and welcome to the University Urgent Care. We’ve recently been reorganized by Help Desk staff in order to serve you more effectively. What can we do for you today?

Bob: Well ever since I started taking my new cholesterol medication, I’ve been having a lot of muscle fatigue and tenderness and I was wondering if there’s something I can do about it.

Dr: We’d be happy to help you, sir. What is your current dosage of Windopa?

Bob: I actually don’t take Windopa. I’m taking Appelia.

Dr: Well I’m sorry, sir. We don’t currently treat patients on Appelia.

Bob: What do you mean?
Continue reading

Pieter didn’t lie

Apparently Pieter wasn’t lying to me when he said my undergraduate thesis was on a really important topic. In yesterday’s Tribune, they dug up an apparently old piece of news that I hadn’t heard. The folks at UIUC‘s new IGB received a $7 million grant from the NIH back in April. For what? Apparently to use the technique Pieter and I (mainly Pieter, mind you) helped design for understanding and developing antibiotics.

“The genetic screening method they are using has been available to the scientific community for about three years. Metcalf considers it a powerful aid in his search because it replaces a hit-or-miss screening system in which scientists had to grow the bacteria under a variety of conditions to find out what antibiotics they could produce.”
-Chicago Tribune

Of course, this is only getting covered in the Tribune now (7 months after the grant was awarded) because of all the hype about MRSA in the high schools. Considering we specifically designed our method to promote development of new antibiotics that could kill MRSA (and do many other things), it’s no wonder someone decided it might be important around now. I just hope in a few years we hear that their work (and our technique) has paid off and that they’ve got a prospective drug candidate or two. For further reading, see my undergrad thesis below.

One problem I have with the Tribune newspaper article is that it didn’t mention the other 4 researchers. Now Prof. Metcalf may be the lead investigator, but let’s face it, mass spec is the backbone of the technique. A hat-tip to Neil or the Kelleher Group would have been nice, guys. But I guess the public really doesn’t care about the “how”, they just want to know that someone’s on the case. Well folks, the scientists are on it.

Attached:
Jonathan Blackhall’s UIUC Undergraduate Thesis

Rush’s Poor Excuse for Email

Note: If you’d like to skip my rant and go right to the instructions for bypassing Lotus notes, click here.

Call me spoiled. Maybe I am. I don’t know, but Gmail gives me exactly what I want in a web-based email application. I mainly use Outlook only to force myself to consistently archive my Gmail messages and keep my Inbox clean. As I stated yesterday, the Lotus Notes software that Rush uses to run its web-based email is one of the worst email interfaces I’ve ever used (and I’ve used quite a few). So first I’ll list a few of my major complaints, but the real point of this article is to present a remedy so you potentially never have to use this thing again. The solution is actually fairly simple, and no doubt many web and computer savvy folks have already done this. But since the guy who introduced the email accounts to us explicitly said that they do not utilize email forwarding, maybe some of you didn’t look too hard for a work-around.

First, a list of my chief complaints:

  • ActiveX-based interfaced: It’s bad enough that opening any email attachment puts me at risk for a virus, but now we’re going to hook my email program directly into WINDOWS?! Yes, I’d love to give my email program full access to run malicious scripts. Now I’m pretty careful about what attachment’s I open, and someone who isn’t careful is going to be at risk regardless of the program, but I’m also curious as to what other worm-holes an ActiveX-based email creates. I’ve only ever installed ActiveX for 2 things: Windows Update and an online virus scan. Why does my email need this script access?
  • Browser, incompatible. It appears that these scripts have rendered the software nearly (if not completely) unusable in Firefox. In this day in age, I feel this is unacceptable. Not to mention that this surely isn’t an isolated issue. Apparently Safari has issues as well, according to my roommate. Come on folks, I thought we were passed this stage where we only designed for one browser.
  • Domino, incompatible. The Domino server running the program renders emails useless in terms of offline management. It doesn’t support POP3 or IMAP. Yay for proprietary formats :roll:

Update 2 (6-25-08): I posted new instructions on RMstudents. If you’re not a Rush Lotus Notes user, the instructions listed here should still work for you. If you’re at Rush, follow the instructions on RMstudents.

Update (6-9-08): Apparently Rush has blocked a large number of people (M1′s last names A-D confirmed) from forwarding their email to gmail. If you’re trying to forward your mail (at Rush) and it isn’t working, this could very well be why. I will continue to update as I know more. For those of you not at Rush or not experiencing this issue, this should work fine:

Anyways, enough superfluous banter. The point of this article was to tell you how to fix it. It’s actually fairly easy to circumvent the Lotus Notes software completely if you want to. First, you need a free email account. Try Gmail, Yahoo, Hotmail, whatever. I use Gmail, but you can use any email address you want. Also, I will do my best to explain so that anyone can follow what I’m saying, but if something needs clarification, let me know.

There are 2 main steps with step-by-step instructions included:

  • Set up your personal account to write like it’s coming from your Lotus Notes account. (I don’t know if this step works for other web-based email besides Gmail. Does anyone know? If not, skip ahead to 2nd bullet.)
    1. Log in to Gmail. Go to your Settings (top right corner of Gmail).
    2. Go to the Accounts tab (2nd). Next to “Send mail as:”, click “Add another email address”.
    3. Enter your Rush email address (e.g. Firstname_Lastname@rush.edu) when prompted. The click “Next Step”. Then click “Send Verification” on the next screen. The next screen should contain a box to enter a confirmation code.
    4. Log in to your Lotus Notes email in a new browser. You should have an email from “Gmail Team”, open it. Copy the confirmation code into the awaiting box in Gmail (or follow the instructions in the email).
    5. You should now see your Rush email listed on the Gmail settings page. Below this there is an option “When I receive a message sent to one of my addresses:”, you may want to make this “Reply to same address the message was sent to”. If you’ve never used this feature in Gmail before, please understand what it is. From now on, any email you send, you’ll be able to choose who you want the email to be “From” (e.g. mynick@gmail.com vs Firstname_Lastname@rush.edu). It’s a pretty cool feature.
  • Create a “rule” that will forward any emails you receive to your Lotus Notes account to your personal email account (e.g. Gmail, Yahoo, Hotmail).
    1. Log in to your Lotus Notes email and go to the “Mail” tab if you’re not there already.
    2. Hover your mouse over the “Tools” menu (just above your list of emails on the far right) and click on “New Mail Rule”. A new window should pop up (make sure you’ve allowed pop-ups for this page).
    3. Make a name for your rule (e.g. Fwd_to_gmail)
    4. Under “Create Conditions”, click the first drop-down menu and select “All Documents” (you need to scroll down). The click “Add>>”
    5. Under “Specify Actions”, select “Send copy to” from the first drop-down menu. In the next empty box, enter your personal email address (Gmail). Make sure “Full” is selected on the bottom drop-down menu. Then click “Add>>”.
    6. The following step is optional, but beneficial. Under “Specify Actions”, you can tell Lotus Notes to delete the original message. To delete messages from your Lotus account once you’ve forwarded an email to your personal account, select “Delete” from the first “Create Actions” drop-down menu. Then click add. If you’re worried that deleting is too final, you can always skip this step. (Another option would be to create an “Archive” folder which you simply move messages to after they’ve been forwarded, so your Lotus Notes inbox stays clean.)
    7. Click “Save & Close” at the top of your screen. Then to back to your inbox.
    8. Test it. Have someone send you an email to your Lotus Notes account and watch the magic :)

Some things you won’t be able to do outside of Lotus Notes:

  • Look up people’s email addresses. I highly doubt there’s a way to search the Rush directory from outside Lotus Notes.
  • Emailing the list-servs (maybe this is possible?). If you want to email all the M1′s it may work (I have held off on spamming all the M1′s without good reason) by simply adding @rsh.net to the end of the list-serv name. I’m not going to print the name here to prevent major spamming of the list-servs but look at who all your mass emails are from. My guess is that the list-serv program authenticates its messages as being from Lotus Notes before sending it out to everyone. I’d say there’s a 50/50 chance of it being able to will work if you masked who you’re sending “From” in Gmail as described above.
  • Probably more things that I’ve forgotten