Friday, May 14, 2010

Cost of freedom

For my thesis work, I need a crash course on HCI (Human-Computer Interface), since I need to do some interface design. Having shaken my head at some of the poorly designed interface that I've encountered in the hospital, I figure the easiest way to do this is to take a course. Thus, I sat in on the first two lectures of this course. (Course website, if you're interested in the readings, is here)

It was interesting. Although the course touches a bit on HCI, it is not the focus. Rather, the focus is on the concept of Open Source code. Free code, if you will. Free as in freedom, not as in no cost (the quote they use is "Free as in free speech, not free beer"). As an user of various open-source software (OSS), such as...
  • Mozilla Firefox - Internet browser
  • Google Chrome - Yes, I have two browsers installed. 3, if you count IE8.
  • Mozilla Thunderbird - Email client. Not so much anymore, too much CCF reply-all spam -_-
  • Pidgin - Multi-purpose chat client (MSN Live was too much)
  • Launchy - Command-line launch prompt (if you're lazy, you'd like this)
  • GIMP - Graphics editor
  • Audacity - Audio editor
  • Notepad2 - Notepad replacement
  • 7zip - Compression client
  • Cygwin - UNIX emulator. Sort of. I "ls" more than "dir". (installed for school needs)
  • Eclipse - Java IDE (okay, this is for work, but I use it anyway =P)
  • TexnicCenter - LaTeX IDE (okay, this is also for work)

Haha. Listing and linking all the OSS was probably unnecessary. Anyways. The CS course is ran like a discussion. The focus is more on the philosophy behind the Free Software movement, spearheaded by characters like Richard Stallman. They'll also look at various OSS licenses and applications. A CS philosophy course. Never would've thought.

Richard Stallman is a computer programmer who started the GNU (GNU's Not Unix) project, which was to create an "free OS" that will run a collection of "free software". So what is free? The idea is very simple. Consider the following:

Say I buy a car from Toyota Corolla (yes, I still believe in Toyota...hope it's not misplaced =P). I then drop in a new engine, lower the frame, install a NOS injection system...Toyota would not stop me. In fact, Toyota might be happy to hear that I've put a lot of TLC and won a few street races. Okay. maybe they wouldn't appreciate THAT, but...I can improve my car, I can customize and personalize it, and they wouldn't care.

Or...say I buy a vacuum cleaner, and I use it. Then my housemate needs to vacuum his room. So I lend it to him. And he use it. GE probably isn't going to care. Probably. I can lend out my Corolla and Toyota wouldn't care.

Yet, I cannot do this with software. I cannot just lend my neighbour my copy of MATLAB or Starcraft without risking getting into trouble. I can't hack Windows Vista in the event there is something super-annoying that I really want to change myself, in the event that Microsoft doesn't want to change it. No, Windows Vista has anti-reverse engineering clause that you agree to when you click "I agree". As a programmer, I can't soup up Vista like I can soup up my Corolla. I can't even lend it to my friend without getting nervous of getting into trouble.

Stallman first encountered this when he was still in school. The company that sold his lab the printer refused to release the printer control program. The previous printer came with open source control program. They modified it as they needed to. They couldn't update the new printer. Shocked at the repression from the printer company, Stallman (an OS programmer) decided to create a new philosophy to oppose the closed software. All computer needs an operating system before it can run software. So he started the GNU project, which eventually grew to Linux. Linux is now in competition with more established OS companies like Microsoft's Windows and Apple's MacOS. A new OS was created to oppose an existing similar system, Unix. In fact, Linux is a combination word between Linus (for Linus Tovalds, the creater of the kernal) and Unix. All in the name of open software and user openness. All in the name of freedom. 

Freedom in Christ
This word, freedom, is one that is often thrown around. As I've understand it, the concept of being "free in Christ" means to be free from sin. That, of course, is only achieved by saving grace. Appropriately, our response is to rise above our natural selves. I often hear...and I myself have said that Christians are different and that it should be seen in our lifestyles. But a criticism I've often heard is...what is the difference between Christian-living, and a non-Christian (but a nice guy)-living? After all, I can think of a few non-Christian friend of mine that live very moral/ethical lives, and are probably a lot nicer than I am.

"So how are you going to be a witness, Jon? What about your living style? How are you different than some random nice guy down the street?" I had no answer, when I was faced with that question, back in first year.

Gradual change
It is often the little things. In class, we talked about how Stallman is so fixed to his visions...even little things like calling the OS GNU/Linux, instead of just Linux, in order to remind people of the "openness" ideals of the project...of how everyone will never fully understand what GNU was intended to achieve, but by making stances on little things, the world slides towards what the vision is intended. Most people probably think Stallman is crazy.

That's how we're suppose to be. We are suppose to slide towards Christ. We'll never reach Christ, but we make every effort. We're suppose to be seen as crazy. A few little life examples stands out in my mind...

Pirating software
I'll admit it. I was very into this. I've never paid for my own copy of Windows. It either came from burnt CDs...or more recently, from the school's MSDN site. I've never paid for my own copy of Office either. Also pirated...or more recently, the license I have is paid for by my lab. It's funny. I never used to care where my software come from. But as I start to perform my own programming (all 6 co-op terms), I gain a better appreciation of software and the time it takes. I can't say I'm perfect, I'm sure I still have something illegal somewhere, or something I've rationalized my way though...but my conscious no longer allows me do something like this without thought.

Bus pass
And I thought I was doing pretty well. All my software is legit now. I stream most of my music, from grooveshark or youtube (I still have all my music, for Fair Use purposes, but I don't really listen to them anymore). I make more effort to buy CDs, because I want to support the artists (NOT because DRM won. Stupid DRM...). Or the studio (I am totally buying Starcraft 2 within the week of release, even if it's ridiculous -_-). And whatnot. So yeah. I'm pretty good. Pretty righteous. But my latest, and probably most convicting experience regarding this topic came recently.

Last week, a bunch of us were scheduled to go watch Iron Man 2. Like a bunch of fan boys, we decided to line up at the threatre and watch it on opening day. So we were coordinating rides when one of my classmate suddenly told me that he needs a ride. What? What happened to your bus pass? Did you lose it? Thew it away? Come on, we've only graduated for like, a week man. But I realized what his response was before he said it. "I don't have a bus pass". He's not a student anymore. He's technically not suppose to use the U-pass anymore.

When I lost my WatCard last year and got a new one, I noted that they updated the expiry date. Cool, I thought to myself. I can take the bus longer. I can "maintain" my student status, even after I'm done. No biggie. A lot of other people are doing it. People who "lose" their cards and get a new one, right before they graduate. Not a big deal.

But it is a big deal. The small deals are big deals. And so I was convicted. One more unquestioned behaviour was questioned. To follow Christ means we have to be different. Rising above the pressures of society. Questioning conventional behaviour. Free from society in order to do what is right. For Stallman and the GNU team, their freedom meant they had to build a OS from scratch. For us, it means we have to do what is right instead of what is popular.

I was talking to another friend about this afterwards. A friend that did what I would've done, using their expired IDs to get on buses. "Sometimes, I wonder if I'm cut out for this Christian thing. Because I know what is 'good' and 'right'...but it is easy to just ignore it." Of course. But that is part of learning and growing. To notice the little things we do. To notice the little things our peers do. To guide, teach and rebuke. I saw a quote in someone's gtalk tag a while ago, and that is the line I quoted for my friend:
Christians are just sinners that get back up.
Without question, we will fail. Moses failed. David failed. Solomon failed. Elijah failed. Peter failed. Paul failed. But they were challenged. And they got back up. And us too.

I've read this verse many, many times, but I now have a better understand what Paul was saying...

So, if you think you are standing firm, be careful that you don't fall! No temptation has seized you except what is common to man. And God is faithful; he will not let you be tempted beyond what you can bear. But when you are tempted, he will also provide a way out so that you can stand up under it.
- 1 Corinthians 10.12-13

2 comments:

blkmage said...

OH MAN IF I EVER BECOME A GRAD STUDENT I WOULD TOTALLY TAKE THIS AMGAMGAMG

Michael Terry is a pretty cool guy. All of my friends had him for UI and I know that he's done some work on The GIMP.

There's a really good talk by Eben Moglen called "Software and Social Justice" that's related and highly recommended: http://www.geof.net/blog/2006/12/10/eben-moglen

Also, tangentially related is the Creative Commons movement, which is kind of an analog to the FSF as applied to copyright law. A really good book is "Free Culture" by Lawrence Lessig. It's licensed under CC, so you can probably find a copy online for free somewhere.

Also, Notepad2, Eclipse, and a LaTeX IDE? I think you meant vim.

b.p. said...

Admittedly, I skimmed your post and you make some really good points...that's why taking 1 course even after graduation gives you many legit student benefits, including services to a doctor :)

And since you're into HCI, talk to Henry at church. He did his masters in it. Also, you may find Adobe's latest promo very fascinating:http://www.adobe.com/choice (some say it's Adobe's defense to Apple)

OH! And when does your class meet? Are people allowed to sit in your lectures? This is exactly right up my alley (of work). In terms of interface design, you should read "The Design of Everyday Things" by Norman and "Don't Make Me Think" by Steve Krug. I had both - lost the latter (which I am very sad over), but you're welcome to borrow the first. Also have a book called "Web Form Design" by Luke W...ski (can't remember last name off top of my head).

If you're interested in videos (not necessarily on ID, but more UX): http://www.smashingmagazine.com/2010/01/05/25-user-experience-videos-that-are-worth-your-time/