Sunday, May 4, 2008

Looking Back

At the beginning of the semester, I was pretty excited about working with my community partner. I was looking forward to a new experience that was supposed to be fulfilling and enriching. When I chose the Boys and Girls club, I was apprehensive about working with children, because I have no experience with them -- but that was also precisely why I wanted to work there. I thought that it would be interesting to work in a situation that was completely new to me.

The truth is, I'm pretty disappointed by the whole experience. Getting started at the Boys and Girls club was a long and arduous process. Our contact was not actually from the branch of the club that we were going to work with, and so it seemed that she wasn't particularly anxious to get us started. This is very different from the reaction we got from the actual club staff, who were very happy for the extra help. However, even they were disorganized and not ready for us. They didn't know what tasks they needed help with, and they didn't even put us in touch with their tech guy (who is in charge of all the locations, so he isn't at the Tenderloin branch often) until a couple of weeks ago. So even when we tried to take charge, we found that some of our efforts setting up the computers were or are going to be overridden.

We didn't spend much time with the kids which, as it turns out, was fine with me. Perhaps I would have gotten more comfortable with them if I had worked with them more, but instead this experience only confirmed what I already knew: I don't like kids that much. As far as the computer stuff went, I didn't really learn anything there either. In fact, all I can really say I learned is to make sure that if I'm doing a job or volunteering for people, I should insist on getting in touch with the right people early on. That, I suppose, could be a valuable lesson.

Monday, April 28, 2008

Week 13 Writing Assignment

The analysis of the first scenario in Section 9.3.5 revolves mostly around the fact that the case in question is a safety-critical application. That is, the product has the potential to both save lives and to harm people. In this case, testing is particularly important from both an ethical and a financial perspective because if something goes wrong, people can die as a result, and the company would be both morally responsible and legally liable for this.

The second scenario is not safety-critical, and Baase focuses on explaining why the programmer should feel that they have the power to protest skipping testing rather than explaining why the programmer should protest in the first place. After all, releasing early for the show could give the product a lot of extra publicity, and this time there are no lives at stake.

However, even if the product can't physically hurt anyone, it might still harm people. What if the product were an accounting program and it malfunctioned, causing people to lose money? What if it were a photo-sharing application with a security leak, so that someone could access other people's private photos and embarrass or even blackmail them? Any application could have potential problems such as these.

Another argument that still holds in scenario 2 is that releasing a shoddy product can hurt the company's reputation, sometimes more than extra publicity can help it. I think that releasing well-designed, well-tested software is ultimately the best advertising.

That said, I think that the book does present this issue as black and white when there can be more subtleties to the situations. Sure, it is never a good idea to skip testing altogether -- but even with extensive testing software is almost never entirely bug free, and it is definitely more important to be absolutely thorough in some applications than it is in others.

Sunday, April 6, 2008

Digital Information

For this assignment I chose sites that deal with three different types of media: music, TV shows, and games.

Last.fm: this is my favorite streaming music site. Last.fm serves as both a database for music, updated constantly as users scrobble the tracks they listen to, and as source for custom Internet radio stations. To make money, Last.fm uses advertising and offers an optional subscription for extra site features. The music on Last.fm is streaming, and can only be played on Last.fm's player. Users can play custom radio stations that play certain genres (or "artists like so-and-so") but they can not choose specific tracks to play, nor can they download the songs.

Hulu: a streaming video site for TV shows and movies. Hulu is the legal counterpart to other streaming video sites that allow users to upload and share TV shows and movies. It is owned by NBC Universal and News Corp, and only they decide what content to upload (i.e., users can not upload videos). The content is high quality and on-demand (meaning that users can choose whatever they want to watch, whenever they want) but it can only be played within the site. The site is funded by advertisements that are embedded in the content -- just like normal TV commercial breaks.

Orisinal: this is an example of a particular artist sharing his work online for free. Orisinal is a flash game site with all original artwork and music by Ferry Halim. The games can be played online, and there are no ads and no subscription model. The site is clearly not intended to make money, though the author does sell merchandise in an online store (currently down for maintenance).

Monday, March 17, 2008

The Cathedral and the Bazaar

Over the past couple of years as a Computer Science major, I've become pretty fascinated by open source both as a social phenomenon and as an approach to programming. Stallman's talk last semester especially got me thinking about these things. Though I felt I needed to be careful to take what he said with a grain of salt, the idea that we could be working together to create software for each other rather than coding only for our own personal profit really appealed to me.

This essay seemed to encourage this same optimistic approach without the dogmatic attitude. Raymond claims that the open source approach is not the best because it is morally superior, but because it is practically more efficient. He refers to open source as "bazaar" style programming, where a large and diverse community contributes to a project voluntarily. He sets this approach in contrast to "cathedral-building" style, where a small group of dedicated programmers try to build a focused masterpiece from the ground up.

It's hard for me to say whether Raymond's characterizations are correct, mostly because of my lack of experience in either field. Even though by now I've worked on various projects, I don't think I've done anything quite on the scale that he's talking about, and I've mostly worked alone. What I can say is that I think he's generalizing a bit too much. It's understandable the he would want to have only two categories of programming to talk about in his essay, but I'm not sure that I would agree that all closed-source projects follow such a strict and inflexible process that is implied by "cathedral-building."

Raymond seems to believe that his "bazaar" approach is always the best way to go. While it definitely seems that some projects are naturally suited for this style of contribution, I don't think this applies to every project. For open source to work, and application must have a large enough user base for people to spot bugs, and enough dedicated and skillful users who will actually want to contribute. This works well for a mail client (who doesn't use email?) but may not be as efficient for a more specialized product.

For example, say you're writing software for architects like AutoCAD. The user base is very limited, and while those users may be working with the software very closely (and thus able to spot bugs) you may have the problem that Raymond mentions where they are not able to articulate those bugs very well. Also, when you have a large and diverse user base you are much more likely to have programmers in that mix, but if you're writing to a specialized group like architects, it is much less likely that your users will be architects and ALSO know how to code.

Another issue that arises with specialized software is that the programmers writing it must dedicate a lot of time to understanding the problem they are trying to solve. For example, if you are writing a program that is supposed to simulate biological phenomena, you better have a good understanding of the underlying biological systems, and most people don't. An open source approach might introduce problems with the conceptual design of the program, or it might just not generate much interest outside of the specialized field.

So, as it turns out, I think that the more specialized the problem, the more likely it is that the "cathedral" approach might actually work better as long as you avoid some of its problems by keeping groups small and communication lines open, while projects that are intended for the masses are better written by the masses using the "bazaar" style of programming.

Sunday, February 24, 2008

What is LAMP?

LAMP is an acronym that refers to an infrastructure for developing web applications in a free or open-source software environment. The acronym technically stands for:

Linux
Apache
MySQL
PHP

which is a common combination of such tools and together represent each component needed to develop a web application; the OS, web server, database, and programming language. Note that there are other free alternatives for each of these tools. In particular, the programming language used is often Perl, Python, or Ruby instead of PHP.

What is exciting about this approach is that it is a low-cost way for organizations to get their web sites up and running. While expensive software may help create flashy sites, practically anyone can create a site using the LAMP infrastructure, and the tools work well together and are sufficiently powerful for the requirements of most web applications. Also, it's a great way to support the open-source community and avoid giving into the corporations that sell proprietary tools.

Privacy as a Positive or Negative Right

The right to privacy can be perceived as a positive right when we think about it as the right to control our information. We can consider rights (or privileges, since it is nontrivial to determine what should be considered a right) such as the ability to decide which companies have our contact information, the ability to choose which personal information to publicize, and the ability to hold private conversations over the internet as falling under the realm of digital privacy.

However, a more common -- and more accurate, in my opinion -- way to define privacy is as a negative right. Merriam-Webster's Online Dictionary calls it "freedom from unauthorized intrusion." It is "freedom from" rather than "freedom to" that implies a negative right. In contrast with the examples above, we can think of privacy as the ability to give our contact information to one company without allowing that company to sell it to others, the ability to put information on the internet without it becoming publicly available, or the ability to have a conversation online without a third party accessing it.

In short, we want to be able to do anything we want on the internet without the fear that someone is watching. We want to have the same sense of security online as we do in our own houses, where no one can lawfully (or without proper authority) intrude without our knowledge and permission.

Exercise 3.4 from Learning Through Serving

The exercise asks why I think the police chief reacted to the mural the way that he did. The book was very vague on this point (probably to encourage our own thoughts in this exercise) but its tone was bitter. Personally I don't think the police chief was completely out of line. Religious imagery is always problematic in a public setting, especially in such a project that intends to represent an entire community; a community that does not necessarily agree, as a whole, with the artists' religious views. Even if the chief did not exactly have this concern in mind, it was probably a matter of policy for him not to endorse any religion at all. Doing so would be an abuse of his power as a government official (and don't even get me started on how much higher officials in this country do it anyway).

That said, there was probably not a single figure that could be agreed upon as a hero by the entire Latino community. We tend to single out religion because it is a sore spot for many people, but the fact of the matter is, we can never express the feelings of an entire community at once. This is where the nature of the "I" and the "we" comes in. The artists were chosen to express their ideas, keeping in mind that they are representing the community, but in the end the ideas come from the individuals. They can try to combine them and work together to find compromises, but to completely alter their vision and water down their ideas would be unfair to themselves and also an untrue representation of the community to which they belong.

I think that a better way to handle the situation that arose would have been to communicate with all parties involved at an earlier stage. If the students and artists had spoken to the police chief when they had first come up with the design, they would not have been so attached to it yet and could have discussed changing it or tried to persuade the police chief with no hard feelings.