Sunday, January 25, 2009

Self Learning @ MIT

Just discovered a wonderful Intro to Programming with Python class at MIT Open Courseware. Hopefully I'll be able to adapt it for us in a workshop here, at Earlham.

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-189January--IAP--2008/CourseHome/

I'm convinced that if any language will enable regular folks to be able use programming to leverage their passions, it's Python.

Friday, January 23, 2009

Open Technology and Community

Here is a letter I sent to the President of Earlham College (Doug) and the Academic Provost (Nelson).

-------------------------------------------------------

Dear Doug and Nelson,

My name is Nathaniel Smith and I'm a third-year Computer Science student. I did work-study work developing WebDB for my first two years here, and now, with the demise of WebDB as a primary resource, I'm starting work on smaller projects for the Earlham administration and community. Today I listened to Nelson's wonderful convocation about community, diversity, and respect and was motivated to send a letter of suggestion and action regarding the role of open source technology in a community such as ours.

First, allow me to provide a description of what I mean when I say "open source" just to be clear about what I'm talking about. The Open Source Initiative, a nonprofit organization, defines a series of criteria that describe an open source work of software (http://en.wikipedia.org/wiki/Open_Source_Definition). From these criteria a definition can be extracted: a work of software is open source if its source code is fully and freely viewable, modifiable, redistributable, indiscriminate, and platform neutral.

The best example of such a work of software is the Firefox browser - anyone can legally and freely obtain the source code that makes Firefox run and examine it, modify it, copy it, and pass it on to someone else. The developers of Firefox are easily reached as many of them are individuals - not members of an organization or corporation. "Just anyone" can help in the improvement of Firefox technology. No one entity or corporation is responsible for the future of Firefox - it is maintained and directed by a community of users and members (not customers).

Now consider, in contrast, Microsoft's Internet Explorer browser. The inner workings of the software are not viewable or modifiable by anyone but certain employees of Microsoft. Only the corporation takes responsibility for this work; you cannot simply e-mail the individual responsible for some feature or another and say "I love this feature! Great job!" or "This doesn't work right; how can we improve it?" You have only Microsoft customer support to turn to. Note this incredible distinction - in the former case, you work with a community of fellow users; in the second, you work with -- and often against, it seems -- a customer support hotline staffed not by developers but by customer support employees.

Microsoft's work is closed source. It is proprietary software much unlike Firefox. It is, however, just like many of the technologies we use here at Earlham. Most glaring is our exclusive utilization of Microsoft Windows and Apple OS X in our undergraduate computer labs and on our loaned computers. While it's true that, often, students come to college used to one of these two operating systems, there is nothing about the service they provide that is not also part of an open source operating system like Ubuntu ( http://www.ubuntu.com ).

This point can be proven by example: at ESR / Bethany, there are two computer labs, a Microsoft Windows lab and an Ubuntu Linux lab. The former, though having been around longer and staffed by the same people, is covered in a thick layer of dust due to the enthusiastic adoption of the Ubuntu lab. I've spoken to some of the users of the lab - they are not tech-geeks, former computer science students or even (knowingly) fans of open source. What they found was that the open source software in use in this lab was, simply, better: faster, more stable, less intrusive, more reliable, and intuitive. Some of the lab users I spoke to did not immediately understand my personal excitement about how readily they took to Ubuntu. For them, they were simply using computers to get on with their lives, doing word processing, bible study, internet browsing, and document viewing.

From the point of view of the Seminary's computing services, too, these open source technologies are an obvious choice. Their Ubuntu lab sees heavy traffic and yet they do not need to concern themselves with the danger of viruses or malware - Ubuntu, like much other open source software, is robustly secure. They don't have to worry about paying for licenses. They built the lab using recycled hardware and, from that point on, had a zero-cost lab to maintain.

The second most glaring example of closed source, proprietary technology in use here are our course management and student information management systems. We have a combination of Oracle, SunGard, and Banner technologies all under expensive license. We do not have legal permission to fix these programs when they have problems or even to find out what the problems are. We are at the mercy of, again, customer support. We have wait for our problems to be fixed by updates that may or may not even help - and, in some cases, put us back behind where we were to begin with. Just like with Microsoft's browser, we cannot simply have a chat with someone who works on these technologies - these developers are hidden employees of an institutional corporation, not members of a community.

I'd like to talk now about WebDB - its mission, its status, and what it could have become. WebDB was initially designed to cut down on paper waste and to aid workers in the Earlham administration. It was developed under faculty guidance by students and graduates of Earlham. It was both something by and for the Earlham community. The developers gained experience and knowledge and the users (a population of which the developers were a part) gained a useful tool.

WebDB was conceived in 1996 and, by the time I got to working on it, was 10 years old. Unfortunately, despite being in its fourth iteration, it was still quite similar to its original design. It was 90s technology running in 2006 (quite a gap in the computing world). As a developer this initially angered me. Every time I had to fix a problem with the software I would grumpily curse the WebDB beast and ask the winds "Why must it be like this?" A year later I found my answer: the switch to a new, proprietary, closed source solution was "in the works" and major updates to WebDB had been forbidden before I even got my job. WebDB was "like that" because its developers were not allowed to revamp and revitalize it. We were not allowed to bring it up to date and to make it easier for people to use - not because of some failing of the open, pedagogical development model of WebDB.

What could WebDB have become if it was allowed to grow to its next version? Or to be reborn? We could have a community-oriented course management system. A system that ran on open code viewable by anyone who wanted to help make it better and that was maintained by community members. A system that required no money aside from the work study wages for a handful of student workers. A system that would recognize the ability of individuals to contribute to a whole, a system that would embody our hopes for intentional community, and a system that would be by Earlham, for Earlham.

Our new portal system, though it carries the name of the center of our community, does not reflect these principles. It is a corporate solution written by workers for customers. It is programmed for profit, not for people.

What I propose is an administrative and academic Open Source movement. We can start with a migration to Open Source labs, following the precedent set by ESR / Bethany, whose Computing Services staff are extremely knowledgeable about Ubuntu and its related technologies. Their efforts have been recognized by Linux Journal, the premier, international Linux magazine, who found out about ESR / Bethany's lab and ran a piece on its success. We can follow with a commitment to open source technology on new employee computers and optional upgrades for current employees. Finally we can create a community framework that can embrace the original heritage and mission of the WebDB project and expand upon it to produce an open alternative to our current crop of course and student management technologies.

This would be a commitment to what we as a community embrace and hope to embrace. I was so inspired by Nelon's convocation because I think the three major principles he touched upon can all be mapped to the open source movement. Open source is definitively based around the concept of community. This community embodies the principle of diversity by being an international one—open source software is developed by people all over the world. Finally, the open source movement is one of Respect for Persons. Anyone can contribute an idea to an open source project and be heard. Their idea might not be the best, or may need some assistance to get off the ground, but it will be heard and considered. No particular degree, job title, salary level, nationality, or skin color is needed.

Open source does not only embody the Respect for Persons of our principles and practices, but also Integrity. By having code viewable by anyone we ensure that developers are working in the community's interest. It embodies Peace and Justice by distributing power evenly throughout the community and by ensuring that we are not giving money to corporations who may in turn invest their profits in unpeaceful and unjust endeavors. Open source embraces Simplicity—by having a community produce its own tools we can ensure that we have exactly what we need and not frivolous and unnecessary features. Finally, as a community we get to choose along what lines technology develops, and the open source movement works quite well with Consensus.

I'd like to close with a definition of the word 'ubuntu,' whose software namesake Ubuntu Linux embodies everything that the open source movement stands for and all I have discussed in this letter. According to www.ubuntu.com, "Ubuntu is an African concept of 'humanity towards others'. It is 'the belief in a universal bond of sharing that connects all humanity'." In his book Acts of Faith, theologian and interfaith activist Eboo Patel describes the concept as meaning that "people are people through people" and relates how it inspired Nelson Mandela and his movement to end Apartheid.

It is with this message and from this place that I write you.


Peace,
Nathaniel Smith, '10

Wednesday, January 21, 2009

immediate, practical internet lesson

Yesterday saw the launch of the I Have, I Need board for the Earlham School of Religion that I volunteered to create. It's designed to be as informal as possible (like a physical bulletin board) and requires no account or registration to use. It's assumed that the users will all be of our particular community (ESR/Bethany + Earlham College) but no measures are taken to ensure this.

We figured that as problems cropped up, we'd fix them. Surprisingly, exactly 24 hours after launching the site, a somewhat major problem did crop up - an automated 'visitor' clicked on every link on the site (probably in search of email addresses to harvest or media files to download), including the ones that remove (again, simple honor system) users' postings from the site.

Instead of jumping to a registration system, I'm going to try adding a CAPTCHA interface to my Django forms. I found code here: http://code.google.com/p/django-captcha/ and a good example here: http://www.rkblog.rk.edu.pl/w/p/django-and-captcha-images/ .

I'm also starting a Subversion repository so I can lessen absent-minded damage to the code in quick updates like this one...

Lesson learned: if it's on the internet, robots will find it. If robots find it, they will do things to it. These things are probably going to be negative.