Well, good morning all. Let's just wait for these seats to fill up, and then we will get started. I'm just kidding. If you're looking for Sandy Metz, this is not her. We get mistaken all the time, but she's actually across the hall. Well, it's 10 past 11, so let's get started. So front-end fun, not frustration. This is going to be an unordered list of 12 items, probably going to be ordered eventually, but in random order, 12 things you should know as a backend developer, things that will make your life easier in working with front-end code, most notably CSS. And this is all going to be low-hanging food. Some of it you will already know, some of it will be totally new, but there are good things to know. If you have any remarks regarding this presentation, I mentioned me on Twitter, I'm at Roy. Be nice, though, if you have to say bad things about me, then don't mention me. So I'm Roy Jume, I hail from Amsterdam, Holland, and I flew here just to tell you how to have more fun in working with front-end code so that after a day of working with front-end code, the curb in front of your office doesn't look like this. And you don't need to call your friendly neighborhood front-end developer all the time. So we're going to get started with this list of 12. And the first thing I want to discuss is the box model and a better way of using the box model. So to a browser, every element on a page is a box, and the box model determines or tells the browser how to calculate the size of a box. So traditionally, or by default, a browser uses a box-size-in-content box. So the first three lines, like setting box-size-in-content box on everything that's totally useless because a browser does this by default. Let's say you have an element with a width of 800 pixels, 100 pixels of padding around it or inside it, and a border of 10 pixels. Then a browser renders it like this. So your element is going to be 800 pixels wide, and it adds the padding, which is 100 pixels on both sides, and it will add the border width, which is 10 pixels on both sides. So while you want this element to be 800 pixels wide, you end up with an element being 1,020 pixels wide. And this is super easy to solve by using the border box box model. So in this case, you actually need to use the all selector, the start, to tell the browser that all elements you should apply a box-size-in-content box to. The rest is all the same with width of 800 pixels, 100 pixels of padding, and 10 pixels of border. By using border box, a browser will actually set the total width of the element to 800 pixels, including the padding and the border. And this is way easier, because she says to you, a lot of calculations, a lot of headaches, keeping track of, I changed the padding, now my layout breaks because stuff doesn't fit anymore. So go border box and all the things, basically. A key here is that this is great for percentage-based layouts. Let's say you have a layout of three columns, each 33% in width. You want to add some padding. If you use the traditional box model, the content box model, you're going to add padding, and then your boxes will grow to a wider width than 33% and stuff just won't fit anymore. So if you do fluid design, responsive design, you're going to want to use this box model. Otherwise, you end up with nesting elements to set a width of 35% to the outer element and have a diff within to add the padding, and it gets messy real quick. So use this alternative box model. That was one. Margins. This has confused me in the past. So let's say I have an element with a margin of 100 pixels all around it. I never knew where my margins went. Turns out browsers collapse the horizontal margin. So if you have two of these elements, second top of each other, both with 100 pixel margin, they will have only 100 pixels of space in between because the browser collapses those horizontal margins. Okay, that's good to know. So browser collapses margins. Oh, wait. Not the vertical ones. This is in the specification somewhere. I don't know why, but this is confusing. So you got to remember your horizontal margins will collapse, your vertical margins won't. That's just the way it is. But this is one of those things that I and many like me used to struggle with. Like, I added margin, where did it go? This is where your margin went. Positioning. This is the default. By default, a browser treats all elements as if they're statically positioned, which means nothing else that they appear on top of each other or above and below each other, not on top. And when a element grows, the element below will move down a little. When element two to the left becomes wider, the element on the right will go to the right. Everything is in the normal document flow. That's what position static does and which, again, is a default. Then there is position relative. This is mostly used by people who want to absolutely position an element, not relative to the document, but to some other elements. So they set position relative to the parent element and then add whatever they want inside this element, give that position absolute, and then the top right, bottom left offsets for the nested element are relative to this one. So that's the most common use of position relative. What a lot of people don't know or don't realize is that you can still use the top right, bottom left offsets on relatively positioned elements themselves while keeping them in the document flow. So while we're using position absolute, top zero, left zero, it will just appear on top of everything and you will yank it out of the document flow. Position relative in using those top right, bottom left offsets will keep an element in the regular document flow while still being able to shift it to the right, to the left, or up and down. That's good to know because the one thing that gets troublesome, especially when moving into responsive design, is using absolutely positioned elements. Things are going to break, things are going to overlap and by relatively positioning them and still using those top right, bottom left offsets, you won't run into that issue. And then there's position fixed. So a fixed element always appears, that's always relative to the viewport. So if you have a relatively or absolutely positioned element and you have an element within that you get a fixed position, it will be pulled out of the normal document flow and out of its parent element and will be relative to the viewport. So this is what's being used for those sticky menus on top. If you scroll, the menu just stays there or a sidebar that you can toggle to slide in and out. That's what position fixed does. Now positioning is hard. Knowing when to use what, making sure stuff works across browsers. There are some browser quirks. That's a tough job. So what people often do is just add position relative to everything until it works. SMZ index in there as well. So the stacking order is okay. So that's something, that's a way to tackle it. But I suggest reading up on those positioning values to see how to do it in a more clean way. I'm not going to dive into this any deeper because you already know that you can static as a default and you can use position relative with those offsets. And while I sip some water, I'll have you enjoy some clowns. Inline block elements. Whenever I tell someone this is a thing, this exists, it pretty much makes their day because this makes so many things so much easier. So we have two kinds of elements in HTML. We have block-level elements and inline elements. Block-level elements are things like a diff, a paragraph, an h1. Those always appear above each other, so they take up the full available width. They always have a width of 100%. Then there's inline elements who... Or they are as small as possible, basically. So you have a strong tag, a strong element that doesn't span a entire line. It's just somewhere in your text. So they're inline. The downside of inline elements is that you can't apply dimensions to them. So you can't set the width or the height and some other properties of an inline element. Sometimes you want to. So whether we resort to, we start using floats. We use floatable things. Float left, float right. We add clear fixes and clear both and stuff breaks. But if you float an element, even an inline element, it will turn into a block-level element which you can set dimensions. The downside is floated elements weren't meant for that. You can float an image in a paragraph, so text wraps around it. That was float is for. Not for layout. So inline block elements kind of fix this. So let's say you have another list of consisting of four list items. Here they are, just the all block-level elements. So all those allies appear above and below each other. And you can make those inline while still behaving like a block. So let's set all those list items to use display inline block. Now remove the margins because we want them to touch each other for some layout purposes. And it looks like this. So they're still in the regular document flow. So their parent, UL, will still grow with the content within without using float, some without using clear fix. Now I set the margin to zero. Yes, yet these allies do not touch. There is some white space in between. And that's caused by new lines, spaces. So I'm going to assume this LI is coming from some sort of loop. They have new lines in between them, which is a text node of white space, and browsers will just render that. So they will never touch. So if you tell the browser to make each of those LIs 25% in width, then the last one will wrap to the next line because there's a white space in between. But there are several ways to fix that, but I always do it like this. So on the parent element, I set the font size to zero and then kind of reset the font size on the actual LIs. So the white space is still there because I don't want to go into my markup and strip new lines or spaces or ever. So the white space is still there, but with the font size of zero, you don't see it. So to me it's a pretty clean and neat way of fixing this. So they end up with actually have those LIs next to each other without any white space in between. Key here is no more floats to clear. Like I said, floats weren't meant for this. They will get you in a world of hurt. An inline block is pretty much the best thing that has come to HTML in the past few years, or CSS. Vertical alignment. So I asked this question on Twitter, what do you struggle with as a backend developer and working with front-end? And then a lot of people replied with vertical alignment. I have this login box for my app, which I want to appear in the exact middle of the viewport. So horizontally and vertically centered. Well, it's an easy way to fix this. You create a table, give it one row, one column, put the content in there. You make sure the table is 100% wide, 100% high, 100% high, and you set the table cell to vertical line middle and text line center. That works. So tables are way better than CSS. Yeah, I'm kidding. So what were you thinking? So we can actually mimic the behavior of tables while still using semantic markup. I'm not saying this is semantic. I'm assuming that you'll have markup in place anyway that you can reuse to apply the following CSS to. But in its most basic form, this is what works. So we have some element with a nested element, with the class name of content in this case, with your login box within that one. And we set an element to use display table. And now this diff is a diff which behaves like a table, which means you need to give it a width of 100%. Probably a height of 100% as well to make it mimic the table behavior. And then that nested element, the content element, we set it to display table cell, which, as she would have guessed, makes it behave like a TD. Again, set it to vertical line middle and text line center. And this works pretty well in modern browsers and IE, aid and up or something. So you're okay with using this. So if you were still using tables to vertically position stuff, stop doing it. So an alternative that method that people have been using was taking this element and then absolutely position it, give it the left offset of 50%, a top offset of 50%, and then give it a negative margin of half the width and half the height of the element to get it in the middle. That works well on larger viewports, but as soon as your content doesn't fit the window anymore, someone who will just fall outside of it and you can't see it anymore because of the absolute positioning. By doing it like this, it's going to be centered and if it doesn't fit anymore because your viewport is smaller than the element you're centering, you just get scrolling behavior. So this works well on mobile phones as well. So of course key here is this is semantic markup behaving like tables. And there's nothing bad about that. So using a table for this would be a bad thing, but having semantic markup behave like a table. That's all good. So as you have probably noticed, there isn't really like beginning or end to these things. This is totally random and use whatever you like. Button styling is hard. Especially I have to support some crappy browsers which is IE basically or older IEs. Styling buttons is hard. So there are two ways to mark up a button in HTML basically. You can use an input type submit or you can actually use a button element. And if you set the type attribute to submit on the button, it will actually behave in the exact same way as the input. So you can just tap to it. You can hit enter in the form to submit it, et cetera. So this works perfectly well. Well, the difference is clear. The top one uses a attribute to set the text inside of the button while the one at the bottom just has a node inside of the opening and closing button tag which allows you to use HTML inside of your button. It allows you to add an image there if you want to. So this is way more versatile. It is just a single word in a single styling. The input type submit or just input type reset if you want to use a reset button. Don't use a reset button because people will hit that one by accident. Then that works if you want to have more fancy button styling. Yes, use button. Pseudo elements. Pseudo elements is HTML. Well, there are elements. Yes, HTML elements that you insert into the DOM using CSS. So they end up in what's called the shadow DOM. Looks like this. So you have an element with a class name element. Column, column before with some contents which then appears in front of this element. So in front of the element with class name element, I should have chosen different class names probably.  Or if you use column, column after, it will appear after that element. This is the UTF-8 representation. This is a UTF-8 arrow in representation that CSS actually gets. So the backwards slash with some information about the UTF-8 character entity and you can just use UTF-8 elements inside your... have them added to the shadow DOM. As you see, this uses two columns. So column, column before and column, column after. What you'll also see is this notation using just one column. That's because the two columns is, according to the CSS3 specification, and this isn't. The upside of doing this, though, is that while your CSS doesn't validate against the CSS level three spec, this works in IE8 and above while using the two columns only works in IE9 and above. So if you're not bothered with... If you can be bothered with supporting IE8, it's okay to use the two columns, but I always use this one because it's just a small change. It makes it work in IE8 and we shouldn't give people who have to use IE8 a hard time because their lives are pretty much in ruins anyway. So I used the single column. Of practical use cases, let's say you want to let people know that a link is a secure link because hard bleed. So this is a CSS level three selector that says for every link, which is a href attribute, so what it links to, start with HTTPS, add uses SSL in between brackets after the link. That can be useful, or maybe you want to show an image instead. So if the href attribute starts with HTTPS, we're going to add more than just a string because what we're adding is not a string, it's an actual element that we can style completely using CSS. So we set the contents to an empty string because you don't need any text in there. Set it to display inline block because you know why, no floats. Give it a width of 12 pixels, a height of 12 pixels, and set the background image to some padlock icon, which I assume is going to be 12 pixels wide and 12 pixels high. Eventually, you will not get this to work and it will take you two hours to figure out why. In total, I spent days on that. If you omit the content attribute with the empty string, this will not do anything at all. So we don't know how many people are here, but it just saves you 150 hours of headaches. You are very welcome. So although you're using this empty string, it still needs to be in there, otherwise it just won't work. Now before we set all items we need to use the border box box model by using the star selector. By just using that one, it won't apply to pseudo elements. So you actually need to add this. So apply box size and border box to all elements plus all pseudo elements before and after, which again is good to know, otherwise you're going to have no idea why your padding is enlarging your element. Those pseudo elements make for less markup in your HTML and it's definitely more responsive. If you're not familiar with responsive design and media queries, you can tell a browser to apply certain CSS based on device characteristics. So the viewport dimensions are the pixel density of a device. So you can target a retina device to use different CSS than a non-retina device. So here you can change the markup by modifying the shadow DOM based on those media queries in your CSS. So if you have a huge viewport, maybe you want to add the string uses SSL to a link. If you have a smaller viewport and it just doesn't fit anymore, maybe then you want to show the padlock icon. By moving this into media queries in your CSS, you can change your markup on the fly without touching your HTML or adding extra spins in there that you just set to hidden based on some JavaScript wizardry. So for responsive design, pseudo elements are immensely helpful. Oh, look, a mechanical chicken. So CSS electors. I just briefly touched on the selector that selects elements which href attribute starts with a certain string. There's more to CSS level three selectors. Like if you find yourself using... This is the only bit of rails in this presentation, by the way. The cycle method. You can just do that using CSS, right? So if you're unfamiliar with cycle, it will just... If you put that in a loop, you're looping through a list of items. You provide it with two class names, other than even. Then it will alternate between those in the markup, which is great for alternating table rows. So give each other row a different background color. You can do that with CSS level three. So let's say you want to do this table example. Here you take every even row in a table. So that's rows two, four, et cetera. And then each TD within make those have a gray background color.  You don't need them anymore. Before we matched a string on what it starts with, using the dollar sign, you match on the end of a string. So here, using pseudo elements, which is a wrong code sample, by the way, because there is no column before or after there, if the href ends in .pdf, they're going to let people know it's a PDF. You could just write this, or you could use a PDF icon, which is helpful because people just don't like opening PDFs online. And for some reason, restaurant websites just don't get that. If you want to use any menu on any restaurant website, it's likely going to be a PDF. They could warn us if they would actually add this bit of CSS. Target is an interesting one as well. This CSS rule is matched when... He's going to show you some code because otherwise it's going to be too hard to explain. So you have some element with ID foo, with some content. When a target matches, it will have a red background. So if you go to, say it was on below URL, you would go to hash foo in the URL, then the paragraph would have a red background because the target matches the element. This is great if you find yourself working with, like, scrolls by scripts or things like that. So you scroll on the page and you need to change the active color of some menu item or you want to link directly to a section and make sure people know which one it is. So you can link in your documentation, link to section, whatever, and highlight it by giving it a yellow background color. By just... It's just three lines of CSS, right? And it will immensely improve the usability of your app. The CSS level three selector spec is a spec worth reading. It's not too complicated and there's way more you can do with targeting elements based on whatever. So I want to briefly touch on CSS animations. I believe animation is styling, not behavior, because it's basically just eye candy.  I want to do that with CSS. So in CSS we have transitions, animations, and transforms. So transition just changes a simple thing. So here the link color is red. We set a transition on color. So if you have more attributes, this will only... More properties, this will only change the color value. So now when we hover over the link it will transition into blue and it will take 0.5 seconds to do so. If you would replace the transition color with transition all, it would transition everything. So if you had a width and a height set plus a color, it will do all of that at once. That can get pretty crazy. So I just try to limit it usually. So back to the sidebar example, which you wish to slide in and slide out. Like on mobile, for instance. It's a common design pattern now. So we have a sidebar, some element with a zero width, with a transition on the width. And then if the sidebar has both the class names sidebar and active, we give it a width of 200 pixels. So now using one line of JavaScript, a jQuery in this case, we toggle class active on the sidebar, which adds the class name to the sidebar element. CSS picks up on that and it will transition and smoothly resize that sidebar to a width of 200 pixels. By toggling again, it's going to shrink again. So you don't need jQuery, animate, or whatever to do this. I believe it's clear to just do this in your CSS. A browser is smart about using the use of transforms, whether it should activate hardware acceleration. So it can offload some computing to the GPU. In some cases, complicated cases, you may find yourself that a browser does not go into a hardware accelerated mode, but you still want to trigger it manually. This is a hack, basically, to do so. So you do this transform by a value of zero. So nothing happens visually. But this is enough for a browser to say, okay, I'm running in hardware accelerated mode now. Be careful about that. It's not by definition so that using hardware acceleration is better, faster, or less memory-consuming, or less battery-draining on a mobile device than not using hardware acceleration. So in general, it's best to just leave this to the browser itself. Now, JavaScript libraries are becoming smart about this. So if you use jQuery, animate, for instance, it will see if your browser supports CSS3 animations. If so, it will offload it to CSS. And otherwise, it's just going to use JavaScript. Fluidity. To me, fluidity is a step between fixed design and responsive design. So fixed design is this fixed size, and you'll just have to scroll. Responsive design is using media queries to change layout based on device characteristics. Fluidity is something in between, which is pretty basic, and this is just a quick win. So say you want to center your app. You want to have a min-width of 320 pixels and a max-width of 1280, because you don't want people on their 4K display to have your immensely wide website and use margin zero auto for the centering. This case, it's a fluid layout. It will shrink and grow with a browser window, but it will never go below a width of 320 pixels and will never be wider than 1280 pixels. If you have a wider viewport, it will just be centered. Improves readability, especially on text for people using wide screens or large screens. And let's just add those two lines on some wrapping element, some diff that's around all your content. It's a small fix and will improve people's lives. So this is just low-hanging fruit. You can just put in those three lines of code and it works. I want to briefly touch on SAS. If you use Rails, you're most likely using SAS as well. So there are some new features introduced in SAS 3.3, like placeholders. If you find yourselves using mixins a lot without using parameters to actually change the output of a mixin, it's probably better to use a placeholder and extend those. So placeholder starts with the % sign, underline on hover, how descriptive. You have some link on the bottom. You extend that placeholder, and then the starting on top will be applied to that link. The difference with using mixins is if you do this in a mixin and called 100 times, then this piece of CSS will be added to your output CSS 100 times. But using extent, it's added only once and SAS will be smart about just adding more selectors. But the CSS properties will only be added once. And then there are SAS lists. Well, SAS used to only have simple arrays. You can now actually have key value pairs. So you have this SAS list of a key with locked and error which are states for something and icons that go with them. You can iterate over them in each loop, guess those values on the key and value variables, which are just named like this. You can use any other variable name you want to. And then the output is going to be dot locked on the first iteration and dot error on the second one and set the background image URL to that image. So then in your HTML, you can put a class, locked or error class name to an element and use this background image. This is only two, but if you find yourself implementing 60 different social sharing icons, this saves a lot of work. So SAS has matured. It's like programming in your CSS. And this is just a tip of the iceberg. You can do way more with SAS now if you're interested in the sort of thing. And I am because it makes my life easier, less typing. Hey, I love, like, who likes working, right? I want to briefly touch on SVG. I will just immediately jump to the key takeaways here. SVG is a vector image format which is retina-friendly because it's vector, so you can resize it without loss of quality. And it compresses well because it's just lines. It's just coordinates of draw a line between these two points and fill them with this color. So it compresses really well. And this is supported by IE9 and UP. So this was just a random bunch of things that you may or may not have known already that will make your life easier in working with front-end code. We'll have a few minutes for questions. I want to thank you for listening. My name is Roy Dumay. I'm with a company called AppSignal, which is the most awesome error-tracking and performance monitoring tool for Rails out there. I know they all say it, but for me it's true. And if you have any questions, I'll be happy to take them. Ask them now or find me later. Ask them on Twitter at Roy. Shoot me an email. And you can download these slides at www.roydio.com. RailsConf. Thanks.


Mucormecosis is a rare fundal infection that can affect various organs, but is most commonly found in the lungs, skin, and brain. It is caused by certain types of fungi, such as rhizopus orizy, which thrive in warm, moist environments. Symptoms include fever, chills, coughing up blood, and difficulty breathing. If left untreated, it can lead to death. Diagnosis is typically made through a biopsy of affected tissues, followed by treatment with antifungal drugs. This article was authored by Christian L. Gupta and Akriti Gupta.


On Monday evening, we already had a view into the theory of detecting exoplanets. Today, we are going to search for them ourselves. A meteorology PhD Michael Teuchner is fascinated by astronomy and can fascinate people for astronomy. And since his encounter with Halley's comet, he has been on the search for extrasolar planets. And 14 years ago, he was successful for the first time using fairly simple methods. He was able to prove the existence of an exoplanet. Michael, please help us find more. And it's the stage three for Michael Teuchner. Thank you and thank you very warm welcome to this talk on a topic that I find is very interesting and one that hasn't been practically current in science for a long time. Well, it's been about 30 years, but until 30 years ago, nobody knew if other stars would actually have planets around them. And of course, a lot has happened since then. And I've been, I had, I was following this from a distance for a while. And around 2007, for the first time, I wondered whether I as an amateur would have an opportunity to prove, detect such an exoplanet. Well, not, not by chance. That is almost impossible. But stars that are known to have an exoplanet, whether I was able to prove its existence and with using amateur means. So to start with what actually is an exoplanet, a very easy description. Basically, it's just a planet outside the solar system, not one of the eight planets we have, but one that circles around another star. And by now, we know quite a lot of those just this morning. I checked and we have 3,628 planetary systems that have been confirmed. And 808 of these systems have more than one planet. And when there are some very exotic things among them, because of course, initially you assume that a planetary system should look very much like ours. Everything is stable and small planets inside large ones outside. But that's all been thrown out. And that has changed the way we explain the generation of planets. And that applies especially to those that I as an amateur can detect easily. And by this morning, there are 4,904 exoplanets that have been found. And if you imagine that the first one was found in 1995. Well, there was a fairly exotic case in 1992, a so-called Palsa. So that was 20 years ago, kind of was found around a star corpse, as you might say. But you can find this around all kinds of systems these days. And in 1995, the first one around a regular star was discovered. And how do you find those? I think I remember that there was a talk about this. And of course, it's not so simple. If you look at a star, how do you actually know that another planet is circling around it and orbiting around it? And of course, other astronomers found all kinds of intricate ways of finding them through various methods. So it means to actually find such an exoplanet and establish its existence. These are the methods that have been successful so far. You can broadly divide them into three categories. The first one is called dynamic detection. So you look at things that change over time, such orbital changes, the trajectory being changed. Then there is a very exotic method called microlensing. And that means that you have two stars in our light of sight, one very far away, and one closer to us. Stars move, of course. They are not fixed, although the name sometimes you shouldn't suggest that. And when one star passes another, there is a grational lensing effect that happens. The gravitational field of the closest star amplifies the light of the star behind it. And if that star has planets behind it, there are some very interesting peaks in brightness that you can observe. And the light of the star behind it is thus amplified. And there are these interesting outliers that you can use. But the disadvantage of this method is that this only works once, because this constellation of one star being in front of another is there for a limited amount of time, just once. And photometry is the other category. So that means direct imaging for one thing. You have to have very sophisticated, such as the 8-meter mirror in Chile that you have to use. You can actually image planets directly that orbit other stars. But you need specific conditions for that. And the third one that we'll be looking for are the so-called transits. And that, I think, is the only method, more or less, that amateurs, where amateurs have an opportunity to find exoplanets orbiting other stars. All the others, the dynamics, for example, methods are too specific. They will be reserved to professional astronomers for a long time. And the microlensing, too, you would have to know in advance that this is happening and have to be looking at the right time. And we will be learning about transits, what they are. And with that, you can repeatedly observe the systems. And what you can also see in this diagram is up to which size you can detect planets with all these methods. So you can see the PASA method, what was used in the one used in 1992. You can discover planets until less than one Earth mass. The other methods don't reach as far down. Microlensing can take it down to one Earth size. But the space telescopes we have these days, and some of you may have noticed that the James Webb telescope was launched on Christmas Day. That will be an opportunity of observing much smaller planets. But these transit methods, they take you down to planets actually smaller than our moon, if you observe from space. And that is from the ground. It's not that easy. You come down to around, well, just under 10 Earth masses. And sadly, that is the fact that is determined by our Earth's atmosphere, always distorting observations. Some of you may know this, if you're out on the road in the summer, you can see the Earth turning, you can see the air turning and moving. And that makes conditions on the ground worse. It's so easy to compensate that. And that gives, so professionals have a great advantage. OK, so the transit method requires a certain constellation here. So we have a star. And from the line of sight of the Earth, the planet needs to transit in front of the star. So we need to lie in the plane of the star. And if the planet transits in front of the star, the brightness of the stars gets reduced a slightly bit. So by this reduction of brightness with today's methods, and even me as an amateur, can measure the transit here. So we know this from our solar system as well. Maybe a couple of you have also observed transits like that. So for example, here's the transit of Venus from June 2012. And this is how it looks from Earth. And so doing this event for a couple of hours, the amount of light is much smaller. So we know, of course, that in our solar system, that only works for the inner planet, Venus and Mercury. And since Mercury is much, much smaller than Venus, you see that the effect is very, very small as well. So it's possible today with our modern methods, but the effect is very small. So if you look at the profile of these transits here at the relationship between the size of the star and the size of the corresponding planet, so if you have this effect of 0.12, we see an attraction in the brightness of just 2.7%. So the whole thing tells us that we as hobbyists could only be able to measure the transit of very large planets, relatively pertinent. And also the duration of the transit depends on how far away the planet is from the star. And so those transiting planets we can observe as amateurs right now, so we see something like one to four days this time here. And so for some of these planets, we can weather one year for this planet is something like one or two days on Earth. So for this observation, I need to observe the whole transit. So if the transit takes something like four hours, I need to observe at least six hours during the night, the time before the time after. And for that, the sky has to be clear all the time. I have to be ready all the time, so that's it. So here, an example, this is how the Jupiter would look like transiting past sun from very far away. So you would see this lowering of the brightness for a few hours, and that's it. And this is how this would look from really far away.  That's all. You don't see any changes in brightness here. So if you do the actual measurement, you're doing lots and lots of photos here with a certain exposure and with a certain software packet that I'm going to present later on. We then analyze the data here on whether the star got less bright over the time or not. And so let's have a look at a couple of wheel transit of brightness spots here. This is from Hubble, from the Space Telescope. You see lots and lots of dots for individual measurements, individual samples here. And you see how the brightness goes down here. So minimum is here. And then when the planet passes away from that away, the brightness goes up again. So that it doesn't look at a corner here, depends on where the planet passes. The planets are here. So the further we are at the exterior areas of the star, the less square-like this curve looks like. And what also might notice is that the stars seem to be less bright in the outer areas than right in the center here. So we also see this here. So this gives us the brightness curve here. So we see HD 209459B is what the name of the planet. So this was just the ID of the star here, counting to some star catalog, because we know a lot of them. And most of them are so dark that it's impossible to watch them with your bare eye. And so the first exoplanet you see on a star gets the letter B.  So you have B, C, and D in the time of their detection. So this has nothing to do with the distance between the star and the planet. But it's just the order in which we detected those. So you don't see a very big effect here. And the reason for that is that this planet here is very, very small. So the whole difference is why this is also very small and noisy, whereas here on a very large planet, you see that there's a lot less noise in the signal here. And the effect is much bigger, much easier to see. So I ask myself, can I do this as an amateur for myself, as an hobbyist? So I don't have any space telescope, unfortunately. And I don't even have 35 meter mirror. So no amateur, no hobbyist has this kind of equipment here. So as an hobbyist, I depend on the weather condition. I only have a small one here. So that's what I had. I had a small reflector with 60 millimeters diameter, 370 millimeters of focus. And so back then when I tried this, the digital cameras were not as good as they were today. So back then I had a DMK camera, an 8-bit industrial webcam, back and wide, 8-bit resolution. So what you could also do with that, I think you need a little bit of equipment, of course. You need the astronomical mount for your reflector, which points to the polar star and compensates for the rotation of Earth so that the stars always appear at the same position on your picture. And of course, a computer with a software to analyze the pictures there. And today most amateurs, most hobbyists, have this kind of equipment. And it's not expensive actually. It's just maybe a few hundred euros is what gets you equipment to actually measure the first transit. So this is the first one that I did was the transit of the exoplanet HD18973B. I observed this on October 2008. You see this here. And this is, and the whole transit took about two hours here. And so as I said before, the planets that can be detected by amateurs needs to be very, very large. They need to occur large parts of the stars. So what we call them hot Jupiters. A Jupiter, so planets of the size of Jupiter are larger in a very small, very close to their stars. So what I'm saying here is that I'm doing lots and lots of photos here. So yeah, you do not over-exposure that one. So if you see this, this is how the brightest profile should look like. And this looks like a bit of normal distribution here. And if you over-exposure, then the sensor goes into saturation. You see some flatness here. In my example, with 8 bits, that would be 256. And you would see any change at all, even during the transit here. So I couldn't really detect the transit here. You may see some changes there, but that's definitely not enough to measure. So it's OK to get slightly out of focus. This might even make things simpler here. And so this is my equipment from 14 years ago. So you could think that I just have to observe the brightness of the stars, but that's not enough. And it doesn't even work because we have turbulences in our atmosphere. And by that, the brightness of the star varies so much. It's so noisy that I couldn't really observe the transit of the stars. So what we call a relative photometry, so we compare the brightness of our star and some neighboring stars and compare the relative brightness between those two. And so we can just measure the brightness of one star from where we are, from Earth. And there's some dedicated software for that. So the optimal exposure would be something like two or three minutes because this averages out the turbulences and other noise from the shorter noise. And even if the star is not very wide, I'm getting enough signal from that one. What I also need to know is when does these kinds of transits happen? And for that, you have the Exoplanet Transit Database, great website that you can find for each evening. What transits there are going to be at your location as well. I've ended Hamburg as a location here. And just by tonight, there are 30 transits that you could observe in theory. And there's one here where the transit will take about 97 minutes. Star brightness is 12.8 magnitudes. That's 300 times darker than you can see with the naked eye. But there are some examples where 2% to 3% of the light are actually blocked by the transit, given whether that would be a good observation target. And it's high enough above the horizon to pick one for yourself in there, maybe after the talk. And what you also need to detect an Exoplanet like this is, of course, you need to evaluate the data and look at the planets. And you have this extra solar planets in cycle P, giving you all the details on the known exoplanets, their orbital periods and things like that. And I'll just show you how it looks like at my home. So I've got this. It looks fairly technical in my setup at home here. You don't even have to be next to the telescope anymore. I use Team Hero or something to control it. It's all become a bit more comfortable. This is not the 6, but it's 10 centimeter telescope, a specific astronomy camera attached to it. There's a huge selection here, starting from, say, around 100 euros. And you need, of course, a tool to take the actual images. APT is a soft suit. And of course, you have to follow the movement and control that. As you observe a star, you have to follow its movement across the night sky to actually keep its constant moving less than, say, two, three pixels. And of course, then, to process it, you need something like Astro Image J. That is the free software that the professionals also use. And I'll show that to you right now with a actually real data series I took. And you can find tutorials on this on YouTube. Links will be coming up on a later slide. This is what the software looks like as you open it. I've prepared this for you already. This is a run of the software. And it first has to load the images I took. I prepared a few of those. And these have to be in the astronomical format called fit. But the software you use to store these images will always save it in that format. So that's the format you should choose. So I'll open this. I only need one image. It tells me that there are 143 images in that file. And you should always click an option that is called use virtual stack. Because otherwise, if you don't do that, your computing power will be overused. We'll be seeing a few windows opening up. And that gives you the actual image. You can see several stars. So I chose the resolution. I chose the zoom. So the next question is, what is the actual star I'm looking for? And that's the one. I'm clicking on that. And you see this kind of target icon here. At the end, the data within that circle are what will be evaluated. And everything else will become the background signal that will be subtracted, as it were. And to do the averaging process, now I'm picking the analyze item and choose the profile item. And with that profile, the software will tell me the optimal radius for distinguishing the actual data from the background. Close this. And now I need to do this relative photometry, meaning click on other stars for comparison to detect the actual transit. So I'm using the symbol with this here. And I've reset a few things. You can learn from the tutorials what all these settings mean. So I'm going to now click on place apertures. Purchase. And of course, and first I need to click on the star. And then click on a similar star for comparison. And I'll pick these. And this one too, maybe that's the one that's a bit too bright. And I can see the brightnesses. And maybe I can deselect one of them too. And now I need to click the right mouse key. And that will open several windows at once. And the processing will then take a bit. And I can watch it as it happens. And I will be explaining what the tutorials explain it as well. And there are forums that you can use for understanding the software too. So I selected for all these plot settings, I can make several settings. I can say when the transit started. And I just have sorted out all the data is in the file already. So I know which time, which image belongs to which time. I can tell when the transit started. That's just after 11 PM. And it's then transformed into a decimal representation. Also the time it ended. It was a 77 minute event. And the exoplanet is called 3B. That's another hot Jupiter. And you can see these lines are getting drawn. And the blue dots are data coming from the actual images. And I already told this after when the transit started, which I could take from the exoplanet transit database. That's this red line. So that's the theoretical, the predicted start of the transit and the predicted end of it. And I can also tell it which of the data items to choose for the transit. Because I'm telling it not to use the actual transit because certain fits of trends are also applied and taken out. So I'm clicking with the left button on one of these items here. And I can mark the dots to use. So on the ones on the left here. And we'll be doing it the very same on the other side. And what I then can say with these fit parameters, the software is built in such a way that it will automatically apply transit profiles to the measurements. And for that, I have to know what the over two period of the planet is, which I took from the exoplanet database. And in that case, it's 1.3 days, which I've pasted into this dialogue here. And what you also have to specify is what the physical properties of this planet are. Or to actually detect the physical properties, sorry, I can tell it the size of the star, which is also found on the website. So this circle here representing hot Jupiter, that's 0.924 solar masses, something I also input there. And then there are several data models that I used to actually determine the size of the star. And that can be reduced. And you can see the transit very well now. And you can see that the observed data actually fits the prediction, brightness reduction of 2% to 3%. And you can see that the measured items have some variance, some statistical variations. And you can see that there are some items now coming up where the brightness is increasing again. And as you look down, you can actually see various parameters on the planets that are determined. So you can see various fits that are applied. You can actually, you have to learn what that means by looking at the documentation or tutorials. And the orbital data determined from that fit are now becoming visible. So distance to the star. So 6.4 star diameters is the minimum distance of that planet to compare that to the solar system. And what you see also is the size of the planet. And you see 1.4 Jupiter diameters is what was calculated from my measurements. And what you also see is the orbital inclination, the angle at which we are looking at the orbit. It's not 90 degrees. So we're not looking at the orbit from the top. It's about 87 degrees, actually. And actually, with the mark coming from the control room, the screen share has stopped. No, actually, I stopped the screen share. But I finished with the screen share. So you see that the actual view would have been 1.3 Jupiter radii, and the inclination would have been 81.4 degrees. So actually, my measurements are quite close to the expected values. So going back to my slides, even as an amateur, I can actually find physical properties of exoplanets. And if you want to take a screenshot, I'm happy to. Thank you. First enthusiastic feedback, more than 300 people in the chat. Please imagine a room of 300 people who are giving you resounding applause. I'm trying to communicate this. Sadly, virtually, this is not very easy to convey, but imagine it should be possible to imagine this. So huge thank you. And we have many questions. Did the end still was the end in the video? The control room knows, and we'll see. I hope so. But the slides, sadly, were not visible in the end. I've just been told. Anyway, the first question is one you asked at the very end here. Did actually Amateurs discover a new exoplanet? I just can't just say that, right? Yes, Amateurs did build a searching system using several telescopes. And yes, they did find an exoplanet. And you yourself, 14 years ago, no, I didn't discover that one. I only confirm known transits. And that is important, too, because the professional astronomers cannot track all those exoplanets that they discovered. Because the time allotted from these professional telescopes is very limited for all these various research programs that there are. And you can check when the transit happened and confirm whether it happened at the expected time. And you can actually see things changing, shifting slightly. Transits happening 10 minutes earlier than predicted from the first observations that the professionals did. So that way, you can actually correct the orbital data. But if you had been the very first one. If you, by chance, would have been the first one to find that, then, but there's really a huge chance there. So a very small chance of getting that. So taking a photo at exactly the right time and really look at. So if I do a lot of photos here and analyze all the stars in that one for exoplanets. But the likelihood is very, very small for that. Because you'd only see transits coming from the very, very large transits. Otherwise, I couldn't observe this as an amateur. But I mean, the phenomenon is there. As unlikely as winning the lottery is, there's always someone who wins the lottery. So I think it would be possible. Another question. Can you differentiate between a planet being very large and close to its star or very large and further than that? Or further away? So can you differentiate that? Yes, because of the duration of the transit. Because the further the planet is away, the longer it takes for the next transit to happen. So if you, for example, look at the Earth, you could only observe a transit of Earth just once every year. So these search programs, most of what they found, would be planets very close to the star. So that's also the question. How often are solar systems like ours? And this is very hard to observe. Because Neptune, the orbit time, is something like, I think, 800 years. So we couldn't really observe that. So would it be helpful for exoplanet hunters if they would be distributed all over Earth and looking at a transit? So with the idea that you would get a higher resolution of that one, similar with what happens with radio telescope. And so with those visual observations, you need to connect them and analyze them absolutely live in these very difficult methods used by professional professionals here. And that's not even possible for amateurs here. So this is way too complex. So next question. How do you make a difference between a transit and a star that just changes its brightness on its own? So that's an important question. So of the variable stars, we know their profiles for quite a long time. So the brightness profiles of these transits are very typical, very specific. And in addition, you just can't observe one planet for just one planet. So you would have to observe several transits to be sure that you have observed an actual transit here. So it would be at least one year of this specific planet for you can be sure here. So this is a very, very exciting topic here. So thank you for this bridge to the philosophical question. So you, as a exoplanet hunter, how do you feel the, sorry, the anthroposophical humiliation? So feeling just as a small, tiny human in a huge universe. So first of all, even 30 years ago, we weren't sure whether there are any exoplanets at all. So 1992 was the first time to actually observe that. And what we know now that is that having a planet is not that unique in the versatures. Having a planetary system is not that one. So well, so far we know that we are still the only known inhabited planet. But so the whole thing is very exciting. So we learn more and more about planets everywhere about solar systems everywhere. And so all of the research, all of these observations there even increased this feeling of humanity being something special, of Earth being something special. So also, I mean, the tech always improves there. China, for example, has a telescope with a 39-metre mirror. So the absorption of observations we can make are getting better and better. So maybe we get a chance to find other inhabited planets or planets live on that, looking at chlorophyll, looking at the spectrum of these planets. So the professionals will look at places where all these amateurs would be guessing, that there might be something. So there have been lots and lots of stars have been looked at with the Goldilocks zone. So we know lots of planets in that zone. And this would be candidates for actually searching for life. But on the other hand, we wouldn't even know how life could look like on other planets. We have a sample size of one here. So we have a very, very limited point of view. So we got the first batch of questions from the batch. So we got some answers for that. Those, I'll do a short bridge to the next one. But I am inviting everyone here to go to the question and answers room here so we can extend the discussion. So thank you very much.


Today I want to talk to you about a story, and the story is about relationships. And what's one of the most critical aspects of any solid relationship? That's the give-and-take and assurance that both parties are benefited through the relationship. Yet that's not often how humans' relationship with the natural world works, right? Frequently it's all take and not a whole lot of giving. We're slowly learning as a species how to be better at that, how to be better custodians of this, you know, one planet we have together. But even in relatively long-lived human practices, we can see this somewhat one-sided relationship, right? If you look at the domestication of animals or plants for food or companionship, those are often pretty one-sided if not entirely one-sided. But what if I told you didn't have to be that way? There are actual examples of mutualism, which is symbiosis where both humans and wild animals benefit from one another. We all remember the word symbiosis from biology, yes? There's three types of symbiosis, parasitic, commonlism, and mutualism. And let's talk about those. So parasitic we're familiar with, right? This is where one species actively harms another to gain something for them. The parasite's benefiting while the host is being harmed. And actually almost 40% of animal species are parasites. It's a very effective way to run a species if you're looking to start a new one. And the average mammal species, like us, is host to dozens of parasites at any given time. But you can also have relationships where one organism benefits and the other is not really significantly harmed or helped. This often involves an organism using another one for transportation or for housing, right? Like think about hermit crabs using the shells from another animal that they've discarded to protect their own bodies. This is a long relationship between... But the third type is a long term relationship between two individuals of different species where both benefit, and that's called mutualism. And the classic example here is a clownfish, right? The clownfish lives inside the tentacles of an anemone. I have four small children, so I'm very familiar with clownfish from Nemo. The anemone protects the fish with its stinging tentacles that the fish is immune to. It has a special coating for that. And the clownfish actually protects the anemone from many predators that would otherwise try to eat it. And I think if you're sitting here, it's probably hard for you to think of a pure mutual relationship between our own species and a wild animal. But there are documented cases of this, and they go back a really long time. So in 1588, a young Portuguese missionary named Des Santos was in Sofa, which is in modern day Mozambique. And he wrote about the small bird that would fly in through the church windows of the Mission Church and nibble on wax candles inside. And so then he talked to the people around him and he learned that actually these birds actively guide hunters to be hives deep in the forest. And this has actually been, if you flash forward today, been confirmed by modern zoologists. The Yao tribe living inside modern day Mozambique has a special relationship with this bird. It's now called appropriately the honey guide. And the honey hunters have a special call that they make. I'm not going to attempt it, and I couldn't find audio to play for you all. But there's a call that the birds recognize. And the birds then will guide hunters to be hives, right? And the humans can then use smoke and tools to subdue the bees, get the honey out, and the honey guides love to then eat the wax that's inside the hive. And without the human helpers, the honey guides would be attacked by the bees if they tried to do this, right? And without the honey guide guides, the human hunters actually have a harder time finding being us. When they work with a honey guide, their odds of finding a being us are increased by 60%. And in fact, in this area that was studied by Dr. Spotsgood, she's credited down here. I actually have to email her to ask to use this picture. She's an Australian zoologist. In this area was in the Nissan National Reserve in Mozambique. It's been known for honey production since the time's early trading days with Africa and Arab countries. And humans use honey guides in three out of every four bee nests they harvest. So it's just one of this rarest forms of pure mutualism between a wild bird or a wild animal and humans. And in fact, Dr. Spotsgood said to me, hey, remember this bird is not tame, it's wild, even though it was perched on the tribe's hunters' hand there. I said, yeah, no, I know. That's the point. That's why I want to tell a story. So what does that mean for us today? Well, to understand that, I think we have to understand where we are at with the common good that we all use today in our day-to-day jobs. And that's open source software. We've heard often that software is eating the world, but that's actually a decade plus old at this point. And I think it's now clear that open source software is eating the world. Studies vary on this point, but somewhere between 30 to 50% of the total software that's shipped in proprietary software is actually open source code. And so when Mark Andreessen made this famous proclamation about software eating the world, he was trying to wake businesses up to the imperative that was in front of them. The reality of the digital transformation was coming to every industry, that every company was going to have to become a software company. But in the next era, in an age where every company already is a software company, I think how companies can innovate and understand is going to be through open source. And that is going to be what defines winners and losers in the next decade or more of innovation. And all of those of us who are here, who may not be CTO or CIO of their organization, but understand that growth of open source have to act like canaries in our company's coal mines, another bird analogy, educating and alerting our leadership of both the opportunity and the risks involved with open source eating the world. And so that's what we're going to talk about today, not just birds, I promise. And we're going to ask, I'm going to want to find out how we can be stewards of this new era. How can we enable our companies to move from being mere consumers of open source to being contributors to open source and the communities around it? And not just because it's the right thing to do or to check some corporate stewardship box, but because it actually makes business sense. And I probably hear a lot of you asking why now, Brendan, open source has been around a long time. But I think right now represents a clear inflection point towards open source eating the world, right? We've seen industries get massively disrupted by software first companies. I think we're going to see a second massive round of disruption from open source first companies. And why do I think that? Let's look at some data. So in a 2022 state of open source survey, respondents overwhelmingly noted that they were increasing the use of open source software at their organizations. But if you look deeper into the hows and whys in that survey, some interesting patterns emerged. For example, when they asked organizations the reasons for choosing open source, we might expect, right, number one reason cost savings, right? Nope. Number one reason was actually access to innovation. As every company has become a software company, this becomes the place where businesses and enterprises compete. Thus, whoever can innovate faster, more securely, provide more value to their customers through the software, can succeed and win. And where does much if not the majority of that innovation happen today? Well, what happens in open source? And so it's critical businesses have, find a way to be able to access these innovations. But it's not always easy, right? There's many barriers to enterprises large and small when it comes to utilizing and contributing to open source software. And one of the main ones we might think of off the top of our head is, well, there's some restrictive licenses maybe attached to certain open source, right? You know, copy left license. An enterprise is going to be wary of. There's, you know, anti competitive clauses in many open source licenses and some licenses that are open source adjacent, right? And that's going to scare off risk averse firms. But that was not listed as the number one barrier to adopting open source software and its usage. It was a lack of internal skills to test, build, integrate, maintain and support the open source libraries that they want to use that was identified as the most significant barrier to open source adoption. And, you know, we've seen that they desperately do want that access to open source. So there's also this talent gap in experience that organizations are seeing. And so how would an organization typically, you know, a business want to fill that gap? Well, you know, and other support challenges that come from open source or adopting open source, they might want to seek enterprise support. This has been a traditional model of monetizing open source but not all open source projects have this model or even have a company behind them or don't have a company behind them yet. And businesses might like to have enterprise support but that was not the biggest challenge to supporting their open source programs that they listed. Instead, again, they identified an internal skills gap. A lack of personal experience and proficiency with the open source tools they're utilizing has the most major challenge when it comes to supporting these open source initiatives. And so what does that data tell us? I think it tells us it's clear it's not just a software problem. It's not a problem for a company to throw a few charity dollars at. I think that even a well-placed, well-funded, well-regarded OSPO or open source program office probably isn't enough to overcome the challenges that these organizations face. The only way to address these challenges is head on and decide that we're going to take a step back. We're going to take a more comprehensive look at the problem and declare that we need a business case for contributing to open source. So contributing to open source is directly one of the best ways that we can overcome these big number one challenges that we just looked at. We want to make sure that our organization has access to the latest innovations. We want to build internal skills to integrate open source into our business and we want to attract and retain talent that have personal experience and proficiency in emerging and essential open source technologies. And so when I was thinking about that from more of a business perspective it got me thinking about my degree. A long, long time ago, way back thankfully well before social media was quite as prevalent as it was today I attended the University of Maryland and there's a fabulous computer science program there but I regret to inform you that I do not in fact have a computer science degree. I have and I'm glad you're all sitting down because this may come to a shock to the engineers in the room. I have a business degree. I know, it's okay, we can still be friends. And one of the classic tools you talk about in business school is something called a SWOT analysis. So SWOT and that stands for strengths, weaknesses, opportunities and threats. It's a way of modeling where your organization in business stands today and how you stack up against the market today and what you need to do and think about in the future so that you can double down on certain things or stop doing certain things that aren't working. And so if we think about the problem at hand, I kind of put together this SWOT analysis and what can we say maybe about the average business that we all work for in the room? Well, I think it's clear that we all work for companies with software organizations, right? We're all in software together. And these organizations definitely see the need for open source adoption. Heck, I mean they probably sent you here because they understand that, right? But where are we weak? Again, if we look at the data, we know the challenges that we've seen. It's internal skills for building testing, integrating, supporting all of this cutting edge software we want to use. So what opportunities does that present us and our enterprises? Well, companies dedicated to open source will be able to attract and retain the kind of talent that have an innovation mindset and software engineers who understand the power of open source and how to unlock it. And this will allow them to unlock that mutualism, right? The honey and the BNAS with them between open source projects and their own organizations. And lastly, and maybe even most critically, what's the risk of not getting it right? Most, you know, missing the boat on innovation and losing talent are both very real and active threats to organizations. And given that open source is a massive part of the modern software supply chain, something that we focus on as an industry a lot. We've talked about a lot this week. The lack of understanding and proficiency with this is a critical risk for the security and knowledge of your supply chain, right? No one here in Detroit that manufactures cars would tell you that a supply chain doesn't matter and you don't have to really think about it, right? They understand how critical supply chain is to the product that you actually produce. Well, what's the software supply chain? It's open source software. And so if we think about that chart, I think we can come to an even higher understanding of the balancing act here that's really critical for businesses. What does a business think about every day? Capture value and reduce risk, right? And there's values not only in the software we're making, but for the company and the organization itself, right? The health of the organization overall can be tied almost directly to how we're able to utilize and understand open source software and how it contributes to our ability to attract and retain the talent, be seen as a leader in the market, control our supply chain and influence our supply chain directly. Again, something that every business wants to be able to do and also increase the speed of delivery and we're at the rate of innovation. But next I want to talk about practically how we can think about taking our organizations from where we are today, using open source and unsure of the next step to where we want to be. This sculpture is actually the spirit of Detroit and the artist has a family there on the right to symbolize human relationships with one another. So how can we unlock this spirit of cooperation in our own organizations? I think the only answer is to move from consumers of open source all the way to contributors. And it seems like a simple thing to say, but I think it's a rather long road, especially for enterprises. Many organizations today are either implicitly or explicitly okay with being only consumers of open source. That's open source. Well, that's something that's made by them, right? But at the very core of open source is the idea that anyone can contribute, right? And this is the opposite viewpoint of the world of us versus them. And so to get there as organizations, we need to take steps, some small and some large, to make a conscious choice to change that viewpoint. And the first step is to move from a simple consumer of open source to be customers of open source. You want to be able to invest in your supply chain, thus de-risking that critical part of the value you're delivering to your customers. And to do this, you have to understand who are in your value chain, who would be best if you looked at putting code and time and money into those projects in the form of contributions and paid staff on your team, whose primary focus is understanding the needs of the business and how they relate to these critical path projects. And financial support for infrastructure and other needs is also a way to align yourself as more than just a consumer, but more of a customer. But once we've become customers, the natural question becomes, at least from a business perspective, how do we ensure a lower total cost of ownership for this and how do we extend the competitive advantage that open source has allowed us to build? That is by taking the next leap and to move from a customer of the technology to a contributor. This means finding ways to incentivize and reward open source contributions and hiring even more folks to focus on maintaining or contributing to open source. But just as importantly, I think, it involves building relationships with the open source projects and communities that you're engaged in. This allows a connection to move beyond this transactional customer transaction and financial relationship to one of mutual respect that then would help align the community and the company's goals together. And then providing space for roles outside of just straight finance or software engineering is going to help projects. Projects all have needs around UX and documentation and design and security, other DevOps tasks to help build sustainability into these projects. And so each of these steps build on one another. Move from consumer to customer. We've got to understand the supply chain. We've got to understand what tools we're using or vendors are using. And then we have to put our money where our mouth is and contribute financially to those projects either directly and indirectly. But I don't think you can stop there. You have to move from consumers all the way to contributors. That involves building relationships. Those critical parts of our entire open source ecosystem. That's another reason we're all here. And in addition to that, we have to go beyond engineering and contribute to all the various aspects of making a successful project. And that'll lead us to be able to make the ultimate contribution which is to ensure the sustainability of projects by making sure there's a clear path from contributor to maintainer and one that our company actively supports. And so this is something that's critical to the longevity of those projects but if we're building products on top of them it's also essential and critical to the longevity of our own products and what we're providing to our customer. And okay, a lot of this maybe have up until now been a little bit of preaching to the choir, right? You might be saying, Brendan, I'm here, I'm in, but I'm not a senior leader in my business. Like what can I do? Well, I think there's a lot that all of us can do up to and including individual contributors to make our businesses more aware of the risk of only being consumers of open source. And so let's talk about that. I think individual contributors have a much more ability to influence policy on open source than you think at first. You know, on the one hand they may be closer to the reality of an organization's use of open source, dependencies than anyone else in the organization, right? They understand, you know, what we're using and simply enumerating those dependencies is a significant first step. You'll likely need to raise awareness throughout your organization about just how much your team relies on these tools. Once that's complete, understanding the risk is often a fundamental way to get the attention of folks that you need it throughout the business. What would be the business impact to your organization if a given library just goes away tomorrow? If the answer is, well, we wouldn't be able to ship software until it was fixed or, well, some of our software would just stop working, that's very substantial in terms of impact and a huge risk your business must address. You can also encourage and support the open source values that we all know and discuss, especially results-oriented thinking and transparency. Modeling these behaviors can show others how valuable they are. And values, like, those seem like a simple thing, but I think they're really essential and can have an everlasting impact on your organization. I know that's true for me at GitLab. I've been here since 2017, and we're based on an open source project, right? Open source is very much at the core of what we do and in our DNA, and that's spilled over into our company values. They spell credit altogether, their collaboration results, efficiency, diversity, inclusion and belonging, iteration and transparency. And having those values at the core of what we do has not only been a benefit to GitLab, the open source project, but to GitLab the company as well. And so I think though I would attribute our success, both on the project side and on the company side, to those values. And so what if you are a business or technology leader because there might be a few in the room, right? How can you ensure that your organization embraces open source and gets the full benefit not only of being consumers but of being customers of open source but bringing your contributions and your ideas to open source as a competitive advantage? Well, first, I think you have to buy into what I've been saying so far. You have to see open source as an investment just like any other investment along your value chain as well as a place that you must and can achieve risk mitigation. None of us want to receive a call from our CIO or a CEO in the morning and they're saying hey, I was just watching CNN and I heard about this thing called Apache Struts, like what's a struts and do we have it or are we vulnerable? But just as importantly, you have to quantify the relationship. This is really important to the organization's goals. Write down the revenue. If you aren't careful at the beginning to make this connection showing that there's value to this work, it's always going to be an uphill battle. You know in your gut there's a correlation there but you have to show it with data. And then incentivizing open source and having friendly engineering and employment policies will help your organization attract and retain the best talent. You have to stop and ask yourself, why would you not want the maintainer for a significant open source project that you use working for you? Why would you not want that? That kind of talent is very hard to come by and even harder to retain. If your job is to ensure that you have the best team, then you have to understand how open source contribution relates to your team members. And lastly, because I'm sure there's also a number of OSPO leaders here, we have to get it into our heads and the heads of those that we work for that OSPOs are not just an exercise in compliance. A real open source office can leverage the tremendous power of open source to add massive value to the organization. And you've got to be able to articulate that vision and that mission and all the things we've discussed so far. So suppose you're able to put in an effort against these large but attainable goals. You know, what does that look like? I think it's a matter of itemizing all the open source that you use in your organization today. Be a part of your core product or a behind the scenes, you know, part of your DevOps processes. Then identify which of those ways you can align your business's goals with the concept of being a customer or a contributor to those projects. How can you support the sustainability of those projects and de-risk your own business and products? And I don't think it stops there because, again, the incentives in your organization have to be able to recognize the contribution of being a contributor to open source. Because if you don't incentivize that, you will by default be incentivizing the opposite. Unless you understand as best as you can how open source plays into and ties in with things that the business cares about, once you do that, incentives will be much easier, but unless you do, you're going to have a really hard time with incentives. And being open source contributors enables teams to do their best work together to collaborate without boundaries, to aim for and achieve results together, to work efficiently without wasted time, to bring together diverse skill sets and include everyone in the process to foster the sense of belonging. They allow you to iterate quickly, moving to where you need to be rather than where you thought you needed to be six months ago. And the best open source contributors do that by enabling transparency, being as honest and open about as much as possible to bring down the threshold for contributing. It reminds me of a scene in the first episode of Halt and Catch Fire, which is a drama about building a company, a computer company in the late 70s and early 80s. There's a visionary, idealistic product manager, Joe, and he's trying to convince this hardened engineer, Gordon, to sign up for what they're going to build together. You know, I'm sure this is not related to any company that actually existed, if you asked AMC, but, you know, either way. Either way, the closing argument for this project sums up nicely how I like to think about software. Joe says computers aren't the thing. They're the thing that gets you to the thing. And then later, in closing the series, another character, Donna, calls back to that line and adds, the project gets you to the people. And I think that summarizes fairly nicely what makes open source so special. It draws people in from all over the world to collaborate on the same tools that we're then using to build something bigger. And in this way, open source allows us to work together, not siloed in our own companies, making our own little products out of, you know, bubble gum and bash scripts. So much, so many bash scripts, right? It enables us to bring to bear on the problem instead all of our collective experience and expertise. The project gets us to the people. It's a story of relationships. Thank you so much for your time today. I'm not the only one that's been talking about the business case for open source contributions. I've been compiling some resources at brendon.fyislashopen, and I'd love for you to check it out. And more importantly, add things that are missing from there. You can leave a comment on it. You can send me a DM on Twitter or just tweet me at oliricrew. Or even it's on my website, which is open source. You can add a merge request directly against the website.  Thanks and stay safe. Two, I don't know if you're familiar with the to-do group, but they're a group of open source offices that kind of have some templates for enterprises when it comes to like how do we, you know, open source, so I would definitely encourage you to check that out. They may be linked there, if not, I'll add them. And so I think that's a great place to start because that's a group where there's a lot of enterprises that are on that same kind of journey of like, hey, we want to do more open source contributions and we have things we want to make open source. How do we get there? Way in the back. That's okay. Give me a chance to take us up a little. So we're a service organization and I can tell you our C-suite is a service organization, not as a software company, right? So software is a huge part of what we do and as a, in the tech leadership group, I feel like it needs to be much, much bigger of an emphasis and like what you're talking about here seems like really important to what we need to be striving towards. So my question is like, do you have examples of, you know, companies like us maybe that have the service, like manual service mindset that ever successfully kind of been able to start contributing to open source as part of their digital transformation process? That's a great question. I don't have like an example off the top of my head but I'm sure I could find one and will if you want to follow up with me on Twitter. But I do think that the line between a services company and a software company is a tough one. They've lived that myself. Actually my first role at GitLab was building a professional services organization inside of a software company which is like the opposite problem, right? But I do think that, you know, this competitive advantage of the expertise, right? Why do people come to the service company? They're looking for experts. And so I think that if nothing else, you know, building that brand around being experts in these tools that your customer is going to want to necessarily you to bring in and use and utilize and help them figure out, like it's almost like that would be the number one competitive advantage I would think for a service organization today. But I'm not in that business so maybe I'm wrong.  But, you know, efficiency is critical too. And so I think there's a lot of efficiencies to be gained to say, hey, we're going to, you know, upstream a lot of this and not maintaining things internally that aren't billable hours, right? And then that will be able to spend that time instead on billable hours. Maybe that is a method I don't know. But I'd love to talk to you about it more. I've got some folks I'm thinking of, but I don't know how successful they've been. So I'd love to chat more about it later. Got another one right here. Hey, Rendon, thanks for the talk. Very helpful. I was curious to get your thoughts on a topic we get asked often, which is we have a lot of large enterprise customers who want to move away from vendor locking, right? Which is why they want to get into open standards and open source. But do you feel like open source becomes a lock-in in itself because you can't get out from there to others? And just to follow up on that is, is it better to talk about as open standards or open source? Yeah. Well, yeah. So that's two different worlds, right? Open standards and open source. I think we've seen this move towards open standards in the last few years. That has been amazing. And I'm really excited to see that because I do think that is one way we can de-risk lock-in. Now, having said that, standards have come and gone before that haven't solved that problem. So I don't think we can think of that as the only solution. I think you also have to have this innovation mindset that things are going to change necessarily in the technology space that's like the given. And so if, again, you have a team who's familiar with that, who's on the front lines of open source, who's on the front lines of that innovation, it's going to be a lot smoother transition rather than, oh, you wake up in three years and realize your whole stack is undone and now you've got to go hire our friend over here to come in for $7 million and fix it all, right? So yeah, I think that the talent and having this kind of mindset, this innovation mindset, sets you up for success today, but also sets you up for being more agile and being able to transform easier in the future. I wish Open Standards would solve everything and I'm a huge component of Open Standards, GitLab is involved in a lot of the Open Standards initiatives, huge supporter of that. I just am a little bit too, not quite optimistic enough to say that fixes every problem. Hi. So I've been thinking about in the enterprise space kind of to riff off some of these other questions. There has to be more of a graduated process into getting into open source and investing into open source, right? We can't just say, oh, we're going to hire a maintainer, right? You have to build towards that. So how do you kind of, what structure kind of, how do you represent the ROI to the C-suite to kind of gradually build that up versus just, you know, oh, we're going to look good, right? Yeah, yeah. I mean, to be honest, I stress it in this presentation, but I also didn't want it to be a doom and gloom presentation. I think the risks involved in not doing it are the way to wake a C-suite up to this problem. Because those are risks that they're seeing, right? With their peers in industry, right? They're seeing these massive supply chain issues existing. And as much as I as a software vendor would love to sell you a tool that fixes that problem, I don't, again, think that there's one tool that just solves that. It's not a problem that you can only throw money at. You also have to be thinking differently. You have to think about your supply chain, right? If we think about, again, I was thinking about it a lot coming to Detroit, the auto industry and how much, you know, the biggest disruption that happened in the auto industry, you know, in the 70s and 80s was somebody came in, Toyota comes in and has a huge, you know, great supply chain and just is able to take over the world with it. I think that that risk exists in our businesses today and we're not talking about it enough because we think of open sources as this free thing. I'll give an example. I was, before GitLab I was brought to a company that was a government contractor. I live in Maryland so everyone's a government contractor. And they didn't have anybody looking over DevOps and that's what they kind of brought me into do. It's only, you know, a couple hundred people. And I inherited, like, a Jenkins server, right? Because it was free and they were using it. And a whole bunch of other stuff. But specifically Jenkins. And early in my tenure I came to understand and then I said, in a meeting with all the senior executives, the CEO, I said, the most expensive piece of software we own is called Jenkins. And they're like, what? We don't pay for Jenkins. It's free. We pay for Microsoft and we pay for GEAR and we pay for all this other stuff. I said, no, no, it's not even close. The amount of time we spend on it, it is the most expensive piece of software we own, and so we had, that's where we have to de-risk first. And no one in the room that wasn't, you know, deep in the technology had that mentality until I said it and said it emphatically, right? And so I think we have to be that emphatic about the risks involved in our businesses. I think we have time for one more, one more question. I think in the, oh, sorry, right here. I just wanted to follow on to that question specifically. Chris Aniscik, the CTO of the CNCF has a good blog post ways your company can support and sustain open source. And he quotes a Harvard study in that one that shows that businesses that actually contribute back to open source can gain up to 100% more productive value from it. And so I think that study is linked on his blog post. Yeah, Frank Nagel at Harvard has done a lot of research on specifically the business benefits including that 100% number. Great. Well, thank you so much. I will be around at the show after this. If you have more questions, happy to take them. And again, on Twitter at Leary crew if you have more. Thanks.