Golan Levin: Our final pre­sen­ta­tion this evening is from eve­lyn mas­so. eve­lyn mas­so is a per­son all the time, an engi­neer­ing man­ag­er on week­days, and a poet on week­ends. She’s been work­ing in and around open source soft­ware since 2017, pri­mar­i­ly on p5.js and GitHhub Desktop. She likes to talk about mixed iden­ti­ties, queer poet­ry, and her recent love for run­ning. Originally from Ohio, she cur­rent­ly lives on unced­ed Tongva land near Los Angeles, and uses she/they pro­nouns. eve­lyn masso. 

eve­lyn mas­so: Hey every­one, and thanks again for hav­ing me today. I’m real­ly excit­ed to get to talk to you about p5.js and access. And I’m so grate­ful and excit­ed to be here with so many excel­lent and won­der­ful peo­ple that I’ve got­ten to know and have get­ting to know recent­ly. I’m going to take a sec­ond and share my slides. And we’ll get started. 

Yeah, so my name is eve­lyn mas­so. You can find on most web sites on the Internet under the han­dle out­o­fam­bit.” And my talk is called Crafting Access for p5.js.” I think you’ve heard a cou­ple allu­sions to the thing I’m going to talk about today around this access state­ment with­in the project of p5.js that has real­ly tak­en shape over the last year or two. 

But before that, I just want­ed to say hi! I guess did­n’t see you there. I’ve worked on and around, or with, p5.js for almost five years now. My day job is being a man­ag­er for an engi­neer­ing team, which I used to be cod­ing on, and I also write poet­ry sometimes. 

I also have done a num­ber of work­shops and class­es around design and tech­nol­o­gy. This is a pic­ture of me facil­i­tat­ing a work­shop in 2017. This is a work­shop that I facil­i­tat­ed with a meet­up I was co-organizing with called Write/Speak/Code, the Los Angeles chap­ter. The orga­ni­za­tion was very much focused around help­ing peo­ple with mar­gin­al­ized gen­ders kind of devel­op pro­fes­sion­al skills who are coders. 

And so as part of being involved in this, we would host mee­tups. And I real­ly enjoyed doing these work­shops as part of it. And one of the work­shops that I helped put togeth­er was one around bring­ing peo­ple into open source for the first time. So this was peo­ple that maybe had some cod­ing expe­ri­ence but had nev­er real­ly got­ten involved in an open source project. 

And so this was real­ly inter­est­ing, because peo­ple who maybe even have the kind of skills that are clas­si­cal­ly thought of as like the kind of work you do in an open source project can also feel intim­i­dat­ed and scared to real­ly dive into a project and get involved. And so in doing this project, it was real­ly impor­tant for me as a facil­i­ta­tor to be able to have them work on a project that was real—like an actu­al open source project out in the world, and also that that project was a safe space for them, or at least a safer space for them to kind of get involved in and that they would be met with respect and sup­port, and all of the things that I want­ed them to expe­ri­ence as their kind of first for­ay into a pub­lic soft­ware project. 

And at that time, I real­ized that p5.js was real­ly the only com­mu­ni­ty that I felt com­fort­able intro­duc­ing first-time open source con­trib­u­tors into. At least that I knew of. I think part of this was because I real­ly took that respon­si­bil­i­ty as a facil­i­ta­tor seri­ous­ly about pro­vid­ing them with that sup­port­ive envi­ron­ment. I had heard of p5.js before doing these work­shops, because I had actu­al­ly learned how to code in it ini­tial­ly with Processing and Arduino way back in my under­grad thanks to a won­der­ful men­tor and teacher, Jacob Tonski, who I hap­pened to over­lap with for a cou­ple years at that school. 

And so I had seen and heard about p5.js a bit over the years. But I nev­er actu­al­ly used it myself. And at that point, even in doing those work­shops, I had­n’t actu­al­ly used p5.js to make any­thing for myself. I thought of it more of it more as like a con­tain­er for peo­ple to learn about what it was like to be involved in an open source soft­ware project. And again, this exam­ple I’m talk­ing about def­i­nite­ly is focused on coders, but part of this idea is real­ly embrac­ing that wide range of what it means to be a con­trib­u­tor beyond just code, and there’s so many oth­er things as Cassie men­tioned ear­li­er that go into run­ning an open source project. 

And I had the plea­sure and oth­er feel­ings of learn­ing what all those things were actu­al­ly after doing some these work­shops a cou­ple years lat­er when I joined GitHub and worked as a soft­ware engi­neer on a project called GitHub Desktop, which is an open source project. And so for two years it was my 95 effec­tive­ly to work on a project that exist­ed on GitHub pub­licly as open source. Even though we were fully-funded and staffed by the organization/company GitHub itself. 

And then in 2019 I received a fel­low­ship from p5.js to spend some hours every week work­ing on p5.js for the entire­ty of 2019. And it had been a cou­ple years at that point since I’d giv­en one of these work­shops or tak­en some­one through using p5.js for the first time, or con­tribut­ing to p5.js for the first time. And so I came in with this expec­ta­tion, I was like okay I’m a coder; that’s my day job; I’m gonna come to p5 and I’m gonna code a bunch of good stuff and it’s gonna be awe­some. Gonna like, total­ly kill it. 

Over time I real­ized that was­n’t real­ly what was impor­tant to me on the project. And was­n’t the rea­son I had become famil­iar with or involved in p5.js in the first place. I had come because I was inter­est­ed in the com­mu­ni­ty more than any­thing else. And dur­ing this process of work­ing on p5.js, it also involved work­ing in the GitHub repo and triag­ing, field­ing new issues and requests that came in. As I’m sure many peo­ple here have expe­ri­enced, work­ing in a GitHub repos­i­to­ry day-to-day, field­ing requests and going through that process can be real­ly drain­ing espe­cial­ly when you feel like you’re unable to say no to cer­tain things, even if you don’t think they are impor­tant or if they’re not the best use of the time of you and the com­mu­ni­ty that are work­ing on this project. 

So maybe I would come across some­thing and I’d be like, I don’t real­ly feel like this is some­thing that either I want to spend time on or that I even think the library as a whole should maybe incor­po­rate? But at the end of the day at that point I was like who am I to make these deci­sions? Like I’m just some­one who works on p5.js. I’m not…in charge, if that’s even a thing for this project. 

And so that made me start ask­ing a lot of ques­tions to myself and oth­ers like how do we pri­or­i­tize work? How do we say no to ideas? What belonged in p5.js and what did­n’t? And I think for myself, I was real­iz­ing that this access piece was real­ly impor­tant to me. And that I was­n’t work­ing on p5.js to write code. I was­n’t even work­ing on p5.js to make art. I think maybe still I have yet to make an actu­al piece of art with p5.js. I have con­tributed mul­ti­ple fea­tures and done lots of oth­er work around it, but I’ve nev­er actu­al­ly made art with it. 

So again, like why am I here? I’m here actu­al­ly for the com­mu­ni­ty for the work that we do togeth­er as a group of peo­ple that care deeply about care and access and all these dif­fer­ent issues and approach­a­bil­i­ty and things like that. But at the time I was won­der­ing like, am I actu­al­ly the only one who feels like this? Like I felt unsure if this is like a limb to go out on as an indi­vid­ual involved in the project. 

So luck­i­ly lat­er that year in 2019, I was for­tu­nate enough to get to attend the p5.js Contributor’s Conference, where I met Luis for the first time, and Cassie for the first time, and many oth­er peo­ple that are in this won­der­ful pho­to. And so I got to learn a lot from that expe­ri­ence, and from con­ver­sa­tions over the course of 2019 with oth­ers that these things were impor­tant to them, too. And now when I look back at the his­to­ry of p5, it feels so obvi­ous, see­ing all the work that Luis and oth­ers have been doing for so long. So it was real­ly great to get to see all those things and under­stand that there was a com­mon val­ue here around access and pri­or­i­tiz­ing that in our work and involve­ment on this Javascript library. 

And so in many ways this kind of crys­tal­lized a lot of my feel­ings I’d had dur­ing that year that in order for us to have a way to say what was impor­tant and not work on the things that we did­n’t think were impor­tant at least in the short term, we need­ed to have some kind of com­mu­ni­ty agree­ment around what we thought was impor­tant and what we were going to prioritize. 

So at this con­trib­u­tor’s con­fer­ence, and espe­cial­ly after talk­ing with Luis and some oth­er folks I’ll name here like Olivia Ross, Sina Bahram, Kate Hollenbach, Claire Kearney-Volpe, Lauren McCarthy, and many oth­ers at the con­fer­ence, I made this pro­pos­al and we had a moment of col­lec­tive agree­ment as a group, as a com­mu­ni­ty, that this was some­thing that was impor­tant to us that we want­ed to adopt as part of the project going for­ward. I think an inter­est­ing thing that we haven’t talked about late­ly I guess, pub­licly at least, is that we did­n’t talk about how long should this last for? And at that moment we set­tled on basi­cal­ly like until we feel like we’re in a spot where this maybe isn’t as impor­tant or we’ve made sig­nif­i­cant head­way on these things and we want to con­sid­er oth­er things. But basi­cal­ly indef­i­nite­ly, maybe, or TBD is the best way to char­ac­ter­ize that right now. 

So this is at the end of 2019. We kind of had this moment of agree­ing. But there was a next step that we need­ed to take togeth­er, which was cod­i­fy­ing this agree­ment. I think cod­i­fy­ing” the word feels real­ly heavy. It always makes me think of like stone tablets and snakes or some­thing, I don’t know. It feels real­ly final. But real­ly it’s about writ­ing things down togeth­er as a group. And now, writ­ing things down, doc­u­ment­ing them, is a hard enough process. But when you’re doing that in a group in a com­mu­ni­ty where there’s a whole process of con­sen­sus embed­ded in that process of writ­ing and agree­ing, it becomes even more com­pli­cat­ed. Because there’s just a whole…you know, it’s not just your­self just decid­ing this thing. It’s like every­one kind of com­ing togeth­er and mak­ing sure their pieces are heard and that we can come to kind of a work­ing agreement. 

I do think the impor­tant thing about cod­i­fy­ing is that it is tem­po­rary, or it’s always up for debate or for chang­ing. It’s up to us to decide when we want to change it. And so one thing I’ll talk about after I go into a lit­tle more detail about the state­ment itself is that I think this kind of writ­ing and com­mu­ni­ty process is a kind of tech­nol­o­gy, too. It’s a tech­nol­o­gy of com­mu­ni­ty and of work­ing togeth­er and mak­ing these com­mu­nal agree­ments that allow our­selves to work in the same direc­tion, work on the same page, and hold our­selves account­able to that direc­tion as well. 

At the 2019 Contributors Conference, we made a commitment to only add features to p5.js that increase access (meaning inclusion and/or accessibility). This means considering the vectors of diversity (e.g. gender, social, economic, race, ethnicity, language, disability, etc.) that can impact access/participation; and taking action to acknowledge, dismantle, and prevent barriers. We prioritize the needs of historically marginalized groups over the continued comfort of more privileged groups with p5.js. We will not accept feature requests that don't support our effort to increase access. You'll see this criteria reflected in our issue and pull request templates. This is part of an ongoing conversation about access and inclusion within p5.js. Our intention to hold these as core values from which p5.js is built is laid out in our Community Statement, which was written at the 2015 Contributors Conference. Please consider this a starting point. We want to invite more conversations about what access means and how we can prioritize it.

So any­ways I’m going to share a cou­ple of pieces of the state­ment. I won’t read through all of it, but you can see the begin­ning kind of recaps a bit about the Contributor’s Conference. I’ll read the first para­graph briefly.

At the 2019 Contributors Conference, we made a com­mit­ment to only add fea­tures to p5.js that increase access (mean­ing inclu­sion and/or acces­si­bil­i­ty). This means con­sid­er­ing the vec­tors of diver­si­ty (e.g. gen­der, social, eco­nom­ic, race, eth­nic­i­ty, lan­guage, dis­abil­i­ty, etc.) that can impact access/participation; and tak­ing action to acknowl­edge, dis­man­tle, and pre­vent bar­ri­ers. We pri­or­i­tize the needs of his­tor­i­cal­ly mar­gin­al­ized groups over the con­tin­ued com­fort of more priv­i­leged groups with p5.js.
p5.js access statement

I love that peo­ple in ear­li­er talks today have shown the p5.js com­mu­ni­ty state­ment, which is a lit­tle bit dif­fer­ent than this but very much in the same line. Similar words, sim­i­lar atti­tude, sim­i­lar val­ues, just I would maybe char­ac­ter­ize it like extend­ing it a lit­tle bit even further. 

So the next part talks about how we will not accept requests that don’t sup­port our effort to increase access. And then we talk a lit­tle bit about how this is part of ongo­ing efforts and acknowl­edge the work that has been hap­pen­ing in the past. 

So I’ll talk about the goals for this state­ments. I’ll be hon­est, these are retroac­tive goals, these are things that after the fact I was like oh yeah, these were the things I felt like I and oth­ers were shoot­ing for. Like hav­ing a clear bound­ary and a clear cri­te­ria so this focus, this goal, is clear to oth­ers and not just peo­ple who were in the room when we talked about it. 

When we talked about not adding new fea­tures or not doing work that does­n’t serve a par­tic­u­lar goal, I think it was also impor­tant for us to affirm our com­mit­ment to main­te­nance of the fea­tures that we have; to make it clear that we’re not let­ting cer­tain parts of p5.js fall into disrepair. 

Also I want­ed to call out spe­cif­ic exam­ples of groups we con­sid­er with­in this pri­or­i­ti­za­tion of access. I think it’s real­ly impor­tant to make these things con­crete, even if we’ll nev­er name all the groups that we need to. But we can at least give some exam­ples and some start­ing places for peo­ple to have a conversation. 

Also want­ed to call out spe­cif­ic projects and work that’s already hap­pen­ing in this area. Because again there’s been a lot of work that’s been hap­pen­ing since essen­tial­ly the incep­tion of p5.js that falls very much in the same theme.

I also want­ed to not screw up lan­guage about oppressed peo­ples, espe­cial­ly groups that I myself am not involved in. That was def­i­nite­ly some­thing that I was anx­ious about per­son­al­ly. I’m very grate­ful for oth­ers that were involved in the writ­ing process to help bring oth­er per­spec­tives and knowl­edges to that document. 

And also give peo­ple an entry point to the con­ver­sa­tion about access. That was real­ly impor­tant, too, and some­thing that I specif­i­cal­ly remem­ber Lauren mak­ing sure that was high­light­ed at mul­ti­ple points dur­ing this process, is that this isn’t meant to shut peo­ple down, even if it’s meant to say no” some­times. Because we’re say­ing no so we can say yes to oth­er things. And because we want what access means for p5.js to be a conversation. 

Increasing access is not a focus on expand­ing the raw num­ber of peo­ple in the p5.js com­mu­ni­ty. It is a focus on mak­ing p5.js avail­able to and approach­able for peo­ple who are exclud­ed from the p5.js com­mu­ni­ty (inten­tion­al­ly or not) and from sim­i­lar tools and com­mu­ni­ties. Access here means mak­ing p5.js bet­ter for: People who speak lan­guages oth­er than English; Black peo­ple, Indigenous peo­ples, and People of Color; People who are les­bian, gay, bisex­u­al, trans, or queer; People with mar­gin­al­ized gen­ders; People with dis­abil­i­ties or ill­ness; People who lack oppor­tu­ni­ties and/or resources to engage with cre­ative cod­ing due to class or income; People with lit­tle or no pri­or expe­ri­ence in open source and cre­ative cod­ing; and oth­er peo­ple who are sys­tem­i­cal­ly exclud­ed and his­tor­i­cal­ly underrepresented. 

And so I have anoth­er image here that shows the kinds of access that we out­line. I won’t go into detail about this, but I will talk about some parts— I think many of the groups in this list or the ideas in this list are kind of reflect­ed in that ini­tial paragraph. 

But I also want talk about that grat­i­tude first, of course. For Lauren McCarthy, Luis Morales-Navarro, Kenneth Lim, aarón montoya-moraga, Dorothy Santos, and johan­na hed­va, who all had like direct…I guess pen to paper in a dig­i­tal sense, on this doc­u­ment that was put togeth­er. And of course we’ll be revis­it­ing it over time. 

But I also want­ed to share that there’s lan­guage that we could­n’t col­lec­tive­ly find that we want­ed to find. I think it’s impor­tant to acknowl­edge that the state­ment isn’t by any means per­fect and that I think that maybe you could say some amount of dis­com­fort with cer­tain parts of how it’s been laid out. I’m shar­ing part of this process so that oth­ers can see what this might look like. You could also go to the GitHub repos­i­to­ry for p5.js and see the pull requests and the con­ver­sa­tions that hap­pened about that, and all the changes that were made from the very ini­tial draft. I think maybe this kind of demys­ti­fies what this process could look like. 

So, I don’t think we were able to find lan­guage that real­ly out­lined access for peo­ple who aren’t in the United States. There’s def­i­nite­ly a heavy com­po­nent of peo­ple who don’t speak English and pri­or­i­tiz­ing them in that state­ment, but there’s also oth­er vec­tors of just geog­ra­phy that we weren’t able to cap­ture, I don’t think. Maybe I should reem­pha­size, it was­n’t that we weren’t able to find these because we did­n’t try, it was because we tried and we could­n’t in that ini­tial pass. 

We also looked for bet­ter lan­guage for mar­gin­al­ized” or under­rep­re­sent­ed,” and I think there’s just inter­nal aster­isks about bet­ter ways we can say this in the future. 

But putting aside the actu­al state­ment, anoth­er impor­tant piece that we did was we incor­po­rat­ed this into the issue tem­plates, the new fea­ture requests, on the p5.js GitHub repo. So this is an exam­ple here. You can see where you open a new issue as a fea­ture request, the first ques­tion that is asked is How would this new fea­ture help increase access to p5.js?” And this is some­thing I think every­one had sug­gest­ed while we were writ­ing this out—maybe it was Kenneth—that we did short­ly there­after. And I think we’ve had a lot of real­ly inter­est­ing con­ver­sa­tions because of this small piece, that I think real­ly pushed us or moved us in the direc­tion that Lauren had brought up ini­tial­ly about how do we make this an ongo­ing con­ver­sa­tion for peo­ple that are maybe very involved in the project but also maybe who are new­er to the project as well. 

And so I’m going to high­light a cou­ple of those con­ver­sa­tions because I think there are some real­ly inter­est­ing things. Some of the com­mon respons­es to this access prompt were many peo­ple leave it unan­swered. Which is okay. Like we can bring it up in the dis­cus­sion after­wards and talk about how this fits into access. Sometimes it means they did­n’t care, they did­n’t see, some­times it means they don’t know. And that’s also total­ly fine. 

Some peo­ple will dis­cuss the impact of trans­la­tion or local­iza­tion efforts on access, which total­ly 100% makes sense, is a com­mon theme that I’ve seen read­ing through some of these. 

We’ve also got­ten some sto­ries from edu­ca­tors about their stu­dents’ expe­ri­ences, and that’s been real­ly cool to hear some of those first-hand stories. 

And also a cou­ple of times we’ve got­ten peo­ple just talk­ing about their per­son­al chal­lenges with p5.js. I’ll share one of those in a sec­ond, but it’s real­ly cool to see peo­ple be vul­ner­a­ble in response to this ques­tion as well. 

So in this exam­ple, this is a fea­ture some­body had filed about adding the abil­i­ty to spec­i­fy ver­tex nor­mals when draw­ing three-dimensional geom­e­try. And hon­est­ly some­times I’m not super famil­iar or skilled at 3D graph­ics? Sometimes when I see a fea­ture request like this my eyes will glaze over a lit­tle bit. But hav­ing this piece in here about this would make things more acces­si­ble to users who are new to 3D graph­ics than jump­ing straight into 3D mod­el files,” which I know can be chal­leng­ing, espe­cial­ly for some­one who’s new to that process. And it also presents an oppor­tu­ni­ty to intro­duce vec­tor math con­cepts” in an edu­ca­tion setting. 

So in some ways for me it’s not even about ver­tex nor­mals and whether we sup­port that or not, it’s about this con­ver­sa­tion about whose lives does this make bet­ter, how does it help peo­ple get more involved in the project, and how does it help peo­ple who are learn­ing about the var­i­ous con­cepts involved in mak­ing art with soft­ware along the way, too.

Another one was, this is an exam­ple of some­one just being real­ly vul­ner­a­ble. It was an issue some­one had filed a ques­tion about how to load or list fonts or some­thing like that. And in response to the ques­tion about access, they said, I would be hap­py if it was eas­i­er to change fonts. I found it hard to find the path of .ttfs and .otfs,” which are two dif­fer­ent kinds of font files. 

I actu­al­ly thought it was so sweet that this per­son­’s response to this ques­tion about access, which can feel pretty…maybe abstract I imag­ine for cer­tain peo­ple? But they were just real­ly This is my per­son­al thing that I had a prob­lem with.” I think this falls under that cat­e­go­ry of mak­ing it eas­i­er for peo­ple to get involved in the project or use the project, and I total­ly agree with that. 

I think also out­side of peo­ple sub­mit­ting issues and talk­ing about how they think access weaves into it is also being able to hold our­selves account­able for how we make sure that we main­tain this focus over time on access. 

I’m run­ning a lit­tle bit short on time here but I will talk about these case ideas real­ly quick. One is some­one came in and they said I don’t know how this fits into access,” after being asked. And we talked. This is one I think Kenneth had respond­ed to, where he said It’s not your respon­si­bil­i­ty to come up with the acces­si­bil­i­ty argu­ment on your own. Let’s leave the issue open and have oth­ers chime in.” 

I think we left the issue open for maybe three or four months and no one had real­ly come to add more to the con­ver­sa­tion. And so then we said okay, well there’s not a clear expla­na­tion for how this expands access. It does­n’t seem like there’s a lot of inter­est in this, so we’re gonna close the issue but we’re hap­py to talk about this more if any­one has ideas around access.

And I think it’s real­ly impor­tant that if we’re going to say no to some­thing that we explain why. And we also give them a way to know what would change that con­ver­sa­tion and enable us to kind of…or make us feel more open to revis­it­ing it. 

This is a some­what fun­ny one where we had asked Did you have any thoughts on how this fea­ture would help increase access?” And the per­son replied Oh! I’m sor­ry. I don’t think it does so in any way. Thanks for address­ing that!”

And again, I just real­ly appre­ci­ate the vul­ner­a­bil­i­ty and I think there’s a longer con­ver­sa­tion we can have. Someone actu­al­ly replied I think a day or two after to say Actually I think this has this entry point into access.” And that’s real­ly cool. I’m just so grate­ful and thank­ful for all the dif­fer­ent things that peo­ple have been talk­ing about that have to do with access, like just as part of our day-to-day activ­i­ty in the GitHub repo for p5.js.

And so I’ll just reem­pha­size here that I think com­mu­ni­ty agree­ments are also a tool, just in the way that like soft­ware and so many oth­er things are. And that for me, maybe I write code but I think that com­mu­ni­ty is much clos­er to the kind of work that I’m inter­est­ed in that I do and want to be doing more of. 

So, what’s next? I think what’s next is us mov­ing beyond these maybe…I guess you could call them maybe more iso­lat­ed or one-off con­ver­sa­tions. And I think I want to find a way for us to be able to do more like coimag­in­ing as peo­ple in, and out, or at the bound­aries or var­i­ous posi­tion­al­i­ties of the p5.js com­mu­ni­ty, like think about what does access mean to us and how we want to see access to p5.js grow and change in the future. Again, I think these con­ver­sa­tions in the repo have been real­ly inspir­ing, and I’m think­ing about ways that we can have those in more facil­i­tat­ed, group kind of ways. 

So, thanks so much for hav­ing me and lis­ten­ing to me. So let me know what you think. I would love to hear about how you would want to see access grow and change for p5.js. Feel free to find me on Twitter or Instagram, again as @outofambit. My DMs are open. And thanks again, every­one, for such a won­der­ful day to just talk to you about this.