A Note about the New Mozilla CEO

There’s been a lot of discussion recently about Mozilla’s appointment of Brendan Eich as CEO. In the beginning, everybody reacted quite reasonably, but now things are getting interesting, so I thought it was time to contribute to the conversation.

The Issue

There appear to be two issues with Brendan’s appointment. First, much of Mozilla’s Board of Directors was hoping their new CEO would have a lot of experience with “mobile.” This isn’t interesting to me, but I can see how the Board of Directors might be discouraged in this case. Second, more importantly, is the issue of “equity,” which is something I’m very passionate about. It’s the focus of the rest of this post.

Here’s the equity issue: in 2008, Brendan made a USD$1,000 donation to support making a law that would ban gay marriage in California. Some Mozillians feel Brendan’s appointment as CEO endangers the inclusive nature of the Mozilla community. I believe that Mozillians (and all contributors to free software communities) are right to be worried, but that we should remain optimistic.

What Is Social Equity?

For me, social equity means we judge others by their own thoughts and actions, and avoid judging them based on irrelevant personal characteristics. This is my everyday definition—it’s how I try to live. It works in combination with my idea that people should be allowed to do things by default, and prevented only when necessary (only very rarely).

Easy example: at Mozilla, it is reasonable not to hire someone for a job if they are less qualified than another applicant; it is unreasonable not to hire someone because they are a woman—that’s not relevant to their ability to do a job at Mozilla. Yet, if I were to hire someone as a fashion model, I can imagine a candidate’s gender and gender identity may become relevant. Similarly, while a candidate’s views on free-and-open-source software are relevant to a job application for Mozilla, they are not relevant to an application for a modelling company.

Is This an Equity Issue?

Yes. The difficulty here is that it’s not clear whether Brendan’s 2008 views on homosexuality are relevant. On the one hand, they’re not, because this job is about administering a technology company. After inventing JavaScript in the 1990s, Brendan has had a distinguished career at Netscape, then at Mozilla, so his qualifications for CEO are excellent. On the other hand, being CEO at Mozilla is about leading a free software community, and even more than usual technology companies, free software companies must provide a welcoming environment for all contributors, without compromise. But this doesn’t settle the issue completely.

I trust Mozilla to choose a CEO who believes in the organization’s Manifesto (have you read it?) and who will work to promote their Community Participation Guidelines (available here). At this point I still don’t see an issue, but I usually present as a straight, white, anglophone, North American male. Did you see the “straight” part? That means I can’t judge the situation by myself, and as it turns out, a gay Mozilla community member does feel threatened (blog post here).

So yes, this is an equity issue.


However, Hampton’s isn’t the only reaction, and he only works with, not at Mozilla. Here are three mixed reactions from Mozilla employees.

A queer Mozilla employee writes about their support of Brendan as CEO here.

A gay Mozilla employee writes about their support, with reservations, here.

This Mozilla employee (orientation unknown to me) writes about their request for Brendan to step down here.

Further Thoughts

I’d like to draw special attention to the Chris McAvoy’s post, the last cited above. His justification for asking Brendan to step down is not related to Brendan’s qualifications to be the CEO of a technology company; it’s not related to a fear that Brendan will continue to work against LGBTQ rights; it’s because he believes Mozilla should actively advocate for LGBTQ rights, and that Brendan will not.

Think about this for a second! He’s asking a technology company to do social activism. For any other company, even other free-and-open-source software companies like Ubuntu and Red Hat, this wouldn’t even enter the equation. But the thing is, he’s right to raise this issue. When it comes to browser vendors (including Apple, Google, Microsoft, Mozilla, and Opera) Mozilla is the only one whose express purpose for existence is very much related to various forms of activism for social equity issues.

So when I see articles pointing to actions such as this, it makes me pretty upset. Though of course any web company can do whatever they want with their website, I think what OkCupid has done is to simplify the issue to the point that they miss what’s actually going on here. As a result, they are advocating for companies whose primary purpose is to be profitable, and against the only major browser vendor whose express purpose is advocating for openness and freedom, and that has an established history of “leading the way” in advocating for social equity.

As a friend of mine wrote on Facebook,

[T]he CEO/Mozilla may have “evolved” on the issue since 2008. Does that not count for something? Also, OKC should say what the desired outcome is, like they’ll display the message until the CEO apologizes maybe? And boycotting the browser affects a lot more people than just the CEO… why not encourage people to send letters to Mozilla management showing them that they don’t approve? Isn’t that the most effective way to change things in business, vocal customer dissatisfaction?

Why yes, that would be “the most effective way to change things.” Instead, OkCupid is encouraging people to do something that won’t even have a measurable effect on the Web for months, and that may result in measurably negative effects several years from now.


In the end, I believe Mozilla made a mistake to appoint Brendan Eich as CEO. However, I believe in the Mozilla community as a whole, and its ability to work through this issue. If, at any point, Brendan becomes an obstacle to realizing the Manifesto or Community Participation Guidelines, the Mozilla community will deal with him as appropriate.

If you want to start choosing your software to match your politics, I support and welcome you whole-heartedly. It’s because I do this, and in light of Mozilla’s more-than-a-decade of web-based social activism, that Mozilla Firefox is the only web browser I can seriously consider using as my default, as it has been since 2002, when it was called “Phoenix.”

If you ask me, this is an exciting time for Mozilla. It’s a real test for them, and no matter what happens, I’m hopeful they will emerge as a stronger community than ever.


Introducing ELVIS, the Computer-Driven Music Analysis Research Project

Summary: I discuss the basic implementation details of a music-analysis computer program I’m helping to write. Our goal is to find musical patterns that will help us describe musical style more precisely. You can visit our temporary website at http://elvis.music.mcgill.ca (not much to see) or if you’re reading this in the future and that doesn’t work, you can view our new website at http://elvisproject.ca, where there will be lots to see. You can view our code (AGPLv3+) on GitHub here: https://github.com/ELVIS-project

One of the most useful things I’ve done over the past couple of years, at least in terms of learning about computers and programming, is to read the blog posts written by members of various free software communities. Is it about software I don’t use? Is it too technical for me? Is it not even about software, but the larger ideas of the community? Is it written in barely-comprehensible English? Doesn’t matter—everything is useful and interesting, and I’m thankful for the opportunity to learn from other people who are willing to share. Now it’s my turn to share. This post is the first in what I hope will be a set of posts about the “ELVIS” research project I’ve been working on.

First, if you didn’t know, I spend my academic life as a musician. Actually, I’m a music theorist, which is a music research discipline that tends to focus on the aspects of musical works that can be observed in a score. Few scholars stay strictly within the confines of a single discipline, and the same is true for me: I’m often also a philosopher, computer scientist, historian, ethnographer, and other things. Not everybody agrees, but I think this kind of mixing is crucial to the formation of new knowledge (or “knew nowledge”) for reasons that I hope to discuss in a future post that’s not about ELVIS. Oh right—this is a post about ELVIS.

Now you know it’s about music, nobody should be surprised that ELVIS is actually a backronym. It stands for “Electronic Locator of Vertical Interval Successions,” which nobody understands without explanation, but it’s pretty easy. “Electronic locator” just refers to the fact we’re using a computer program, and “Vertical Interval Succession” just means we’re… well that’s a little harder. In music, and “interval” is the pitch distance between two notes (or frequency difference between two pitches—same thing). “Vertical” means both notes are happening at the same time rather than one after another. “Succession” means we’re looking for the orders in which one vertical interval follows another. Totally straight-forward, right? Here’s an example, just in case.

Imagine it’s the year 1175 or so, and you’re a monk. The lead monk is going to sing a prayer with a well-known tune. You have to improvise a second part to go with it, and becuase you’re not an idiot, you want to make sure it sounds good. How do you know which notes to sing? As far as we know, monks around that time period would have improvised the second part by knowing the order of the intervals formed between the well-known tune and the newly-improvised accompaniment. Only certain successions of intervals would sound appropriate, and it depends on what the prayer is about, where you are in the tune (beginning, middle, end), and many other things. As more and more singers were added, as instruments were added, as notation was invented, these interval successions remained important. Today we call it “counterpoint,” and whether or not listeners or singers or composer or songwriters pay attention to it, it’s present in virtually all Western music. Yes, even “Call Me Maybe.”

Last paragraph about music! We’re using a computer to analyze countrapuntal patterns (i.e., patterns of counterpoint). We hope to find patterns we can use to distinguish or unite periods of musical style. If you’re like a lot of music scholars, you’re probably thinking something like “but what about rhythm?” or “but what about chords?” or “but what about melody, form, timbre, metre, tuning/temperament, social situation, and other factors?” Yes, they’re all important, but we’re just starting out! There have been many smaller studies focussed on melody, but for various reasons, they haven’t lived up to their promise of finding patterns that distinguish musical styles from each other. That’s why the ELVIS project is trying counterpoint. We hope contrapuntal patterns will help us find some basic statistical methods and analytic strategies that are effective when talking about musical style. Later, we can supplement or start over with other musical elements, and we’ll have a good idea of where to begin.

For those of you who are computer-minded, here’s the interesting bit. In the two years of the grant, we’ve rewritten our analysis program (called “vis”) from scratch four times. Each time, we used a different strategy when designing the back-end. The first iteration was a very limited commandline program that only analyzed two-voice contrapuntal patterns, and provided output in the form of lists. The second iteration added a GUI and graphs—both certainly required for music researchers—and we started to modularize the back-end by actions the program needed to perform. In the third iteration, we tried an MVC (model-view-controller) approach with the same GUI. This was driven by four controllers that each corresponded to a stage in the analysis process: Importer, Analyzer (find stuff in scores), Experimenter (statistics), and Visualizer. We also started to envision a Web-based interface, and use cases other that two-part contrapuntal patterns (the only other one implemented was for chords). Our fourth iteration was designed from the start to be a modular framework, separated from any interface, extensible for any use case. Although we’re focussing on the modules to analyze contrapuntal patterns, we’ve put considerable effort into making it easy to write additional modules that could potentially analyze anything. As long as it starts with a score and ends with statistics, we hope you can use our software!

I’ll briefly describe the architecture of our back-end. We have three types of components: analyzers, controllers, and models. So far we plan for only one controller, called WorkflowController, which more or less coordinates running through the four stages of our previous architecture: import some scores, analyze them for patterns, calculate some statistic, and output the data. Using the WorkflowController is optional; it’s a tool we’re using to make our often-run queries easier to run. If you don’t use the WorkflowController, you’ll primarily be interacting with our models, IndexedPiece and AggregatedPieces. They manage all the data of a single piece and a collection of pieces, respectively. We have many analyzers, since it’s the core of analysis activities, and since we envision most future expansion will happen in this module. Each analyzer does only a single action, and you can run them in any order that produces valid output. But users won’t interact with analyzers directly. Rather, they use the get_data() method of a model to run analyzers in a specific order, with certain settings, and the model will ensure everything gets done properly. This level of separation is important, since it will allow our models to do results caching and other interesting things—heck, there’s no reason to even stay in the same programming language, as long as the right data comes out in the end!

The last topic for this post is to describe the core software we’re using to help build our framework. We’re grateful that Myke Cuthbert, developer of the music21 library, is working with us on the ELVIS team (see http://http://mit.edu/music21/). music21 basically provides a way to import and represent a wide variety of file formats with a relatively consistent set of Python objects, plus a sizeable collection of analysis tools. Once we’ve used music21 to index our scores, we use the pandas data analysis library (see http://pandas.pydata.org/) to organize our data and help us perform fast analysis activities with vectorized NumPy operations. pandas will also let us store analysis results as pickled objects, export for use by other programs, and a whole host of other things we haven’t thought of yet. For the desktop versions of our applications, we’re using the PyQt library (see http://www.riverbankcomputing.com/software/pyqt/intro), which I’ve really grown to appreciate. The signals-and-slots mechanism, even without a GUI, is a really great idea, and I can see why many of the other features are immensely useful for C++ developers even though they sometimes cause headaches for Python programmers. Finally, for the new Web interface, we’re using django (see https://www.djangoproject.com/) and Knockout.js (see http://knockoutjs.com/).

In the future, I’ll write about some of the research we’ve already done with vis, about how the program’s architecture works, the other software we’re using (including LilyPond and ggplot2 in R) and many of the other lessons we’ve learned along the way. In case you’re wondering, I do all my development on Fedora. Through the life of the project, I’ve moved through Fedora 16 through 19.

A Thought about How Power Works in Society

Like Martin Gräßlin (see here), I have a lot to hide. I’m not a particularly secretive person, I never consciously do anything for the negative or destructive consequences, and I have no reason to hide anything in particular, yet I still have a lot to hide. There are lots of reasons for this, but here are two obvious ones: (1) I know I sometimes do, say, and think stupid things that I later wish I hadn’t done, said, or thought; and (2) that saying things for an unknown audience requires much more thought than saying things to a specific person or group of people.

Imagine this situation. One day, in person, I discuss a social issue with a friend. The next day, I see a related article on a website, and decide to send a link to my friend, along with a sarcastic message that appears to mean the opposite of what I actually think. I can rely on my friend correctly interpreting my sarcastic message, because we know the context of the email. If some entity (say, “The Government”) saves my email for 20 years, then wishes to imprison everybody who thought a certain way about this social issue, can I rely on by email being interpreted in the right context? Not likely. In fact, 20 years later, perhaps neither my friend nor I will remember the email was sarcastic. As an especially sarcastic person, I’m a little worried about this possible future situation.

So I’m encouraged by the Electronic Frontier Foundation’s (EFF’s) push for more transparent surveillance. If “they” are watching “us,” then “we” should be watching “them.” But I have my reservations too.

You see, I’ve been reading a lot of Foucault work recently, which is about how power works in society. One of the most striking things is the extent to which you can encourage people to do what you want by creating the right sort of hierarchic supervision. The thing about hierarchies is that there are always more people at lower levels, so they could potentially organize themselves out of the hierarchy (this is part of how labour unions work, for example). But the hierarchy only works if people at lower levels know they’re being supervised.

This raises some interesting questions. For the supervisors we’ve been hearing about recently, are they actually so stupid that they forgot to tell us we were being supervised? I don’t think so, and I think the EFF and others are helping the supervisors do their job. The EFF will spend a lot of time and effort trying to fight for transparency, when ultimately “telling people how they’re being surveilled” is exactly what the supervisors need.

I don’t expect you will accept this at face value, since they’re not necessarily obvious. I also don’t know what this means about “what we should do.” As the title of this post says, it’s just a thought.

About a Boring Feature of KWin

I spend a lot of time with my face directed at my computer screen. Most of the time, I’m even looking at the screen and actively typing or reading. To help me stay focussed, I took a lesson from GNOME 3 book, then turbocharged it for own KDE setup: there is nothing on my desktop, my panel hides itself automatically, and I use the dashboard extensively. This way, most things won’t distract me unless I was already thinking about them.

Sometimes, when I’m really trying to concentrate on something (which happens quite often recently), I just sit and stare for minutes on end. When I do this, I get to use one of KWin’s least exciting features: the panel eventually pops up, as if to mock me for taking such a long time to think. It doesn’t really bother me, but I had a hard time thinking why anybody would need this feature, since “auto-hide the panel” is not enabled by default. Then it hit me.

Months ago, a friend of mine wanted to use my computer for something trivial. I logged in, then walked away. A short while later, she said something like “what’s wrong with this thing? Why is it taking so long?” As a Windows user, she’s been trained to wait for some icons on the desktop or the panel with the “Start menu” on it, so when my computer just showed the desktop background, she continued to sit and wait for it to finish loading. She called me over before the auto-un-hide feature had a chance to prove its worth, but now I know, it’s in there for her.


I’m thinking about harmonic function in music.

If ^7 is the leading tone of the tonic, and #^4 “tonicizes” the dominant key, then #^4 is not the leading tone of the dominant key, it is the leading tone of the dominant-being-tonicized, and therefore only the leading tone of a tonic.

Does the dominant have a leading tone? Yes, as per Harrison and others, flat-^6 must be the leading tone to the dominant, which means flat-^2 is the leading tone of the tonic-being-dominantized, and therefore the “Neapolitan Sixth” chord is… dominantizing both the dominant and the tonic? Then what is the most straight-forward dominantizing chord? ^4–b^6–^1. It’s the Subdominant triad.

Then how does one Subdominantize? Is this what Tonic function does?

Kick off Fedora 18 with a Bang!

I published the Musicians’ Guide for Fedora 18 earlier today (link).

Now that the Audio Creation SIG has our own spin (whether or not it’s official yet), I’d like to try moving forward with revisions to improve the Musicians’ Guide. I have virtually no spare time, and that’s my reality for the forseeable future, so instead I’d like to encourage everybody who uses Fedora’s music/audio software to contribute!

When you contribute to documentation for free software, you’re making it easier for somebody else to take their first steps into unknown territory. Comprehensive, accessible documentation is, in my opinion, one of the most important tools we have when trying to spread free software to new users.

Here are two easy ways to join in…

1.) Check out our list of bugs (here).

If you see something that you can do (or do part of), just add your proposed changes as a comment on the Bugzilla issue. Maybe you can rewrite an entire chapter or section, one paragraph a day. Later on, I’ll pick up your revised version, add the Docs Project-specific markup, and publish your changes with Fedora 19!

2.) Start using the Musicians’ Guide, and report issues (here).

The biggest challenge I have in maintaining this 270-page document is that, because I know there are *tons* of different areas for improvement, it’s difficult to know where to start. Feedback from real users is invaluable in helping to know where to spend my time. Even if it’s as simple as fixing a typo, clarifying a sentence, or including/excluding additional information, your feedback is extremely important.

And heck, let us know when things are going well, too!

Some Docs Project Statistics

Numbers, meaning statistics. I was just updating the Musicians’ Guide translation source files for the upcoming Fedora 18 release (better late than never, right?) when I saw that Transifex, our Web-based translation tool, keeps a count of the number of words in every file. They don’t automatically sum the number of words in the whole document, but I was curious, so I did it myself.

14650 + 3600 + 1767 + 44 + 31 + 27 + 2763 + 3558 + 855 + 1201 + 1134 + 2950 + 2743 + 3692 + 7 + 1583 + 1 + 6128 + 1409 + 511 + 2345 + 4112 + 1589 + 1593 + 1448 + 21374 + 7687 + 520 = 89322

So that’s it: the English Musicians’ Guide for Fedora 18 will have nearly ninety thousand words. In case you’re wondering, the chapter with the most words is “Basic Programming in SuperCollider,” with 21,374 words, or approximately 24% of the whole book.

But how does this compare to other things I’ve written? Consider the “Cadence in Sibelius” paper I’m submitting for my doctoral applications… 15.5 pages of text brings it to 6,841 words. The Musicians’ Guide has 13 times as many words! No wonder I always feel like revising the Guide is a hopelessly lost cause…

The Art of What-Now?!

So I was reading Jono Bacon’s blog post about the second edition of his book, “The Art of Community.” This is great because I liked the first edition, and because the second edition has a much nicer cover (it’s about time the O’Reilly covers move into the 21st century).

But… why did he write it by himself? Twice! How is it that nobody along the way realized how strange it is that a book about collaboration has only one author?

Thanks to my Mentors

I just finished the survey for Fedora Project contributors who have been contributing for fewer than three years. If you can, I suggest you complete it too:

The survey made me think about why I was able to join the project in the ridiculous way I did. Rather than starting with sensibly small tasks, I jumped in at the deep end, thanks to Fedora Summer Coding 2010. In retrospect, I can see that my mentors in this project went out of their way, and spent a considerable amount of time ensuring that I could successfully complete the Musicians’ Guide.

I wish I could return the favour, either to another new person, or to the project generally. I wish I had enough time to actually commit to and perform one of the roles I’ve put myself into.

Either way, what I want to say here is that free software contributors–and maybe people in general–don’t necessarily understand the full impact and importance of their work.

A Note of Support for GNOME Contributors


I’m a KDE user. Every so often, I try GNOME for a week to see if I like it. For various reasons, it never works out, and I end up back on KDE. It’s been my computing home for over ten years now. But recently it’s become clear to me that there’s a lot more at stake in the “desktop wars” than just software. I think it’s only a little hyperbolic to say the future of our society is at stake too. I wish to congratulate and encourage the GNOME community in their efforts to build a social structure that includes everybody’s contributions.

An explanation of how and why I came to this conclusion:

The suburb where I grew up, near Toronto, Canada, was and still is a place where cultures clash. I only really became aware of it in high school, where us “white people” were definitely the “visible minority” ethnic group. There were also “brown people” and “asian people,” and I know those terms don’t work very well in other contexts, but they are the racial groups we created for ourselves. I remember several times being the victim of racial discrimination, and I know it happened to other people, and I know there were many other forms of discrimination too. For the most part, though, we students realized that the only way to survive would be to cooperate.

When I moved to Waterloo (about an hour away) for my undergraduate degree, the situation was very different. Nearly everybody was white, and it made me uncomfortable. People thought there was something wrong with me because I was “always talking to the asian people.” (NB: There really aren’t many brown people in Canadian music schools.) I’m still not sure, and I likely never will be, whether I was discriminating against white people or simply trying to behave as usual. Either way, it was during my undergraduate degree that I first started to encounter gender discrimination. (It’s true, the proportion of LGBTQ people in music programs is quite high.) Eventually, especially when I became a TA, I started to see the positive effects of *actively* encouraging all kinds of people to join in an activity.

I think you can’t know it until you experience it, but *how* and *with whom* you accomplish a task is much more important what you accomplish.

Now in my Master’s degree, I’ve moved to Montréal, Québec, and I’ve begun to really learn about another kind of discrimination: linguistic. (If you don’t know what I mean, search the Internet for English/French relations in Canada.) I’ve also begun to experience the level of systemic discrimination in my discipline (music theory) and its related fields (musicology, ethnomusicology, music technology, music education). Every academic music sub-discipline is different. I fit into only some of the privileged categories for music theory (I’m white and male). I don’t play the piano, I don’t really care for Classical-period music, I’m not that interested in pitch relations, and I’m absolutely not interested in telling anybody the one true way that music actually works.

The problem is obviously bigger than this. My university is corrupt, the Montréal governments are corrupt, the Québec government is corrupt, and I’ve known for years the Canadian government is corrupt. Nearly everybody with power routinely avoids standing up for what’s right, and instead deals with what they have. Some of my peers are okay with it and some even endorse it, but some of us have decdided to dig in and fight back. I don’t have much power (I’m still just a TA), but I learned my lessons from high school and from the Fedora community: the only way we can survive is to cooperate, and contribute our small part.

That finally brings me to GNOME. I see their design goals, I think they’re exciting, and I want to like their software, but I just don’t. That’s not really the point, though. The GNOME Foundation actively encourages contributions from people who self-identify with a traditionally under-represented group, and they do it in a highly visible way. There are internal arguments, but those are often quite visible too. They are building the future, while the rest of us just sit here wasting time. The future is now, you see.

So KDE, Fedora, Mageia, and everybody else. I assert that, if somebody isn’t actively helping to build an inclusive society, they are actively helping to prolong our exclusive society. Even if I’m wrong, the only disadvantage to being actively inclusive is… nope, can’t think of anything. Let’s get on with it, and build the social structure our software licences supposedly support.