Hello and welcome to the colorblindness emulator talk. I am very excited to present to you my work around colorblindness, give you an introduction to this whole topic, and immerse yourself in the eyes of others. My name is Agat Badia, and I actually used to be a former recruiter and talked with many, many, many developers, and one day I just decided to become a developer myself. And that's what I've been doing for the past two years. Today I am a UI engineer at CrowdStrike, and I've also been doing some podcast work with Agat's diary, talking with many awesome people in tech, and also with untold developer stories. And when I'm not coding, I'm also creating jewelry. I've really enjoyed doing that. So if you're into jewelry, feel free to check it out. And overall, I'm always super happy to connect. So feel free to ping me on LinkedIn, on Twitter, or on GitHub. So I think after my first six months as a developer, I got into accessibility and learned a lot about it. You know, discovering how people enable screen readers to give you information, or just, you know, enable people using keyboards only to go through the navigation on a website, and came to topic around colorblindness. And this was just fascinating. I had so many questions, and I wondered things like, how do people with colorblindness see colors? How many people with colorblindness? Are they on earth? And, you know, how many types of colorblindness are there? How can we understand more how people with colorblindness see? I can actually start to answer one of these questions, which is how many people are colorblind? And it's actually one in 12 persons with XY chromosome, but also one in 200 persons with XX chromosomes. What does it mean? It's basically here talking about genetic conditions. So there is a recessive trait with the X chromosome that is passed along it, and people with just one X chromosome only need their one X to be defective to catch it, whereas with people with XX chromosomes, they need both to be defective. So it explains why people with XY chromosomes tend to be more colorblind than people with XX chromosomes. But it's not only the reason why people become or are colorblinds, it's also due to retinal damage. It could be, for instance, damage happening right away or with age and with time in the eye, but also through medical condition like glaucoma, and this will trigger the eye to develop a certain form of colorblindness. And in addition to all those different cases of colorblindness, it's important to remember that every type of colorblindness a person has is almost quite unique because it varies from total colorblindness, red-green deficiency, blue-yellow deficiency, but also you have subtypes and different levels of severity. So that's a good thing to keep in mind. And as you can see here, the estimation with this overall numbers with people having it from a genetic condition or with time or medical condition, there is an estimation of 350 million persons that are colorblind. So we're talking about a lot of people. And from this, I was also wondering, how do people see colors when they are colorblind? How many types of colorblindness are there? Because from a few researches, I could find a bit more about just seeing an emulation on a photo, how it looks with this type of colorblindness, but it always felt a bit unsatisfactory because I would not see how people see online, for instance, or how come we don't really know upfront how many types of colorblindness they are. You might see, for instance, on the Chrome DevTool, we can emulate up to four types of colorblindness, but it's actually not as complete as you might see or as you might know. So I just decided at one point, you know what? Let's make it ourselves. I just decided to create an application that would emulate and try to be as complete as possible to emulate all types of colorblindness. So what I did is that I found an SVG filter created by Hell2U, who is basically emulating eight types of colorblindness. We'll see later on, which are different subtypes in four categories. And this person was using it for photos, but actually SVG filters, you can use them for entire pages. So I took that with me and I created a Ember app and continued to do a lot of information gathering, adding real life example, mostly bad practices, you will see, and still with the aim to be 100% accessible. So at first to have this, to bring this awareness for me and emulate this and have fun with it, but I saw for anyone interested in this type of project and immersed himself and also learn along with this project. And here we have it. So before we get into a demo, I would like to give you a quick introduction. So we're not losing you when I'm presenting you the more technical term around colorblindness. So in this diagram, this is basically representing the wavelength the wavelength of light. And the wavelength of light that reflect the colors we see through our eye. So the light waves, like the waves in the water, they can be described by the distance between two successive peaks of the wave and a length known as the wavelength in this case. So the different wavelength of light here appear to our eyes as different colors. So shorter wavelengths appear blue, purple, and longer ones appear red, for instance. And in this diagram, you will see different colors going from very dark blue, black to then purple, green, yellow, red, up to very dark red and black. And we have three different lines. So one for S, M and L. L is the long wavelength of light and is represented by proton, which is responsible for red color. And L you will see later on, like M and S, are also used for showing L cones within the eye. And we're talking about the same thing, proton, L cones. They're both responsible for the red color. We also have Duton, the category responsible for green colors. And we see here it's going through the M wavelength of light for medium wavelength of light and associated with green colors. And finally, three ton responsible for blue colors. And the short wavelength of light, as you see here, is around blues and purples. So for three ton, it's quite clear to see that what it represents in terms of color. However, with Duton and Proton, it might be a bit more confusing. So you might think like, for instance, someone is missing green or red colors. It might be Duton and Proton at the same time. Well, yes and no. These are overlapping, as you can see. And Proton tend to be more on the right side, whereas Duton is more on the green side. They are overlapping, but they represent two different type of color as well. So we will see that better in the demo, but remember that Duton and Proton are responsible for different colors and can be understood if sometimes they're mixed as red-green color blindness because they are showing both red and green strong differences for those colors. So let's have a look. I will go on the color blindness emulator on Netlify. And basically what you have in here is a table of content to show you definitions, color recap, some examples and resources. Let's go to the color recap so we can see the ones that are interesting for us right now. So basically what I did is I created red, green captions, yellow, purple and blue. And from there we can emulate and see all the colors at once when we check every color blindness. So let's have a look. Here we have Protanopia. Okay, so Protan responsible for red colors for the L cones in the eye. And here Protanopia is red color blindness and Anopia that you see here literally means missing. So the L cone responsible for reds is completely missing. It's a complete red color blindness. Let's have a look. Okay, all right, indeed. So what happens here? We have definitely very strong difficulties to recognize the red caption. We do not see any type of reds. It's more of, I see that personally as clear brown or yellow. And the thing which is a bit more subtle here is that it's not only about red color blindness. As you can see here, there is difficulty to distinguish greens but also yellows which are less saturated. And between blue and purple, it's extremely difficult to distinguish them. So remember, Protan is responsible for red colors but that imply later on to have also difficulties with other colors along that. Oh, we have Protanomaly. What is that? It's still in the family of Protan which is another subtype. And Anomaly literally means that the L cones for the red colors is here but it is a shifted color vision. It's not working in the same way as people with no color blindness. So let's have a look. Okay, so we have a bit more dull version of red. Here I see more like orange. I actually see the greens a bit more clear, like in a bit more dull way as well. We can actually do the differentiation between no color blindness and Protanomaly. So you see you have still an impact of this color blindness on red obviously but also on other colors. Next we have Deuterinopia. So for Deuton responsible for green colors, it's a total green color blindness. Again, the M cones responsible for greens are not there. They're completely missing in the eye. Okay, so we have something that is also very complicated to distinguish. Here for instance, reds and yellow are completely different from non-colorblind vision but also greens which are almost all gray and again, blue and purple are very difficult to distinguish. And as you can see here, you might think, oh, it's exactly the same as Protanopia but it's actually not. There is a different version because the cones that are missing are different so the vision will be different as well. So once we've seen Deuterinopia, there is Deuterinomaly. So here we have a shifted vision of green colors and again, we still have a more dull version of some reds, some greens and other colors are a bit affected. We can see for instance, how it looks in between. It's a bit more more dull compared to non-colorblind as well. And there is also a thing to remember here. I'm showing like very strong colors, very saturated colors and when you're online or in general, when you are looking at colors that are way more subtle, for instance, in video games, when you have the outline of characters in reds or in greens and you need to differentiate them only with the color, this can come extremely difficult to distinguish for any types of color blindness obviously but also for any type of Protanomaly, Deuterinomaly, Tritanomaly because when it comes to more subtle colors, it's also very difficult to distinguish and obviously not only in video games but in other parts that might be more difficult to see. And so after Protan, Deuton, we also have Tritan and here Tritanopia which is total blue color blindness. Again, the S cone responsible for blues are not here at all. And this one looks quite different. So as you can see, it's color blindness also known as blue-yellow color blindness where basically it is very difficult to see the difference between greens, blues and purples but also in between red and yellow. As you can see, yellows almost look like pink or very like tender red. So this is very interesting to see and the interesting thing about Tritanopia, it's also one of the color blindness that happened mostly throughout the eye aging or medical condition and less around genetic conditions. So as I said earlier for people, for instance, we develop glaucoma or with the eye aging, Tritanopia can be one type of color blindness that is more triggered than the others. And so once we see in Tritanopia, there is then the other subtype Tritanomaly, so the shifted color version of blues which again is a bit more subtle but you can still see that yellows are impacted as well as blues and purples. And so this again is less obvious when we see very strong colors but online or in real life, this is also something that might get difficult for people with Tritanomaly. There is here another category we haven't seen which is achromat and it's total color blindness not seeing any color at all. So here we have achromatopsia, total color blindness. You only see white, grays and blacks and this is extremely rare. Very few people have achromatopsia but it's still something to be aware of because people do have this. And another one which is achromatomaly probably one of the less known type of color blindness which is a partial color blindness and every cones of the eyes defining colors are here but the color vision is shifted. And in here for instance, it actually feels like we put a gray filter around those colors or like those old photos that age a bit that you see a bit less of the colors it is quite different but you still see the colors. All right and so from this it's like okay great, we can see, we can understand the different types of color blindness but how can it help me to know that? Well, I had a few examples below and it's mostly about showing that communicating with color only is quite of a big issue for people with color blindness, hiding information or not even seeing the information. So with the first example, we can see here we have a form, gen, gen-do, email name, password and here I'm emulating with Protanopia and I can see the outline is very slightly different from the email and the name but I see here gray and here I see more of a khaki. It is, you know, it is quite different but I'm not super sure what it means. I mean, I can emulate it with Jeteranopia for instance. I see like yellow-green fair enough and depending on the type of color blindness, obviously I will see or I will see the information or not but basically here with this form we're simply showing just with the outline with a strong green or a red if something is valid or not and if you actually emulate that here in some cases you're not even able to see that there is an information shown here only with colors. So that's a good thing to remember. Don't do forms like that. There is another example, for instance with links and colors. So you know, if sometimes you're thinking about oh, I would prefer to remove the underline I don't really like this. Well, for people with color blindness this can be extremely difficult to see your links if not, not at all. So with, for instance here again we're back with Protanopia and this text here is supposed to have two links. I am unable to see where they are. This is extremely hard and emulating Jeteranopia as well. Okay, with some we can see that maybe these are different but this is extremely hard to see and we can also check with a chromatopsia. This is impossible to see that there are links. So again, we are showing something only with colors that is quite inaccessible for people with color blindness. We have as well the very famous color contrast issue. You know, it's ideally a color contrast ratio of 4.5 or more to have something that is accessible. And in here, well, depending on what you're emulating here let's try with Jeteranopia. This text, this piece of content here is supposed to have text that has a very low color contrast. I am unable to see what this is. And this is also another big problem not only for people without color blindness but even more for people with color blindness that this is extremely hard to see content that way. There is another example that I wanted to share as well which is color picker. You know, when you're online you would like to buy shirts, clothing or some items and you can choose the color. And with color picker you would be able for instance to see sometimes only a dot with color and that's it. So if you have a certain type of color blindness you would actually be unable to see what is available for you. With Pertanopia here, what I see is some brown, some gray, yellow, dark blue, dark gray and very, very dark gray, maybe black. With Jeteranopia I see more different types of grays. I'll see a very khaki. And with Pertanopia I'll see completely different colors with a lot of reds, pinks, bright pinks, turquoise, brown. So this is also another subtle things that we might not see if we are not colorblind but again we're showing information only with colors and this is extremely difficult if not possible to understand what you're buying at this point. And with Akramatopsia we actually have only shades of gray so this is even more inaccessible. I have one last example in this project which is around data visualization and we'll come back to data visualization you will see. In this example around pie charts, infographics in general. We have here a pie chart, how do you spend your leisure time? And we have in the legend we have TV, books, games, other and music. And here I'm emulating with Protanopia so red color blindness. And I see two types of blue, difficult to differentiate two type of yellows, difficult to differentiate as well and gray. And looking at, well obviously the legend first is extremely small so very difficult to see. But in general I would be unable to understand what color is what type of information. And you will see more examples, this gets quite difficult. And here you see we have a green color blindness, different color vision, same confusion. With Tritonopia, okay this time we have two types of turquoise, very pretty, two types of pinks, one type of gray, it's still unable, you're still unable to understand what is shared. And the last thing with Akramatopsia, this is where things are literally impossible to read. You only see grays and it's impossible to read the information. So yeah, this is about this project. Feel free to have a further look, I also added resources if you want to check out the different books I've read to create this piece of project definitions, best practices, different extensions and applications. And yeah, it has been quite a fun project to work on. All right, let's get back to the presentation. So we've seen a lot of things and I understand it's a lot to remember or to just understand, so let's do a quick recap. So we do have four types of color blindness that we have seen today with different subtypes. So proton for red colors, due ton for green colors, tree ton for blue colors, Akramat for no colors. And for each type of category, you have a subtype that either has a cone missing, the cone representing the color missing in the eye, protonopia, deuteranopia, tretonopia, acromatopsia, which are basically total color blindness of one color and with acromatopsia of all colors. Protonomally, deuteranomally, tretonomally, acromatomally, or here with anomaly, meaning that there is a shifted vision of the color and with acromatomally with all colors. And as you can see, the vision is every time different with the different hues of colors you see here. And so after this project, I was really happy with how it worked out, how immersive it is, but I was wondering because this was something I could not emulate elsewhere. So it's really nice to try it out on this project, but I wish I could do that as well on other pages, maybe to test or have fun with other websites to check out how accessible it is or not for people with color blindness and naturally came the idea of creating an extension. Do you know what? Let's go, let's create a Chrome extension. So what I did was basically to continue with the SVG filter because it was working so well and I started my very first extension. I could spend hours talking about the different obstacles and how to do that. So this would be a whole new talk. So another story for later, but basically what I did is to create a pop-up HTML to have a colorblind picker to select the different types of color blindness and still in the aim of being accessible and have this super cool immersive tool. So what I want to show you, for instance, as a quick demo is go through some bad examples that are related to data visualization. So let's have a quick look. I went to the data visualization catalog and I wanted to emulate a few things with you. So here is the extension. So we have information icon if you want to check out the GitHub repository, two eyes holding hands, which I found very, very cute. And then we have the four different types of colorblindness. So as you know, acromat, proton, due ton, tree ton, and tree chromat, which is for no colorblindness. So let's have a look. So here we have basically a donut chart. We're gonna focus on this one here, which is basically different shades of orange and maybe I see this one red. So A, B, C section and D section. Let's try with proteinopia. Okay, so as you can see, the saturation of colors is quite different because the section A and B look quite the same. So it's difficult to read it. Let's see with geotereinopia. All right, now it's A, B and C that are a bit difficult to distinguish maybe with tritonopia. Okay, it's almost impossible to distinguish most of them. Very nice. And what about acromatopsia? All right, this is really, really hard to distinguish them. For this example, I must say that the information is displayed right next to the section. So this is a good thing to know, but let's see maybe with another example. Spiral plot. I personally never seen that in real life for data visualization, but it has a lot of colors. So let's see this one maybe as a rainbow. Let's see if we do protonopia. Okay, we actually have a lot of different yellows and browns, some light grays and dark blues. It feels like we see half the colors that we're supposed to see actually. So it's quite difficult to read this. What about geotereinopia? Okay, this is also quite difficult. We have more yellows, khakis, dark blue. What about tritonopia, for instance? Okay, so now we're like having a lot of different types of reds and pinks, a lot of turquoise. So it's not something that would be very easy to read actually in real life. What about acromatopsia? Okay, this is even less possible. As you can see here, with data visualization, we're getting into very difficult things to read. And in these examples, we actually don't have legends, but imagine if we have different legends put on the side, it would be just impossible to read. Let's see for another one maybe. Sunburst diagram. Okay, here we decided we're gonna have the same monochromatic colors. Let's see, this might not be very, very nice. Okay, so as you can see, very low contrast for some, they might be difficult to read, especially for this part here, which is similarly difficult with more yellows with geotereinopia. And with tretenopia, it's actually even more difficult to distinguish colors as they really look similar. I mean, we can also see acromatopsia, it's the same. Okay, so from this, we're starting to see a few things that emerge and from the different data visualizations, but other examples around, you know, forms, links, color contrast, color picker, which is stop relying on color only. We're actually hiding information. We are making information either invisible to people with color blindness or even making it very difficult to read. And in both ways, not accessible. So there are for sure different ways to make this more inclusive. And to show you that as well, I wanted to share a quote from a colleague at CrowdStrike, who is colorblind, who is Robbie, and he said, one of the largest issues is not knowing about our largest issues. We don't see the issue, we are oblivious to it, and instead left with less information, details than normal-sided folks. That's why I've learned to request that color never be the primary and especially never the only differentiating issue. So that also shows us that there is a lack of awareness from people designing that they're actually making something inaccessible. And on the other side, people who are colorblind reading the information who don't know there is actually hidden information from them. So that's quite a big issue. And from the action point, what can we do? Obviously, the big war here is do not communicate information only via colors. And here I can show you three main solution that we can start implementing so around stronger contrast and brightness, but also rethink pre-attentive processing in an accessible way, and finally include people with colorblindness more and more in your work. So as I first start, stronger contrast and brightness. It is always a better practice to keep brighter colors than having lower saturation, lower brightness in your color scheme. Again, I'm back with data visualization, and these are always good examples to really realize the difference. So in this one we have on the left side a low brightness color scheme with a bit of blues and purples. And already here I'm emulating without colorblindness and it's quite difficult to see what means what from the legend. And on the right side we have bright blue, bright red, bright yellow, bright green in a pie chart. And this is quite easy to read. So let's see how it looks actually using the extension. Now I would like to try with red colorblindness. Okay, so basically here we see even more how low brightness color is a bad idea. From the left side we honestly I'm unable to see there is the four and five colors in the legend. I am not able to see what it exactly means. However, on the right side, you see that the color also bright that even if the color vision is different, you're still able to differentiate them here with some gray, some khaki, yellows and blue. We can also see that for instance with Tritonopia for instance where you have different colors but you're still able to differentiate them with higher brightness. And again on the left side this is extremely difficult for at least the four to five first colors. There is one thing to remember though because when you have total colorblindness like acromatopsia, this shows us that there is a limit to it. So depending on the situation if you can have a brighter colors in your color scheme this is a way to bring more accessibility but it has a limit when it comes to people with acromatopsia. So that's a good thing to keep in mind. And another part of contrast and brightness is around as well the idea of designing in grayscale. So designing in grayscale might look a little bit difficult to think about. However, if you start it step by step it might be just a great win for accessibility. So when you work with grayscale it actually helps you to focus on the context on the form, on the right contrast on the visual balance, the layout, the spacing and you start thinking about the invisible but also the most important aspect such as the readability. How is the line height? How are the paragraphs? How is the typography? The center of attention, the call to action buttons, the size of it and scannability which is grouping elements, the spacing and this just makes your design extremely clean. I personally finished this PowerPoint using the acromatopsia option and it helped me to really see if everything, every piece of information was easy to read. And there is another idea as well which is that if for instance you have your projects and you cannot change for instance your color scheme why not building a high contrast mode with maybe SVG icons that also have this contrast mode on. There is actually a chocolate run by Ann Gritt about dark mode so stay tuned for more dark mode. And from this we can also think about pre-attentive processing. So what is pre-attentive processing? Let's stop there. It is basically the subconscious accumulation of information from the environment. So the brain and how it filters and process what is important and people without colorblindness do that a lot with colors, you know? When you're sitting on a table and there are for instance a yellow toy, you see three red ones and four blue ones like your brain will process them instantly and also remember them with the colors. But what happens when people with colorblindness process information because they need more than color to help them to process information? So let's see some good examples that you can start using as well. The first one is basically combining color with different parents and hatching. This is extremely clear to see and we are on non-colorblind vision. What if we look with Protonopia? Okay, this looks super easy. I can see the one representing the dots and the one representing the different pattern with Deuteronopia we see as well without any problem. And with Deuteronopia the colors change but we're still able to understand all of that. And the great thing about this is that this does not cause any problem with Acromatopsia. So this type of visualization is super accessible and you do have other examples like linear with dotted lines, cut lines and again, this is also very easy to see. And designing in grayscale actually, if you want to use Acromatopsia in your work, please do, this is a great way to do so. And as you can see here, there is absolutely no problem to make a difference between the rank line and the price one. And as part of pre-attentive processing we can also think about colors and shape. There's this very good example from Gary Kawate in her book around accessible color schemes that is referring to an iChat feature that used to be there in the past around the availability of your contact in the application. So for instance, usually you would have only dots telling you either of your colors if someone is available with green, maybe available with yellow and not available or away with red. And with this feature, you would just have actually the same color but using different shapes. So a circle for available, but also a triangle for more or less available and a square to also say away. And this is a good example to use and make it very easy to process the information for every type of color vision. There is the famous and widely used examples around color and icons. And this is extremely easy to understand as well through checkbox, cross, loading icon. So keep doing that. It is extremely helpful for people with color blindness. And we can see it here, for instance, let's say with a chromatopsia there is always a good way to understand what is shared. And you might also think as well, what if I create a color blind friendly swatch and they are a different piece of information that could help you with that? The first one I found was the Color Brower 2.0 which is actually a tool for people creating cartography, creating maps and they do actually have a color blind safe option. So as you can see here, for instance, there are five different colors selected and here, depending on the nature of your data, you can use sequential, divergent, Cali. And depending on the nature of your data, you can use sequential, diverging, qualitative and we can have a look right now. How does it look with other type of color vision? Let's see with protonopia. It is actually quite easy to differentiate between brown khaki, yellow khaki, light blue and dark blue for those four colors selected there. We can see with maybe green color blindness. Okay, this is also quite easy to distinguish. Maybe tritonopia. Okay, so that's also quite easy with red, pink, light blue and turquoise. And here again, as you can understand because we're using color only with acromatopsia, this might not be as accessible. So in this situation, we're only looking at maps but if you're looking for a color scheme to use for a website, this would also work. And again, as a reminder, if you are only able to communicate through colors, it might not be as accessible for acromatopsia. Even if the brightness or the color swatch is accessible. And one last thing, which is probably one of the most important is include people with color blindness in your research projects, your test phase and every phase of your work. It's not only enabling you to solve problems in less time and with better outcomes, it also enables you to have people who can actually forecast potential issues that might happen that you're not aware of. And in addition to that, we as developers or designer, we would think about this a lot when we design a website or code it. But it's also every type of information that you are sharing with others. It could be a PowerPoint, it could be a Google Slide, it could be a paper research you do. This still needs to be extremely accessible for others. So remember that when you're trying to make something more accessible for people with color blindness, do it in every piece of information that you're sharing. And this brings us to our conclusion. If I motivated you to go through the whole immersive color blindness journey, I'll be very, very glad. It was a lot of information to process. So let's take a deep breath. And the first good thing is that to make things more accessible for people with color blindness, you don't have to remember all the things I told you today. This talk will be available later on if you want to go through it again. But the main thing here with this presentation is that I'm here to explain you the why's and get you started with a fun tool to have this immersive journey. So now it's your turn to use these suggestions and best practices to enable users for smooth and pleasant navigation on your projects in a more inclusive way. I would like as a last slide to thank all the person that have helped me either to work on the Netlify projects, on the extension, sending me feedback and suggestions from my talk. So thank you to all of you for your support. This talk and these projects wouldn't be there without you. And we are also hiring at Crosstrack. Feel free to check out the QR code for seeing all the job openings. And in general, if you want to go through the different resources and projects, feel free to check out the QR code for more information. And in general, I would love to hear back from you about your experience with the extension or with the different projects. Feel free to ping me on Twitter or LinkedIn or GitHub. I'll be very happy to chat with you.


I've worked on a lot of different things at TenGen in the last two years. One of them has been our integration with Hadoop. And this, thinking a little bit back, if you sat at the round table, the question came up about integration of systems. And things like our Mongo integration with Hadoop have come about because their strengths that Mongo has and their strengths that Hadoop has. And in some cases, it makes sense to have these things tie together. I've also worked on our scholar drivers, some work on the Java drivers as well. What I want to talk about a little, partly because I inherited a colleague's proposal who couldn't make it and sort of jumped in with what he had submitted, is a little bit about sort of the promises of big data. What we mean by big data and what we need to worry about. As well as looking a little bit at how Mongo breaks up data in sharding, for example, to understand how we're approaching big data. And understanding a couple of the concepts that sometimes float around and not everyone is seen like MapReduce. So here's the big thing that we need to be thinking about, which is that software is eating the world. And this was a quote from Mark Andreessen. He knows a little bit about software. He was on the team that created Mosaic, which was the first graphical web browser, as well as founding Netscape. And now he does venture capital. And he wrote a great article in the Wall Street Journal that's linked here about a year ago, where he talked about this idea that software is eating the world, that everything is software now. And there's a lot of different concepts that come from this, but we have to keep this in mind because this is what's driving big data. So the first thing is, think about Amazon. Now I don't know at what point Amazon launched in Europe, but I remember maybe 1995, 1996 starting to use them in the US. And all they sold was books. But if you read a lot of science fiction and other things that you can't always find stocked in a regular bookstore, it was amazing you could find any book you were looking for. But as things expanded, what they found was that their model worked really, really well for everything. Now they sell bicycles, televisions, computers, anything you need. But they're even getting to the point in some cities in America that you can get home grocery delivery from Amazon. The reality, though, is that physical goods aren't as much what they're doing. Think about all the other things that people know Amazon for. One of them is eBooks. They're pushing the Kindle. And Mark Andreessen's article talked about this, the idea that Amazon is changing the book with software, by going to the Kindle, by having eBooks and other things. But the biggest one is probably EC2. All of Amazon's public cloud services that run so many internet sites now. And if you doubt that, just wait until the next time EC2 goes down and see how many internet sites you can't use, because there's a lot of them. And what's worse, it's usually the ones you waste time on while you're waiting for code to compile, and they're down. So keep in mind things, though, as well that Amazon created EC2 is a response to when they had rushes in traffic around the holidays, they built all these systems to use these extra computers and turned around and offered those out, and this is all software. So this is a company that started with physical goods, but the software they created became as valuable a commodity as what it was that they were selling. Now Netflix may not be as familiar here in Spain. The guys here that lived in the US for the last couple of years probably know them. Netflix actually started delivering DVDs to the house. So when Netflix started, DVDs were still not too popular. A lot of the rental stores didn't have them. They still had videotapes. And so the whole idea is you can order Netflix. They'd send you DVDs in the mail. You keep them for as long as you want it. That takes a lot, though. Think about all the inventory you have to keep. Really popular movies. You don't want people on a waiting list. And so they started delivering DVDs. But as they've grown, they've actually shifted to an online service. And they've launched that online service in Europe, in countries where they never, ever shipped a single physical DVD. They're able to basically turn on, turn on a switch, and run this software for the world.  They're in Ireland, the UK, Canada. They've rolled out in the Nordic countries recently. And there was a big snafu because apparently the subtitles they were using were from pirates. And so suddenly physical inventory and postal distribution is gone. But some of this starts as software that's needed to track millions of DVDs that you're sending out across America. I mean, Netflix's big thing was essentially a hack on the US postal system. They found a way to very efficiently get DVDs to and from people. But now what they're doing is very efficient software. And their whole infrastructure is built on EC2, so we're almost building on Amazon. But also think about all the data here. So they're collecting lots and lots of viewing habits, because when I log in to Netflix, based on other things I've watched, it suggests to things to me that I might like. And that means they're collecting data not just from me, but from everyone. And it's kind of creepy when you think about it. But even think about Disney. And this is another one where I'm shamelessly stealing an example from Mark Andreessen's article because I think it was really good, although he looked at it somewhat from an investment standpoint. The points are valid as an engineer. Disney, traditional animation company, started like this. I couldn't find a good picture of a Disney animation sweatshop where they used to have entire warehouses of people doing this. But if you can see the picture, she's basically coloring in Pinocchio here. And this is how Disney used to make movies. And it took a long time. You draw each cell. You have somebody fill them in. If you've got to make changes, it's rather significant. And what they found suddenly in the late 90s is companies like Pixar were eating their lunch. Suddenly, these companies are doing everything in software. Now, it might take a long time to render a Pixar movie. But think about how easy it is if you want to change a major character's appearance in an animated movie that's done on a computer versus drawn by hand. And so Disney's response was to transform themselves to a company that's built on this. This is actually a picture purported to be of Pixar's server farm. There's also a cool picture floating around. They have a neon sign that says Render Farm. But that's what happened. They bought Pixar because they couldn't compete. And now, I mean, the most significant Disney movie of this year that I can think of was Brave, which was a Pixar movie. It's all computer animated. So what does this force us to do? Software is eating data. Software doesn't start from nowhere. All software needs some kind of data to get it started. It might be user input, email, text files, whatever else. But all things that eat eventually have to excrete. And this is part of the problem that we have. So ingestion is going to eventually lead to excretion. So if we start with grapes, and we add yeast, and my build's running very slow, we add yeast, we get wine. Or depending on how bad a job we did vinegar. So I mean, yeast actually eats sugars and excretes ethanol. I actually started brewing beer at home this year. It was very fascinated by that process in that the amount of sugar that's in the beer when you first start before you add yeast makes a big difference in what you get when the yeast is done. Now a cow eating hay, well, I think we can guess at what happens here. And look, in some cases, there's lots and lots of enterprise companies that are pushing solutions that they've taken the stuff that they've had for 20 years that was inadequate to small data and rebranded it and told us that we can have it for big data. And that means that we actually have to be discerning consumers. We have to understand what it is that we're buying. We have to look at everything. And this is up to us. I mean, I was at the Hadoop Summit a few months ago and saw these traditional companies that I was shocked to see there that suddenly were just pushing Hadoop solutions. Companies that you wouldn't imagine were doing it because they were all trying to ride this. So obviously, cows excrete as well. So software eats our data. As I said, we feed stuff in. The question is, what does it excrete? More data. And this means that the data gets bigger. And the solutions become narrower. So we just talked about this idea of, well, what defines big data? And I think there was a really good answer. And big data is that point at which you can't work with it anymore with your traditional systems. And I would think of it as exactly the same thing of when the data gets so large that you can't store it or process it with the tools that you usually have. And this means software gets fed data, excretes data. We feed it back into software. And it's an endless cycle. Going back to alcohol is a great example. I went to a whiskey distillery last year where whiskey, the most important ingredients, are water and malted barley. And after they finish with the malted barley, the husks of the barley that are left over, get carted off by farmers and fed to cows, who ultimately fertilize the fields that the next batch of barley grows in. And it's this. It's this kind of a cycle. A farm has a similar cycle that everything is feeding each other. But this data gets bigger and bigger and bigger. And eventually, we may end up with cow excrement again. So there is a big market. And there's a lot of solutions for doing this stuff. We've got data warehouse software. And this is growing in systems with which we can store lots of information. We've also got operational databases. And data warehouse is optimized for extracting lots of information and storing it quickly, but not necessarily for being the thing right behind our web interface. An operational database is what we're really working with when we're building applications that customers use. And so there's lots of old systems being upgraded. There are solutions out there to add big data and MapReduce and all these other things to old databases like MySQL and Postgres and Oracle's has their own solutions and all these other things. So we're taking the old tools. And in some cases, adding things. And in some cases, just rebranding them and retraining our salespeople. You've also got NoSQL. And you've got things like Cassandra, which is probably the first one that I really heard a lot about and saw people doing big things with. CouchDB was in there as well. And there's Mongo as well. Now one of the things is Cassandra has lots of integration with Hadoop. And the data stacks guys have built all sorts of things to build a better solution to integrate their database in Hadoop. And it comes back to the same thing, play on your strengths. With Mongo, we've also integrated with Hadoop. And we've got lots of solutions for scaling very readily and very easily and dropping in in the cases where people traditionally are using MySQL or Oracle, sliding in in a way that makes sense. You've also got platforms. And the most prevalent of this is Hadoop, obviously. Hadoop is a platform for doing big data. There's a storage component. There's a calculation component. And we can make this work with all sorts of other tools. So now, it's important not to tilt at windmills. And I'm probably at least somewhere where you've all heard of Don Quixote. In fact, there's an English word called Quixotic, which essentially refers to being, I don't know what the right definition is off the top of my head actually, but it's the same kind of thing, being overly optimistic and jumping into things without really thinking about it. And that applies here because, again, we've rebranded everything and we're thinking about our solutions. So it's very easy to get distracted. And this comes back to, well, how do we decide how to adopt things? How do we decide when different departments have picked different software? And the answer is, at the end of the day, you need to be able to justify what you've done. And that means that you've got to keep it simple. It may not actually be simple. You might be storing six terabytes of data. But fundamentally, it has to be simple with these rules, which is that the tools have to be something that not only you can understand, but your team can understand.  And early in my career, I made that mistake more times than I can count because it's easy to confuse indispensable with being the person who takes control of everything and doesn't let anybody else touch it. That also means that the tools and techniques have to scale. That means that you should be able to start small. You should be able to do that first small project. And maybe it's something you do on the side and it turns into something big. Twitter started as a side project in another company. And it turned into something that became much bigger. And so if your architecture that you choose early on can't scale with you, you're going to have a really, really tough situation when you become popular because you're going to have to stop and redo everything. And it's important not to reinvent the wheel. I think this was rehashed as well during our roundtable. This idea, it's so fun to build something from scratch, to be convinced that we know better. But there's lots and lots of smart people with too much free time who've built open source solutions that solve problems really well. The question about things like integrating Cassandra and Lucine, where there's also, we do the same with Mongo where a lot of people are using solar or elastic search with Mongo. Because Mongo lacks full tech search right now. And Lucine and solar and elastic search are really, really, really good at search. So instead of having everybody build their own search solution, they find a way to make what they already have work with something that's really good at what they're doing. And that's important. Reinventing the wheel is only going to get you further behind your competitors. And finally, don't bite off more than you can chew. Because this happens as well. And this comes, I mean, this is partly with projects, but also actually how we deal with our data, which I'm going to talk about in a minute. But we need to break this into smaller pieces.   I think this matters. And it applies to a lot of different things. But it's also fundamentally how a lot of these big systems are dealing with things by spreading them out in many places and the pieces of data becoming small. So looking at big data, and this is a little bit about how Mongo in our sharding system, which we use to provide big data platform for storage, solves these problems a little as well about how we use this to integrate with our Hadoop solution. But big data, I probably would cross gigabytes off here. Because if you've only got gigabytes, it's adorable. But you probably aren't quite at big data scale yet. But when you get into terabytes and petabytes and exabytes and whatever else is out there, it becomes a very, very different story. And the fact that you can walk down to the store by a terabyte hard drive is pretty impressive these days. So I mentioned before, I think a system, a good system, should scale with me. When I grow my system, when I move up, when I move down, whatever I need to do, that I should get a uniform view. I shouldn't have to rewrite from scratch every six months because I've doubled my user base. My concerns when I build this kind of system, and it applies to things like the Hadoop connector here, can I read and write this data efficiently at different scales? Because if you can only read it or only write it, you're sort of in trouble because you can only do one thing well.   And it also matters that you can calculate on large portions of this data. It's often not enough to just query, but you have to do aggregations, calculations, whatever else you need to do. So a lot of systems, Google file systems, probably the core example because so much else is based on it. A lot of the big data systems are sort of chasing Google white papers and that Google puts out white papers about what they're doing but no code, and everyone tries to do that. It comes back to not reinventing the wheel. Fortunately, Google's always two steps ahead. So Hadoop's file system, HDFS, is based on Google file system. Mongo Sharding has a lot of concepts from the Google file system and Bigtable as well. And the idea is to break these problems into chunks. These are definitely not the only systems that do it this way, but they're two prominent examples. And since I'm talking about my work to integrate the two, they work well. They're actually very similar. So you break this data into smaller chunks. Now the default in both Mongo and Hadoop is 64 megabytes, which means that when you go over 64 megabytes, you break it into more pieces. And you can spread this out over many, many data nodes where each node can contain many chunks. And if a chunk gets too large or a node gets overloaded, then you can rebalance your data as you need to. So now of course the question is what am I talking about? Because I've gone from pictures of Homer Simpson to being a little more serious. So a chunk is a range of values. Now in Mongo, this is an example that would apply to Mongo because I think chunks get confusing for everyone. They were confusing for me early on and we make mistakes if we're confused. This comes back to keeping it simple. It also puts an onus on us as project owners to do better documentation. If I was to start, if I had a username collection and there was no data in it in Mongo, and I sharded Mongo and I said, I want you to shard on the username. What I'm gonna get is one chunk to start with, which is this chunk here. It's minus infinity to max infinity. So the minimum possible value to the maximum possible value. Now as I continue to add data, when I hit that 64 megs, I'm gonna split it into more pieces. And so as I add data, if I add bill, then I'm gonna get more chunks. I might have minimum to B and C to maximum. So suddenly we've got a very different picture. We've now got two chunks. And what these are, they're metadata. So a chunk could be assigned to a server. And so we say anything between minimum and B exists on server one. Anything between C and maximum exists on server two. And we can keep adding data. So if I add Becky, I might break it even smaller. So now I've got minimum to BA and BE to BR, but then I've also still got a C chunk, C to maximum. And we get smaller and smaller. So individual letters, partial letter ranges, et cetera can happen. Eventually, we'll get to the smallest possible value that we can have in this chunking system, which would be one unique value. So eventually there's no range anymore because well Brad is so large a chunk that we can't split him into smaller pieces. Now there's a problem here in certain systems like this. Mongo is an example. It's why we have to be careful about how we split things because at this point it doesn't matter if there's 64 megs or 64 terabytes for Brad. We can't break him into a smaller chunk. And so often what you'll do is add something else like a timestamp or some other key here that we can break into smaller pieces. So if I'm building Twitter and it's username comma timestamp, well then when I get down to Brad I start breaking Brad into chunks by date or whatever else. And so this represents our ranges of information and we can use this to spread across the cluster. So we have a large data set where the primary key is username. One thing I can do is simplify this. Let's break this into chunks by letter. Now I realize I just said a chunk is not necessarily a letter. So you can think of B as being BA to BZ or whatever else you want it to be. But this is a range we've got a couple of chunks here to work with. In Mongo, your chunks might not get arranged in alphabetical order. So it might not be chunk A, chunk B, chunk C. It could be random. Within the chunk we maintain order and within the metadata we do. But ultimately we wanna represent these chunks to let us scale. We want lots and lots of data nodes which means the more chunks we have the more nodes we can support. So if I have four data nodes to begin with and I lose my battery here. If I have four data nodes to begin with and each of those is 25% of my chunks. Where 25% of my data spread across four servers. And this lets us scale. So I've got four nodes and I evenly distribute. And so my chunks go out across each of these four nodes. Now it was a nice even division here. There were 16 chunks and four servers. What we're always looking for though in these kinds of systems and in Mongo particularly is equilibrium. I want an even distribution. I don't want one of my four nodes to have 90% of my data. Because think about all the problems that I have now. I can't keep up with writing. I probably have overloaded my resources. So you want the system to balance this out for you. And in Mongo's case we do balance this behind the scenes with an auto balancer. And so if I add nodes or even remove nodes I can also balance. So if I add number five here we can move a couple chunks onto him so there's evenness. And if five somehow ended up with 15 chunks we can move those out to the other so everyone is sharing the workload. So the answer to calculating big data is very similar to what it is in storing it. Which is that we need to break our data into bite size pieces. And we need to build functions that we can work together with repeatedly on pieces of our data. In one way or another. Now in Hadoop you can write pure MapReduce jobs but there's also many tools like PIG and other things which hide MapReduce from you but under the covers it's breaking everything into small pieces. So we process this data across many nodes and we aggregate the result into a final set. The pieces here that I'm talking about are not actually chunks although it depends on the system but they're the individual data points that are in the chunks. So a chunk is a range. It might be Brad to Brendan and an actual piece of data would be the documents representing each of these users. But the chunks are a really useful unit to data process. So if I'm looking at say Mongo and Hadoop integration then the chunk is a really convenient piece of work that I can use to say here's a portion of my data to work with. In Hadoop these are called input splits. It's a piece of data, a portion of data to work with and regardless of how you feed your data into Hadoop you use input splits. So in the case of if I'm storing files on HDFS it'll still break my file into a couple of pieces and feed input splits in for calculation. The more input splits we have the more jobs we can run. So the most common application and I mentioned MapReduce is this is that MapReduce is what we're often using now. Some of this is moving away. In some cases I think people have come up with better solutions for doing this. I'll talk a little about some of the things happening in Hadoop and other things. Mongo has introduced an aggregation framework recently which instead of using MapReduce we use a pipeline actually very similar to APL. I don't hear anyone shuddering in the room so presumably you've not been exposed. This is based on a Google white paper as well. It works with two functions, MapReduce. Now this isn't a new invention, this isn't reinventing the wheel. MapReduce are functions that have been in LISP since the 60s. It's taking those concepts and applying those across many data nodes. So the idea is for us to effectively process data at different scales and have composable functions that we can repeatedly use so we can scale our results. I can add more nodes and these functions can be spread out. And Hadoop is obviously built around MapReduce for calculation right now but Mongo also can be integrated here as I mentioned. We don't use the HDFS storage, we actually pipe this data directly in to Hadoop's MapReduce engine. And MapReduce itself, we're made up of a couple phases here. The primaries of which are Map, Shuffle and Reduce. So if we look at a typical MapReduce job very quickly, email records, we want to count the number of times that one user has received an email. We start here with a map function.  And the idea of my map function in MapReduce is to break each document into a key which is my grouping and a value. So the grouping is like if you did a select by group in SQL. It's that piece of information that's unique. And so my map function will take a document or a piece of information in, extract my key. And so in this case, the email to Tyler becomes Tyler with a value of count one. And the same applies for all of the items that are in this MapReduce job. The next step that happens in most frameworks, this is automatic, but this is to the group or shuffle step where we group like keys together. We want to create an array of their distinct values. Different systems will handle this differently. In Hadoop's case, it will pick one machine that's responsible for a key and send every value for that key from across the cluster to that one machine. And so I would collapse Tyler down and Mike down and Brendan down into something else where it's an array of every value that I've seen for them. And then ready these for the final step, which is reduce. And with the reduced step, I want to flatten that array or that list down into one result. And so Tyler becomes a count of two and the same for Mike and the same for Brendan. So MapReduce gives us a pretty effective system for calculating this. We can get lots and lots of information. The downside is you're not going to guarantee you get the information quickly just that you get it eventually. It's supported in a lot of places though. It's sort of the assembly language for many systems like Hadoop right now. So we have answers for both of these concerns or rough answers, at least to think about how we might do this, which is how do I read and write at scale and how do I run calculations on big portions of this data? This isn't the only way to do it, but it's one solution that's become very popular in the last couple of years. MapReduce is sort of everywhere with Hadoop and everything else. But batch is not necessarily a sustainable answer because that's really what MapReduce is. It's a batch process. You don't get a guarantee of a quick answer just that no matter how much data you throw at it, you will eventually get an answer. But it's a bit of a catch 22. You know, we can get answers from petabytes of data answers that we never used to be able to get. The downside is we can't guarantee we get them quickly. And this is tough sometimes when we're designing systems, testing systems, we're trying to even test hypotheses. It's a bit of a step backwards because okay, we may not have been able to handle petabytes of data, but we had this momentum in the industry where we could get answers fairly quickly. And now suddenly we can handle petabytes but not necessarily get quick answers. We may be okay with this, but the people who pay our bills often aren't. And they want answers, and this is changing the way that we do things. So we have to evolve. And that's happening a lot across the industry with this kind of processing. The big data world is moving from slower batch process solutions. And Google has moved away from batch quite a bit into more real-time things and things like caffeine and Dremel and all these other things. And there's typically Apache projects that emulate many of these things when there's been white papers. Hadoop is sort of moving away from MapReduce as their assembly language and moving to this resource management system called Yarn, which stands for yet another resource negotiator. So now you can ask for storage nodes and job nodes and other things, but you don't have to write everything in MapReduce. Instead, MapReduce has been implemented on top of Yarn. And this is gonna change the picture because now Hadoop is a platform is not just a platform for running MapReduce, but a platform for running whatever we need across large clusters of computers. And we can really build anything we want. I think Yarn is still young. There's been a bunch of great articles on Hortonworks website about the different things that you can build with Yarn and some examples, including something I believe called Kitten, which was doing some basic work but demonstrated it. And you've also got systems like Spark and Storm and other similar platforms that are really built around real-time and different sorts of ideas. The downside to some of these real-time systems is that they can only respond to data being fed in, but many of these are integrating with many different layers. So quickly in closing, I'm pointing out the world is definitely being eaten by software. Whether we want it to or not, everything is becoming software and software is evolving to take over businesses that might never have thought they'd be software businesses. It's leaving behind a lot of data. And we have to be careful not to step in that data, which means we have to understand what to do with it. More data means more software means more data means more software and it never ends. So we need practical solutions to process data, to store data, and this is what's gonna save us or at least get us a little closer to being out of damnation. And as data scientists, technologists, whatever we wanna call ourselves, we need to evolve our strategies. We need to think, we need to update our tools. We can't just stick in one way of doing things because the data is gonna keep growing. A petabyte or an exabyte might sound like a lot of data today, but the first computer I worked on 20 years ago had a 30 megabyte hard drive that I never quite managed to fill up.  If you're interested in more about the Hadoop connector that we provide, it is a GitHub as well as the docs for that. I should point out as well, we do have an office in Barcelona now, we have a couple of people working out of it, my colleague Bill here at the front of the room works out of the Barcelona office. So we are doing a lot of work with companies in Spain. We do, if you have questions about Mongo or other things we have people available. And I'm happy to answer any questions you have. Anyone? I don't know how, I don't think throwing this at you is gonna work real well. I can repeat the question. So we've got input 400 feed directly in. So the input splits are just the addresses of servers, area to run. And then the actual mapper jobs would use the input format to feed that data into a mapper. Same for the output it would be able to feed back out to Mongo. Other questions? I always feel like I'm about to say okay great and there's one person hiding in my blind spot who's all upset that I've ignored them. So if you're that person, yell out now. Otherwise thank you everyone very much for your time.


Hi, this is Gerhard Leonhard, media futurist in Basel, Switzerland, with another edition of Gertube. Today I want to talk about how the two realities that we use to keep separate, which is one on the internet, where we are online and one offline, with some people calling this a meat space, how those two things are actually converging and becoming the same.  And this is going as far as now saying that we can actually like on Facebook, for example real life things. We can go to places and like them by just pushing a button on the mobile, identifying the place and liking it on Facebook. So we have this overlap of always being connected, actually always leaving comments on physical locations. Google has, for example, in Google Maps, you can note a location and then you can go to a store that has a QR code, a quick response code and scan it and leave a message about the place or give it a rating. As you can see in this photo now, people are actually using like buttons for conferences. So you can take a photo of the person and upload it and like them in real life. And this convergence is happening everywhere in Israel. You have a fun park that's run by, I think by Pepsi and you check out the video on YouTube.  So when you're wearing your bathing suit, you get a wristband. The wristband has a little radio chip in it that locks you into Facebook.  As you can see in this picture, if you like the right, you can push a button and then your Facebook page would say you like the slide that you just went on to. So you have this real overlap of online, offline. We have this idea of social commerce, for example. Facebook is allowing people to log in with a mobile phone. And then the gap, for example, is saying if you log into the mall, then you can come by and pick up a free pair of jeans if you are registered as a person that likes the gap brand on Facebook. We can already see, for example, there's a direct relationship between people liking a brand on the Internet, like on Facebook or on Twitter, and buying stuff. For example, Starbucks has about 22 million fans on Facebook, and each of those 22 million drinks twice as much coffee in real life. So people who are following Starbucks on Facebook are much more valuable for those that don't, and clearly that's a question of convergence. We're going to see this complete convergence everywhere, my favorite places in Google, augmented reality, mobile phones, television and the Internet converging. So in two years, we won't be talking about being online, we'll be talking about constant connectivity, and the only real future that we have in terms of being offline is a mental state, meaning that we don't want to be connected, we don't want to take to anyone. But it's not a technical issue. So this convergence will mean a lot of things for us in the future. It will mean the constant availability of all kinds of content, which means competition for our brain space and how much stuff we can take in. It will mean issues like attention deficit disorder, which we're seeing around the world, addiction to gaming, as we've seen in Korea. All these things have to be worked on in the future. Those are big topics. But nevertheless, the convergence of online and offline are crucial factors, for example, for e-commerce, for retail, for people trying to do stuff with media, for location-based services, Foursquare, Instagram and so on. So quite an interesting trend. I think ultimately, if you look a little bit beyond that, what we're seeing right now sort of in the geeky sector using Android phones and now the iPhone is augmented reality. So it's the idea of superimposing data. If you have a mobile phone, you can hold up the screen over the Golden Gate Bridge, and the phone will recognize the bridge and bring you data about the Golden Gate Bridge, like the data when it was built, Wikipedia data, whatever is available from people on the internet, as you can see on this slide. It works quite well using an app called Layer, L-A-Y-A-R, Layer.com. You can check it out on YouTube, but it's quite an interesting tool. There's also a map that's being used widely for core navigation called Wikipedia, that you can put on your Android phone. And as you're driving, you see in the data, when you're going by, you're seeing the data of the restaurant or how much the gas costs or whatever right in the picture on the mobile phone in the photofinder. And so this is really interesting stuff. Basically, the convergence of online-offline is very real, and we shouldn't really be thinking about online businesses or business models. It's all the same now. It's almost the same as saying 20 years ago, you and the fax business when you use a fax machine. So let's forget about the online-offline reality. It's the same thing now, and that's the bottom line for what I want to talk about today. And I do hope to see you on my websites eventually, which is mediafuturevis.com and the future of Dot Biz. And this is Gerard Leonhardt. Thanks for listening, and see you next time.


The key takeaways from the previous lecture or as follows, it is possible to affect a certain transfer of work to the rotor of a turbo machine by means of the change in specific enthalpy of the fluid in the rotor passage or by means of a change in specific kinetic energy of the fluid in the rotor passage or both. The fractional contribution of the change in specific enthalpy to the total specific work transfer is defined as the degree of reaction as indicated here. In addition, in the case of an axial machine, any change in specific enthalpy of the fluid across the rotor passage always results in the change in the relative velocity of the fluid in the blade passage. Furthermore, in the case of an axial or radial machine, any change in relative velocity in the rotor passage determines the change in pressure along the streamline which passes through the rotor blade passage. So, now, it is clear from this discussion that when work transfer takes place to a rotor, the absolute velocity of the fluid, the relative velocity of the fluid as well as the blade velocity in the case of a radial machine can change between the inlet and the outlet of the rotor. We have also seen that it is customary to indicate these velocities by means of a velocity triangle since the absolute velocity of the fluid B at any location is the vector sum of the blade velocity plus the relative velocity. So, it is imperative that we gain clear understanding of velocity triangles and also be in a position to interpret velocity triangles and try to get as much information from velocity triangles as possible. So, this is what we will discuss next. So, here we are given two velocity triangles, one at the inlet to the rotor, one at the exit to the rotor. Let us see how much information we can infer from these two velocity triangles. Now, we notice right away that U2 is not equal to U1. So, the blade speed actually increases from inlet to the exit of the rotor which implies that the machine is a radial flow machine. Furthermore, since U2 is greater than U1, it follows that R2 is greater than R1. So, the machine is actually a radial outflow machine. Next, since R2 is greater than R1, dr is positive and judging by the magnitude of the relative velocity from inlet to outlet, we can see that C2 is less than C1 which means that dc is negative and so this term contributes positively to the overall right hand side and so dr is positive, dc is negative. So, both these things together give rise to a dp being positive in this case, which means that P2 is greater than P1. So, this corresponds to the rotor of a compressor or a pump. We notice further that at inlet, the relative velocity C1 is perpendicular to U1 and it is clear from this that beta 1, the blade angle at inlet is equal to 0. In this particular case, since the machine is a radial machine, this implies that the blade at entry is actually a radial blade. That is, it is aligned in the radial direction. Since beta 1 is the angle that the tangent to the blade profile makes with respect to the reference direction. So, in this case, because the reference direction is the radial direction, we call this a radial blade. Now, in case the reference is the axial direction, beta 1 equal to 0 would suggest that the blade is axial, it is an axial blade. In case it is an axial machine. Now, in contrast, if alpha 1 is equal to 0 at inlet, for instance, that situation would be referred to as radial entry in the case of a radial machine and it would be referred to as axial entry in the case of an axial machine. So, beta equal to 0 would imply that the blade is radial or axial as appropriate and alpha equal to 0 would imply radial or axial entry or exit as the case may be and depending on whether it is a radial machine or axial machine. Furthermore, since the relative velocity C curves away from the direction of the blade speed, notice that the blade speed is in this direction and that the relative velocity curves away from the direction or angular velocity direction, we can infer that the blade is a backward curved blade for this particular case. So, here we are again given the velocity triangles at the inlet and exit of a rotor. It is also said that u1 is equal to u2, so that it is also indicated here. So, that means that it is an axial machine since u2 is equal to u1 and since the C1 is not equal to C2, there is a change in the relative velocity in the blade passage. So, that means it is the reaction machine. As we have already discussed, there is a reaction machine. Furthermore, since C2, the magnitude of C2 is less than the magnitude of C1, the relative velocity actually decreases in the blade passage, which means the blade passage acts like a diffuser or it is a diverging passage. And so, what we are looking at here is actually a compressor or an axial compressor or an axial pump. Again, application of this information to this equation makes it clear that this term is zero because it is an axial machine and DC is negative. So, that means this term becomes the overall term contributes positively to the pressure change. So, that means the pressure increases in this case. Let us move on to the next example. So, here we are given once again velocity triangle at the inlet to the rotor and it exit to the rotor. And it is given that u1 is equal to u2, which means that this is an axial machine. It is also clear from the velocity triangle that C2 is not equal to C1, which means that it is a reaction machine. And if we now look at this equation, dr is zero because it is an axial machine and C2 is greater than C1, that means DC is positive. So, that means this term contributes in a negative fashion to the DP term. So, DP is less than zero. This is equal to zero and this entire term is negative. So, DP is less than zero, which means that the pressure decreases in this passage. C2 is greater than C1 implies that the blade passage is a converging passage. So, the flow accelerates which means the pressure decreases. Therefore, this is the rotor blade of a turbine. And furthermore, we see that the relative velocity at inlet is perpendicular to the blade direction, which means that beta1 is equal to zero in this case. Since this is an axial machine, we refer to the blade at the inlet or the blade profile at the inlet actually is in the axial direction. So, it is an axial blade at entry. So, this is an axial reaction machine with axial blade at or axial blade profile at entry. So, looking at this velocity triangle, it is indicated that U1 is equal to U2. And furthermore, it is also indicated that C1 is equal to C2. So, let us see what information we can glean from this velocity triangles. So, U2 equal to U1 implies that it is an axial machine, C2 equal to C1 implies the following. Since it is an axial machine, dr is zero. And since it is given that C2 equal to C1, dc is equal to zero. So, that means dp is equal to zero for this rotor, which means that the pressure remains constant and there is only a change in direction of the fluid. So, that means it is an impulse machine. Is it an impulse type of work absorbing machine or an impulse type of work producing machine? May be determined by looking at the tangential component of the absolute velocity. Notice that v theta 1 is in this direction here and v theta 2 is zero because v2 is perpendicular to U2.  So, that means that from Euler turbine equation, the work is W dot is positive. So, this is an impulse axial impulse turbine. So, this discussion makes clear how much information can actually be presented or associated with velocity triangles between the inlet and outlet of a rotor. And students should actually go through this very carefully and make sure that they are able to interpret the velocity triangles given any particular situation and draw these types of inferences even before doing any calculation. What we will do in the next couple of lectures is to work out examples where we try to draw velocity triangles based on the given information in the in the example and try to do some calculations.


Hello everyone, myself Dr. Gurpreet Kaurvik, I am working as a senior consultant at Manipal Hospital. I am working here since last 13 years. Today, we are sharing one of our patients, Darshita's experience with us at our Manipal Hospital about her antenatal, throughout the antenatal journey and during labor. Hi everyone, this is Darshita here. I am from Bangalore and I decided to do my pregnancy with Dr. Gurpreet Kaurvik and I found out about her and the hospital from a lot of my friends who also got their delivery done through her itself and I just wanted to let you know about my experience. It was very, very easy with her and she's someone who actually gives you a lot of encouragement to go through with natural delivery, unless maybe if it's an emergency C-section or whatever but she was someone who stood through the whole process as a support person also since my husband would be travelling a lot and it was just an amazing journey. The whole experience was very good with the hospital and my little one after she's come so she's been consulting with Dr. Neeraj and he's also been like a family person itself. It's like I had all these anxieties as a new mother and I think I've messaged him like at 2 a.m. in the morning, 3 a.m. in the morning and he's replied back, don't worry, she's fine, it's just very basic, it's normal so don't worry about it and all that. I feel like Manipal Hospital and the doctors here, all of them have been like a complete family. Every time I come for a consultation the nurses and the management, the doctors, they all come, they ask me how are you feeling, how's the little one, how's sir and all that so it's just been a great experience.


To start off, I will trace my friend's bodice on my pattern weeper. And as you can see, I did not trace the back guard as it is not necessary for this design. Next, I used my compass to draw in the bus radius. To locate the bus radius, check out the chart I've prepared in the description box. Next, I will relocate the shoulder bus dart to the side seam an inch below from the bus line. Next, I'm going to apply the empire contour for the front bodice. By the way, if you're new to my channel, I have a separate tutorial for the empire waist contour and make it sure to check it out. Next, from the underarm side seam, I'm going to mark in 47 inch or 1.27 centimeters. From the waist at side seam, I'm going to mark in 68 of an inch or 2 centimeters to decrease the waist measurement and connect both marks with a straight line while the side seam dart is closed. And cut off this excess from the pattern. Next, from the under bust, draw a horizontal line towards the side seam like so. From center front, mark in 1.27 inch or 0.3 centimeter. From this mark, square in a line blending towards the waist. And this will be the new center front. Next, from the bust line, mark in 68 of an inch or 2 centimeters touching the new center front. And again, from the under bust, draw in your desired under bust design towards the mark at center front. Next, from new center front at bust line, mark in 47 inch or 1.27 centimeters. And from the bust line at side seam, mark in 1 inch or 2.54 centimeters. And from the previous dart at bust radius, mark up for 87 inch or 1.27 centimeters. And connect these three marks, creating a triangular shape for the neckline. Next, I'm going to draw in my neckline design freehand. When drawing the design freehand, it is best to practice it first on a different paper. And once you've achieved your desired design, apply it on the final draft. Next, I'm going to apply contour's guideline number one and number three for the neckline. After applying the contours for the neckline, I will redraw and blend in the lines. So if you're not familiar with contouring principles, I have a separate tutorial so better check it out on my channel. Now that I have completed my drafts for the front bodice, it is time to cut each pieces separately. Next, I'm going to combine the two lower panels together. After that, I'm going to mark in the important notches to guide me for sewing. Next, I'm going to grab the back bodice to draft the back pattern. I will place the front pattern number three exactly on the side seam at bust line. And mark for the back pattern reference. Next, from the side seam, I will mark in 4-4-8 inches until the bust line. And from the mark at side seam, I will square in across a horizontal line. And this is the back pattern. Next, I will divide the back pattern in three sections vertically, like so. And from these marks, I will square in the slash lines. And I will slash the lines carefully.  Spread the pattern equally according to your liking and tape it in place. And by the way, I've used 4-8 of an inch of sewing allowance all around for the back pattern. So these are all the pattern pieces with sewing allowances. For pattern number one, I've used 2-8 of an inch all around. And for patterns number two and number three, I've used 2-8 of an inch and 4-8 of an inch all around. For pattern number four, I've marked up 6-8 of an inch from the waist for the loop placement. So the waist of my friend is 26 inches. But for the circle skirt, I wanted it to have gathers on the waist since at the hem, I will put a second tier. So instead of calculating the circle skirt from her original waist, I will multiply her waist by 2 and that is equals to 52 inches. And I will use the doubled waist measurement to calculate her half circle skirt. So this is the half circle skirt pattern from my calculations. Next, I'm going to fold it in half and cut it on the center making two pieces. One piece for the back and one piece for the front. So at the waist, it will be gathered. It is unfold at the center back, also unfold at the center front. And there are side seams where we will connect both skirts together. For the front skirt, while putting in the sewing allowances, I've decided to put inseam pockets for utility purposes. For more about inseam pockets, I have a separate tutorial and make sure to check it out on my channel. For the back skirt, I will mark down 1 inch or 2.54 centimeters from the waist. This is for the elastic or garter casing. And duplicate the casing on a new paper plus the sewing allowance from the back skirt.  And as you can see, I've notched the placements of the inseam pockets at the side seams.  And cut the elastic or garter casing unfold and on the bias part of the fabric as well. And next, face the casing and the back skirt together, right side to right side and pin in place. By the way, I have sewn the casing and the back skirt together by toys of an inch or 0.6 centimeter. Since both pieces are cut on bias, best use the smallest stitch line and avoid pulling the fabric as it will stretch. Next, I will use my compensating presser foot, push all of the seams towards the casing side, and topstitch the casing onto the skirt by 1 millimeter. And this is how the back skirt should look like. And this is where we are going to place the elastic or garter. Next, I'm going to topstitch the edge of the waistline by 1 millimeter. And topstitch the casing onto the skirt by 0.68 of an inch or 0.2 centimeters from the waist. And now, we've completed the casing for the back skirt. For the garter, I've used the measurement of the original back waist minus 4 or 10 centimeters. Next, using my bodkin tool, I will insert the garter inside the casing. And pin the garter from end to end. And next, I will sew or tack at each side seam so that the garter will stay in place. I've tacked the garter by 0.48 of an inch or 1.3 centimeters from the edge of the side seams. And I will topstitch the garter onto the casing by 0.48 of an inch or 1.3 centimeters from the edge of the waist. Next, I'm going to cut the pouches for the inseam pockets. I'll simply place one of the pouches at the side seam of the front skirt, matching the notches. And pin everything in place. And do it on the other side seam as well. By the way, I have a separate tutorial for inseam pockets, and I'll put the link up here in case you want to check it out. Next, I'm going to gather the front waist of the front skirt. The gathers will depend with the width of pattern number 4. Using this gathering presser foot, I will gather the front waist by 2.8 of an inch or 0.6 centimeter from the edge of the waist. And this is how the waist of the front skirt looks like. Next, I'm going to cut patterns number 1, 2, 3 times 4 on my fabric. This is for the self and for the lining. And cut the same patterns times 2 for the fusible interfacing. And fuse the interfacing to the self. For pattern number 4, cut it as well times 4 on the main fabric, and times 2 for the fusible interfacing. And cut the back pattern piece times 4 for the self and lining. For patterns number 1, I'm going to attach here this trap at the angle. To place this trap, I'm going to mark in the sewing allowance that I've used for this pattern, which is 2.8 of an inch or 0.6 centimeter and I'll mark it from the armhole side. And I'll place this trap just right beside the pencil mark of the sewing allowance. And pin the straps in place. Next, I will pin the lining pieces on top, facing right side to right side with the self pieces. And pin everything in place sandwiching the straps inside. And I'll sew the top areas by 2.8 of an inch or 0.6 centimeter. Careful not to hit the strap and move it if it's necessary and fill it while sewing. Next, I'm going to sand the seams at the lining side. And topstitch the lining by 1 millimeter and stop before reaching where the strap is placed. And do the same thing on the other side. And press the pieces for a clean finish. Next, sew the opening at the bottom by 1.8 of an inch or 0.3 centimeter to close it. Next, I'm going to place patterns number 2 to patterns number 3, facing them right side to right side together and pin everything in place. And I'm going to sew the pieces according to my sewing allowance. And press the seams open for a clean finish. And I'll also sew the lining pieces together. And these are the self and lining pieces. Next, I'm going to place the assembled piece facing right side to right side, matching the notch with the same line. And pin in place in preparation for sewing. And sew everything in place. And next, I will place the lining pieces facing right side to right side with the self sandwiching pattern number 1 inside. And pin the lining to the self. And don't forget to match the seam lines. And sew according to your sewing allowance. And give it a press for a clean finish. Next, I'm going to attach pattern number 4 to the self, matching the notches with the seam line. Face everything right side to right side and pin in place. And I'm going to sew everything according to my sewing allowance. And now, the top is semi-assembled. I also did the same sewing procedure for the lining. Next, I'm going to place the pieces right side to right side together. And attach the pieces at the center front. And this is how it looks like with both pieces attached together at the center front. First, I'm going to mark in for its 7 inch or 1.3 centimeters for my sewing allowance. And next, I'm going to mark in 5 eighths of an inch or 1.6 centimeters each side. And this will serve as a channeling or opening for the strap. And next, I'm going to sew the lining and the self pieces together by 4 eighths of an inch or 1.3 centimeters from the curved edge. And we need to press the seams open. After pressing the seams, face the pieces together wrong side to wrong side and pin in place. You can either begin or finish sewing right exactly at the marks. And avoid sewing beyond as these marks will serve as the openings for the straps. And turn the back piece inside out. And give it a press. And this is how the back piece looks like and these are the channels for the strap. Next, top stitch 5 eighths of an inch or 1.6 centimeters from the curved edge. And top stitch by 2 eighths of an inch or 0.6 centimeter each side. You can either begin or finish sewing right exactly at the 5 eighths inch top stitch. But don't go beyond. Next, I'm going to place in the bias loops at the notches and place in the back pattern piece right exactly at pattern number 3. Face the back piece right side to right side with pattern number 3 and pin in place. And sew the back pieces and loops in place. Next, face the lining right side to right side with the self, sandwiching the back pieces and the loops. Match the under bust seams, pin in place, and sew the seams according to your sewing allowance. Turn it inside out and insert the straps into the channels. Next, let's attach the front circle skirt and the top together. But before that, on both side seams of the front skirt, mark in the sewing allowance. And place the top right exactly at the marks on each side seam and pin in place. And sew at the waist according to your sewing allowance. Next, I chose the right side seam where I will sew in the zipper. And sew in the zipper by 4 eighths of an inch or 1.3 centimeters. Also, carefully sew the zipper and always try to open the pocket so that it won't be sewn in with the zipper. Next, sew the other side of the zipper at the back circle skirt. And lastly, I'll sew in the second tier at the hem of the circle skirt. By the way, I also have a tutorial for half-circled tiered skirt and better check it out on my channel. Et voila! So this is my friend rocking her honeymoon dress and I am so happy she loved it and she worried in one of their date nights during their honeymoon. Anyway guys, I hope this tutorial gave you enough tips on how to create your own honeymoon dress. And if you have any questions, please do not hesitate to comment down below and I will reply as soon as possible. And if you're not subscribed yet to my channel Lama Deliz, make sure to hit that subscribe button and if you like this video, give it a huge thumbs up and I will see you guys again on the next tutorial.