 We already checked my two Yeah, you're right. It's not us There we go. It's it's up People can hear me. I think we may need to turn it up and also they want to record this So if it doesn't come through the microphone, it's not going to get recorded Yeah, maybe the wireless would be better And slip that in my back pocket Okay Testing one two three. I think we're okay. Okay I'll just use a 10-ounce testing Testing I Just wanted to slide this over so people could see it. Oh damn. I just screwed that up Okay, I want to do a quick advertisement for the pi DP project So this is a person who is creating these Reproductions of some of the early deck equipment. There is a pi DP 8 a pi DP 11 And this is the newest one the pi DP 10 Which is the only main frame that digital ever made in the early days? It's a 36-bit machine and All of these machines use a piece of software called sim H That was written by a friend of mine Bob Subdick who was originally a senior vice president in the hardware space of digital and It runs on windows it runs on Linux it runs on BSD is very portable and It can emulate like I said all these different architectures to simulate all these architectures So you can run operating systems binary compatible on this thing Okay on perhaps a raspberry pi running Linux running some H So I have the pi DP 11. It's great I can run UNIX version 6 UNIX version 1 Ultricks BSD all these different systems RT 11 or a sex 11 vistas E all these proprietary systems from deck and it is a lot of fun, okay, and You could look it up on the web They're Reasonable price they come in kits. Sometimes you solder them together. You just need a steady soldering hand But you know look it up. I put in an ad for him. He just released the party p10 I got mine fully assembled and tested but it arrived today. I left for scale. So I haven't seen it yet. Oh Yeah, right that panel the panel is a reproduction of the Wait a minute. Can I yeah, okay. So if I if I scale up here whoops There we go. There's the original deck 10 Okay with its with its link tapes and stuff like that, you know, and this machine was used back at MIT and Visual installment actually wrote his first edition of emacs on this machine So, you know take a look at it. It's interesting just to read the web pages anyway so I just wanted to give a shout out to these guys and We can get rid of that and I can start my talk And I'm gonna apologize because I thought I had everything worked out So all I have to do is click on the links inside of the talk. Oops. Wait a minute. I know what said and it would start playing the music but The best way plans of mice and men so we may have to do a little funking here to actually get it to work But we'll give the talk and then we can go back and listen to the music Okay, go ahead Good morning everyone. Welcome to Linux 20 or sorry to scale 21. I Hope you're having a good morning. How is Saturday for everyone today? How's it going? Yeah, so I'm excited to announce the first speaker of ballroom B. We have John medic Hall For this talk and John John will be representing Linux International. I hope you enjoy Okay, a side story and this happens a lot with me In the early days of Linux there was questions as to whether was produced pronounced Linux or Linux, okay, and I'm good friends with Lina's Torvald. So I said to Lina's Lina's How do you pronounce it? And of course Lina's is from Finland. He says well My name is Lina's Torvalds, and I pronounce Linux as Linux and he actually created an audio file That's shipped with the original sources for the kernel that said hello My name is Lina's Torvalds, and I pronounce Linux as Linux So he and his wife moved to the valley was working for Transmitta and had a nice little house and I called him up one day and he answers the phone. He says Linus. I Said Linus that isn't even your name. He goes I know but nobody in California can say Linus. So I'm Linus And it's just a type of person he is No, he didn't do that Okay, so my talk today is why is Linux like a player piano and I'm gonna give you what happened there. You're supposed to screw it I'm gonna give you a warning that there may be some generalizations in here So for those of you out there who love music and ancient instruments you may say We can be outside and fight okay But I'll admit up front. There's some generalizations here. So just bear with me and Why and how did this come about why am I standing up here talking about this and how did why it scale and stuff like that? So trying to make it very short when I was about nine years old There was this old man who lived two doors away from us in a set of row houses his name was mr. Groom and Everybody all the kids were terrified of mr. Groom because he was an old man And if you hit your ball into his backyard, you just said goodbye to it forever and One day my parents said hey We have this old wind-up clock that you took apart We could never get it put back together take it over to mr. Groom, and I went mr. Groom I took it over and I rang his bell and the old man came to the door. What do you want? And I held the box up. He says thank you and takes it from me and disappears. I Forgot all about it. I was still alive and The next day a couple days later my parents say mr. Groom wants to see you. I said Why go over there knocking the door come downstairs, you know downstairs That's what the guy with the hockey mask and the chainsaw right and I'm shaking and I'm going downstairs And here he has this juke box That he an ancient juke box that he had repaired You plunked the nickel in he captured it before it goes in a coin box that plays a record You can see how it plays a record. He had a wire recorder the predecessor to the tape recorder, okay He had all these clocks in the wall that people had given him and he repaired his stuff And that's when I found out That he had been an engineer His whole life and he decided when he retired he was going to repair all these things And that's when I learned my first valuable lesson in life You know, don't be afraid of somebody just because they're a grouchy old man So my father was a machinist mechanic and he collected these magazines popular electronics popular science Popular mechanics and stuff like that and at the age of 12 there was one magazine that said How do you repair a player piano? And I read that and I read it and I looked at it and I said, oh, that's really cool The domatics and all that type of stuff But then like a lot of other things I forgot about it But in 1992 I was buying my new house in Amherst, New Hampshire. My parents said to me, hey We'll buy you a dinette set, you know table chairs and stuff like that I go to the furniture store in the back of their warehouse They have this player piano sitting up against the wall a sign on it says $100 take me away And I went up to it and I looked at it and because of that popular mechanics article I saw that all the parts were there, you know, it's a little dusty and dirty and stuff like that But it was all there. So I bought the piano and had it delivered and found a buy a person who would restore it for me And the night before that person came I was sitting there drinking a beer and looking at it and saying I don't know. Let me look it over and see You know what it's like and see what what he's going to be placed and how he's going to be placed it So I pulled off the kick plate of this brown disgusting dirty old piano And on the inside was this beautiful dark red mahogany And I said to myself The cabinet maker does not put their worst wood on the inside of the kick plate So he took it away and I called him up in a few days. He says, how's the piano going? He says, oh coming along fine I said, how does it look? And there's silence on the other end of the phone and after a while he chuckles He says, I think you'll like it And it was beautiful And this is a piano that came from Sears Roebuckin Company in 1912 and still had the warranty on the inside guaranteed for 25 years So that got me started with collecting these automated musical instruments. I collected clocks and a bunch of other stuff But then a friend of mine called me up and said, I heard you like reed organs And I'm going up to this place in Alfred Maynus. No, I don't like reed organs. I like player pianos But I went with them and found this place called the beehive run by these two old gentlemen who had been living together for 40 years And they were very gay I mean gay gay, okay But I liked them. They were nice guys and I went through their place and I looked at all the reed organs I really like the sound of reed organs. You'll hear some of that today And I looked at one pile of stuff And I said, you know That looks like a player reed organ and they said, yeah We've only seen two of those in our entire 40 year business of collecting repairing and stuff reed organs We didn't get a chance to repair the first ones, but we're going to repair this one I said, what do you do after that? And they said, well, we have to sell it How much you're going to sell it for and they told me And I gulped a couple times and said I'll take it So they restored it to museum quality And out of the 300,000 reed organs made by wilcox and white of meredin Connecticut And the 3000 player reed organs made by the same company There's only 13 of these reed organs left and we'll see a little bit more about that later And then finally last year at the last talk of scale Ken Thompson, one of the founders of linux, the original idea of of of unix. I'm sorry, the original idea coming from him came and gave a talk about his music collection where he had gathered about 60 000 songs That he was using to formulate codecs to take the analog music into digital A code and back again, of course, there's lots of Your research that has to be done with codecs to get the right codec with the right compression To deliver the right, you know frequencies and stuff like that and ken had done a lot of work on that But now he has 60 000 songs in this database And he called his lawyer and said Am I allowed to have these 60 000 songs most of which I never paid any money for And his lawyer looked him straight in the eye and said, but you're doing research So today folks for this talk, this is all research Okay And anything you hear is research So i'm going to take you back in time Way back in time and in the beginning, but there was no radios or photographs or editions anything and Before stereo and wi-fi even before eight track You know, there were music boxes. There were things that made music, but music boxes were typically limited and you know And they played we one two or three songs and stuff unless it was a gena But you know, there was just no music that you could really have unless you played an instrument yourself And also even further back than that in 1703 in florins, italy There was a man who made it was a music Uh maker he made um harpsichords And he came up with a new idea because harpsichords could only play one loudness There was stringed instrument They have a keyboard But they pluck the string when you pluck the string you played one loudness You couldn't you know have different loudnesses And he said I could make it so you have a hammer hit the string and the hammer could hit the string hard or soft forte or piano Piano forte, which we now call today the piano And he says I could make a fortune with this This is great I got patented and patents were well understood because the first written patent was also in florins, italy 400 years before It was a patent on a dome that had no support and the engineer had patented the design So he could tell people how he did it But if anybody duplicated his design he would get credit for it and he could get a license fee So they will they well understood patents and how they worked There was one other problem however There was no music for the piano There was only music for the harpsichord And so if there was no music and this is a very expensive instrument to make if there's no music then there's no demand There's no demand. There's nobody who makes the instrument There's nobody who makes the instrument. There's no musicians who can buy the instrument And there's no musicians who will make the music for the instrument catch a 22 That's Italian for catch 22 And so he decided that he was going to give it away He was going to publish exactly how to make the piano so other harpsichord makers could look at this and say Yeah, I can make that and you know like sell it and maybe I'll give a sample or two to some musicians That would you know make some music for it But he had another problem There were no Publishers in Italy who would publish it You know because the Gutenberg printing press had actually been produced only a few years before that And the publishing industry wasn't what we have today So he went to Germany and he found some publishers who in Germany Published it and the German harpsichord maker said yes, I can make that And then they gave away some to some german musicians that you may have heard of Mozart Bach Beethoven And even with that it took almost 100 years for the piano to replace the harpsichord in an orchestra So this goes to show how difficult it is sometimes to get your idea across to get to make it popular And it would but even worse if cifra rally if cifra fari had Public had printed it because that would have stopped other people from making it Or at least made it more difficult So now we have pianos coming out and stuff like that starting from around 1800 They started to become popular and in 1880 the first player piano was created It used a paper roll and we could relate that to software And you had a foot powered bellows Providing a vacuum that drove the mechanism to pull the roll across the reed head And of course this is before electricity. So your pumping was was the way you did that And it also powers the take-up reel and the keys to go up and down But it wasn't a major success because the first player piano had 88 keys on a piano, of course But it only had 56 holes in the paper and the holes were rather large, you know to go into paper And if your paper was too wide you ran into skew and all sorts of other problems. So it had to be a certain size So we we say that this did not meet the minimum needs of functionality Okay, this was like version 0.009 of the lytics kernel But In 1890 there was a major breakthrough. There was a standard created called the 88 notes player standard And what this meant was that people could make these roles of music And it would play on any other piano that was standard And piano makers could concentrate on making the pianos that would play this wider range of music that was coming out And then there was a little bellows that had fingers on either side That would guide the music over the reed head to align the holes. So it made it really nice And this created the player piano that we know today the 88 notes standard player piano Now i'll give you a little walkthrough with this and see if I can get my Mouse to act as a pointer. No, I don't know where it is Is it there? Yeah, okay. So this is actually a little engine here There's slides that go up and down that act as valves to the engine and there's bellows in the back that Act as cylinders and pistons and turn a crankshaft and that crankshaft goes across To be connected to take up reels on The reed head i'll show you a better picture of that, but there's a reed head right there and You know and then there's bellows down below Which provide the vacuum that drives the motor There's also a differential in there that switches from going forward to going back for for rewind And down here you have controls for loudness and stuff like that There's a there's a thing that flips up to hide those when you're just using the piano as a regular piano So let's go to the next page This is a close-up of the reed head and the feedback mechanism that keeps the paper aligned properly So on each side We have some little fingers down here that if the paper gets too far over to the right The little finger opens up a valve which tells this bellows. Oops. Oh, shit. Sorry didn't mean to curse Uh two yeah, which oops Down there we go We put that bellows which pulls the paper back in the opposite direction So it keeps going back and forth. It's a feedback mechanism And then we have the bus lines that coming from the reed head Down here to all these little bellows down below that actually make the keys Go up and down to hit the strings on the player piano So and then we have a little bit further There's a close-up of the device driver With the motor on the right hand side the transmission right there and so forth and so on And then we have the power unit down below in the bottom part of the piano With the with the pumps that you would be pumping To provide the vacuum and then of course like any sophisticated, you know Very expensive thing you have to have all the piano accessories That would be sold Now you look now i'm going to talk to the lowest one down there the lubricant the lightning furniture and piano polish Now this is different than any other polish that you would have in your house This is specifically for pianos and why would you ever dare to use any other type of polish? The one in the middle the motor graphite does not like any graphite you go down to the Store and buy this is piano graphite About three or four times as expensive as any other graphite But then the thing at the top This is a thing that sucks the little pieces of paper that might be stuck from the left over from the piano rolls They get sucked into the re-dead So you have a vacuum that sucks those little pieces of paper out there and makes your piano work better And then of course lastly we have the instruction manual which nobody ever read I recently read this for the first time in 40 years and said oh, I forgot to I had to do that with my player piano But no so all this was fine people started buying these pianos and stuff like that But there were some people who already had pianos And they felt really bad because other people now had player pianos And they don't want to have to buy a whole player piano just to get the thing to play these roles So a new add-on was created called the push-up And you see on the on the left hand side. There is a woman who is Playing the piano, but what she's really doing is pumping the the bellows at the bottom that has turns the role in the middle And there's fingers that come out over top of the piano keys and that plays the piano now that is a relatively standard push-up Okay, that people would buy But there's another push-up and that push-up is the one that's shown here on this right hand side This is a wilcox and white symphony organ push-up And what it has is about 300 reads inside of it like a read organ With stops that you would use like in playing an organ. There's the role And so when you push this up to a piano Not only does the piano play with the little fingers coming out as you see down below But it also has organ music that goes along with it Now I told you that the wilcox and white symphony read organ is only 13 of them known in the world There's only one of these And I own it so between 1890 when the standard was created at 1930 With the great depression. We're basically killing off something as expensive as a player piano Telling people of being able to afford it. There were 2.5 million player pianos created Now that doesn't sound like a lot I mean we have billions of cell phones and stuff like that But you have to remember what the United States was like During that period of time There was a lot fewer people lot fewer people in in the uh In the united states and This was a huge market that invited competition and innovation But the 88 note was a standard that people typically fought fine And because all these vendors would now allow to make roles that could go on any of these pianos There was mechanisms That were improved in the mech or improvements made in the mechanisms and the roles now for an example If you had a song that was maybe not so popular or just come out You don't know how good it's you know, it's it's something from some little known artist You might put that on a on a roll with cheap paper with cardboard ends And you may pay 50 cents for it But if it was a popular song You know like star spangled banner or something like that. I don't know what's going on there Yeah, but I'm my screen isn't blank There we go Okay, so we got the wrong There we go yeah, so You know you would you want to have metal ends on it You want to have really good papers to just stand up to be played over and over again And this is especially true for religious songs like christmas carols and stuff like that, right? You want to have This now. I told you a little bit about my wilcox and white player Read organ and how I had that restored, but there's a history behind it This read organ was originally purchased by a madam for her burdello She wanted something that her girls could pump to entertain the the customers Mostly white rich men who came to the burdello And a lot of the girls didn't know how to play a read organ or a piano So this was something that they could do and help to entertain But after a while the madam got religion She sold the burdello And she gave the organ to a church Now the madam did not have songs on there like, you know, oh come all ye faithful Well, she did but that was a different faithful She didn't have a lot of religious songs. She had boisterous men songs, okay But when the church got it, they didn't want to play those boisterous men songs So they bought a whole bunch of religious songs And I have this big chest alongside of this organ this player read organ That has both the boisterous songs and the church songs at them at the same time And on the top of it the church didn't throw out the boisterous songs for some reason On the top of it it has st. Peter's so But all this improvement and mechanisms and roles meant that the 88 note standard was maintained Now why was this so popular? Why 2.5 million player pianos? This very expensive thing Pretend you're in Kansas It's 40 miles to the next town There's no radio, no tv, you know, maybe you have some type of I don't know why that's doing that Okay No, no, no wrong way Ah I'm sorry Yes Well, that is true Well, remember that little tones there's little tone controls as you head down there If you press that then reduce the power of the vacuum in hitting the key so you could actually Oh, yes Right So i'm trying to find where I left off here No, but i'm trying to Oh, Kansas. I got back to Kansas. I got back to Kansas. Here we go Okay, so you're in Kansas And you get your Sears robot catalog And you're looking through it and you see in the musical section the first page of the musical section Here is your player piano And you talk this over with your wife and you wake the order and a few weeks later This wagon pulls up in front of your house and these five or six burly people carry the piano into your house You set it up and you get your children or your younger brother and sister to sit there and pump the thing While you and your sweetheart go dance across the floor You pay any amount of money for this, right? And that's what it was so Now there was a different type of player piano something called a reproducing player piano We is just like you said sir this thing Hit the note or didn't and it could you know So that's not how our piano is played obviously you have attack and sustain on the key, you know and different hits and stuff And so they developed something called the reproducer player piano which had extra holes in it It had extra mechanism to create to create it so that it sounded just like the artist playing it and they had contests Blindfold contests to see if people could tell whether this is the player piano Was actually the artist playing the piano and a lot of times they couldn't tell However Because there were more holes needed in the paper it you couldn't use the 88 note standard Paper and there were more parts that made the piano more expensive, but worst of all There were multiple vendors that each had their own standard For their music so if one vendor specialized in jazz the other one could specialize in In religious music another one could specialize in body music And so you couldn't get a whole suite of music for these pianos So basically the public rejected for the most part the public rejected reproducers I mean very rich people might get them and stuff But there wasn't enough selection in the roles for them to really become A thing and they were the people just didn't see the perceived value So you can think of these reproducer pianos as being proprietary Now the depression hit in round 1930 and a lot of the piano firms went out of business The piano market never recovered because after the depression came the war and after the war there was radio and tv And stuff like that and it kind of overwhelmed them. So people Were running out of room in their living room And they moved the pianos into the basement And the leather bellows would rot And the mice would get in and eat stuff away There's another correlation mice And after a while people said hey just come and take this player piano away But in the 1960s when I was getting ready to go to college and the popular mechanics article came out There was a revival in them because people said hey, it's a really cool instrument And they're almost free in fact a lot of times they were free all you had to do is restore them And so people started doing that and this created a demand for new new roles because the old roles were falling apart So the companies that had been making the roles came back into business companies like playwright and qrs and a bunch of them and even new songs So you could get billy joe's piano man on the uh On the on new roles for it and there were companies that actually started new making new Player pianos that you had to pump. I mean there were also player pianos You may have seen these in airports and stuff where they play them automatically using a midi drive They sit there playing by themselves But there were player pianos created that would just like the old ones with the bellows that you would have to pump and stuff And there was but there were typically only the 88 note because again it was too hard to find The reproducer roles and it wasn't enough market for them So You know they didn't really start up that much And so this is why I think it's a lot with linux. Okay, you get a high value for low price Yes, there are licenses on it and stuff But the licenses basically allow you to get the source code to make things better I should also say that even though the basic Piano was never patented There were patents on improvements to the piano And if you ever go into the back of a piano You'll see a list of all the patents that the piano has done And those and sometimes you look at something that the piano maker did you say that's the stupidest thing I've ever seen why would anybody do something like that? And then it occurs to you They did it to get around one of those patents okay so We in the in the linux and free software space we create and utilize and defend standards But we also innovate below and above the standard To make the better instrument Now I belong to the automated musical instrument society of america And I generated many more talks about this than just this one And I will also say that I haven't really incorporated the concept of read organs or roller organs or Edison photographs cylinder and flat all the rest of this stuff because otherwise this would be really long talk But in the in the group we wanted to create some mpeg 3s of these instruments and put them up on the web So people could hear what they sounded like and we started talking about this and then we realized We had problems Because green sleeves as an example is an ancient english melody But the rendition of it by some artist makes something that is copyrightable And even if that had gone out of copyright you take that you punch it onto a paper roll and the punching of that roll Is also copyrightable And then you put it and you record it if somebody records it so all this stuff Means that I don't even sing in the shower anymore Here's all the the issues around that the the photo record laws that we have Regarding the music industry And it was just kind of disgusting So like I said the patents are there And the modifications are sometimes patented and the what wtf was why did they do that? It was to get around the patent now. I have one more thing to add to this talk And that's an addendum of 1942 In 1942 there was a gentleman by the name of george anthel and he was experimenting with player pianos He had a series of player pianos up on the screen And up on the stage and He was using another player piano with holes in the paper to coordinate the 88 pianos He had playing together Now at the same time there was this lady named heady lemar And heady was in the movie industry. She was known as uh generally as the most beautiful woman in the world But heady was also Very smart zero one One zero one one zero zero one one zero one one Good afternoon, and thank you for joining us here today at saturday at scale 21 We'll be starting shortly here with our speaker chris mckenzie chris will be talking about linux and its micro computer predecessors pre-1996 Please bear with us as we prepare, but I'd like for you all to give a round of applause to chris and welcome him That's all right. So I was um anticipating that perhaps the network wouldn't work here So I so I transferred everything to a pdf and then I can do it offline. So give me a second here I prepared for everything All right while we're waiting. How is everyone doing today still doing good Did anybody check out the keynote this morning? Raise your hand if you did Wow, how was it? What did you think about the keynote? Does anybody want to share their thoughts? Anyone What did you think about the keynote? Amazing. I hope you do enjoy today's session The keynote this morning. It was viral shah Uh speaking this morning at 10 o'clock about julia. Sorry. I missed her. You're like who's she? I'm like wait, what? I don't know julia. It's a different keynote. No no julia I haven't met julia yet Lovely once again, please welcome chris mckenzie speaking on linux and its micro computer predecessors pre 1996 and I have to do please give a round of applause for chris and welcome All right, here we are here we are Flight show cool. Why isn't it at a high resolution? Yeah, it is. Okay, cool. So I have a script Hello everybody. Thank you for attending And I also have a little wand over here that I put in my pocket I have some prompts to make sure my wand's working Ah nice So, um linux and its micro computer predecessors pre 1996 Oh, I have to put the uh usb plug into the wand or so it's not gonna work. Sorry Technology, right? All right. So this is general talk Here's some players for a 20th century journey if you haven't met them I think everybody here has seen them before but it's all right Um, let's warm up the time machine We all use linux even if we don't know it when you see a machine reboot at a grocery store It's like oh, hey, there's a penguin again The linux has already become the most ubiquitous operating system But how did that happen? Well, here's a story that's usually given it's an undergrad post about his hobby project and a bunch of people helped out heard of that one But wait, a college kid with a hobby project started a computer project by posting? That's absurd. I don't believe that What about these other things? They're only the unixus ones Oberon by Pascal's Nicholas Worth is from 1987 and there were many others didn't make the deck But these did Here's various other commercial efforts. Uh, some of these are complete systems Others are kernels the lines between are the first and last release of them Linus wasn't shouting out from the wilderness. There was a vibrant pc unix ecosystem that predated him Products such as unix and coherent were hot stuff at one time, but now they are the works of ozzymandias Look on the timeliney mighty end of spare That's because this guy Genghis Khan the unix war There's only one commercial unix without hardware still attached to it still around zinuas unix ware seven definitive 2018 Which last release was actually in 2017 and that's it instead of in dial-up But mr. McKenzie, there's more to the story. What about the bsd lawsuit? Well, what about it? The first bsd was released in 1978, but for our story, we'll only need two names a husband and wife team bill and lynn gelitz Why didn't that win the unix war? Ah, this is usually given but it's not persuasive bsd is much older and in an interview with bill gelitz in 1994 He said he started working on 386 bsd in 1986 Even though only net one and net two were released in the interim Also, there were five lawsuits that held up linux in court for over a decade. Did that really affect his development? Okay, okay, let's assume there was a two-year hold on bsd Then we should go over to say use net and see a fair amount of silence during that time But in fact we do not This is just over two days. It was lively and vibrant. There's no evidence of any chilling effect The highlighted post is an update of the lawsuit amidst a bunch of articles talking about progress and bugs Mapping out the velocity of use net articles and bsd groups to look for change correlated with the court case activities Showed nothing of interest. However, there were a number of articles across using out with titles like linux of 36 bsd Where people compare them many include minutiae such as specific hardware, but none talk about the lawsuit Also, there's a first mover advantage theory where people write history from the first successful Implementation and forget everything that came before There were digital currencies before bitcoin mp3 players before ipod and social media before facebook linux's timing was favorable But there's more to that than that So we have to reject the hypothesis that linux that bsd was held back because there's no contemporary Contemporaneous evidence besides net bsd went out in 93 free bsd in june They already have things like when nuttrucking the first installable linux was mcc interim in february 92 It's really not that far apart. Tell me how wrong i am go to the url and denounce me at your leisure, but Just to show you that i'm a big fan. Here's a free bsd shirt from the 90s. So i don't hate free bsd Okay, i've been with her for a long time Oh, i didn't go over the first slide I skipped that one anyway The most important one i skipped this sorry I really care about uh accuracy And so i've made a i'm a i'm in a page for you to correct and do my mistakes over here That has all the slides it has all of my history It has about 24 youtube videos of me preparing this thing It has all of the assets and it has the script and it has a way for you to comment and and if you have any any questions or concerns And if you want to have about 500 gigabytes of archives that i can make available as well So I'm sorry about that. I don't know how i skipped that one I've only i've only done 22 test runs of this. Do you think i would have not fucked that up? All right, um my apologies We're in uh We are at Number 14 my apologies Regardless linux has become a few orders of magnitude more prevalent than bsd and killed commercial unix. How? There's two your there's two possibilities the great man theory and a social history. The second is harder Let's try the first it looks easy. It says some glorious thing happened But you can't do it because you don't have the right genes Unfortunately, this isn't useful unless you enjoy talking about things that are flops, but you're all rock stars, right? I hope Okay, so what about the second one? Using syllogisms we are mere mortals We are mortals did this therefore we can do this, but only if we know how The first is a much shorter speech a carlyle style hero worship about how great men should rule and others should review the Maguskin mystical biopic However, we've got a much harder job and to do it. We need defendable and falsifiable hypotheses so You have some more terms in case you didn't know these things. I don't know how this is a general talk Y'all look pretty technical, but anyway, let's go on Perhaps linux was a second act of the personal computer revolution Personal software and personal hardware if the central one at hollard things fall apart a mere anarchist lives upon a world We might as well make a productive and get some nice software out of it Maybe if a unix needed a pool of hackers to build it on cheap computers With a robust communication network and avoid bad actors taking advantage of their generosity Maybe there's also the maybe not stop falsifiable thing I talked about Number one unix was thought to be really complicated Actually, it seemed to be quite elegant and simple the unix source license was 200 000 dollars in 1980s So of course it was complicated magical, but that was just marketing Even 386 psd 20 years into unix was done by the joelitz's husband and wife team just two people Number two community-based programs were thought impossible There's an organization called share who came up with the share operating system in the late 1950s Which was community developed share was eventually structured closer to bio cooperative to see how it worked Around the birth of the unix let's go to computer world 1968 During the past four months share has been working with ibm to define changes needed by Users when the company responded 12 or 13 requests has been turned down well ibm look at what happens to you when you ignore your users Oh, yeah, share was los angeles based so la pride Speaking of things that happened over 40 years ago ancient history All the unix started in 1969 the first paper went out five years later Here's four principles extracted from it that will be useful for a journey Leverage don't invent doing beats planning knees not desires use early use often Although each one of these may have its flaws together they form a cohesion even a synergy if you will Unix was designed for a dead classic computers called mini computers They were about an order of magnitude or two cheaper than mainframes and also less capable well at first People wanted to solve their tasks on cheaper machines because that's all they had access to Roughly every decade a new lower price computer classrooms based on a new programming platform network and interface Resulting in new usage and a new industry. That's bells law. It's 1972 As mini computers came on the market and became more powerful unix was there to leverage them to service people's needs These new machines provided a new context for new software. These needs are only meant as examples The point is that the velocity of computer progress went faster than people's needs Apparently computer performance increased as a square of the cost of transistors A square of the cost and transistors per chip doubled every 18 months Those are called grosses law and more's law together and met the industry eventually ate itself through multi-decade long digestion However, when new things come in the people who get there early don't get there easy It's okay though. Some of us are crazy and prefer it AT&T was under many legal obligations And because of that unix was initially distributed as if it came out of the back of an unmarked white van The mantra was part of the presentation deck for early linux saying you're on your own Think of the adventure think of the excitement But who are you cating to you with such a message? What where will their behavior guide things? It's not about welcoming everyone doing every anything With any of these efforts you have to ask yourself who you're bringing to the door and what kind of behavior you're expecting That's what separates a library from a soccer field for example linus september 1992 Minix is good for education Coherent for simpler home use linux for hacking and 386 for people who want 36 bsd for people who want the real mccoy or linus a year earlier You also need to be something of a hacker to set it up So for those hoping for an alternative to minix 386, please ignore me It is currently meant for hackers interested in operating systems in 3d6s with access to minix Maintaining focus is about intentionally not incidentally, but actually intentionally choosing what to ignore You have to be a clear signal amongst your noisy world Because you had to know what you were doing Unix was initially introduced through engineering and technical people and not through the conventional decision makers, but it worked And by the 80s. Unix was mainstream the problems As both the consumers and producers of unix multiplied the suppliers differentiated themselves succumbing to the trappings of usual competitive markets by enclosing the commons trying to take ownership of groups And commonly held things by setting up barriers Thus locking them in and growing their base by trying to be special which led to fragmentation Unix had infected everything from workstations to mainframes unisys one of the mainframe makers had an article in september 1987 issue of computer world predicting a tripling of unix sales in that year alone The problem with the infighting goes back to the chart with various blobs about computer classes The threat is almost always coming from below in this case It was a microsoft and micro computers and not nix store cynics on an ns 32 000 versus clicks on integraph into pro In 1985 microsoft argued that their xenix unix which had an install base of 100 000 would be a multi-user version of dosch In 87 they said they didn't see it competing with their plans for os2 Which at the time was seen as a successor to windows 1.0 lol Things changed specifically that december with the introduction of windows 2.0 and later with windows 4 groups and nt That was a real threat Anyways, is enix require 12 360 k floppies which is seen as bonkers. I don't know how young people would be But you're all kind of old in case you're kind of young 12 360 k floppies you know put these in manually You're kind of young Um A 32 gigabyte micro sd card is about 93 000 floppy. It's 190 meters stacked into end That's like a two and a half minute walk All that storage is now inside your thumbnail it costs as much as a taco on the west side Anyway, software distribution used to suck Speaking of microsoft that punch taped up there Uh Is how do they distribute a basic for the altair in the 1970s? It took about 20 minutes to load and it wasn't sort of this because the altair didn't have one Just keep the computer on if you want to use the software the lower right is called a type in program Software is distributed like this as multiple pages of hexadecimal No, really. This is mlx format They publish listings like this every month three years you typed it in there was no electronic reader There's some basic code on the first page and it's not pretty either Um The qr code is this game running on an emulator in your browser you can scan it and just tap it on your phone no typing required Anyone want to scan it? You can scan give it a try if you want to you could only use the software that you have access to There were also software user groups which were convenient for the one of 20 people who live near one People wanted you can do it it brings up a commodore emulator and then you just you can just play it And it's and imagine back then if you wanted to actually play that game you'd have to sit and type in all of these hex codes Take hours, right? And now it's just it's just a few seconds so much easier But for most um the software meant retail mail order or copying of floppy from a friend the bottom two methods have consumer overhead Uh for dial-up you usually had to pay an expensive phone bill on furniture. You probably didn't have it 2400 bps access to genie in 1989 for instance was $42 an hour and that's how long it takes to get a megabyte over 2400 bps This means most people were only exposed to the top three groups And it was difficult for smaller developers and non-commercial ones to get their software to the masses paraphrasing marketing high technologies by bill davido in 1986 It's not a product without a distribution channel or in linux's case a distribution The technology may have the potential to address the needs of many but without specialists Re-distributors to put it in the hands of those customers. It will not succeed products are short through distribution not to distribution Let's jump forward to the why linux question Uh fuel for a bit with its diagrams up linux has high accessibility of the install media march 1993 unix world listed FTP repos bbs numbers and companies you can mail order linux from later You could find linux at coffee shops libraries and attached to magazines as a grocery store It's then we have a cd with linux sister on cribbing some how-to's with cheap content for magazine You just want to get an issue out. Let's go back to the problems Depending on the distribution channel updates have logistic complexity, especially when considering updates from outsiders For instance, if you wanted to update a retail copy of lotus one two three and have you change it appear at the Self-assured city you'd probably have to do it yourself and get arrested It would have been fun though Once there were online networks with stores and communication necessary to unlock the multiplayer online mode for the software development game A new way to write software was created Yaki bank learn described this as commons-based peer production is Book the wealth of networks. Let's go to linux 1991 I've enjoyed doing this and somebody might enjoy looking at it and even modifying it for their own needs It's still small enough to understand and i'm looking forward to any comments. You might have I'd like to hear from you So I can add your software to the system Adding minix things to linux is fine But how do contributions and updates work unless you can answer these questions clearly progress will be slow and frequent and inefficient Everyone has to agree on the terms and feel welcome. Otherwise, they become petty and don't come around here no more So gnu made a rose a valetian list of four software freedoms to define free software But it's not just license It's organization plus license for our purposes. We're going to talk about horizontalizing software development Which labeled adoptive in this chart Essentially how easy is it for modifications to become integrated and in the same distribution channels And other people to become a distributor or to share your product You need a legal structure and organizational structure that affords this an open shop that permits anyone to come in Eric ramion spoke to this in the catheter in bazaar In the cathedral model, which is tall source code is available, but development is restricted to exclusive group Contrasts with the bazaar model, which is flat in which code is developed over the internet in view of the public The vertical lines here from permissive to restrictive Uh is a general continuum public domain is seen as too permissive in you as a gnu Because you can realize this reprivatize things. I've also read a copy left in gpl are different from each other, but I never went to law school Uh, if you zoom in you'll see non-computer things. Let's go over a few bottom right is facts People ought to be really hesitant to modify facts and their public domain above that You have most religions anyone can preach the good word and start a congregation But at least in principle the texts are sacred as we go up We get jokes recipes human language at the top is folklore which changes readily as you move to the left of public domain You go wikipedia which anyone can edit On the restrictive adoptive side of social media anyone can contribute, but the platforms retain a bunch of rights Commercial software is down the hesitant restrictive camp down here. The pink stuff is all linchulated which if you're colorblind It's this right here Minix is actually down extra freeware in gcc in a hesitant category because Below the pool label unixes except for social media and wikipedia all of this is early 1980s and not 2024 accurate And so some of these softwares they change terms over time, but this is a history talk So we're talking about early 90s Speaking of the past. Let's go to the introduction of minix In 1986 commons based pure production wasn't feasible people didn't have the internet in their pocket Because of the prohibitive logistics around software distribution updates, especially customer initiated minix could only be a cathedral Also, it was a product of princess hall who wanted to sell textbooks and instruction material for anti tannin ball So here's the relevant part of the announcement. It's not public domain. However The publisher does not object to people making copies for friends That's sneaker net if you want to sell it Which is the two galleries above sneaker net retail mail order you need permission In his book you will find a postcard that you can use to order the software That's our mail order again And he says he doesn't want to copy a bunch of floppies as in do sneaker net as you can see these distribution channels are Or all throughout all of this old stuff So now minix was adjacent to gcc as I said before what's up with that GNU was also cathedral Here's an example from an early GNU bulletin 1987 We can see it listing out different distribution channels again same pattern As they solicit the funds to pay programmers to write more software like a software engineering firm gans. Here it is They played a second role as a provider of copy left and eventually software under the gpl Which came out a few years later gpl was 89 this is 87 Every bulletin has a growing list of software by others that you can order you can get net two bsd And then bsd 4.4 light from them until 1985 because linux came from below and GNU got disrupted like everybody else Then GNU started backing a linux distribution which ended up breaking up with them called debion As far as distributing free stuff goes there's presidents such as this one from 1976 trying to be repository for public domain software This from smaller producers such as code publishers a doctor dobs journal Some assembly programs ran over 40 pages long in that publication that you of course were expected to type in yourself So people were looking for a more reasonable solution that didn't cost as much but not all the pieces were there yet All of these things required labored Coordination and resources how we instrument those means some things get better faster Ideas are bizarre even when their implementations are cathedrals For instance, there are many graphical desktop computers even though each one was a proprietary restrictive project The superstructure of desktop computers operated in the adoptive space pretend We have a concept of a free operating system. We may not get all the parts right the first time But the platonic ideal exists. Well, kind of it's a much a contemporary Contemporaneous invention of anything else as a pale true thought suspended in our life stream We can go back to van der veer bush's memex article as we may think in the atlantic from 19 Oh, that was the wrong button In 1945 to see the spirit of what we now call many things unlike products platonic ideals are collective projects owned by nobody They're permissive and adoptive and not static abstractions divorced from human influence That are ideas manifested from context the map is not the territory and in our industry We are tasked with creating both through pure thought stuff. What a responsibility. We better get organized This is about the complexities of building software not about electing people. So don't worry about that You may have heard that commercial software began when bill gates opened letter to computer hobbyists in 1976 Where you denounced sneaker net distribution of all tier basic because you didn't get paid for each of the copies I'm sure people in here have heard that I thought that was the beginning That's not really where commercial software began in the mid 50s software was in-house coupled with hardware or contract base as you can see from this 1959 ad from uh punch card data processing But the version of commercial software that has products for a computer you already own has existed since at least 1960 No, really this is another falsifiable thing bruce parents chapter open source Stephen levine hackers they allude to a garden of Eden in the past from which we have fallen We're all softwares free really well no Here 1966 claiming commercial software was a hundred million dollar industry and then in 69 11 companies was at least a hundred million dollars Got together for a trade group Hardware vendors bundled software to lock in their customers like microsoft. It was internet explorer It was as free as windows as on a retail laptop people were trying to DRM and pass the software back into 60s And more than one succeeded Maybe there was some idyllic ball haul and a bubble known as the mit artificial intelligence lab But the real world was up to the same tricks they are now Anyway software unbundling happened in 1968 and 69 vendor by vendor and new unix arose from this primordial soup Is one of the oldest non-mainframe software that is still recognizable today recognizable by the family tree looks like a european dynasty This unix timeline covers a few years in the late 80s zooming in you'd see minix MIT tricks and os mox xenix from the house of free software AT&T or the kingdom of microsoft I'm still not a lawyer, but this is really confusing not only did the source and binary have different terms But sometimes only certain organizations had access to them For instance, if you're an educational organization with a pre-existing AT&T license, then you had access to bsd. I think So a version might have multiple parents each with a different sheet. It's uh legal hapsburg So that's why a few slides ago. There's a puddle of the labing unixes each of the unixes Unix term it's even the unix term itself is a confusing mess Raise your hand if you still think it's copyrighted by AT&T be honest anybody still think unix is a copyright of AT&T Okay, we have a few people here. All right, you're all very smart But that's a no 31 years ago AT&T So unix system laboratories to novell who then donated the unix copyright to the x open consortium Which merged with osf and became the open group which is now a standard organization Some elanxes have gone through that process so linux is now unix Really you just find out right now. It's absurd. We need something with clean documented history clear license and easy answers to all of these problems So linux and effectively all modern open source projects have this solved all development is open The history is well archived and the osf approved license solves this family tree problems The structure that's now ubiquitous is one linux's major contributions and we don't We don't hold it up as that it's modern open source software is really Due to that also, let's talk about the politics internal politics of building software in the abstract penguin slide We covered the outside aspirational curve where things take decades and opinions are strong and many Things like paradigmatic ways of doing open source software development took 20 years to dominate because the longevity and applicability Of the more abstract solution is on the same time frame as their implementation But within that exists lower level mazlavia motivations and keeping things there makes them more actionable Let's say your natural card is said not sending out packets We can say this bug is known agreed upon and demonstrable So although it may not be easy the labor path is traversable a new natural card comes out You needed to work on linux That's a need you can demonstrate and come to an agreement on what that would look like pretend You wanted a natural card to do something that wasn't designed to do that's harder to demonstrate and agreed upon So we're in a desires category To get it actionable you need to pull the desire into the lower curve So its development cycle can't encompass it It's worth noting the tannin bomb torvoles debate from 1992 to illustrate this tannin bomb chastised torvoles approach because it wasn't a microkernel and linux was exclusive to 386 Really linux was in these lower curves and tannin bomb was trying to pull it up to the higher curves where things move far Far slower That's where all the hot research always is people trying to make these higher level concepts more real Ghanu heard of the microkernel approach stahlman claimed in the early 2000s. That's why I was taking so long and wasn't very stable The higher level curves are unlikely to succeed unless Except as superstructures of the lower level functions in the same way their asymmetric approach to platonic ideals happens in the back of Incrementally more appropriate implementations which are widening snake-aligned from 1950s IBM share organization to github Through that process of clarifying the aspirations to get moved to the concrete as they become material needs and bug problems The clarity of the present stands on both the triumph and the wreckage of the past For example, the mock three microkernel led to pink and next step workplace os talligent and eventually x and u Which is part monolithic and now the basis from mac os to get there that curve burned over a decade through multiple companies and billions of dollars Also the osf group i mentioned before had a mock bsd hybrid named osf one Apple was going to use it in alliance with ibm, but that got cancelled It went on to become true 64 whose last major release was in 2000 24 years ago to add ipv6 support How's that transition going? As a cynic i tend to know the cost of everything and the value of nothing. Oh speaking of costs The prices Here's both an article and an advertisement from may 1990 Sun says they have a cheap $6,700 computer, but here's a pc at about one tenth of cost, which is fine if you can do some of the same things Historically that answer had been no But referring back to the chart with needs and computing classes this dynamic was likely to change you Especially since the 386 had techno Technical features which made running unix style operating systems more practical Let's talk about the price of linux zero, right? No You're paying you were paying hourly for dial up internet access But between 1989 and 94 that price dropped 90 percent and the speed quadrupled which meant a hundred dollars would now cost you 250 you could also get linux and floppies or cds initially priced like cheap commercial unix sls was 100 and nascent was 90 But gpo allowed anyone to distribute so these prices collapsed quickly But that's not the only kind of price there is there's also the price of time There's a conceptual not a quantitative graph Essentially windows is the easiest but let's say you wanted to uh convert a bunch of files sort the contents Like a field extract values do some operation on them these things get hard quickly Early on the bsd's are paying to set up, but they had networking before linux. They were more professional However, there were fewer people working on them who tended to be more experienced So they were busy and expensive linux was mostly students which are famously cheap Linux was also heavily hobbyist oriented, which usually meant the systems were more hackable The other unix has presumed you had something important to do The most more difficult and time consuming it is for customers to use an information system the less likely it will be That they will use that information system. That's calvin morris from 1959 as the complexity of the problems became more intractable The approachability of the lower levels and internalism system became increasingly important Because people tend to use the most convenient method in the least exacting mode available and stop as soon as minimally acceptable results are found That's the principle of least effort and it's also how hacking works Hackers tend to build worlds where everything is possible, but nothing of interest is easy Alan Perlis called this the turning tar pit in 1982 Pulling yourself out of it from a capable to a usable system requires some engine to push it forward Common's base peer production can also be seen as prosumer or producer and a consumer put together It's used in social media where you're consuming other consumers productions Here our engine is problem solution integration, which keeps us in the bugs needs development cycle With the bizarre method of development that changes reflect back quickly Which means that new users have fewer problems with their different hardware so that for other people with say your natural card It would just work But where do you find the people to do that? Well, you have to build armies, of course Large networks are important their utility scales quickly with the size of the network because the combinations of groups grow faster than the utility of the groups that join That's Reed's law For example, we start using linux you have a natural card that doesn't work You can now join the subgroup of people becoming a we that needs this card to work This only becomes an engine if we have the right people to complete the cycle we talked about The first levels here are the enthusiast developers and bug fixtures followed by the curious hobbyists Then the business needs and finally people that can't have things fail Arguably one of the feelings of the early bsd is that they are too lopsided in the upper steps and couldn't get the virtual cycle moving with enough Velocity Analyzing email addresses of about two and a half million use net posts over a two year period There were almost always more commercial emails for bsd and more educational ones for linux So even though their general trend was ascending the staircase linux had more torque from the bottom groups I call this the linux. I call this a a cpi Oh, come on a cpi I'm sorry about that people your time is valuable I call this the linux's revolutionary theory the hacker vanguard firms a coalition with a personal computer proletariat and a business-oriented bourgeoisie becomes interested And finally prohibitive assiduous aristocracy is able to use it There's one last type of price expertise You can assign a utility function roughly as a capability is divided by the effort required So we've gone over three types of of of prices here money time and expertise And we have those constants here and then we have utility is basically software capabilities divided by For example, uh, where am I doing? Sometimes both capabilities and efforts increase over time blender For instance is highly capable software but takes a lot of expertise used effectively Many mobile apps on the other hand Actually remove power features over time to make the product require less effort while making it less capable Still others frameworks, for example get Fred Brooks second system A new version that's harder to use and leads to inferior results That's being the inversion of the graph and decreasing the utility of the product But let's talk about these multiple arrows here To get a larger user base you need a diversity of capabilities requiring a diversity of efforts Linux was able to achieve this by outsourcing the actual packaging of the OS through distributions This is another insight about the bizarre software model Since the entire structure is more flat and structural organization barriers are mostly removed as markets naturally subdivide and form They can be quickly and readily addressed because we're doing social history Let's use critical theory mark uses our idea of de-radicalization the dominant structures say markets subsumed the novel However, because in bizarre people can self organize They beat it to the punch and move faster than the market force Which is why open source decoupled structures are more dynamic and swift footer than commercial approaches Here's a chart from innovators dilemma Describing different strategies that you that can be taken as technology gets better You can push up market to higher end consumers or you can say with your existing customers However, because of the horizontal development of linux and the existence of distributions run by multiple organizations It was able to do multiple strategies at once not only these but any others that haven't have them left out of this graph So the packets more p words A few slides ago. We saw how linux has a horizontal as bizarre approach to software internally Let's look at the implications of this externally This chart is taken from andy groves 1985 techs only the paranoid survive Describing how the industry moved from one stop shop verticals to a horizontal structure if we put this in the aspirational space This can be viewed as part of the same decoupling superstructure as what the mainframes are doing in the 1960s The premise of this transition was a book called the coming computer industry shakeout by steven mclellan in 1984 Quoting a software gains ascendancy. The key words will no longer be customization Specialization and market niche the new word will be integration systems integration will be the most sophisticated and difficult tax Computer companies will have to undertake That quote being 40 years old gives us the privilege of seeing what happened Essentially four strategies were developed to tackle this problem And so so many pointed out that uh when I was doing a test run that it's this one is here That one is there and that one is there anyway, um So it's the first is to impose in a vertical by claiming you're the standard But in practice only one player can do that. So oh, it's too died I'm not really it's e-cost, but nobody uses it Apple took a different route by being its own vertical Well, linux had to push out the wheel out of the tar pit and eat enough people to do it. Luckily timing was on its side When the internet was mostly accessed at universities september annually brought brought in a flood of new people that had to be coached As residential internet grew the old guard term 1993 as the eternal september the beginning of the mainstreaming of internet access For this to happen cheap isp's and web servers needed to exist Quickly to support users and linux was there to provide It's important to note though that linux was pretty much a hobbyist and personal use oriented at the time Even though linux journal, we had a you know, one of the original writers here earlier Uh has an article is 1994 about it as web servers and running isp's Contemporary texts such as linux getting started unleashing the workstation your pc or plug-and-play linux Went to lower two steps of our staircase hobbies and personal the early slack where mcc and sls distros From the time didn't include web servers or tools run a business The first people in new use cases don't get there with clean off the shelf solutions They play the scout role clearing the road for the army to roll in which is why the web server book in 1985 now includes linux That's how that happened Another benefactor of the eternal september is the tribute to linux's law given enough eyeballs all booked to shallow. Let's look at the various eyeballs The first term slide which none of you probably read Claims that linux was mostly built by college students. Here's some evidence after first releasing in october linux got some help And in november local help sorry and in november it had contributions from hong kong mit and university of utah In december code came from calgary and berkeley and then colorado and maryland students came in january So far everyone is under 25 As there became an increasingly pressing need for a solution like linux to solve new problems And that need has more or less persisted to this day apple is vertical Microsoft is entitled and linux continues to climb stairs that have yet to be drawn. Here's a quote by torvolds I think the timing was good. Even just a year earlier. I don't think it could have been done and a year later Somebody else would have to do something similar These two bottom charts show how linux now dominates super computer and web server space Uh, so how's everybody doing? Are you still awake? Yes, that's I've done this sheet as is this This is long. So let's have some fun If there's a storefront named open source, what would be displayed on its windows? In fact, let's do some interactive theater and what looks like the kekistan flag We're a group of people in 1985 trying to bring free softwares to the masses our marketing director Just told us about the marketing mix with the four p's product price place and promotion In order to have a figurehead for the free software movement We need to find a piece of free software that qualifies these conditions It should be easier to try acquire and understand. It should have a low price of time money and expertise I appreciate all the suggestions so far. These are all excellent examples of free software I especially like the elevator pitch for emacs org mode before we settle on a whole project I'm wondering if we've left anything out any suggestions from the audience anybody Oh, yes, you sure the man there. I've known for over a decade. That's a great idea Maybe linux can be the window dressing for the free software movement or how about this? I've got a better idea Let's make an alt copyright pipeline We have low effort things for curious pc users to try then we gently tell them our community beliefs and encourage them to up their commitments They'll become more familiar with projects that would take effort and expertise Get involved and become an advocate over time They'll report bugs help determine needs and implement desires to move our aspirational project forward and make it more tangible In order to do this We must be a welcoming community by necessity, but also because we brought in the right people We'll call it the jeepal's temple And that's how it happened Oh wait How do you do it again? The paps Jeffrey Moore made this graph and his work crossing the chasm in 1991 It proposed a commercial products mature users with different behaviors and expectations come around There's two holes in the graph right here The first group is people who are aspirational and have a high tolerance for impracticality They are willing to go to the extra mile and make things work Then there's a small hole down right there In the graph on the right with the electric car adoption in norway You can see that small slump the first circle right here The next group is the diff sorry the next group is enthusiastic about the possibilities But prefer lower effort time and expertise costs. That's these the visionaries Then there's a really big hole, which is the yellow one right here The next group is a difficult one to reach they're looking for a working product and don't want to be hassle with inconvenience Many products don't make it there So this is for commercial products. What about open source I present? Crossing the open source chasm Uh The first group are passionate hackers trying to climb the aspirational curves and bring it down to the bugs and needs If they can keep their passions going long enough and make sufficient progress then perhaps The music makers will come around and help recruit more passionate people to large that base That's the first pipeline If the engine become between the passionate and the enthusiast Can be maintained in order to drive the problem solutions integration wheel out of the carpet That people can get pulled out of the trunk carpet And if the software capabilities divided by the software effort demanded yields enough utility ratio Then the pragmatists will become interested and the chasm is crossed But in order to keep the pipeline well That's important to keep the pipeline well lubricated because you'll be facing new challenges and use cases and need A few of those new users to slide along the responsibility graph in order to grow the coalition As our law of division then takes hold Declarity of the present stands on both the triumph and the wreckage of the past Sometimes for a city to become great and must first be destroyed so that a new generation can seize the dream and try to execute it Better failure and passage of time and binds us from commitments and gives us permission to kill our darlings And do a page one rewrite by naturally creating the space for us to try again But only if we retain liberty to do so Here's a few historical examples. Anybody know what these are anybody know what this thing is What is it? Anybody else Radio. Oh, sir. It is. This is an early mechanical television What about this one? It's the cook in wheat stone telegraph a pre morse code telegraph technology. What about this? Yeah It's much older than that from the 1850s It's an erithmoner erithmometer. It's the first practical office calculator Each of these devices have a different history But they affected the same results the aspirational curve eventually wasn't captured by a particular implementation Sitting on the left of the curve We'd like to intentionally accelerate the social technical processes but as a counterintuitive average. Otherwise, it'd be easy Strong ap reinforcements on strong visions diminish their chances of success You must let go of that which you love the most you may get the vision right execution timing your team right But probably not all at once facebook iphone google amazon They're all iterative executions of larger ideas owned by nobody and arguably failing on one or more of these fronts today If you're working on a thing or have a dream and it's just you then you're definitely on the very left of the graph You could argue for certain use cases free software took over 20 years to cross the big chasm and for others Desktop publishing digital audio workstation photo editing or social media the free software chasm is still not crossed There needs to be a certain kind of affection for the people their needs desires and aspirations For these to eventually succeed for say the gimp to overtake photoshop the commitment to others with less responsibility is key Because that's how you get the new recruits So whatever you're working on it will take longer and manifest differently than what you thought Don't have codependencies with it. It will foster resentment anxiety and low self-esteem really will become support to the great man theory If something is dying, maybe that's the fire. You need to rebuild things listen to the needs and desires of others of the idea So do one thing do it well work together hand or text streams because that's the universal interface This is actually unix philosophy by peter's alice, but i'm serious about it. Good software advice is also good people advice when building software Let's go to tracy guitar solve a new machine 1981 Looking into the vax west had imagined he saw the diagram of dex corporate organization He felt that vax was too complicated He did not like the system by which various parts of the machine communicated with each other There are too much protocol involved He decided the vax embodied flaws in dex corporate organization the machine expressed that phenomenally successful Companies conscious bureaucratic style Churchill said we shape the buildings and thereafter they shape us however Our buildings are different because the programmer like the poet works only slightly slightly removed from pure thought stuff He builds his castles in the air from air creating by exertion of the imagination or so says fred Brooks Regardless wrecking balls for code are cheaper than those for a concrete. So don't be afraid to use them Is no another unix philosophy this time think about in terms of people make it easy to write test and run organizational efforts Interactive use with humans instead of batch processing Make do with smaller teams You'll need all the engines to get over the chasms and move the projects forward Organizations which design systems are constrained to produce designs for the copies of the communication structures of those organizations melvin conway datamation april 1967 We study yesterday to create a better tomorrow the features ours to make well perhaps That's it. Thank you Appreciate it That was four months of effort Any questions any disputes No questions, I did a good job. I think Laura anybody want to see another slide again or anything like that? I think we Oh, yeah, sure. Why not? It was exactly the amount of time that I've been practicing with 73 I hope so. I hope I didn't bore people Yeah There's there's no there's no Commodore Oh, oh, oh the code the mlx. Oh, you want to play the game? Oh, yes, sure. You'll probably need a keyboard for that actually, but um Yeah, yeah scan the scan the QR code. Yeah, that's real. Hey, there it is. Yeah It is that is a Commodore 64 game. Yeah, try it out Yeah, I don't know where the floppies went. I mean Oh Oh, oh, I'm sure a lot of people have seen him in person Of course Yeah, yeah, you know, I it's this realization that like, um, there are people that are like under 40 you have never seen these before Yeah, yeah Yeah, it's crazy. It's crazy unless things are saying Did you like the presentation? That's good. I tried to slow down Yeah Thank you so much. Yeah Yeah, I need to slow that thing My dad worked there My dad worked down to 80s. That's why those discs Right Yeah, you you did a typing the mlx typing. Oh, yeah, hi. It took a long time, right? It's great. Just a QR code and you're there. You can only use the software you have access to That's that's that's the key I mean, you know, and you look at the basic code you're like, that's not that bad. What the hell No, that's And and then you look at dr. Dobbs journal and things in the 30 to 40 pages is all assembly code It's just like oh my goodness Well, well, what was it? Well mlx had had checksum is built into it So that if you made a mistake you'll catch it Mm-hmm Let me see. Is there any slide you guys want to look at? Here You can press up and down and go through the thing. Oh good. Yeah, great So so yeah, you're using mcc intramur or whatever the name Yeah, I um spent many days at at um Central library going through micro fish and old copies of unix world and Reading old books that are out of print and going through all these all, you know Trying to make sure everything was absolutely defendable every single word And that's why I had a little script there because I didn't want to say anything inaccurate You're you're always stuck in a hybrid of that. So although we can do the social history Uh, it's still constructed That's construction of individual people And so all the quotes up there that I put are still from human or specific humans, right? And and you know a quote from linus torvalds more legitimate than a quote from some random, you know poster So, you know, you still fall into that trapping But you know, I try not to rely on it and I don't want to I don't want to say oh, and here he was born in, you know, finland I mean, yeah, I mean he did it right You know and and he's a smart smart cookie. I'm not going to say that but you know, he's nice Not a god. He's human like everybody else Exactly and I know we can we can do similar things Oh, oh, yeah, yeah, that that that's an important one because you you really can't put that into um, Where's the distribution? Oh, it's the next one Oh, yeah, well, why not? I mean it I should shouldn't I A lot of work. Yeah, there's a lot of work in here It's especially this one because you know, it's a lot there a lot of the a lot of the histories do say that um Uh, you know, there are all softries to be free bruce parents and open source and and steven levy and the haggard But you know, it The the the more doc the more documentation I read from that era is bullshit Uh-huh Oh, yeah, I've heard that One. Yeah, I'm not familiar with it. Yes. I'm not kept Yeah, it has like Yeah, it has like a human face, but it's like a tape tape machine on it. Yes. Yes. Yes. Yeah, see See, I'm not bullshitting you because I can tell you what the cover is So, yeah, I'm afraid it's a good it's a good copy. I think melvin conway is in there and if you're yeah, there's a Oh, yeah Yeah, I've seen that before Yeah, and this this is there's some interesting things that found here So like free software might be legal, but by free software, they meant bundled software So so free product included with the hardware such as when microsoft's case in the late 90s Right, and so this is about vendor locking, right and then you have things like uh, yeah software for sale. There's always ads Um, yeah, so there's no basis for that, but yeah, you were talking about Um This one Right, yeah, yeah Do you have questions He's heard the stories I wanted to hear from somebody else But yeah Yeah So I would I would say that uh, both slack where an sls had had a very similar system at the time Yeah Right and and and they were uh slightly under 360 k so you fit them on smaller disks I Yeah, I mean I I agree that I think debbie and really sort of solidified it into the form that we still use to this day But I I think it certainly had a precedence Yeah Yeah, there's there's there's about Six or so that I know about Well, yeah, there's there's also a good result, which is the first one that had a live cd. They're live cd in 93 Yeah, I didn't mention the good result on here. I should have but It's mostly because it you know, um for space it was you know, if I was to do mcc It's only this big and you could raise this big You know Well, I'm glad I'm glad that uh, I was able to speak in front of people with gray hair and you're okay with that Yeah, I I like the background here I Use a group the first unix group Oh, yeah, yeah, yeah, um Some of this might be from bite here's coherent up here This this isn't this is an interesting machine. This is uh hpu x is hp's first machine They had hpu x 1.0 built into their ROM And they had a built-in printer Yeah Yeah, it was crazy. Yeah, I'd never seen that before Yeah, and then unix and dos interoperability was was really big So QNX like 1980 or so, yeah Yeah Yeah, yeah, they're they're out of Canada. Yeah, and They've been yeah, they've been around in the unix world for a long long long time Yeah, and then they became better in the 90s Yeah, yeah, they're they're Yeah, they have the same owner as palm now, I think Pardon me Oh, yeah, everybody in like 99 The demos I did with it just like Yeah, this is interesting because you know, I I saw these Uh in some these myths spoken So I had a I did I had to say no, that's not true You never heard about this one Oh, yeah, I came across it a few times But you know, no the source the source license is $200,000 so of course it's complicated It's a 76 lines book. Yeah, though. That was seen as illegal and But it's it's it's now open sourced and uh hypertext based so you can uh You can click on it on on these websites. Hey, luke you're late Oh, you you attended it Most people stayed I think I had like an 85% retention rate, which is good But then whenever somebody's like, oh, no, I'm boring them. Oh, no Thank you It didn't pack the room, but it wasn't empty Well, we used to do um, we used to give everyone Which was too expensive to continue to do it was like $10,000 a season But like, um, it was cool because for a while you would see people just randomly like Yep, yeah, and I'm about his work, right? Yeah, this is working Yeah I have met for many many many But I've never met her in person. Oh, yeah. Yeah, I was like, okay, like like I recognize you from somewhere. I'm like, yeah, it's the zoom the zoom calls I mean, it's like it's mostly researchers that Like it's a bunch of the octos Um, honestly, we just established this like And so we've had four meetings to try to figure out exactly what we want to do and then like now we kind of know what we want to do Yeah, I don't know if the work I don't know if the interest is like But it's like basically a superpower that like everyone wants to talk to you just because like you're young and they Remind them of them when they're younger or whatever it is. I don't know why but like everyone Test test test test cool Test test testing cool Mike Mike one two cool Hello, everyone. Happy saturday and welcome to scale 21. How is everyone doing today? How are you doing? How you doing? Yeah Awesome. I'm here to introduce our next speaker today. We have tyler menezes He will be speaking on nurturing the next generation of open source contributors If I could get a round of applause for tyler And thank you mckenzie for the intro. So yeah, uh, my name is tyler menezes. There's a picture of me from a child And uh, yeah, I'm here to talk about nurturing the next generation of open source contributors Um, I am the executive director of the non-profit code day Which I started when I was in high school. So it's been uh, like I think 15 years now That I've been doing this so it's it's been a while Um And uh, I'm going to talk to you today about a couple things. So first of all Uh, why is open source good for students if you're a student here? Hopefully that inspires you if you're not a student here, but you're interested in open source. Hopefully I can convince you to You know care about this Because I know some people don't Uh, what are the problems that students face when they're trying to contribute to open source? Or just generally when you're trying to build cool stuff as a student Like what are the what are the problems that a lot of students face? And then finally I want to talk about if you are a maintainer of an open source project Even if it's like just two users if you're a maintainer of an open source projects Uh, what can you do to make your project easier for people to contribute to and specifically students? So like I said, I'm the executive director of the organization called code day And uh, we have a saying there's a place in tech for everyone We want to help everyone find their place in the tech industry somehow doesn't mean that everyone has to be a Programmer, but there's so much technology in our lives every day And we just want to have everyone feel confident that they can contribute in some way if they want to um Here's kind of a background on how we got into this idea of helping students with open source So we started out a long time ago with these events that we just called code days And they're basically hackathons. We never call it a hackathon What we do is we get a bunch of high school students from a city together for a weekend And we help them make video games And we have a really big focus on people who are um Like lower income sorry i'm getting I can hear myself talking on the live stream in the background Uh, we have a big focus on folks who are lower income areas So we can provide them a lot of uh resources like free laptops and rides to the event and stuff like that And we have a really really big focus on people who don't think that they want to code already So we would get and we still do get artists musicians People who just want to make video games, but they don't like the code part And we just want to show them how cool and creative and fun uh technology can be how it can be an expression of creativity There's two things that we really design these events around by the way One is agency like the power to shape the world around you if you have a computer That's all you really need to make a change that actually affects like Your friends your family your community or just millions of random people around the world That's what open source is about as well, and we'll talk about that later So I can think for us is creativity like tech is a way to just make something cool. It's a it's a tool It's a way to build something I know that some people love the math and the science and the logic part of it But for a lot of us we're into tech because we just want to make something cool And we want to give that experience to students as well So we started doing these events called code days and students would just make they they'd come in They did they knew nothing about programming or maybe they took an intro class, but they hated it But they'd come in and uh, we'd say what do you want to make and they'd pitch us on something So here's a project. This was a project called thorns a lost conversation It's like a dating sim style game, but your words actually are your weapons So if you want to you can tear down your opponents or build up your friends This was made by a group of folks who had not programmed before actually They had someone who had programmed before but he switched and he did the art And and they built all the art and they had custom music and it's great There's a trailer on our website that they put together if you want to watch it Here's another project. This is from two weeks ago in Seattle This is all custom art that they made in a weekend and this is a game where you play as a cat You have a weapon, but when you shoot someone with your weapon It not only kills the enemy. It teleports you to that location super neat game mechanic made by total beginners This is another one that I really like it's called pocket frog And uh, basically it's like a tamagotchi using a bunch of sensors that were built into this electronics kit that we we got The students so like if you if it was too hot or too cold in your room your frog could could I don't know be injured or something So we were doing this for years and and we still do these events to this day and we have had Last time when I put this slide together 70 000 students who've gone to these events in person We have one in la so if anyone's interested in volunteering for that Let me know We have 50 000 of those students were underrepresented in cs and a large number of them were not planning to pursue it beforehand A big majority of the students that come to our events Are actually lower income increasingly more and more And uh that led us to kind of an interesting problem that we started to notice recently Which is that a lot of these students wanted to pursue cs afterward and they kept pursuing it and they ended up at community colleges and Some people here might think community colleges Did you know that community colleges in most states now can give out bachelors degrees? In washington state we can get a four-year BS and computer science degree and a lot of states. It's a bas or bachelors of applied science, but it's a four-year degree Did you know that community colleges are like free to five thousand dollars a year? That's an awesome opportunity for our students And so a lot of the students that were graduating code day were going off to these community colleges and they were Lower income, you know, like a lot of the times they were working service industry jobs or something to pay for their living expenses And they would end up at these colleges that were super affordable And so we had all these students going here. And do you know who we didn't have at these community colleges? recruiters recruiters didn't care Um, these are what are called non-target schools. Um, if you are looking to hire college graduates for your tech company Um, the projector just went out Uh, well, that's okay if you are looking to hire These if you're looking to hire college graduates for your tech company You want to go to the biggest big name schools. And so a lot of these students were getting overlooked by By you know by their potential career prospects And sort of compounding to this just is just a side note, but I find it super interesting A lot of students don't realize that like you have to do stuff outside of school If you want to get a good job unless you went to like stanford So like here's one stat I found how many percent of students do you think Needed thought that they needed to learn anything outside of classes to get a job in tech Call it out 10 percent, okay Five okay, well people are more negative than I thought so that's good It's 45 but still less than half so more than like More than half of students think that they just need to learn what's in class and they'll get a good job Maybe that's why you're all here. I saw selecting. I don't know Um, what percent do you think didn't actually do anything at all? Yeah, you know times limited like what percent of students you think did literally nothing including like preparing a resume or going to a career fair 25 I heard 25. Yeah 20 almost a quarter of students did literally nothing at all To prepare for getting a job other than just trying to get a good gpa So Big problems for a lot of students everywhere and that that's kind of how we wound up in this space is we were just Thinking like well, what can we do for folks right? What can we do? And by the way gpa was not correlated with success in finding an internship almost at all A lot of people don't even look at it unless you have like a 4.0 So, uh, yeah, so we we were looking at this and we were thinking well, what can we do right? What can we do for students to help them get a leg up? Initially, we were just thinking like let's just build out student resumes and we'll get to later why this is even more valuable but And we were thinking well, what is it that we care about what we were doing these high school events? What are our things about it's about agency, right? It's about being able to shape the world around you. It's about being able to create something awesome And we were thinking well like what can we do for these students and We have Uh coday I I used to be a software engineer and I still do a bunch of stuff and all of our students are into it And so we have a ton of open-source software on our own This is like a quick graph of some of it like we have a ton of open-source software that's maintained by like volunteers We build all of our stuff in house It's awesome like we have a bunch of cool stuff So everything like hmm Maybe there's something here like the students who are Contributing to our stuff are getting a lot out of it. And then we had a really interesting story One of the people who used to contribute to a lot of our software was a person named tj Horner And they uh ended out like I hired them as an intern At one point and They contributed a ton of stuff to our open-source software even before then Just contributing to our open-source software making cool stuff and they kept doing that and they made a maker bot web UI for like starting 3d prints From a website so you don't have to be there in person And this sort of made its way around online and it it became popular on reddit And tj got a call from a recruiter From maker bot Basically saying hey, we want to do something like this. Do you want a job? And tj by the way when this happened was in high school had not graduated high school And so tj is like finishing out this high school Year like having to do all of the stuff that you have to do of like what college are you going to go to? Well, I'm not going to because I'm going to not go to college because I got a job offer from a company in new york To be a professional software engineer already Um, which is awesome So open source we're like, wow, maybe this open source is really just the continuation of like Let's help students do cool things and you know, I've contributed to open source before and I think a lot of y'all know Projects are looking for help, right? Like there are some open source projects already that tag issues as good first issue help wanted simple task up for grabs There's these great People out there who want to get people involved already It's a small number of them right now and I think it's growing every day as people realize this but So we just we started thinking well, let's do that Let's connect students up to some open source projects And so this started in 2020 really in this format We've done some version of this for a long time But this format started in 2020 when no one could get internships because of the pandemic And we went and we found all of our volunteers from our code day events All of our mentors and we just said, hey Do you want to remotely mentor a student like online and help them make an open source contribution? And we get a bunch of yeses bunch people were on board with this So we paired one student or sorry one mentor three students in an open source project And uh, and we gave them a task. We found a bunch of tasks some of the mentors helped us find tasks We we found a bunch of stuff and that was our first year and uh, the students got a ton out of it I'm going to talk about the results later But the students got a ton out of it the mentors got a ton out of it And it resulted in some really cool stuff So I want to move into the stuff that I think is going to be applicable to everyone now That's kind of the story piece and I think it's really cool But you know, what can you take away from this? So when we were putting this together We started looking at why aren't students contributing to open source software already and Even more generally why aren't students doing things outside of the work that they do in classes? Even at the high school level why aren't students making things outside of their classes and there's a couple reasons So the first thing I wanted to talk about is what we call the expert fallacy And this is probably the most prevalent thing that I've seen in general In all sorts of students students don't know how to work independently Why is it that students don't want know how to work independently? Well because for any of the students here you probably know this right you've spent your entire life pretty much up until this point in school right you've spent 10 to 15 to 18 years in school when you're going to you know Start trying to think about making something. Well, what does school teach us to do right? It teaches us a lot of really valuable skills But it teaches those skills in a really particular format right you Study and you take a test and you study and you take a test and you study and you take a test and it's like You don't you don't even notice it at some point right like we're in this room We're all breathing air but like we don't think about the fact that we're breathing air until someone points it out Like that's what this is like It's just all around you and so students start to internalize this idea of I need to know the answers to things I need to study For the test and the test is everything I do and if I don't know the answer that means I failed So when students were you know coming up with this thought of I don't know what to do It was absolutely terrifying to people and maybe some of you have felt this way Uh still I mean I still sometimes feel this way right like this is just I don't know what to do So I failed Because I am studying software engineering or I want to go to college to be a software engineer whatever it is like If I don't know what to do that means I failed the test And that is such a problem So we have to try to find ways to help these students break out of the study test study test cycle and start to You know rewrite this this question in their head of I don't know what to do So that means I failed to I don't know what to do But I can learn Right. I can figure it out So that's that's one um one of the the things that holds a lot of students back from contributing to things um The second thing is finding starting points. So this is something that no one teaches in school I've Like not seen anyone teach this in school. You're just supposed to figure it out at some point um If you want to contribute to you know linux, we're at the linux expo right you want to contribute to linux um There's a bug that you found in linux How are you going to fix that bug you have to figure out Where it is in the code base, right? You have to figure out the line of code that's causing that um I went on wikipedia to try to figure out how the linux kernel worked And this by the way, this is the simplified This is the simplified linux kernel diagram um For some of us who've been around for a while like maybe you've taken an operating systems class like Some of these things you can start to wrap your mind around it, right? But if you're a student, um You don't have what what I would call context, right? You don't have years of working with these things You haven't seen these design patterns over and over and over and so for those of us who've done this for a while You know, you see um a jango application or something like that and you think, okay like I can go into you know if i'm trying to fix something with a You know an action that's happening is probably in the routes and so like i'm going to go and i'm going to look For folders with a certain name and like maybe I can extrapolate from the url where it's going to be or Things like that or uh some techniques like tracing code through the the code base Like how do you do that if if an error is happening put break points and just step through the code and find out How it's flowing through the code like That that doesn't you know, I mean that's just it's it's a skill that no one teaches explicitly You are expected to figure out how to find your own what I like to call a starting point and if you want to contribute to something complex I mean This is even a good thing, right? Because at least there is a diagram for the linux kernel if you want to contribute to the linux kernel If you want to fix a bug in the linux kernel, at least there is a diagram like maybe this is helpful Like a lot of projects don't have that at all, right? And a lot of things in general that you want to do don't have that at all So finding a starting point Is the second big problem that a lot of students have The last problem that we identified Is uh, you know is the stupid questions thing, right? It's embarrassed. It's being embarrassed to ask for help It's like asking for help is a high r to clear. It's it's very difficult for people to do It's very difficult for professional engineers to do but In our experience It's even worse for students in a couple ways So if if you're a mentor to students or you're thinking of being a mentor to anyone like this is a really big one for me Literally, I have talked to students Who feel bad for searching for something on google? I like I heard like some people chuckle in the audience because it's ridiculous, right? But like literally like I don't know if you can see this. There's a lot of google searches and stack overflow Results in the in the tab bar there, right? Like this is like I took a screenshot of my computer when I was working on a project I have had students where at some of our in-person events Like I'll I'll talk to them and they will Come to me and ask me for answers for everything. They won't use their own brain They'll just use me as their brain and and I'll say well, what have you searched for? And they will feel bad about it and and one time like I literally had a friend there who was Mentoring and he was a at the time an engineer at facebook I was like hey like just come with me for a second So I walk over to this friend's computer and I'm like hey a shot show me Like what searches you have open right now? Like what does your web browser look like? He was working on something for work and he has like 20 tabs open of google searches And I'm like see this like this is someone who's getting paid like, you know 200 thousand dollars a year They can search for things you can search for things do But a lot of students don't feel like they can do that, right? They don't feel like they have the permission to do that. They don't feel like they understand how software engineers work This comes up in in kind of other ways people just feel bad because they don't understand what being a software engineer is about And I know that we're not even talking about open source now Like we're just talking about students getting students involved in software development at all People don't realize that like for example the number of lines you code of code that you write is not an output of your productivity Um That that was written about in like the mythical man month in like the 90s, right? Like that's not a that's not a thing that we measure, but like students Don't realize that like figuring out what line of code to write is 80 of the problems sometimes Especially if you're joining a new project, it's okay to spend two weeks figuring out which two lines of code to write That is normal sometimes it's not all the time, but it's it's often the case that it takes that long so Really a lot of people just don't understand what what we sort of Talked to a bunch of mentors and and got a lot of feedback and just sort of revised down into what we call the software development process And this is something that students, you know that if you're mentoring a student in one of these projects you need to learn Um, you need to I mean you know it as an engineer, but like you need to be explicit about this which is Identify and define the problem, right? How do you figure out what the problem is specifically? A lot of people literally have never even used a debugger Even if you're not using a debugger like I sometimes don't want to set up a debugger So I'll just put a bunch of console print lines like how many people have done that, right? You know you just put a bunch of console print lines in places and you see where stuff goes Like those are all techniques that no one ever specifically taught me and no one is ever specifically teaching our student Um online and peer research to find existing solutions Uh google it basically right if you work in a company or you work on a team or like you're contributing to an open source project Go on the discord like ask for some pointers right go in the slack ask for some pointers Um experiment learn by doing just try things like people are so afraid a lot of times to just try things And it's like we're using get for everything now if you mess it up Just get stash and then you're back to where you were before like you didn't you didn't lose anything, right? Just try things see what happens like if you change a line of code to something else like does something different happen That's something that that we do all the time as engineers when we're building things Um evaluate the proposed solutions. Um, if you have a bunch of different things, which one is a good one to choose? Uh verify that you actually solve the problem, which a lot of people don't do sometimes even in industry And uh document the solution which a lot a lot a lot of people in industry do not do that last one Um, but generally like this is the process that engineers go through when we're solving a problem Right like unless we know what to do off the top of our head because we've solved it a thousand times before We are internally going through some version of this. No one has ever told most of the students that this is what we do They spend day in day out going to classes going to um tests and being tested on specific concepts And no one is ever telling them Here's what you do when you don't know what to do Um, and so this is super super frightening to people to come into the situation and say I have no idea what to do And I don't even know what to do about that. I just must be a failure. Like I can't ask someone for help I can't google this like I don't know what to do like it's it's terrible So these are all the problems that we started to try to to figure out and some of these I think are solved by mentorship and by By you know working in um Uh Working with schools to try to teach more of the stuff in schools, which we're doing Um, but there's also parts of this that actually open source maintainers can help with Um, honestly even just being aware of this is is part of it, but Yes, I want to talk now a little bit about How maintainers uh can actually help with this? What are some things that we can do if we're involved in open source software? Uh, what can we do? So the very first one I'm going to count it at zero right like the number zero Thing that maintainers can do to help is just be mentors for students Be mentors for people that want to come into our our communities. That doesn't mean you have to devote Huge huge amounts of time to this But have a discord or a slack or something like that Just tell people that you're available Explicitly tell people that you're available if someone joins your discord Just tell them like hey like welcome, you know, if if I can help at all like let me know Just try to make yourself available and be aware that especially with newer programmers. These are problems that we're that we're gonna face And uh just being available as a mentor is a really big part of that In terms of some specific things though that maintainers can do and i'm going to go from sort of easiest to hardest I think Number one thing is it's just having a contributing file A lot of open source projects don't have a contributing file I mean literally even like what is your style guide if that's something that you care about right? Like how do you build this? It can be like some really bad notes. It doesn't have to be great. Just start with something Uh, and and that goes a long way Um resources is another thing that I really like to see in contributing guides If you have a discord make sure to link that in there Um, whenever I try to contribute to an open source project and what we teach our students to do is Look for the contributing file first and foremost have that be your guide A lot of the other resources out there for a project are going to be how to use it But like this is your place to tell people how to develop it The second thing that I think maintainers can do to help Is having a dev environment. So um get hub has this really awesome feature now called code spaces Uh, which is basically visual code in a browser backed by like an ephemeral vm It's got a free tier. Um, the free tier is fairly generous and uh colleges I think can get it for free too So all the students have it for for free Um, you can basically put like a docker file in your repository and have it so that you can spin up a A development environment by clicking a single button and get hub and it's going to give you a Tab in your web browser that can have everything configured Um, a little bit more work to set it up But I have set this up on some of our projects and it saves everyone including myself a lot of time because sometimes I reinstall my computer and I don't want to figure out which dependencies I need to install like 14 times so um having a dev environment is great, but like uh, especially if you want to support students too if you do Uh require local development for some reason like we've had some embedded projects stuff like that. Um A lot of folks are on windows, unfortunately um, a lot of students can't afford a mac and uh, don't want to Run the risk of using linux and having their computer not turn on on the day of a exam Some mentors and I were making fun of arch linux for this recently Because that's even worse But like any sort of linux computer like sometimes, you know I mean it's like it can be a problem And so like a lot of students don't run linux. Um, a lot of students can't afford a mac They have a cheap windows computer That's what they have and if your project doesn't at least Reference like wsl or something like that. It's just it's a little bit harder to get going So like are there are there built instructions for for your dev environment? Um, how do you get it running? Does it actually work reliably? By the way, like keeping this up to date is its own thing, but um, yeah Third thing that maintainers can do uh, ci with linting and tests. Um I think the first thing is obvious like ci is is going to be helpful The students know if it works like it probably helps you as a maintainer figure out stuff more quickly But also it helps the students make sure that their code is working properly And like is not going to get blocked by something silly Really really common thing that like someone makes a small formatting error And if your ci doesn't catch that then what ends out happening. Well, the students submit a pull request They've worked on this for like, you know, three weeks or four weeks or something like that And they submit the pull request and then they wait like five weeks And then someone finally gets around to reviewing it and the style is wrong Or they, you know Had their editor configured incorrectly and like their file is in, you know slash r slash n instead of slash n or like Whatever right and then it gets rejected and then the students like they're they're in finals or something like that So they're not going to get around to it for a while and just like it just Drags on and drags on so having a ci with linting is really helpful Tests are really helpful as long as you actually use them. I cannot tell you how many open source projects Have tests that fail consistently And I know about all of them because what happens is our students will book TA meetings with our like TAs who are more experienced open source contributors Because their PR is You know, they got failed tests and then we'll go and we'll we'll You know, we'll do our own test We'll run the tests ourselves and find out that like even if they had just changed the readme file They were still going to get an error because the tests just don't work So if you're not going to keep your tests up to data, I guess the the lesson is don't have the tests at all but But yeah, like ci with linting and tests can be really helpful It just helps everyone get going faster Because if you want new contributors to your project Like you don't want to make them wait around for six months to get their thing finally merged It's not a great environment and like they're not going to be excited about coming back Yeah Oh, yeah, yeah So for folks who don't know ci is continuous integration The way that I like to think about it is just like when you push code or when you open a pull request or something like that Having automated steps that are just going to check whether the code Conforms to certain requirements. So like does it does it pass the test that we've set up for it Does it Uh meet the style like, you know, are you using tabs versus spaces or something like that? And it can do that all automatically every time you commit or every time you open a pull request So that you can immediately get feedback within like a minute or something like that Um It can do a lot of other cool things too. You can automatically if it's a website spin up like a testing website that people can visit Or things like that too Really good resource if you're not familiar with ci is just github actions. It's built into github. It's basically free For most use cases and it's it's super super easy to use Cool fourth thing this is getting a little bit more complicated For maintainers. I know this takes some work to do but this actually I found can be really helpful for everyone Having an architecture dot markdown file Um, how do the pieces fit together and how does the information flow? That's the way that I like to describe this like it doesn't have to be super detailed doesn't have to be like You know the most complicated In-depth version of everything but just giving someone an overview helping them build that mental picture of how your code base fits together early on Is extremely extremely helpful So this could be a Like a flow chart or something like that. This could be It just like even just some text notes What are the different directories in my repository and like, you know, what do they do like Even just saying something like this uses the mvc pattern or like this is using React Redux as the primary state store or something like that you can figure that all out if you know enough But remember what I said earlier a problem that a lot of students have is they don't have the context So if you're a super experience, you'll see um a repository and you can sort of immediately tell This is what they're doing But if you're a student, you don't know that because you you've seen what you've learned in class And you don't have much experience and so having somewhere where it's explicitly documented is really helpful Even just calling out which important key libraries are are important to this like next j s and react and redux is is a huge help already The last thing is a good first issues and this takes the most work because this is a regular ongoing thing you have to do Right, you have to be tagging these issues as good first issues For maintainer for people to look at if they want to get involved It's extremely helpful as someone who wants to get involved in an open source project to have these but it does take it does take some work And by the way, what makes a good first issue? So we have a lot of experience with this now And I think that we've sort of come to the conclusion that there's a couple things that make something a really good first issue One of which is that it's self contained, right? So it's solved in one file Really great really great thing for a good first issue minimal tracing around the code base If you know that it's going to be hard to find something If you know that it's going to be in a weird location. It's probably not a great good first issue Ideally, this should be something where you have an intuitive grasp in your head You just have an idea of probably this is where it is and it's probably going to be like, you know fixed in one file You don't have to know for sure, but like, you know, if you have an intuition that it's self contained. That's really good The second thing is clear Your issue should have enough detail that they don't have to ask clarifying questions I think this seems obvious, but a lot of issues don't do this If you're going to open a good first issue but not provide enough detail for people to figure out what you're asking them to do You might as well not open it because like you're just creating a ton more work for yourself Third thing is decided I've seen a couple projects that will mark things as good first issues that actually require maintainer feedback And if you're going to have to have a you know, a one month long discussion about how you want to solve something from a design perspective That's not really working with the timeline of like a good first issue contributor who just wants to get started So shouldn't require a maintainer discussion to move forward Last thing is recent so A lot of good first issues will stagnate. I'm not a huge fan of like auto closing issues I know some repositories are really aggressive about auto closing issues and then I'll you know go and search for it And it's like okay. Well, I found this exact issue from six months ago and it's auto closed. Thank you very much like But I do think with good first issues especially because they're often really small easy to fix things There is a tendency for them to just get fixed and not closed because someone didn't even notice there was an issue for it so I don't know if auto closing issues is the right thing But maybe if someone you know one or two times a year can just go through and take a look Like are they are these still actually active issues because it kind of sucks if you spend like Three hours getting the code to build and then like finally you've gotten everything working And then you find out that the issue doesn't even exist anymore. And it's like, okay, thanks Okay, so if you want to take a picture, this is kind of my um This is my overview of like what we think are the important things or I think this this talk is recorded to So you know, let's come back to it Okay, so I talked a lot about what we figured out along this process and sort of what are the things that We have found to be problems and what are some of the solutions that maintainers can have what are some of the things that Mentors can be aware of What are the results from this look like this is something that we do on an ongoing basis now So the very first time we did this was in 2020 like I said Here are just some examples of some cool student projects that people made and I want to clarify This is teams of two to three students who have never done a project outside of class before These are mostly community college students The first year we actually even had some high school students But they're mostly community college students never done anything outside of a classwork before Here's a team that added The ability to read a common data format that's used in self-driving car LiDAR sensors and visualize it in an open source project called cesium There's a whole video that you can you can watch that they put together on our website If you search for it, I think you can find it, but Yeah, it's a team of three students They they put together this module that visualizes self-driving car data, which is just like super super cool for them and for us and like for everyone involved Here's another example from our first year. This is This is actually mentored by a mentor who works on flying cars He at the time he was at uber elevate now. He's at joe b aviation And he was helping them with an open source project that is used for like map visualizations to add features to visualize airspace So it's kind of an area. He was familiar with Um, I want to stress also one of the things that we did that was kind of unique with our experience Was that the mentors actually didn't know much about the project that we matched them with and that was intentional If you remember a lot of the things that we talked about as common problems and mentoring or in students contributing Was them not being familiar with the software engineering process of how we do things as engineers How do we problem solve when we don't know the answer? So it's actually helpful for us to have mentors who don't know the answer already Because then they can show students Here's how we do it. So for our thing, we didn't get maintainers to be the mentors for this We got mentors who are software engineers who knew nothing about the open source project And they were the ones who was that who were actually mentoring the students Regularly and then the maintainers were just like a subject matter expert when you needed it So these were some really cool projects. There were a ton more from that first year but a lot of students did actually get open source pull requests opened and I think right now we've we've continued to do this since we've had It's more like two or three thousand students who've gone through this and It's like 88 for like the last several batches have gotten a pull request merge, which is pretty cool But more importantly like this was all just again this all started because we were like well these community college students don't have as many resources Let's give them sign cool. They can put on their resume. That was where we started right But where we ended up was we started doing surveys of mentors and we asked them a bunch of different things and My favorite to ask them about was that what I called the software development process, right? And so we asked mentors If you if you want to learn more about the exact scale on everything like that There's a research paper that we published that I'll I'll share later, but Basically, we asked mentors how good are these students at at a couple different things And one of them was the software development process, right? And so this is going from like 50 percent to 80 percent positive sentiment on mentors On how their students were doing and the the other access is the week So the students started off pretty bad like better than half like it's not good like this is like basically saying that like Somewhere around a little bit less than 60 percent of mentors said that the students were performing at what they would expect to be an Intern level, right? So that's where they started out and then it actually got worse and it got worse Um, so we you know, they started out not great They got worse they got worse the students were really really really struggling, but at some point it clicked for them and then You know, I'll sort of reveal the rest of the chart and like it ended up You know the next week they got a lot better And then the next week they got a lot better and then the you know It sort of petered off a little bit around 80 percent, but still it's that's pretty good, right? Like it is a challenge because you have never been taught how to work on a problem that you don't know how to work on But just putting you in a situation putting students in this situation where they can work on a problem where they don't know what they're doing um They're going to struggle But they're going to get there. Um, and so it's super inspiring and a lot of these students And this is you know, another really key takeaway for us This wasn't just something on their resume once It was something that contributed to their education that makes them much more ready to start a job, right? They're they're going to be way faster hitting the ground running than their peers starting a job And a lot of them kept contributing because now they know how to do it, right? Now they actually have those skills. They feel confident. They're much more willing to to continue and do that So we've published a couple papers about this now. Um If you search for my name, I'm sure you can find them. Most of them are open access, I think Um, but we published a couple papers on the results from this The big one is a thing called open source internships with industry mentors. We published that in 2022. That's kind of a quick overview of what we were doing Um, we've uh experimented with shortening the length recently So we've actually been doing these like micro internships. They're four weeks Um, and uh, they solve like a two to three line problem But they're literally like writing a test case or fixing a really tiny bug But it's getting them that experience even earlier. So this is like Sophomore junior year. You're getting this experience of um learning to work independently So then the rest of your college career You're actually like able to continue contributing to open source software and do cool stuff So that's the other two papers to talk a little bit more about that But if you're interested in reading more like I don't even have a college degree, which is kind of funny Like I dropped out. So I'm definitely not like a phd academic. These are very approachable and readable Um, we tried to make them very readable. Um, so definitely if you're interested in learning more about our specific model Take a look So last thing I wanted to leave you with and then we'll have some time for questions How can we all as a community of people interested in open source and contributing to open source? Whether we're new whether we're experienced developers Whether we're maintainers. How can we all work together? So first of all if you are a maintainer, I listed out all those things that you can do Um to help make your project more approachable. Uh, we if you want to work with us We'll actually do all that for you or we'll do half of that for you. Um, we uh We're a nonprofit, but we make enough money that we can pay people to do things and one of the things that we do is We pay people to work with open source projects to help make it more approachable for students So we will actually go through and find those good first issues for you and we'll we will like assign them to students So you don't need to do that. Like we just have um, basically very experienced college students Who are pretty good at picking up on whether something's a good first issue Um, the students also we kind of put this into our process now When they're going through the process of opening up this pull request as they have problems in the documentation They are writing them down and then they can open pull requests to fix your contributing and your dev environment documentation So you're basically getting free updates to that documentation So if you're interested, um, and you're a maintainer, we would love to work with you It's like it's free. We're not charging anything. We're doing this to help the students So if you're interested, let us know we don't have like a minimum project size or anything like that If it's solving a real world problem and it's using real world technologies. That's what we want And if you're not, um, you know We everyone here can be a mentor or a student and so if you're interested in being a mentor in our program The link is is right up there And we are constantly looking for mentors. You don't need to have any experience in the particular technologies We're going to use you're basically like kind of a slightly more experienced pair programmer for your team And they'll come to your meetings Every week it's one meeting a week for four to 12 weeks depending on what you sign up for And the students come every week prepared with basically like an agenda of like here's what we think is happening And then you get a chance to sort of go through what they're saying take a look at the code yourself and say Actually, I think maybe this is happening or yeah, this is this is great You know student be your like I think your solution is probably the correct one So it's pretty low commitment. Um, and it's a cool way to basically be kind of a near peer mentor for for some of these students Um, and then finally if you're interested in just talking about any of this sort of stuff Send me an email my email's up there like again. We're non-profit. We're not like out to make a ton of money or something We just want to help more people You know, like I said, we're all about agency and creativity We want to help people learn that they can do things and we want to help people learn that technology is a force for creativity And anything that we can help out with that's aligned with those like I'd love to be involved with that So that's my talk. I will leave these up here and then we have time for questions Thank you so much for that presentation We have about 17 minutes for questions If anybody has a question feel free to raise your hand and I'll come on by with the microphone Do we have anyone with a question? All right, our first question I love the uh the graphs there the sentiment Graphs, what do you attribute that? Initial two-week drop to I think that the students as they got more and more into it I don't know for sure like we haven't done follow-up research on this yet We know that this still continues to hold but I don't know exactly what it is My theory as for what this is Is the students are getting sort of demoralized because they're realizing that the things that they've learned in school are not working I know that we also have a lot more communication problems in there in like sort of weeks one and two Where the students are kind of not being as communicative We've added some things to it since then to try to force them to communicate more But uh, yeah, I think a lot of it is probably just the lack of confidence in them starting to feel bad I think that's why it's dropping off and like around week three when they realize like Okay, this is how we do this. That's when it starts to pick up and then they just continue to gain skills from there Anyone else have a question all right right there in the back What's your typical process for finding those open-source projects with good first bugs? Like how do you actually bet those to give to students? Yeah, so like how do we find the projects or how do we find the issues so the projects? Nowadays a lot of them are partners of ours So we go to a lot of conferences like this and we have a lot of partners who are like It's just sort of like explicitly like yes, I want to support this They're not necessarily doing a ton of work some of them are but like a lot of them are just like Yes, we want to support this and like just knowing that we have their support those are projects that we pull from a lot Occasionally, we'll just go out and find projects that have good first issues that we think are going to be of interest to students um So that's another way uh sometimes for some of the larger ones Like I think we've gotten some contributions in npm the node package module a manager and we don't have a partnership with them They just like they have a bunch of good first issues and they've been supportive when we've sent students their way in the past So, you know, we've done that Last thing is sometimes we'll go out and like specifically try to find Projects for students and like make contact with them It's like we had a couple students We had a number of students one year who were really interested in working for disney that was like their goal And so we were like, okay. Well, like let's go find. What is disney's open source? And they have a cool project called uh open timeline io. I think it's now been moved out It's got its own foundation or it's under a patchy or something but at the time picks are maintained it And we're like, okay, like let's I'm just going to join their slack and reach out to them and like let's see if we can get um I think someone else did but uh, you know, like we we reached out to them and we just sort of Saw if we could get that project on board. So kind of a mix of all of those. Um Usually we try to work with partner projects because there have been a few projects I won't name names But there have been a few projects where we have tried to work with them And they have been very negative on the idea of students contributing to it So we try to as much as possible reach out to the projects beforehand But every once in a while if we're like two issues short or something we'll just go and and take a look If you're if you're just a person here who wants to contribute to that Good first issue dev I think is a website that just sort of aggregates them So that's a place that we can go sometimes to look for those But yeah, my hope is to find more of a list of just like projects that are explicitly encouraging Contributions from new contributors. There is one on our website. I guess and you could go and look at that But I think there's probably more than just that I know I answered your question like five times more than you asked for but hopefully that was helpful. No, that was very helpful Thank you Perfect. Keep your hands raised if you have a question. I'll come to you next Tyler in an idea world um What kind of partnerships would code they like to have that does not exist yet in your eyes? That is a really great question I don't know if I have a the perfect answer for that because I haven't necessarily thought about it, but So, I mean in the open source world, I think just like a lot more projects would be great We really want to get um linux and we really want to get um I was talking to some people from the ganu project last year at open source summit and they were like tentatively interesting That I think it would just be so cool. Like a lot of students Like the idea of having agency over their world Right, like a lot of people have spent their entire life being told you can't do things and then to have a contribution in software that is in use by like Hundreds of millions of people that would be super cool. So that's one The other thing outside of open source is like we're really right now trying to make a lot more partnerships with hr folks because hiring managers Developers people who are looking at the resumes ultimately Y'all get it like you know what this is if you see something on there, you know what it is but Students especially all of their resumes go to university recruiting departments and the university recruiting departments Are not familiar with what open source is largely and so if they see that on a resume If they've been around for like a year, maybe they kind of get it and they see that as a positive signal But a lot of people still don't know what it is And so we're really trying to build up more partnerships with recruiters so that they recognize open source on a resume And then they can start to see okay Like this is a really positive sign this person should be advanced to the stage where it gets to You know a hiring manager So do you have any challenges with Securing mentors for your program Yeah, so the The mentors is definitely probably our biggest challenge right now In terms of recruiting stuff We do have a lot of mentors We have it's somewhere like 600 plus mentors who are active every year between the code date in-person events and the online ones But we have So many students that want to do this I mean so just from partnerships that we have funded we a lot of this is funded through like state and federal grants And some of it's funded out of school budgets Just from the ones we have funded We're going to have like a couple thousand students this year We have a public application online and like I I haven't checked it in a while last year. We had to turn down I think 1700 people from our summer program because we didn't have mentors for them Maybe not all of them would have been like super qualified, but like You know we prioritize the students that are furthest from opportunity Like the people who haven't had lots of internships and stuff like that But other than that as long as you can clear the bar like you're in if we can find you a mentor and There are definitely a lot more students that want to do this than we have mentors So that's another reason why we love coming to conferences like this is if people want to be a mentor You're literally like Allowing three more students to have their first experience in open source And also just as a pitch since you brought this up The mentors generally do seem to really like it like a lot of our mentors will stick around and and do like Two four week sessions throughout a year or they'll do like three summers in a row or something like that So yeah, and we have about 10 more minutes for questions. So if you do have a question think about it Hi, Tyler. Hello from a student point of view logistically. What time of year? How long does it take? What does it look like in terms of Their commitment and the meetings and things like that. That's a great question And i'm glad that we have so many students here. I wasn't expecting that before I came to this conference. So that's awesome Yeah, so we have these year-round Basically every month that it makes sense to during the academic year. We have a one month program. So like we don't do december We don't do september because it's the very beginning, but we'll do october november Usually mid january to mid february march april and sometimes may so every month we'll have a Like a one month four week program the mentors for that by the way are three weeks So the first week is just kind of getting familiar with the technologies So it's a three week mentoring commitment four weeks for students about 10 to 20 hours a week during that time So it's very doable. We're going to give you a very small pull request And yeah, so we do that Every month during the year and usually those we can accept 100 to 150 students This past year. I think it'll be more next year and then over the summer we have It's the basically the last week of june to sort of mid to late august That's usually eight to ten weeks And the applications for that open pretty early. So I think they open in february And you can just go to our website. It's codelabs or labs.code day.org If you click apply now, it'll show you everything that's open that you can apply for If we can't get you in for the micro internships the ones that are happening throughout the school year If you applied and and you meet the bar You sort of have priority next round. We'll put you at the top of the list if we can get you in So, um, yeah, we're we're taking applications all the time if you want to contribute to open source There's there's an opportunity for you I will say if you've had lots of internships or things in the past, you're less likely to get any because we are prioritizing students Who don't have that experience? Yeah, yeah, Tyler So i'm wondering You said you serve online in the la areas But i'm curious which parts of la in particular and if there are any other service areas that Code day might be potentially open to to mentoring Yeah, other students. So for the code day labs, it's it's 100 virtual. We've we've done it 100 virtual since COVID and it works well So there's not a reason to change that so anyone anywhere is is open to it most of our mentors are in the us So you all are in the us so great like you're definitely eligible in that regard the high school programs that we do are Those are the ones that are in person and those were kind of open to anywhere We can find a venue that wants to host us so Land land knows more about this because land is volunteered for us with the high school events do so And also by the way, if you're a college student and we would love volunteers for our high school events do so I'm wondering if you have Mentored any students who have disabilities because i'm currently working as a tutor In the ontario city library and a lot of the students that I deal with Do have special needs. So i'm wondering how do you approach that and how do you help these types of students? Yeah, that's a great question. So we've done a little bit of that. We we definitely have had a lot of students who are Like neuro atypical or sort of how do you want to describe that but We've had some of those. We've had a couple students who were Blind That's been fine. It hasn't really been a problem. One of our mentors is actually deaf and so they conduct their meetings Largely through text. So we have some experience with that We don't have like a ton of experience with that I will say if you have a lot of experience with that and you want to help us with that like We can probably find like some money somewhere to help us build that out. So Yeah, I'm open to doing more of that. I have a little bit of experience in that But not personally so So this is land. I will address your whole like a code day in person events Um When I first started getting involved with code day, it was because I wanted a hackathon for my high school girls who code so I Found code day and I'm like, this is cool Let me like find out more about it before I advertise it to my students And then I found out that it was two high school students in a local neighborhood who were running it and I said That's fine. Let me help you out. At least I'll be there as an adult chaperone And that's how I got involved But what you need to know is who organizes these in person code days high school students Yeah, it's some college students too. But yeah, it's it's very much like we want to give people the Again, this goes back to like the slide. I had super early on, right? Uh agency, right? I I don't know if I'm gonna find this there we go agency is super super early on Agency, right? We want to give people the the chance to say what they want to say Like I I am very much a fan of like the open source ethos even for our organization Like we've been around for 15 years But still like if you're just a random person who joins our discord and is like I want to change something about this program Like let me help with it. We'll we'll find a way to do it Like we want we want people to lead their own destiny, right? I don't I I started this when when I was in high school with some friends and I'm 32 now and Like I love doing this still but like I'm not the one to make decisions about what high school students Or college students should be doing all the time and we love to have You know give people the opportunity to to do things themselves too So I'll make a comment and then hand it to the next question the reason that I am so passionate about code day and I've been like So passionate about getting Tyler here Is because I love the fact that he gives agency to the students Because I get so inspired by what they come up with and what they're able to do If I smooth a few little things out of the way So by the way, we do do really want college students to help out with code day LA so if you guys are interested you can hit me up. Okay. Yep. Yeah, all of this is just It's just Two sides of the same coin the college is a high school programs are just two sides of the same coin It's about giving students the opportunity to shape their world And if you're passionate about that we'd love to to have your help them one way or another All right, so we have about three minutes left. This may be the last question Yeah, I just wondered if you did any qualitative or quantitative analysis about Partner projects and do they see an uptick in contributions after participating with you? Like what's the ongoing effect that may be amplified? Have you looked at that? Yeah, yeah The ongoing effect of partner contributions. I think we haven't done like a research study on it That's a good idea. I'll put that on my list of papers that we should do I know that there are a couple of partner projects that have had like really sustained interest One of them is a free code camp project where like one of the students that became so And like invested that they ended up becoming a maintainer of the project, which was awesome We have like open energy dashboard is another cool project that we've worked with Where they were super super supportive of it and I think it's paid off for them because they had like 150 students contributing to their project last year So I can think of examples off the top of my head of where that's worked But I don't have like an actual data set to pull from we have the data We're like I said, I used to run a tech company So like we love collecting data and like we have it all in like a postgres database somewhere in some format or another It's just about like doing the analysis. Yeah Fantastic. We might have time for one more quick question. All right right over here Uh Excuse me. So, uh, so you talked a little bit about what kinds of projects that you work with open source projects. Is there any kind of What languages you're looking for is that kind of based on what the mentor's background is Like my project has like a higher barrier of entry for some of this stuff So it would probably require working with one of the maintainers. Yeah, great great question So in terms of languages, we're open to anything We've had some students even do like rust I consider rust to be like the ultimate challenge because I don't know rust and I've tried a couple times I don't know if that's a good metric, but like we've had some students do some challenging things before We've had some students work on some challenging projects like open timeline io was like In production used by pixar. They were very protective of it Like it's a c++ project But like if we can find students that are passionate about what your project does they will overcome those barriers I think so if it's if it is a really high barrier to contribute If it's also an attractive project to students, we can usually find some folks that that would be able to do something Fantastic and thank you again everyone for your questions And I wanted to say thank you to tyler menezes if you would all give a round of applause to tyler for this lovely presentation Thanks And I just wanted to say like thank you all this has been such an awesome conference This is like the third open source conference. I've been to and like this is my favorite so far. So thank you all All right and coming up next at 345 is bringing fedora linux to apple silicon max with asahi linux So stick around for that Kind of like infrastructure that so we could do continuous builds so that could potentially later be integrated in fedora As the slide mentioned we do image build to to build these images Which is something that is now being adopted in fedora for other types of images as well Replacing legacy tooling that was presently there. Yep, and we are hoping to Hopefully easier move a lot of the bespoke infrastructure We built for asahi into fedora proper so that it will benefit other other variants of fedora Yeah, a core aspect of this stuff has been we've been trying To make all these things in a way that any user can take our stuff Understand what's happening And make something of it. Yes, you do need an arm machine to build these images though Yeah, of course you don't need to but you you will have a bad time if you don't because kimu is funny So let's talk about where we are As of a while ago actually we have Very good support for apple silicon hardware. We support all m1 and m2 models that exist laptops and desktop with the exception of the mac pro Mostly because the mac pro is a weird machine that people most likely don't care about But it is technically possible to support and we'll get around it eventually What someone has one? Yes Part of that is also yes We use so on these machines linux boots Via Via macos so to speak in that we install a minimal a minimal version of macos And then we replace the kernel with mini which is the bootloader and then mini boots into uboot uboot boots into uefi uefi boots into grab grab boots into linux Now we could we could add more layers if you want, but I feel like that's enough This is not as bad as the bootchain on s3 90x But because we use macos as the first step and we need some components from macos to work because one of the things that macos provides For example is all of the firmware So there are components on the machines that require firmware to work properly for example the camera on the macbook pros in this firmware to Actually that one works without firmware, but if you have firmware it actually yeah, it doesn't look like complete garbage So we use a base Level of the firmware on the macos side and the firmware on the macos side kind of provides us the api that we work against So whenever we update that Then we target the new version so right now we use everything on 13.5 And I think we had that for a while now and we've kind of locked into that We I think we'll probably move to a new firmware version as soon as well so We use whatever firmware version your your computer already has yeah, but we require that you are at least at 13.5 These these machines have hardware acceleration graphics by default and we will talk about that in just a moment in more detail We support camera and touch bar on the on the macbooks The touch bar funnily enough shows up as its own little display. Sorry. This is random garbage And here I hope it's working again. Yeah, I need to really kill that thing. Sorry The task bar shows up as its own display So you could technically run whatever you wanted on it, but it because it's a very tiny display You probably just want a function rocky So we have a little demon in rust that gives you exactly that it gives you f1 to f12 And then if you push fn, it gives you like emojis for the various Like putting a volume up and down and that kind of stuff We also have full speaker support on all models except the iMac and I believe one of the laptops I forgot which one And I think it's the air we don't because we don't have any air One of the laptops I know we still need to do the the measurements and we have hdmi output on machines that have physical hdmi ports I say this because there are some laptops that only have usbc So they like the macbook pros only have like the two usb c's on the side On those you don't you can't get video yet because we don't support thunderbolts just yet We support those ports as the regular usb 2 usb 3 ports, but we don't support them as thunderbolts yet This will probably land sometime this year. There is working progress that's actively going on and there are branches That can be tested, but that are not stable yet Likewise for hdmi audio. That's something that I believe something landed for that last week But I don't know if he made it over two users yet Well, nothing has none of that stuff has made it to users yet because it's all tangled up in the rebased Oh, right. So that's definitely not shipped the the other thing you might care about that's missing is microphone support on the laptops The microphone on these machines is surprisingly weird My understanding is that he runs off a processor that has a bespoke isa and architecture that are required to be reverse engineering I think it was like a piece of stuff that they got from like the iphone or something So there is working progress for that and there is There's a repo on github with like 70 of the work roughly done, but it needs to be integrated and everything Also, we don't have the secure enclave yet. So you can't get touch id working Yeah, no fingerprint reader for you Yeah, we again, it's possible. We'll get there There is a nice Matrix on the website that shows you all the features in green and red. I will not attempt to open this because then Well, going back to the slides will be funny, but you can see that we have that at the booth and we can open later Um Talk for a bit about some new features Yeah, so this is actually the super exciting part about this that i honestly I didn't expect this to actually happen as part of doing this is that we have In my opinion is actually one of the best Audio subsystems that is out there for links. So we've got this thing called speaker safety d and some enhanced Pipe wire dsp stuff that allows us to have not only Speaker protection to keep them from melting because they don't have on hardware thresholds limiters They also have the ability to be tuned for whatever Acoustic profile you like. I'm not going to say the word because that's actually hard psychoacoustic But the optimized dsp chain actually relies on the wire plumber pipe wire stuff and allows us to do things like Be able to have zero latency adaptations and pipelining for the audio in such a way that you can get Full range sound out of tinny laptop speakers quote unquote and that's really cool because if you compare audio on Literally any other computer Um linux to windows The windows audio will always sound better because they have all this stuff and we've never really Done it on linux because we really didn't have a pattern for doing it So again, my personal hope is that with this we have an example of how to do this And then we can start seeing for example The lenova laptops or the hp laptops that have all these fancy badged audio type things That we've historically never been able to experience There's now a pathway to being able to enable this for all kinds of Of audio platforms that are out there So it's really cool and exciting and there's a great blog post about this um on the acyclicus website Yeah, none of these is specific to as i to reiterate when il said so All the same technologies could be applied to other laptops or to other systems We actually use the same thing on the max studio where the max studio in the top is like a single mono speaker So you can actually play music through that it i mean it sounds like surround sound It sounds reasonable despite being a single mono speaker and the laptop sound fantastic It despite having like two tiny tweeters and Because we use this technology we can get proper bass out of them and we can avoid setting them on fire The the not setting them on fire is honestly the best part. Yes The other feature we um recently shipped is conformant A conformant open gl for six implementation and these actually the first conformant open gl implementation for this platform Because on the macOS side apple primarily ships this with metal They don't they ship some open gl implementation, but it's not conformant. It's a it's a Sort of open gl 4.1. I think is what level it's at. It's been that way since Gosh, I don't know like at least 10 years, but they're all in a metal But on the linux side we have open gl for six and open gl for six Is mostly what you need for everything the majority of the things you would care about Okay, this bottle is gonna fall You you get blender for example, and that's a screenshot from blender rendering a scene And we have blender running on the demo systems there if you want to play with it You also get most games working And yeah, and this is technically better than what macOS does which is kind of cool Yeah, there's a lot of details on this on alisa's blog alisa Did the majority of the work on the mesa side for this And there's lots of details if you're interested in on the intricacies of this implementation and what it took These the hardware doesn't map one to one with the feature set of open gl So some features have to be implemented as shaders kind of in software But because the hardware is performant it ends up working very well in practice Um, this is only open gl. This is not valkan yet But valkan is being worked on and we expect to have valkan at some point in the future yeah the neat thing about this the most important part about is that because Almost the entirety of the accelerated graphics pipeline in linux assumes open gl This all works at everywhere So you now have Your your wailing desktops that even if they don't use a lot of open gl features They may use some of these newer features to get things more efficiently and more effectively You'll have all the stuff to such that your desktops will be flying on the frame rate And it goes to the same level of offload first that you see on pretty much any arm platform Where you just aren't really doing too much on the cpu. So the cpu is free for you to do whatever you want Well, hopefully yeah, yeah for the most part Um as part of this work We contributed a lot of changes into fedora itself as we mentioned We try to do as much of the work as possible into fedora so that it can benefit everybody else And so that we we can minimize the delta we have to maintain in their remix So there were changes in fedora 34 35 38 Did we do anything in 39? No, because that became the thing that we did for 40 with kiwi right For the the image build thing we were talking about before We mentioned wayland a few times. This platform is supported only on wayland While x technically works Mostly x does not provide you a polished experience and as weird bugs and more importantly Nobody actually works on x anymore. So nothing is ever going to get fixed there I mean, uh, if you think it's just about graphics, there's another very simple but very annoying problem with x on on apple silicon The keyboard layouts can't be supported. Oh, yeah, that that's annoying. That's a it's a it's a very big problem If you're outside of the antsy us antsy english keyboard sets When you go outside of that you're you're toast It's very bad The other thing we worked on Which we should have probably made a slide about and we didn't uh is the 16k page Oh, yeah, the 16k page stuff. So these systems are funny. Uh, Generally speaking systems that run linux, uh run on 4k pages and 4k has the memory the memory page size Some enterprise arm system and some other like large systems run on 64k pages These systems run on 16k pages Which is not something which is neither one nor the other Now this isn't Generally too much of a problem except when you have software that does Uh software that runs self modifying code when you have software that provides an interpreter like javascript interpreters tends to be Annoying with these in particular It's also a problem if you have to run proprietary software because if you run proprietary software that expects 4k pages On a system that's running assisting k pages. It will not run So you need to do to have like a vm or something to deal with that In the remix we ship a kernel with 16k pages by default You can actually boot these systems with 4k pages. Uh, well, not not the laptops, but yeah, you can boot a mac mini and it will mostly work But you will get basically nothing working. You you don't get the pc i express Or the backplane stack. So yeah, you you don't get usb if not pc i express usb So, um, yeah, it's not super useful, but The detail here is that, um, and this might the detail here to put it extremely simply The apple silicon hardware platform is essentially a scaled up version of the iphone platform When they made the iphone they chose to use 16k pages because it is a good middle ground between um memory allocation For battery efficiency because it's the number of times that the cpu has to walk through And and and execute things versus how much uh, a thing can actually process at a given time So like giving that balance between that because 64k would have been better But there's performance. There's power penalties and 4k is More efficient, but it makes your applications take longer. So it's not as fun longer is again all relative stuff The thing about this platform is that while the cpu because arm standard requires the cpu to be able to operate in multiple different page modes Everything else that the cpu is connected to can't so more importantly the iom and mu which is the memory management unit For accessing the peripherals like usb and whatever is hardlocked to 16k pages The linux kernel cannot switch page modes dynamically like macOS can't And it can't Run part of it in one mode and part of it in another mode So you have to pick one and stick with it everywhere And that is where the the impedance mismatch starts kicking kicking your butt Now the good news is that for most Things that are open source that you actually care about we already fixed them And I mean we in the loose group not the two of us personally, but some but for the vast majority Things have been fixed So if you primarily care about open source software, you should have a good experience with the one exception of things using electron Because electron likes to bundle ancient version of chromium. So On those you might have to poke your Whoever gave you the electron thing to build it with a more recent chromium But on that front everything is good on the proprietary software front What most people care about are games and there is actually working progress to Come up with a solution leverage in libk runs so that you can have lightweight vm's Running a 4k kernel running your game and then passing through the video On the on the other side. So you can have a near native experience playing like steam games, for example There are demos of these that you can see floating around the internet on youtube and messed up and stuff This is not released yet. It's not in a usable state yet. I would say but it will come Hopefully this year. Yep crossing my fingers all right You cannot use this today. You can go on federal as a remis.org or as ilinus.org and run a very not sketchy curl pipe bash command If you do not trust what it does, you can read what it does Please read what it does the short version of what happens when you do that is that it will download the installer Which is a python program the installer starts it will ask you If you want to resize your disk you will resize your disk If you're if you have too many time machines snapshots It will tell you to go delete those first because apfs is weird Yep, then once you have enough space it will ask you what you want to install And you pick the variant of federal you want or if you're on as ilinus.org you also have a few more options like open bsd Yeah, and then also the the the bare metal and the bare you yeah the bare ufis system The then you can use for things like open bsd and then it lays the image on disk And then it prints a page and a half of text that you should read It tells you to follow the steps. It tells you to turn off the machine you turn off the machine keeping the Why would we have not be this is not my fault. Okay, it's back Okay, good. All right You turn on the machine keeping the The touch ID button pushed which puts it in recovery mode You follow the prompts to change the security level of the install of the fake macos installation that you're using for linux And then you reboot in linux and you're good to go and then it works And to be clear this does not replace macos So, uh, the machine will boot in linux by default, but you can boot into macos If you either go back to recovery or if you use As I bless from the command line to change the nvrm or if you use a gooey Could start up this to change the nvrm which you can switch. Yes, which I wrote to learn rast lucky me You don't sound it this I believe that's all we had there and next up Right. So we talked about the stuff that we've kind of done here and we've alluded to the upstreaming efforts This is really to kind of reinforce that this is what we have now is not the end state The end state is that this stuff is into all the upstream components like the linux kernel mesa u boot and so on So that this becomes not necessarily a zero effort integration process But it sure is heck not like multiple years to actually uplift a distribution to run on it Or or another operating system, right? Because a lot of these components are that we're talking about here I mean except the linux kernel, of course are actually multi os So like you use u boot for booting bsd's or whatever and mesa can be Beaten to work on windows, although I don't think that'll really help for windows on arm on on apple silicon But point may point being like these things are are in are useful in a very broad sense by being able to help Enable other platforms also even though fedora sahi remix is the flagship and the reference platform Uh, and as we mentioned we try to keep the delta as Close as possible So hopefully more and more of these components will like feed into fedora and we will be able to keep their Emix as small as possible right now the main things we have forked into the remix are the kernel as we mentioned u boot And the mesa yep pretty much got rid of everything else We got rid of everything else I think we might end up getting virgil renderer for the for the care and stuff But besides that we should be in pretty good shape Yeah, and I think mesa will mostly go away when the rm stuff is merged Yeah, which the kernel will take a while and we probably I suspect we'll have the kernel for a long while As long as apple keeps releasing stuff and as long as we have the kernel We are probably going to have mesa. Yeah. Oh, yeah, you're right and you boot is a matter of Mostly getting a patch set upstream through You put section the easiest three. Yeah, I did none of these are particularly burdensome. Well The kernel isn't super fun to rebase, but you know So here's a slide of links where you can find all of the things about the project Fedora is a remix.org and as I didn't start org is where you can actually install this We have documentation now on the fedora dock site Right now is pretty bare bones. If you like writing documentation, we could certainly use some help there We have an issue tracker for the project. We have a mailing list that we don't really use much We have a category on this course. We have a matrix where we mostly hang out. Yep Most of us are in the us on the fedora side Most of the folks on the development side are in other time zones. Yeah, most of them are Most of them are in japan. Yeah. Yeah, so if there's a good spread if you ask questions at any time zone You are likely to get some kind of engagement. Yeah, I just thought of it and it's like, oh my gosh Everyone that's in the asahi linux upstream is actually in japan Both mark and anneal are on github sponsors. If you like this project, please give them money. They need money to eat Yeah, eating is eating and shelter is good And if you would like more information or if you have any questions, you can go on azaliens.org support or So I saw that you guys were doing some good work on the um, uh, dsp and um sound systems on asahi linux Is there uh fedora asahi remix? Is there any plans to uh, you sounded like you're going to upstream most of this stuff? What what does the timeline look like on upstreaming certain components of that? Okay, so uh repeating what I said earlier, um the All this stuff is actually already integrated into fedora upstream So we actually like like dove and I mentioned earlier We actually don't only have very few packages that we actually maintain as part of the our own sigs repos Um, all the rest of the stuff is in fedora mainline and can be used for anything and adapted for whatever But the key piece to answer your question The there are two main requirements for the audio stuff. First the distribution must accept pipe wire and wire plumber into their hearts Um, if they haven't done that yet All the rest of the stuff is is dead in the water. The second part is if you want to enable this for other um hardware platforms like say thinkpads or hpnv or whatever You have to use some very simple tooling which has some documentation about how to use to actually sample and measure The speakers of those systems so you can apply a tuning profile to actually get what you want out of it Um, no one's done any of that work And so we do not really have any enhancements to offer for them But once those are done they can be contributed back into pipe wire to actually enable them And then they can we have a mechanism for being able to auto select them based on What hardware is detected and once that's in place then it would actually work and then there you go It's the same principle for what it's worth. That's the exact same principle that we're talking about here What's the support like for kvm running on it and doing virtual machines? And and and and a side side question. Are you able I mean, I know there's some projects that allow you to run Uh macOS on kvm. Have you tried that or has anybody tried that on? Yes How's the battery life of? Fedora said he compared to macOS I have a second question. Uh, does we joy work on the fedora sahi linux? We joy is the android container which can run android applications on good linux and uh Besides fedora, uh, is the arch linux version of the sahi still active actively developed i'll be right back So, um, when it comes to arch a sahi alarm A sahi alarm itself Is maintained. I think by like one guy part time or whatever for a whole distribution Which let me tell you maintain the distribution is hard And and and we're maintaining a distribution on a platform. That's actually usually crappy or usually expensive is even harder so The in the upstream arch project has not currently Accepted the idea yet of supporting Um non x86 platforms upstream. It is being discussed. They recently had an rfc to discuss adding it They're also trying to figure out how to fix the package build format So they don't have to keep manually adding every architecture to every package build file because that's Yeah, they don't have they don't have they don't have the equivalent of automatic architecture selection. So That makes it difficult for them to actually enable an architecture and they're working through that but for the time being From the a sahi perspective The arch platform is deprecated if a community at some point it's going to be the A sahi alarm will be unwound from the project and at that point It can be taken over by a community member who wants to do something interesting with it or It'll just fade away into obscurity Yeah Any other questions? All right a two-parter But simple two parts. I noticed that m3 is not supported. Do you know when it might be supported? And then the second part is Does the difference in supporting m3 Bode poorly or well for supporting future m4 m5 m6 Like how do you guys feel about like the complication there? They changed up on the GPU that makes that part more work and and they changed the iom emu a bit too They've been around longer Yeah Yeah, and I want to make a point here about something. Um, we are a primarily community driven project and um, the community sponsorship and the funds that we receive from people who like and use this stuff A lot of it almost all of it I think really goes into getting the hardware to be able to do this stuff and this stuff We have to get all the different permutations because what what isn't really Obvious to people's that when you choose those different cpu configurations With the on on the apple on the apple website when you buy them those are all Sometimes completely different board configurations. So it's the same crap that you dealt with with sbc's Arm single board computers where there are these these subtle feature differences actually resulting completely different designs with different components being chosen now, it's not to that drastic with apple silicon because apple likes scale and In terms of volume and purchasing power But it is still different components and it's still different work And it still means Like we have to pick up these computers and actually have them for a significant amount of time The reason the mac pros not here none of us can justify forking over that much money for a mac pro Yeah, I would like to not have people have their macs melting or burning Not ideal indeed This might be a dumb question, but what about the neural engine or the mpus? Is there any insight into that? I guess For the neural engine or the mpus. Do you guys have insight into that? Thank you silly question How many sets of speakers have you burned? So you set all of those on fire Thank you very much Yeah, uh, hopefully you didn't cover this while I was looking at my phone, but um, you mentioned something about limited support for macbook air So I was wondering like what's what are the plans for macbook air? Is it fully going to be fully supported or what? You say the 15 inch right now. So that's what just happens to be the one I was looking at Okay, and generally speaking you do plan to keep supporting the air just like you know any of the other models Okay, thank you No more questions All right. Thanks everyone for attending bringing fedora linux to apple silicon the slides will be up shortly Thank you, anneal and javide I think it's just designed for smaller heads Okay, testing one two sounds about right I can stay on the court Yep mainly mainly uh commercial how to operate the machine more more than Hey, you know those industrial embroidery machines They'll cut off your finger and stitch it back together before you can say ow 1,000 stitches a minute on some of them Yeah, 15 needles moving at 1,000 stitches a minute. It's fun Surprised we don't have more tech team people here They're all tied up Has david been macrameying people to cheers with ethernet cables again We have fun in the knock I'm just glad we got the expo hall fixed We'll talk about it basically somebody plugs something into the wrong port In a in a way that resulted in a significant chunk of the expo hall being v6 only unintentionally v6 only There are part it worked on v6 fine. There are parts of this network That are intentionally v6 only But the expo hall vendor vlands are not one of them No, they're not supposed to be v6 only yet The next step will be registration when we can find a payment processor that speaks v6 I was overruled. They decided money was more important than v6 only Have no idea why? A lot of this talk is going to be demoing stuff in this shell window So if you can't read that you're sitting too far back move closer People with bad eyesight come close people with really good eyesight you're free to sit as far back as you want Tom front row Tom's just here to heckle me. He already knows all this stuff. I think the proctor is going to probably want that seat Yeah off by one error. It's okay Right, but can you read it? Can you read it? Okay, then you're in the correct row I have no idea it may well belong to the proctor So she'll be back in a minute and we can consolidate her into two seats Welcome Now i'm starting to see tech team members coming lay Okay Trying to find a place I can put this mic that i'm not breathing into it How's that? But can you but can you hear me now? Yeah, okay, let's try that Now i'm not breathing into the mic and yeah Okay Longest people can hear me and i'm not breathing into the mic. It's good Make sure you can read this if you can't sit closer A lot of this talk is going to occur in that terminal window. So If you can't read it, you're going to be lost I apologize for the small font, but I need the width for some of the config files Ironically that Testing one two Okay, I should be a lot louder now Yeah, your stuff's right here So I can give these back to lance For those just arriving if you can't read this move closer Otherwise, you're not going to understand most of this talk and she can have that Okay, everybody ready here we go After telling you that everything mattered in the terminal Up comes the keynote So if you're here for switches and routers and stickers, oh my you're in the right place If you're looking for something else you're in the wrong room So a little bit about me I've been officially leading the tech team for four years now Unofficially, I've been leading the tech team since about scale 15x So this is my seventh scale leading the tech team I first got involved as scale as a speaker and scale 8x And have been at every scale since My usual day job is network architect, although I'm currently between gigs So if you need a senior network architect See me after the presentation or interrupt me A little bit about the networking team that makes this work Why is that not? Okay, I guess this screen is showing me what's up next About the team we usually have about 20 volunteers or more Involved in putting the network together each year This is a picture of the team at scale 19x The two guys in the middle in the front are not on the tech team The one on the right is Elon. He kind of runs the show and so he he jumped into the picture Because he felt like it the one on the right was our keynote speaker that year my good friend vent surf Some of you may know that name also known as the father of the internet Most of the people in the picture have been active for three or more years And most of them are still active in the team It really is a great team and they do a fantastic and difficult job So if you see them walking around in the blue shirts We're blue this year not orange Please thank them and let them know you appreciate the network What we're going to cover in this talk we're going to cover the overall structure of the network We're going to cover the automation tools we use to keep ourselves sane in running the network and Get some consistency If you want more information about how we managed the wi-fi Rob Hernandez did a great talk. I think it was last year That covered that What do stickers have to do with this? Well when you have a lot of volunteers building your network You have a need for them to understand which port things should get plugged into So we print stickers that show what each port is supposed to be that we can put on top of each switch And yes those stickers are one-to-one physical alignment with the ports And they're color coded by port type and then For the single vlan ports they've got the vlan name actually in text on the port as well so We'll cover some q&a afterwards At the end if people want uh, and there's time we can do a brief walking tour Of some parts of the network for up to 15 people We'll see how that goes that may or may not happen A brief history of the scale network. Whoops From the beginning through the second year at pasadena convention center The scale network consisted of an assortment of hp pro curve switches Netgear wireless access points and was arranged as a single flat network structure segmented into some vlands But every vlan was present on every switch with no failure isolation whatsoever, there was no layer three other than our you know, nat to the internet The third year at pcc we migrated to juniper ex 4248 p switches We added three juniper srx 300 routers And we put layer three separation between the buildings with a three tiered hierarchy We've got an internet border router. We've got two routers one for each building Hello, that's not me Okay And and then we've got all the switches below that This year we're still using many of the netgear waps, but we're also starting to roll out newer wi-fi 6 capable wireless access points We're still using open wrt to run all the wired access points Apologize for the i-chart here, but it's not much smaller than the Terminal window is going to be The three juniper routers are one core border router An edge router for each of the two buildings then we have 25 juniper Ex 42 hunt that should be 52 juniper 48p and 48px switches One per meeting or presentation room. So if you look down here, there's one Right here I've got an exemplar on the desk for later as well We have a grid of switches deployed in the exhibit hall one per cluster of booths There's one for the registration area There's one in each of the idfs throughout the buildings. There's three idfs on this floor There's one idf downstairs or mdf actually where the internet connection comes in There's an idf in the other building Actually at the level between The two levels that people know about At the end of the stairwell and then there's Final idf upstairs above the expo floor in the catwalk Idf is an internet intermediate distribution frame mdf is a main distribution frame And they're basically wiring closets We've got two physical servers and a bunch of vms on them for dhcp dns, etc The there's one deployed in the mdf in this building one deployed in the idf in the conference building We have about 120 give or take wired access points. They're distributed all over the place We have multimode flyover between the mdf and three of the mdf's Sorry three of the idfs There's fiber to the conference idf There's fiber to the idf in ballroom c and there's fiber to the idf in ballroom f The catwalk idf and the idf behind the registration desk are connected by copper to the mdf And finally we run about three miles of ethernet cable by the time we wire all the rooms all the cameras all the Wired access points everything else This is a Rough diagram of the network. It's very oversimplified But it shows you the the principal routers Orange is where the fiber connections are Um and uh green is uh copper giggy So uh some meaningless statistics about the automation as of december 2023 We had 695 I wish it would make up its mind Um 695 lines of configuration input data in the tab delimited files 39,213 lines of switch configuration output So as you can see we have a great deal of economy by Using abstract Configuration files that are easy to read to produce the juniper config files that are much longer It takes about 10,000 lines of pearl code to do that There's about 3,000 lines of pearl and bash code and 51 lines of readme.md also in the repository Sorry 10,000 lines of postscript to produce the stickers 3,000 lines of pearl to actually make it all work The code and input files are publicly visible in a github repo That's so cal linux expo slash scale dash network Why automation well two primary reasons First 695 lines versus 39,000 It's a lot easier to work on the 6000 the 695 lines and oh by the way as a bonus We get those 10,000 lines of postscript also So we're really producing almost 50,000 lines of configuration out of less than 700 lines of of input Second we have a lot more team members that understand how to edit tab delimited files than understand junos Let alone postscript. How many people have hand coded postscript? Okay, more than I would have expected but you can see it's not most of the room Ideas and trade-offs the code is written in pearl When it started pearl was still somewhat parpeller and I find python annoying spaces aren't code The original code actually started during scale 15x under fire What I mean by that is things were going wrong on the network And we figured out that we needed to have Faster ways to do massive configuration changes. And so we started writing scripts to do that During the show while things were going wrong. It was fun It's continued to evolve and improve since then But that has resulted in what's the polite term organic code Some improvements this year we did better trunk color coding on the stickers We managed to build a unified configuration loading utility For the switches that'll handle both serial and ethernet based Config loading and it'll handle Ethernet based config loading both over the management interface of the switch Back to back to your your laptop as well as via the Serial port or over the network ssh to the whole show so Unfortunately, since I'm on a mac I can't demo the the file. I don't have all the pearl dependencies But the if I if I were on the proper system I could actually ss run one command and distribute the new configs to every switch in the show with one command We've added better poe handling This year So we we have the ability to to poe power things almost all of the cameras are now poe powered and Most of the raspberry pies that you see around in fact, I think all of them this year For all of the signage and all of the registration desk is all powered by poe And we've got a few other things as well And we've improved our documentation so that I actually know what I'm doing sometimes mass loading switches because How much fun is it to load configs onto 52 switches all at once? Well, we've actually got it down to pretty much a science This is I think last year in the knock when we were flashing the switches before the show So we were plugging a dozen switches or show in And then going one at a time with a serial and an ethernet cable And loading the config and then moving to the next one and then the next one and the next one And oh, this is 19x so two years ago so So let's walk through some of the configs and the resulting output So this is I'm already cd'd into the repo And in fact switch configuration is one level down in the repo So this is what our switch types file And what this file does is it defines every switch in our network Each switch is identified by a unique number We give it a name We give it a management vlan 503 is the management vlan for the conference center 103 is the management vlan for this building Um, we give it an ipv6 address You may be wondering where's the ipv4 address? That's because there isn't one None of the switches have management addresses on v4. Why would we need it? Everything in the show is either dual stack or v6 only Ideally eventually more and more stuff will not have v4 We're hoping not to have to put v4 on anything that doesn't have it currently So far we've gotten away with that pretty well. The one exception was the first year we tried v6 only on signs and registration Registration we had to back that off because the payment processor couldn't speak v6 And the show management decided that money was more important than my v6 religion And I really can't fault them too much for that decision But I did give PayPal a really bad time about it Um, the next column after the v6 address is a type Um, we'll cover types in a minute, but basically you can see cf room is a switch in one of the conference rooms Um, where talks are held in the conference center Ex idf is an idf switch in this building Uh, ex room is a room switch like this one below me in this building Um mass flash is a special case That is a switch that is set up so that we can plug 47 ap's into it and one device that is set up to to feed them the Open wrt image and we can flash 47 ap's all at the same time Which makes relatively quick work of flashing 150 ap's So four cycles and we're done Um The party switch doesn't really exist anymore Um Catwalk is the idf switch up on the catwalk It has a unique configuration Um To support v4 for the vendor vlands And then booth is the type of switch that you'll find out in the vendor booths down on the uh exhibit hall So any questions on that before I move on? Oh, the ctf switches, um, they didn't decide they decided they didn't want those this year that they wanted to do it all on wi-fi so, um Yeah, probably this hierarchy, um is is an interesting thing That actually allows us to know Kind of which switches are dependent on other switches And we have a tool called switch pinger That is just another simple little pearl script, but it, um, constantly loops and displays Which switches are up versus down and it's smart enough to skip the switches that depend on a switch that's reported down So rather than wasting a bunch of time Pinging each and every switch that's behind a down switch It says okay, this one's down that takes a couple of seconds to figure out and then it says skip skip skip skip past all the others so That's what this hierarchy column allows us to do We have a noise level column This allows us to We hand evaluated which switches were allowed to quiet and kind of in between We, um Use this as a reference so that we can kind of prioritize the rooms that are most noise sensitive Getting the quietest switches Um And then the type of switch is in the next column. That's just documentation And of course the management mac address Um, we use that because when we log into the switch over ssh um Via the management port we want to be able to identify which switch we're on So that we know which config to blast on to it And our config loader is actually smart enough to do that Yes, sir It is we're using a hurricane electric tunnel because the convention center isn't that smart yet Yes, the convention center can't spell quad a so We use a hurricane electric tunnel to make the show dual stack We have a 48 that hurricane electric generally provides over the tunnel if you want a 48 for your house You can get a hurl it came electric tunnel and do that so it works very very well And uh, yes, that's why it looks familiar. It is indeed one of the addresses. I got for hurricane electric when I worked there so remember that type column if you look in this directory, you'll notice that there's a file for each and every type So So this is what a a typical, um Well a non-typical actually idf switch looks like this is the um idf switch on the catwalk You'll notice almost all of the ports on an idf switch are going to be trunk ports And um The thing the next Column is just the interface name And then the list of vlands on that trunk Spaces are not significant The config parser the one of the first things it does after it reads a line of config is blow away all the spaces Um the backslash at the end Indicates that the next line continues this line and spaces and tabs are stripped from the the following line Well tabs are stripped from the beginning of the following line not all tabs are stripped because these are tab delimited files so if you Spaces are not don't count as a delimiter but tabs do So so we strip leading spaces are leading tabs out of continuation lines for that reason You'll notice this has a vendor backbone vlan That is the special magic vlan 499 That has an oh ipv4 config on it It speaks ospf to all of the switches on the exhibit hall floor and forwards the the DHCP requests off to the to the DHCP server via ipv4 This and the expo hall switches are the only switches that have ipv4 configurations on The uplink on this switch goes directly to the expo router All of the idf switches connect directly to the router in their building Yes, we've got well better yet. We've got two DHCP servers running kia with ha pair So Their act the the one in this building is is primary active for this building The one in that building is primary active for that building And they back each other up and maintain the state tables across This is all this this is all hand edited Yes, this is the input file This is part of the 695 lines of input. Yes So this is a typical room switch Much simpler than an idf switch It'll have a couple of trump ports for the uplink and downlink Downlink is unused in most of the room switches But it's the most common type of port on an idf switch because downlink can be used to feed A dependent switch There's a couple of places at least in years past where we had one room that didn't have any ports that we could use To get back to the idf. So we literally ended up stringing a cable to the room next door And plugging into that room switch for for uplink The other ports you'll notice instead of a dash they've got the letters poe And they're marked ap instead of uplink or downlink and you'll notice they have fewer v-lands on them They have ex info so that we can actually get to the management address on the ap And then they have scale slow and scale fast which are the two wi-fi networks that the wired access points support The poe indicator instead of a dash tells it that we want to feed poe to that device And then the ap marks it as an ap type port and that's how the color code on the stickers is managed And then these v-land ports are untagged ports On that particular v-land and the number to the right is the number of ports to reserve in that category And you'll notice that as a comment at the end I keep track of the port numbers that result Um, but again, that's all hand coded rs rvd is just ports that have no config on them Um, and they just sit there not having any v-land or anything Um, and they get marked on the stickers accordingly as well so Rather than go through every one of those files Actually, I want to be there Yes, sir So so the question is has there been thought to using something like net blocks and or or some other ipam And the reality is dns and ip address management have not been our big challenge Configuration management has been the much bigger challenge Right I know I can model all the but then I still have to extract it and turn it into a switch config so It doesn't really buy us anything and It has been deemed not worth the effort so This is what it takes to turn all of that Into a a set of configuration files for the switches and generate the post script and pdf versions of the stickers I type m a k e and I hit enter And it does that Whoa, that's uh Oh, yeah, it's it just went by really fast, but it it did all of this So i'm not going to scroll it all back up, but suffice it to say it goes for a while But that just generated 52 switch configs And uh for two post script files and two resulting pdfs from the post script files And the two post script files are the result of another purl script that combines 52 post script files into those No make is is the make command you're used to So This is this is the make file Well, if you want to type the v6 address you can I usually use the dns name I'm using expect.pm for putting things onto the switch No, I can hand scp it if I want Well, I wanted something that would use generic ssh and that I could control Yeah, there is she's got it so So the question was um Why am I using expect instead of one of the various other automation languages? And the answer is because I chose expect basically And the projector is There's a what? No, it's ssh. It's just ssh But expect works with ssh and serial also So that was convenient because I can just hand it a file handle Most of the other automation Yeah, most of the other automation won't work over a serial port Um So I end up with this output directory that has a account file for each of the switches Um So for example, this is the config file for this room Um, remember that the the the specification file for ex room fit on one screen and left a lot of room below it Um, this is Line one of 553 lines of configuration in this file So we get to the bottom of the screen. We're We're line 45 and we haven't even gotten out of the the ssh public keys that we load yet So and then we set up ssh. We set up syslog we set up the the um chassis configuration um to get rid of unnecessary alarms and to Manage the fiber port in case it has one to be the correct type Um, we set up our s and mp And then we have our interfaces configured And you can see this That one vlan line in the config file expands to that whole Description and unit zero family ethernet switching port mode drunk vlan members and then the list of vlands And then all those close braces that all came from one line of of input So It's uh, it's fairly efficient. And then these are uh inactive ports or the rsrv ports the reserved ports That's pretty much it I mean it it goes on for a while But you get the general idea Oh, I should go past interfaces because there is more Um poe configuration Um the default route configuration notice The only default route on the machine v6 There's there's no l3 v4 on this device Anything v4 that passes through this device is doing it strictly l2 Rapid spanning tree lldp We make a lot of use of lldp here all of the ap's report lldp all the switches report lldp All the routers report lldp all the pies report lldp So it gives us a lot of visibility into the network for troubleshooting All of our vlands are present on every switch The config automates that nicely I should actually show you the input that drives that So there's this vlands file And you'll notice that it's very short Um, and it has just a bunch of include files That way we're able to maintain the vlan list for each building separately also the year we went back to the hilton We ended up having to accommodate that so Rather than destroy all of our existing config because we knew we were coming back here the following year We simply created a special set of config files for the hilton We discovered a few special cases that required some recoding But we did it we managed to do all of that in such a way that the following year when we came back here It wasn't too terribly inconvenient or disastrous So this is the vlan definition file for this building Each vlan gets A name a vlan id an ipv6 prefix an ipv4 prefix And that's pretty much it 200 through 499 are dynamically generated by the configuration generator I should show you how that's done Because that's special this vv rng Specifies the vendor vlan range the vendor vlan name prefix So all of the vendor vlands are named vendor underscore vlan underscore and then a number Which is the same as the vendor vlan id We give it the entire slash 48 spec, but it knows to use the ones that correspond to 200 through 498 It's smart about that. We give it a slash 15 of ipv4 addresses to To pull from And then we designate a vendor backbone vlan Which is the vlan that all of the vendor vlands route into That is then carried over layer 2 to the router from the catwalk switch So this is a booth definition file So this defines each of the switch this one booth file defines all of the switches in the expo hall. They're all identical So the two trunks obviously up link and down link Six ports of nothing just to push that out away from Things so that people don't get confused and plug things into the wrong port if they're off by one It doesn't work instead of working weirdly Because working weirdly is harder to troubleshoot There's the ap ports for the ap's that are distributed around the room Another port gap for safety and then this vvlan 16 So what that says is take the next 16 ports put each of them on an individual vendor vlan and Set up all the ospf and everything for that to work So As an example, whoops dot com. So as an example, this is a booth switch output config As you can see lots of stuff Standard, you know the usual trunks the port gap ap ports more trunks The other port gap And then we get into the vendor ports So each one is an individual untagged port port mode access members vendor vlan vlan number So That's that that's the whole port config, but then we go down further Oops We get into this vlan interface and you'll notice There's a unit Number for each vendor vlan So 232 it's got a nine at four address. It's got a nine at six address It's got a they they all use the same firewall filter And that firewall filter basically says This port can talk to Our dhcp server for dhcp our dns server for dns It can do neighbor advertisements neighbor Solicitations are that sort of stuff it can ping stuff And it can get to the internet it can't get to other vendor vlands. It can't get to the scale network So we did that because we have believe it or not vendors one year that we're doing Interesting things to other vendors and to the network So So we decided to put them in silos instead And our life got much easier thereafter Especially since we can automatically generate all these silos now Right remember all of this config For all of these vlands came from that one vvlan You know 16 command line in the in the input file And then dhcp relay v6 and v4 for the vendor vlands The server group allows us to define different dhcp servers for different things if we want to you'll notice that things in the Expo hall use 103 colon colon five things in the Other building use 503 colon colon five and things on the av vlan av runs their own dhcp server For reasons passing understanding, but it's what they wanted. So we made it work They don't speak v6 yet, but we give them v6 anyway and hope that someday they'll get smarter But we also and hilton is just left over it's harmless to have it there. So we didn't bother to take it out This is the v4 version of the same thing and you know av has its own dhcp server on v4 also But you'll notice that the the vendors are all in group vendors And then of course we've got the static default route for v4 and v6 We've got the poe specs We've got our protocols so In this case the switches are actually doing router advertisements for the vendor vlands themselves You'll notice that we don't set the m bit We do have a dhcp server people can get an address from it if they want for dhcp v6 But primarily we prefer slack. It's just cleaner and easier and faster Um, but we do provide other stateful configuration So we set the o bit and not the m bit in our router advertisements We do provide our dnss in the router advertisement As well as providing dns servers as dhcp options And then we provide an on link autonomous prefix And again all of that Part of what gets generated from that vvlan statement It's a it's a great economy all of these ospf statements part of what gets generated from that vvlan statement All of these ospf 3 statements, which is ospf for ipv6 Generated by that same statement The firewall filter is statically built into the code Though some of the uh, no that's actually all static too so Yeah But it gets duplicated on every switch automatically And then of course the standard vlan list storm control pretty straightforward l3 interface specifications for all the vendor vlands And then that's it. Oh, and then the vendor backbone so A lot of economy especially on those switches Um, I think that's pretty much it. Let's log into That switch So currently this one's only got two llep neighbors One is the the trunk port for its uplink and you can see that that goes to expo dash catwalk Which is the name of the switch in the catwalk And then the other one is expo to a dash 3 Which we know is from naming convention. That is a wired access point That switch isn't very interesting Let's do I think that's the name. Nope Reg desk 42. Okay, so I've got 18 Ish Including questions. Yeah, I know I'm almost done So this is the reg desk switch. It should be a little more interesting Yeah, our pies are not doing llep anymore. I'll have to get that fixed so Two two wired ap's and and embarrassment on the pies. Sorry about that but Lots of lots of unconnected ports lots of connected ports Stuff Happy to answer any questions about that or drill into things people want Let me go back and make sure I'm out of slides Can I still introduce which? I can't introduce a loop For one thing there's layer three There are no loops at layer two Like physically there aren't We are running rapid spanning tree on all the switches anyway as a safety measure So that in case somebody does plug in stupid It it won't crash the entire network The the the first year when when we started developing this stuff It turns out we had a a switch sitting in the Game night area And somebody decided they were going to be helpful They found a cable that wasn't plugged into anything at one end And they plugged it into that switch It turns out the other end of it was in that switch And we remember I said we were running a flat layer two across both buildings Guess what happened? Because we also weren't running any spanning tree back then Because it turns out the hp switches by default don't do spanning tree Yeah, hp Although these are now hp switches as of a couple of weeks ago. I hear so Because hp bought juniper Yeah Yes, well hp is a hpe is part of hp So I'm not going to walk through the code It's kind of embarrassing. It's visible in the repo if you really want to go see it, but enter at your own risk Abandoned hope all ye who enter etc etc. It's also not super interesting to be honest It's just a lot of lines of pearl that have been hacked together to do what they do It is actually organized into a couple of pearl modules as well as Scripts that make use of those modules. So there is some effort at compartmentalizing an organization Stickers are more fun sort of So if you really want to look under the hub go to the github repo So this is the printer I use to print the stickers It is a suma dc4 I don't use media that wide. I use a 24 inch media roll because it costs a lot less That's an example of a switch with the sticker just applied to it. I've got examples up here as well That's generated at the same you saw me generate them This is this is what this is screenshots of the pdf's that are generated Just to kind of show off some of the different color coding of the different ports fiber ports or that kind of cyan This is actually before I update I captured these before I updated the color codes for the trunks So on this one the trunks are that kind of magenta And they don't have any differentiation between an ap trunk an uplink trunk or a downlink trunk Those are now differentiated on the actual stickers. They're blue and green and yellow and fun stuff But you can see the the reserved ones are gray and then the vendor ones are green And then the the purple ones are individual vlands Untagged and that if you look closely you can see that they have the name of the vlan on them The stickers come out with a one-to-one physical correspondence between the boxes on the sticker And the ports on the switch. So they're literally very easily referenced The seemingly illegible text identifies more detailed port of information They're printed vertical 10 labels wide on 24 inch media Or a cal 631 adhesive if you care And with that we're down to questions And she's about to kick us all out I noticed the network went down yesterday briefly. Was that only wireless that went down or is that something Well, I don't think the whole network went down yesterday. I noticed I was in here. I noticed Okay, I think somebody had actually managed to cause this switch to reboot Is is what happened? Most likely somebody tripped over or kicked a power cord or something That's the usual cause of that by the time we got people dispatched to look at it It was coming back up We've had a couple of occasions where they were reworking one room and they pulled power cords apart and put them back together Thinking that that didn't matter so You know, we can only do so much and when the electricity goes away the switch stops working Any other questions In most cases, yes router IDF switch switch so usually only two deep a few cases. There's three deep And very very few cases. There might be a fourth No There is there is no effort to make the stickers colorblind friendly It was it was enough the question was are the are the stickers colorblind friendly? And the answer was no there's been no effort in that realm So far nobody on the team has reported the need for it And really the stickers only need to make sense to the team So if somebody tells me that they're colorblind, I'll ask them what makes a sticker colorblind friendly and try and figure it out They're just post-grip set rgb color instructions So it's actually fairly easy for me to change for the following year next question. How about your srx's are they Those are those those are artisanal that there there was not enough srx to be worth automating So those those configs are hand-generated and in fact, I've done significant editing to them at this show And I need to capture that back into the repo Next anybody else We're using for dhcp and dns out of curiosity Say again for dhcp and dns. What we're using did you roll your own dhcp servers or oh, we're uh, we're using bind and kia So we let we let internet software consortium build our software for us Uh over here Um, you had snmp enabled on all the switches. Do you guys do any fun graphing and libra nms or anything like that for all the bandwidth? I'll let ryan answer that So to answer that really quick, uh, we are working on uh, prometheus, uh, which does some snp And then we're going to be dumping all that into grafana. So the short answer is we're not using a traditional Zavix libra nms observium that kind of stuff, but it isn't in the works But we have a pearl script that tells us which sources are up and down No, we don't care about cable color that that ship sailed long ago I had sort of a sociological observation look around this is losing his job or needs a job think about it These this is your network to do your network, right? Yes, if you have a job available for a network person, please see me Any other questions? All righty. Well, thank you very much for attending. I hope it was interesting And I hope I didn't run over time too much The slides will be available online soon at the scale website and you can stick around for the next Presentation for a hacking next cloud to track your period So stick around and thank you. Oh and Yes Yes, I am 1734 Thank you Probably but I would have to code it to to do that Should turn this off One two three Yeah, okay Same yeah, it works Hi, welcome to ballroom c at scale 20 Our next talk is hacking next cloud to track your period presented by camila iris Is a software engineer for next cloud and will show share her knowledge With taking ownership over your data So hi everybody How are you still feeling in this evening tired sleeping? Yeah, so maybe a little joke will help Do you want to hear a joke about bad karma? Yeah, so I'm having my period Yeah, excellent timing Are you feeling awkward with this information? So am I So I am a camila. I am a software engineer at next called I have been living for too long In germany. I am originally from brazil And this is my dog popcorn She's in these slides just because she's cute and she's the only germany in the family So this is what I want to share with you today We start talking about why to talk about periods at all, especially in a technical conference What does it has to do with anything, right? How does next cloud how next cloud is connected to it? And why you need a period tracker? Like why is that relevant? And I am creating my own application to track My period and I would like to share A bit of my journey to From trying different things To trying to write my own app Because I'm actually a Developer in the desktop team. I work on the sync client for next call. So it's a very different technology So it was a bit of a learning curve for me To get to write in some pgp code So I guess all of us here in this room know someone who Has a menstrual cycle, right? this So data shows that at a given point Each each day 26 percent of the global population is menstruating menstruating will account for more than 50 percent of their Average lifespan So that's a lot of bleeding And if you want to talk about a period In some areas rural areas of Nepal you need to get isolated in a mud hut Like this one in the picture So this is a practice that they have where they banish Usually young girls to this place where they can Have their period with other people who is going through the cycle So this practice because they really believe if someone is having their period and they are with their family It might bring a bad luck and illness to them If you think about it, is it really different in our society? The bar to talk about the female body is actually really low like When you talk about the female body is usually You have the feeling of feeling gross out about it is usually what you see and hear from nipples to to menstrual blood is usually something that You learn from a very young age that you have to hide it You shouldn't show your nipples. You shouldn't talk about your period You should hide your tampons. You should hide your pads, right? It's almost like there is something wrong with it correct and Even though we all know if you have a female body, you're going through a menstrual cycle This is how it's expected The same way when you have a baby, you are expected to breastfeed it, right? This is You all know this happens But then why what's the logic in it that we all have to hide it? Right in some places you cannot breastfeed in public Again because The female body is something, you know, you shouldn't see you shouldn't talk about it And if you go a bit back, so when women were advocated to get university degrees One of the reasons People would argue against it is because they expected you to Spend at least a week a month a week of the month in bad resting because of period And then if you go even further back in ancient Egypt One of the first period would come it was celebrated They would even use the blood to do rituals to protect babies from evil Or to boost someone's fertility fertility So it's that's a big contrast So when you really think about it in the end It's just society giving meaning to something that didn't have to have any meaning It's just a body working doing this thing. It's just our bodies so Because it is a very loaded conversation and we are we learn to hide and Be ashamed of it like we did something wrong It can it can take up to 80 years to get a proper diagnosis when you have a menstrual issues So how do you know if you have too much pain or too little pain if you don't talk about it, right? So For me, this is Let's say a highlight from my talk. I mean, that's if you want to take something with you today This is something I would like you to remember So if you want to treat everyone equally, I really think you need to talk about those differences It doesn't Really work to just add females to a software engineering team and be like Great work. We have diversity. Our job here is done So you might be the only person in your team who has a menstrual cycle You might be the only person in your team who is an immigrant. You might be the only person who is a person of color And there are so many things that make us more self aware And being the only one only adds stress to it so So besides just like going through a menstrual cycle, of course every month and then often you hear comments and On everyday work or in our open source communities that will remind you that you are not welcome So it might be uh, you might see different people in different conference in your workplace But is that really being inclusive? Right So at work, are you making them feel bad because they have to ask for sick leave once a month? Who takes care of the kids at home when they are at work? Do we really try to give everyone's uh, flexibility to be able to Do their best at work or at our communities? So if you talk about the problem, then it is real It's not just something in someone's head And if you can talk about it, which this means you can find a solution To make to give everyone An equal chance to be a health member of the open source communities and of the tech workforce Holding like a goal is not a bad thing. We should all embrace our difference and talk about it People don't even learn with the same methods, right? We all have different ways that you like to do things and how we can learn much less We don't all work the same way So I am here in a tech conference talking about next cloud periods And I just share something very private Right why you should listen to me when I talk about privacy on the internet, right? So I decided years ago that I really wanted to talk about my periods and Be open about it with people because I read an article talking about how Loaded it is To go for a menstrual cycle all the shame that's involved into it So for me, it was very freeing to realize that I didn't have to hide it. As I say, there's no logic to it. It's just society expectations and That doesn't really match reality So well, that's why I'm here today So I So I learned this and then now I can share it and I can share it when I wanted and how I want to do that So privacy is not only about hiding things, but it's also about what we let other people know What we choose to let people know and how we control the narrative about ourselves and our loved ones So what's the impression that you want? To let people have of you So this is part of Choosing how you want to share things. So why do you close the door when you go to the restroom? We all know what you are going to do in there most likely Everybody has a pretty good idea of what you're doing there and we close the door It's not because you're trying to hide something. It's about what you don't want to share with other people So privacy on the internet is part of it Do you want companies to know if you're pregnant or planning to conceive before you even have shared that with your family? How do you feel about seeing baby diapers advertising in social media when you just learned that you cannot have kids? That's what's done with parts of your life that you have not agreed to share with anyone yet And this information even though we have not agreed to it is already in someone's server somewhere so We could argue that maybe advertising is not so bad. This is fine. Just advertising Just advertising But can you think what governments could do if they have this kind of information about you? Could you imagine one or two scenarios where? That could be used against you can So a drive through us for you a drive through the city on a Saturday afternoon Could could that be used against you? Did you visit your mother or did you go to an abortion clinic? so During my research I learned that apps are not under the same privacy laws that doctors are So they actually really can sell and use this this information about you without your consent with very little consequence So if you have too much period pain or you have no period at all, this is kind of information That could be really helpful Um to your doctor or we go to big pharma and companies and governments It's something that you can choose Of course, I'm trying to make a point about period tracker apps, right? But any application that you have in your phone It could be using Could be tracking your your data your location So that brings me to next cloud So next cloud I think some of you probably are here because of it It's a self-hosted solution. It's open source has been around for more than 10 years And the main thing about this project is that you can host The server yourself Whatever you want to to host it. It could be even a server in your own living room So next cloud is not only so The main thing about next cloud is privacy And we have a lot of applications that you can use too So we have this um what you call next cloud hub which are files talk group where an office So this is files and on the browser you can share your files photos with your family comment on it And this is talk which is a chat and video application Group where includes calendar contacts and deck That is a Kanban board app to organize tasks And then we also have office which is based on colabora online So you can edit documents spreadsheets with other people Is essentially a library office online We also have a collectives app which is a knowledge management like a week And this is that's the desktop client. That's the team that i'm part of you can use This application on your linux machine or windows or macOS single files besides The desktop applications have mobile applications for the same purpose For android and ios So why you need a period tracker app? So the point of having a period tracker app is it is mainly organization planning and taking care of yourself So there are plenty of apps out there, but how many there are that really care about your privacy So with this in mind, I would like to explain how I have been trying to use Next cloud to track my period some suggestions maybe And of course how I decided and how i'm doing what i'm doing to write an application for that So first of all next cloud doesn't have a period tracker There are plenty of apps who have a big app ecosystem, but you really don't have one And as I said 26 of the world population is menstruating on any given day So there are plenty of use cases for an application like that So my idea for an app actually started started a few years ago First of all, I have my own issues with my period and always bothered me so I start I start by creating a calendar that's called period tracker Because I thought that will be easier to enter data You know next cloud has a bunch of applications on the phone that you can use to sync a calendar So it'll be easy to just enter notes on the calendar and I would have a calendar view of my menstrual cycle Also, I'm under the impression that most apps are developed with the idea With the focus on ovulation and of the actual bleeding period Instead of also the symptoms that surrounds it And for me it will be important to have an application where I could track how many days of the month I actually I'm actually in pain and all the symptoms that Leads to the actual period So this is what I try And then so calendar has some limitations you cannot really Put on graphs this information Um, if you don't really have fields that you can enter detailed data So I was looking to it and then there is also this app that's called health you can track your mood medication activities But it still lacks period component And to be honest, I also try pen and paper Do you want a full privacy go offline? Right? That's the will be the easiest way During my research I found printable period trackers. There's plenty out there With the manual tracking The issue was that I couldn't Really group information or look for it in an easy way. I couldn't do a control F, you know So this is the ish angle bomb if you Do some googling you'll find that this is considered the oldest period tracker ever found It is about 20,000 years old is an animal bone And you can see there are some marks in sizing it in three columns So there are a bunch of theories, of course of what this actually is And one of them is that could be a period tracker or just they're possibly just tracking the moon cycle But then again grouping information searching for it. Not the easiest in bone or paper So that's what led me to think. Okay. Let's let me try to develop something how hard that could be Right So that's what I want to share now a bit with you like how it is to develop an application for next cloud You know, is it really hard or not? I'll give you some details about the technologies So next cloud it is written in php. It's a very common used language And the organization and the company we are we tend to be very Practical we try to use the best tool for the job so Next cloud is written php and the front end is view js But we also have parts of the Of the server that are written in go which is the high performance back end for talk And there's not a component that's written rust And we are working also on a project to make the To make it possible to write our next hot applications in other languages Which should also in the future include c++ But the app ecosystem right now is mostly in php if you want to look for applications Most of them will be written php and javascript. So my application It is in php and javascript So the first step I would say and that's what I did was to look for an application that does something similar to what I wanted to do So I talked before about deck And that is this come button Up and they have a nice integration with calendar Because what I would like to do is to have a nice integration with calendar So for notifications or even possibly to enter some of this data So when you need to figure out how to do something you can look for applications in our app store or on github You can find a bunch of them and then you can read the code and check it out how you can do things Then the next thing I did was to create an app skeleton So you can go to our app still next call.com. There is a generator there And that actually makes things super much easier Uh, you have essentially then um, basic application with an ui and A back end and you can already just run some commands and installing your server Then after you have these files, you should play around look at it You know take a look at what is there And in this process, I also decided that I wanted to use a proper ide to work with php Because I'm not used to working with php. So I thought I should get all the help I could get So I decided to go for php storm which what my colleagues and the server use If they have a good support for the language and good syntax highlighting There is also visual studio code Which I would say is also probably a good Option and if you want to be very quick, you can use github code space Which is visual studio code online So this is uh, the basic structure that you get Which is a lot of files But in this structure, you even have a readme already you have the license a git ignore file so and With the files you also already get a make a make file that will have um all the rules that you can Run and uh build the app and from there you can already have it installed in your server And then so this is an important step So what makes easy to develop things for next cloud is that we have an app framework that you can use So you don't have to implement For instance user management Or if you want to share files in your application, you don't have to re implement that next cloud already makes it available for you So in the composer file you can you have the dependencies that you need for that And then in your class in php you can um import like uh The framework what you want to use from the framework In your application And then you can extend the next cloud functionalities if instead of having to rewrite it Then this is the lib folder where you find most of all your php classes And then under lib and app info you have to register all your services this file It's loaded every time next you access a page in xcloud That's um So this file contains the dynamic declaration of an app It defines what the app does in the index cloud in general on the server side So what are services? These are the core functionalities implementations your server Your service class will talk directly to the database So here's just an example of one of my classes like contraceptive I wanted to so in my application I would like to for each day You can enter data and one of the things that you can enter is which contraceptive you are using and symptoms and The symptoms you have categories Like if it's your mood or if it's like um, you know if you're having tender breasts or Crumps so So this is just an example of uh, where i'm creating a new contraceptive in the database and this is Let's say a bit more complex part of it. So this is So these are the the routes that you need to define. So each of these it's an endpoint for um So an endpoint has a route and a controller method to handle the network requests So this is just an example of using what i'm calling calendar and you You need to have a route to each of the actions that you want to do create show update or delete and that's Gonna have a corresponding method in the controller So in this case in the calendar controller, I will have a create Function that match with the route. So it's going to create one entry in the calendar So the controller will be called for each request And it will then talk to your service classes and the service class is the one that's going to be Directly then manipulating the data in the database and under the database Folder you find all your getters and setters for each of the Database entities essentially so all those calendar category contraceptive and symptom are all tables in my database and then under the migration folder So this is this code is executed every time you install update or Update or remove the application so you can define what's going to happen when a new version of your application is It's out so you can create a table or change the table and That's what you do in the under the migration folder These files have a name convention to define like When what should be run and next code keeps track of all the migrations that has been done So it knows Which one should should be run? On the update of the app or when you install it And besides the back end because so that was all about php the back end next cloud also offers Vue.js components So out of the box your application can look like The server you don't have to create css from out of you know You don't have to create things from scratch you can if you want But we provide also Vue.js components that you can use So these components you'll be installed via the package json file. So here's our dependencies So these are the javascript dependencies So We see their next cloud view and there is a view material design icons Which are icons that you can also use out of the box Then you're going to import Each of those components that you want to use like here paints in the liter just icons that you can use And then you have the actions which will be buttons that you can use in your forms So this is My app dot view File, so this is your front end You can create as many views as you need and Yeah, so you can see here the use of the components There is action button, which would be just a button and there you can see the delete which is an icon so I have this This code and Some basic functions. It's under this repository. You feel like check it out So that's where I am now with with my application It's a very basic thing. I do not have published it yet in the app store I really would like as I say to extend it to use The the calendar for next cloud and also be able to have this this information in graphs and Yeah This is an honorable mention talking about privacy drip is A project a Berliners project. It's open source, but it's only mobile and it really keeps your data in your form And you can export import it but this doesn't have syncing So maybe in the future really really cool to collaborate and have an excellent integration So I don't need to have a mobile application So concluding now this conversation. I think the main things I would like to share That I mean they would like you to remember is so Yeah, the main thing would be for me about So to have diversity with inclusion So in a perfect world, of course, none of these should be issues how our body works or how it Sorry Or how it looks will not matter and but we So all those things should not matter And we should get all the flexibility you need from our employees and our communities right so you can do the best work we can do Even with all the differences Um, and maybe you alone in your community can be the same space that Someone that you know that is from a social minority Um, you know, you can be the same space in the help that they need Uh, and then maybe as a manager you can do a better job of supporting your team If you remember there is a load when you are the only one in the team and as um for developers I um, I hope I I convince you that you can use next cloud as a platform if you want to develop an application that cares about privacy And of course, there's my project that I would like to continue working on And I would love to get feedback and ideas and if you'd like to contribute with I'll love to see that um, and maybe next year I can be here telling you how is it going and You know show you some more progress But that's it for to for tonight Thank you So just because I missed it. What was the name of the drip application or the name of the application is drip Oh, so that that's just the okay. Yeah, that's the So it's been like more than 10 years. I haven't written any php You mentioned that it was possible to run like to write the apps in python or rusts Uh, can they run directly on the next cloud server and without any changes? um Maybe daphne can help me here like um as far as I know you don't There's no really changes. You can run those. Uh, you can run you can You can run uh processes right separated from the Daphne is the team she works on the team leader of that system here. Yeah Um, so the way that is currently the best way to develop apps on next cloud is still in php But it's really easy to learn. I'm not a developer at all by education and I learned it also So I'm sure that you can too Well, then you should definitely try it out We have tutorials at nextcloud.com slash developers starting with hello world Um, and I wrote them so they are really good Okay, well, I think you will be fine and for the new ecosystem for developing apps and other programming languages you can search on the next cloud repository called app api And that will describe the current state of things Back to camilla I might know I might know the answer. So what is No, not as far as I know So, um, obviously the privacy aspect was one of the big motivators for this But it seems like um from what you were showing with the calendar. There are also just some user experience problems with the other apps that you had found So I'm just kind of wondering what that discovery process was like What you looked into as far as what was on the table and what apps existed and What they weren't providing or what they were and if you found anything that was close But was just missing the privacy aspect or just a bit more about that Okay, um, so yep. So personally what I felt like I was missing Um was more about the view so even so most applications would have a calendar view But was always highlighting About the bleeding period Was never about you could not really look at the calendar and see How much how many days you have pain or other things around it, you know Or like old highlight your ovulation period Um, because as as I say personally I have issues and my issues is not really I'm not really worried about when I'm bleeding But like I want to be able to show to my doctor How many time how many days in the month? I wasn't paying and had the other problems like depression and such things And that's what for me. That's what I was missing that I noticed Does that answer it a little No, I because for me one of the criteria was about privacy too So I really try to watch to watch that and the ones I tried So like drip in the phone. I I do miss this kind of use too Even though they do care about privacy Also about privacy I realize that we're hosting it on our you know on our own server, but What uh, what is preventing a government or other entity from subpoenaing that server? How do we How do we protect ourselves that way? That's a very good question Yeah, you can Sorry, it's kind of a generic question. Therefore. I have a kind of generic answer there But I think there are two things to that. I mean first of all one of the problems with Information sometimes getting subpoenaed is you don't know about it You know, which is really unpleasant But in case of you know, there's often a gag order on it So you won't know and I mean that's obviously not going to be the case if it's your own server um and the other part is Uh, and I I think honestly, they're already a bit easier with subpoenaing it if it's at the third party Then when it is on your own server, right? I mean you'll have to surrender information when you're getting sued But you fundamentally do not have to cooperate Um with so if it's a criminal case, you don't have to give incriminating information Somebody else would have to give incriminating information on you. So like yeah, if it's a criminal case And the data is at microsoft and they can subpoena microsoft microsoft has to give it But if the data is on your own server, you don't have to cooperate in getting yourself You know Yeah, so you don't have to hand over the data period. That's just how it is Yeah So that that's only in the civil case. Of course, you still have to hand it over but not in the criminal one Yeah, I couldn't The scenario I thought of was that uh, if somebody here in the u.s Um had incriminating evidence about maybe a miscarriage Which now with some of the new laws in some of the states Of course, california is excluded, but um some of the new laws in some of the states That woman would be brought to trial and would be a criminal trial. I didn't think about the law that protects her from Having to present incriminating efforts. So that that's a it's a very good point Exactly Yeah, it was a good question. I really had this. I would not know how to thank you. Okay, so there are no more questions I don't know anything about php. So I think we're okay there I I know it's spelled with capitals that's about it. Um I know this is a work in progress for you and you mentioned there are a lot of functions You're looking forward to integrating. I'm curious for you um at what point Do you integrate the functions where you feel comfortable uh submitting it to the next cloud app store for instance because Um, I wondered if that would bring more people's attention to it and therefore more contributions. I'm curious for you Where's that point and what are you hoping to integrate until you Make it more public um I really I would I would like to have this Let's say my dream thing in the app is to have this calendar view Even if it's a very simple calendar view just Listing the information per day. I think that will be my point to like, okay I think this could be different and interesting and outputting on the app store and with some more Like I didn't what I showed here was super basic. Like there's so many much more In the cold base like testing we can write tests and even the downloaded Um You have some tests. I would like to you know, do it in a proper way. I find like Yeah, as I was talking to Daphne, I find it's scary that people will be using my application for such such a thing that it's important, right? So um Yeah, I would like to have at least that So my question is more based around just the general next cloud web app ecosystem I've been using web app for Next cloud for quite a long time and I know you guys have obviously as you showed librae office and The calendar and a couple other general applications. I have some contacts in That work for thunderbird and they're Currently working on their android app But another common thing that was brought up with them is well if you're going to try and compete with say for example google's g-suite How are you going to do that and one of the ideas or just off the top of the dome things that Came across was well, what if rather than trying to generate A whole new g-suite. What if we do a thunderbird web app that can drop in alongside those already existing technologies And that would also possibly help with like enhancing the calendar because thunderbird also has calendar integrations and whatnot The contact that I had they wanted to know Okay If that would be something that next cloud was interested in pursuing If that would be something cool and What would you need from their side? If uh in order to like try and make that happen Sorry, I know that's kind of a long Yeah No, I just wonder um, so right now we are working with uh We are like how do you say taking over round cube to another project But I'm not sure if that would um because right now we have mail right, but it's just a mail application. It's not the server Uh, so what you are describing would be like a thunderbirds up Yeah It's I guess it's something possible what you Yeah, you think that will be enough as I also happen to manage next cloud's integration portfolio I wear a few different hats at next cloud You can definitely look into our next cloud can make integrations because we integrate everybody So also you if you want to if you're willing to do the work Right You will have we will have to think a bit more about how to exactly you want the integration to look but If you can already maybe see some examples in the app store of other applications that did something similar to what you want It should definitely be possible and we are happy to collaborate with you so for like syncing like data from Um, like I know some period apps You can track like your temperature with like an armband or something you wear while you're sleeping And then you sync that information to an app and then it kind of like Whatever does whatever it does in the background to like tell you like how many days you are from Opulation or administration or whatever right? Um, is is it possible with like next cloud to like sync to some sort of um Like I guess it's basically like an iot device or whatever Um, and then have that data go to like that app that you're building Um, it sounds like it'll be possible So for instance, so from this could you export this information or there is a Yeah, yeah, so so you don't have to use like the app that like they sell you like the one my wife uses For example, you pay like a monthly fee and then they agree not to sell your data That's one way of doing that So So yeah, but but it's you know, I'm like I'm like like it's ridiculous that you have to do that right so Something like this is like way more appealing where I can like put it in my like You know home server or whatever and I have to worry about it. So Yeah, but uh So you can export the data from the application, right? You you say it Yeah, I would expect to be able to work with something like that Um, we just have to see if like you can if it's a csv file or something that you can work with, you know That totally should be able to Because I was thinking about this drip app that I showed they you can export the data to a csv file and actually there is even a Open issue in the repository about Sinking this information because right now you can export but it doesn't go anywhere, right? So With other applications you could I would expect you can have a syncing folder And use that to sync this kind of them So you could have another application and just have like my application on the server to view this information You know something like that does that answer your question? Yeah, just a quick question, but um, Or guess encouragement um, a lot of my friends and lovers have used the drip app and That have periods use the drip app and really like it but this calendar and syncing function, especially like cross device Is what they would all benefit from that a lot and I'm curious if You've started conversations with drip about doing development that way or is it just early stages right now? So I actually tried I have open an issue in the repository a while ago I actually even other people comment in it saying they'll be great if you could sync the next cloud Uh, I didn't hear from them But now that I am actually really, you know, really working on it I would like to try to reach out to them. I mean we're in the same city even I I have met them before So I'm thinking of putting a more effort into that now that I have yeah this part of Let's say that it will be interesting if the next cloud really if my application could read This information then you have the graphs right in the server or something like that Yeah, and the data syncing part super valuable But also I think the piece that you're talking about of actually visually seeing like mood and symptom change across years or months or whatever I've I've known my friends have had to do that manually and it's a lot of work. Yeah Yeah, that's yeah, that would be my dream app Yeah, thank you Well, thank you everyone for attending the hacking next cloud to track your period The slides will be available online on the scale website And thank you Camila iris for this lovely talk