Week 11

The Cathedral/Bazaar situation

This week, my classmates and I got to discuss The Cathedral And the Bazaar, which is, apparently, a seminal text for the open source community written by developer Eric S. Raymond. Behind the incredibly rich and detailed descriptions of how he built an email client, Raymond hides important lessons about open source software. The essay is equally practical and philosophical: at one point, Raymond discusses the importance of being driven by an idea and building a community around it; later, he delivers a pretty harsh critique of basically all commercial software. All that is said from a perspective of someone who has built a life around open source, and some of his arguments don’t sit right with me.

Raymond’s arguments against commercial software include:

  • In for-profit software development, all resources have to be marshaled
  • It is greedy and evil because you have to use license to comfort yourself as a software company
  • Centralized management makes the business less sustainable
  • Interest is a much stronger motivation than a manager

In my opinion, these arguments sound a bit dated. I can see how back in the 1990s, the proportion of such idea-driven developers as Eric was a lot higher than it is today. However, this is partly because the tech industry has expanded into so many fields that a centralized community with its own celebrities (like Linus Torvalds) sounds implausible. So many new products are created every year — both open-source and commercial — and there are so many ways to earn money through software development that disregarding all commercial software as inefficient and unsuccessful is simply not aligning with the truth.

Anyway. I really enjoyed Raymond’s lessons that he incorporates in the essay, and I see these lessons being used by Mattermost, a company whose code I’m contributing to as part of my final project in the OSSD class.

final project progress

I spent this week learning about Mattermost’s native code, fixing an issue that had been assigned to me and fighting off constant errors in Xcode.

On Tuesday, I committed the solution to the issue that had been assigned to me to our team’s fork of the Mattermost mobile client. The issue was a simple UI imperfection that I managed to solve pretty quickly once I found where in the code to look. Specifically, the app’s management of URLs lacked a function that distinguished between URLs to websites and special mailto: links assigned to email addresses. As a result, when trying to copy an email address, the app would display in a modal Copy URL instead of Copy Email Address.

Well… it turned out I didn’t fully fix the issue because my prototype didn’t pass the test. But before I got to the prototype, I spent three days in the developers forum talking to senior developers about my issues with building a simulation of the app on my computer. It turned out I messed up the dependency installment process, and once I completely wiped off all dependencies, I was able to load a simulation (much to my computer’s dismay, because it clearly didn’t like being overworked like that).

My future goal is to re-do the solution to this issue and volunteer for another one on GitHub. Despite the fact that I haven’t committed my solution yet, I think that being able to figure out the Xcode interface (something I’ve never used before) is a huge step forward.

Written before or on April 13, 2025