Welcome visitors to Monet Café and my wonderful patrons from my Patreon page. I am going to do a little lesson in an easy study in painting tall grasses. I know sometimes I have a lot more tutorials that are in-depth and a lot of information, so sometimes we just need to take a break and tackle something a bit more basic or simple. So this is going to be available for both my patrons and here on the Monet Café YouTube channel. I am going to be doing a another very detailed video coming up soon on my Patreon page and you can join that at the link above. Now this is just a piece of Sennelier LeCart pastel card. It's sanded. It's a pretty gritty sanded surface. I love the surface. So now I'm going to be quiet and I actually didn't have to do a voiceover for this one. Favorite general landscape formats or compositions? It's just probably because it's like trees in my backyard. It's just some some trees with a field that kind of goes off into the distance like this and then there's these super super tall grasses here. So you want to get your darkest dark on the tree line. Remember things that are vertical are dark and then I'm just going to get in some super tall grasses here. So this is like we were laying in the grass and looking up. So all these grasses and I'm going to make them kind of splaying out a little bit like this. Okay so that's kind of easy right? So get your darks in there and now let's just go ahead and get in some other kind of dark colors back here for the sky. I've got kind of a darker kind of a teal that I'm putting here. Usually things get lighter down at the horizon line but in this case behind trees sometimes colors are a little darker. You don't want to do your lightest lights as sky holes. I'm going to get some darks in here by these trees and now let me just get another blue. I'm literally just grabbing what I have. I'm kind of getting in my lightest lights and my darkest darks. All right I might have to reestablish. Actually I got another dark here. This is a that one was kind of a dark blue. This is more of a really dark purple. So just getting in some interesting shapes. Notice I'm just using the side of my pastel and just kind of scumbling along and I'm going to go ahead and get some of that darker down here in the deeper grass.  So okay so we've just got what four colors in there. Two darks and two teal colors. So now what we're going to do again I'm just literally grabbing colors as I'm talking here. I didn't pre-choose anything. I'm going to take and get me kind of a oh this is dirty. Get me kind of a nice green here. When things go back far into the distance they get horizontal okay not vertical like grasses because they're so far away you just literally cannot see those and because this I'm going to bring a little bit of that in here. This is Sennelier Lecart paper by the way I love that stuff. It's really gritty and the texture gives for a real painterly feel. Now because there's these trees here I want these greens where these trees are I might even add a little purple in here to be a little darker because there's kind of some shadows in here okay but we're still working with these horizontal shapes right there. All right we've got some now what we're going to do is we're going to start getting kind of chunky here. Oh my these all shaking. I want to give the impression of like some chunky grasses. I am literally just suggesting here. I don't want to over I don't want to be sloppy and I don't want to overwork my painting but at the same time I want that spontaneity. Okay so look at there it's already looking a little like something. Now let's get because I use some of these teals in the sky I want to get maybe a little darker. That's the one that I used this is a little more green. Let me see if I can go even darker with something that I have here. Let's see what this is more of a neutral. Oh yeah that's nice. Okay so we're down in these deep grasses they're kind of shadowy and cooler in temperature. They're not going to be as brilliant green. Our most brilliant greens are going to be right here on the tips of these grasses so let's just get in some of these again reaching up and I'm going to accentuate that reaching up soon with some of these that are really going up high. Again this is just a little teeny painting when you don't have time to do anything and you're feeling you want to get creative cut up lots of these little pieces of paper and paint small. It's it's a great way to get those creative juices flowing when you don't have time. Now this is the one that was a little brighter and again the suns gets here but won't get in those deep grasses so I'm gonna add some chunky marks. Look at that chunkiness. I like these. This is you know like just for that impressionistic feel. Okay so this light's coming in there. Alright let's see now. Let's get in. I feel like I need a little bit of a an orangey color in here somewhere like it's a bright day. That's probably too light. Let me get something a little bit darker here. Yeah like that. Okay like we've got some golden grasses coming up in here. Again I like the idea of them kind of spreading out. They're kind of peeking in here and there and obviously these grasses are going to the ones that are sticking up. They're gonna get a little bit smaller as they go back into the distance. I don't want to overdo that so now I'm gonna get to where they are turning a bit more golden in color. It's gonna be right back here the tips of these so we're gonna do a few little chunky marks where these are peeking up over everything. Some of those might be a little large but it's okay. Okay now it's gonna get even more golden as it goes back into the distance here. Let me find one this one right here. Okay so and now things are getting further away so they're not as there's not as much definition. I might do a little bit of this kind of glazing across here. Again these little grasses are getting smaller smaller smaller. I feel like I need some purple going on in here so let me grab this is this is really this is just I love these gorgeous purple colors so purples make a great shadow and they just I don't know they just add something special so I'm gonna add some of these purples in here again they just like the cooler greens that make a really nice shadowy color. I'm gonna reinforce some of these darks in here give our idea of tall grasses again kind of reaching up and out and let me get that purple again kind of a really rich deep purple and for contrast I'm gonna add a few of these in that are just really more defined so we get that feeling we're laying down in the grass again and this Sennelier Lecart paper is really takes a decent amount of layering and I'm gonna light these trees up again but I wanted to get that feeling of definition and contrast for the trees. Now I think I want to make this is a little dark I'm going with a really light touch here I think I want to make a tree line of some distant trees going back here so I'm gonna cool that off now by adding cooling things off makes things look like they're further away so I'm gonna cool it off by adding just a layer on top of this of this some teal color and see how that just pushed that back we might have a little bit more of this back here and I'll even grab a cooler blue or teal back here this one's too light I bet well maybe not look we got some other trees really going far back there alright so now let me get a little even cooler I think that this was the one that I used here yeah but I'm gonna kind of carve down in between some of these trees I kind of like a little bit of that Sennelier paper showing there sorry for my easel moving around and here's that that darker one now I'm gonna blend this a little bit more with another value to kind of connect the two there probably that was the high one in the sky that was the low one so I can actually just take this one and kind of glaze over it that's the beautiful thing about the sanded paper there's so much blending possibility and often you do not have to blend with your fingers or any any other blending tool because the pastels do it themselves now I'm loving this color in the sky I need a little bit more of that darker color down here in the grasses again we're representing that chunky tall grass feeling maybe a little more of that purple down in here might need a little bit of this yeah I like that little lighter purple kind of peeking down some of these places but I always feel like if I add it some here I gotta add it somewhere else let's just put a little bit of that purple right back there maybe a little bit like there's a tree real far away back there that's fun okay all right I feel like I need a little bit more of that since I added that gold in there I feel like I need a little bit more of a bring some of this down in here maybe just a little kind of peeking through the grasses all right now I need to brighten that I mean I'm dull out those trees a little bit they're a little too dark right now so let me see if I can find a green they look like black trees right now so I want to add I've got this some it's dirty but I've got this some kind of a darker green and all I'm doing is scumbling just kind of making some marks here and keeping that really loose impressionistic feel a little bit on those usually you keep the darks a little bit down by the base of the trees and I'm gonna kind of add some of this with thicker grasses down in here so this dark isn't so dark and we're almost done a little field going on here all right I think I'm gonna really accentuate some of that golden color this might be a little overkill but I'm gonna give it a try I like it actually it's like those beautiful golden grasses that the Sun just barely hits them some of them even over here and so again doing these tall grasses the majority of it is dark in the front and then it just has a very thin line of the horizontal bands because the grass is so tall all right I'm gonna blue out that sky a little bit I feel like it's a little bit too teal so I kind of like this blue yeah like that gives a little bit I love when you give a combination of colors that makes it really interesting instead of just one color family I think I'll add some tall grasses just kind of sticking up a way to do that is with these new pastels again I like the feeling of them kind of reaching out I don't want to bring them too far down here because again if you're down in the deep roots there's not gonna be a whole lot of that I need a little bit of a darker value probably going up across here so I'm gonna get a little bit darker new pastel I'm gonna get this right here these new pastels are just great at making lines and this gives you that feeling definitely of tall grasses when you just stick some up way high like that and I don't like how I have lines so even going right across there so I do like a little bit of this dark color in there so I'm gonna kind of break that up that I've got make it a little bit more random oh yeah like that that rich color I just added I'd add some umph to it look at that feel like a selling Bob Ross all right so there's a tall grass painting voila now one thing that would make this look a little bit probably more finished is to take and carve in some sky holes not a lot just a couple this is basically negative painting I'm hitting my camera with my glasses and that gives it a kind of it you as the artist can choose where you want the viewer to look and when you add those little marks like that you create interest and you can guide the viewer where you want them to go kind of like the idea of guiding a little bit of interest back here so that you play around in the grasses and then you you want to explore back in there where this is and I feel like I need to add a little bit more that blue I actually have a this purpley it's like I call this the like the periwinkle color oh yeah that's pretty interesting a little bit of that in here yeah that made that sky way more interesting with that you just feel it going back into the distance very energetic so there it is a tall grass painting and I actually for the final wanted to show that I added some more of that teal to reflect what was going on in the sky and kind of connect the painting all together as a whole I hope you enjoyed that give this a try you see it doesn't take really any longer than 15 minutes so have fun keep practicing and if you are one of my patrons please share your final result if you try this in our patreon group that I have on Facebook alright guys happy painting and get out there and paint some tall grasses


Yeah, okay. Welcome to my talk on unit testing and TDD and Testing is an important subject and there should always be on every conference lots of talks about it and in for all programming languages on the other hand there have been already a lot of talks in a lot of conferences and And I don't know if I can say something truly original about this. So this talk is aimed Mostly at at beginners in testing But also for people that have tried testing a lot and somehow struggle with it found it difficult to adopt Simply dissatisfied with with with the success that they have with it The general structure is The why the when not and the how know it's a bit different than in the title. It just sounded better in the title and Let's let's start with basic reasoning why we would do testing at all and The thing is what do we do as coders? We we read a lot of code and we read a lot of code and we just continue reading and Only after reading a lot We will also write some code and usually the point at this time in any presentation is The code should be readable because we read it much more than we write it But I want to add a third thing that we always do and that is the trying out afterwards see run the code and see if it actually and I I hardly ever commit any code without at least trying out without looking at it at all because when I do I Always manage even even in a single character change. I always manage to put in some some New error, so at least I I try to compile it. I run it in some form it has to be done and And when these this phase of baby steps Baby sicknesses is over and you you know your code runs then you feel this feel like dr. Frankenstein It's alive and you'll be really happy about that And the very important thing is you can be your own beta tester You you simply get a feel of how the code works and Unfortunately all all future techniques that I will build on now everything like automating tests and TDD will not give you this But I'll come back to that later one of the dangers of maybe Trying out is shotgun programming as as humans we tend to try to keep the thinking as at a minimum and I I catch myself frequently that in instead of really thinking how to solve the problem I just try it out. Oh, it doesn't run then I wiggle some variables try it out again And I just continue this without actual thinking until until it looks good enough The the other extreme is maybe a little bit older the at the time of Punch cards and maybe nowadays if if you have a slot at a at a set time slot at a super computer I'm sure you will think for hours Over your code to make sure that the one shot that you have at running the code will be the will be successful But what is the right thing to do? Should it be a lot of thinking and hardly ever trying out or should it be a lot of trying out and hardly ever thinking? Let's get back on track on the why let's automate and and trying out is nothing really else than then automated trying out and computers are very good at doing repetitive tasks and Especially when the setup is Expensive I imagine there for example you you have to go manually into the the jungle admin or Into an SQL console and tweak some records and remove all the traces from the last 10 test run Then you go to your actual application Click click and a number of buttons to to do the the manual testing to do the manual trying out And I bet with so many steps in between you occasionally will just make some errors And you have to start again go back to the SQL console or remove all the traces return to that state and Automating it scripting this part is definitely worth it and the problem with documentation is that it out dates and Tests good test names are very good documentation which Automatically raises an alarm as soon as it out dates. So when the code changes in some form The test will break and maybe you decide well this test is actually outdated. I'll change it or I'll remove it Okay, now. This is a bold statement to say that code becomes reusable and modular people say that but but How does that happen? Oh This is a bit too big now Well, I hope you can still see it This this this code snippet it it does what it's supposed to do So it normalizes the input key and then checks if that key is in some cash storage Otherwise it will return a default value So we are done right and the code works. It does what's supposed to do but But it's really hard to test Why is it hard to test because it uses a lot of outside dependencies and One thing that you usually do is you you make dependencies injectable in this case you would move the the store from the functional scope that we have here one scope further up into the object scope and Then the test can easily inject those dependencies And the function Excesses it through the the option to the to the object scope Another thing that you realize when doing tests is The the the the standard dictionary has a get the get of the standard dictionary accepts an optional parameter for the default and that's a good pattern and in this case it also helps with testing because you can Simply put it as an additional parameter into the function call instead of having to mock the get default function in the object and Then while testing you might also realize that this Normalizing of the function is really its own the normalizing of the key is actually its own functionality And you might want to extract it so that you can build Targeted tests for this one and targeted tests for the the getting out of the storage so What testing really does is it testing reuses your code and And by trying to have small test cases you are reusing it bit by bit and In order to make your code testable you have to make it reusable and you have to make it modular So testable code is good code Let's get back and see What what happens if we don't just write a few tests? Just just maybe the happy cases and maybe one thing but really a comprehensive test suite Which means that you try to go through all the error cases. You try to obtain as much code coverage as possible Well as I just said if if you care for all all Error cases and for all branches then your code becomes more robust Because if because it's not a thing that you normally try out You some some things are even impossible to try out through the UI But they still somehow happen due to mysterious circumstances and in automated tests you can You can produce these weird circumstances and That way test all cases which makes it more robust and once it's more robust You have protection against regression and only comprehensive test suites give you that just a few tests here and there are no no protection against regression at all and Regression is maybe a thing when you change a small function somewhere if you if you work on a single ticket But my favorite thing is that I'm very dissatisfied with one module I go into that module and turn it completely upside down. I can refactor the whole thing and When I have if I have these comprehensive test suites Then I can be sure that my changes then I can check afterwards What effect do those changes have on the other parts of the of the system? and And I have to say this feeling of freedom that is the best feeling that I ever get during my development I'm I'm I'm just happy when I see that So, okay, you say I write tests, but afterwards so Why even bother with TDD? What's what's the point in moving the the testing in front of the development? Well, there are some risks in testing and What I have written so far what I have said so far you can find it in any book But the books maybe don't mention all too often also the risks Especially because accomplished testers don't really have these problems anymore an accomplished tester might say What kind of moron says that he's going to make tests, but then is not doing them In my experience it is it just practically happens that out of all kind of reasons Not being clear about it sometimes just being lazy you're not doing it We can assume maybe people have talked about it often enough that That writing good tests Is is profitable because because you gain more time Then you lose writing the tests Unfortunately, you will not only write good tests. You will also write bad tests and that also takes time Which which you don't get back and in fact once you have those bad tests and You you will pay interest you pay interest to update them or you pay interest to to live with them And what I just said that tests make refactoring possible. They also discourage refactoring. I once had I had extensive tests on my views like a hundred and twenty test cases on the views and The test relied on a certain way that the views set up there the initial data But that that way how they set up that was just Deprecated and I wanted to change it so I wanted to refactor it so That the views get their setup data from someplace else, but that would break all the tests So it took quite some time I postponed it a lot Because I was simply afraid of breaking all the tests and having to rewrite all this stuff again and With all things if you simply don't do it right then you don't get the benefit out of it I said the benefit of good test names is that they document if the test names are not good Then they don't document and this has something to do Sorry, this has something to do with with the robustness of the mythology Testing itself doesn't seem to be a robust because The worse you do it the less benefit you get a robust system would be well you do it halfway correct And you still get good benefits but That's not the case I've been talking about shotgun programming shotgun debugging is is the the scaled up version of it That you don't really have to understand the code at all. There's a box somewhere or you you have to add a new feature Test test break. Well, you just wiggle variables so long and you run the test and wiggle variables and run the test until it works No thinking involved So Yeah, as I said, this is a question about robustness and Moving now the testing from after the development Before the development it doesn't solve those problems But I have found out that it gives us a certain amount of control over them So laziness and time pressure leading to not writing tests Actually TVV doesn't help so much with that You can you can just as easily not write tests beforehand as you can not write tests afterwards But then again postponing the testing until a time when the developer has somehow found closure when the developer thinks now the thing is done That maybe is just not the optimal time to put their testing in the process. So Maybe TDD helps us a little bit. I show that by some arbitrary number. This is really absolutely arbitrary number It just says well, maybe it helps us a little bit. It gives us a little bit of control and bad tests Whenever Whenever you do two related things Then you do the first though the one that you do first you do it twice so when we do test after then we do the code and While while doing the test we go back to the code and update it a little bit And and there we have actually the thing that that tests help improve the code quality on the other hand if we do the test first and And the coding after then we are working for the tests twice once when we write it and once when we are actually Doing the code sometimes maybe we realize oh the test was a bit wrong and we have to update it so which one is better and I think that And We have to to see the priority the the most important thing about code is that it runs correctly The second priority of code is that it is of good quality. This is maybe weird for developers But in in an economy in the economy it is in fact so that if you have running code independent of the quality Maybe that is the time when you start making money and that is necessary for anything to continue and also We have processes we have refactoring and the tests help us a lot to later Update the code quality to become better. We have the tests to help us in the refactoring on The other hand it is not priority one of tests that they just pass It's not the objective that we have many tests that pass The objective is that the tests are of good quality that they are testing exactly what we want to do So I say the most important thing at the time of creation is that we are thinking about tests twice so we do it first and then we think about it again to ensure good quality because unfortunately there isn't really This this third instance the other thing which helps us refactoring the tests. We are a bit on our own on that one so back I would say that gives us quite a TDD gives us quite a lot of improvement on this one and For for the refactoring TDD actually literally is the answer because what you don't want to do What you don't want to do is? What I do in the in the test after a mentality what you do is That you you first go into the code You you refactor the code because it's bad code and then you break all the tests Well, okay, and then you go into the test and then you change all the tests But not only is this dreadful work, but also you're losing all the benefits the tests don't help you anymore They don't protect your refactoring so literally the the solution to this one is think the other way around think test first Go into the test first refactor the test first to to be able to do both The new and the refactored version of the code and then afterwards refactor the code and that way you are protected all the way through So even more imaginary point on this one and with test names, it's the same thing really because When you are testing first then the very first line of code that you're writing is the test name So the very first thing that you do is when you start Articulate what you are going to do next and that's how you get good test names On the other hand if you have the test after mentality if all your code is already there And you just copy paste a lot of test cases then you just You just have to fill a void with necessary identifiers the compiler says well those tests need some name And you just say then test one test two test three test four test again and so on So I would say TDD gives us even more control on that But there are still 2k 2 points that I skipped so far and well, they are really difficult you need You need understanding you need to understand your The the requirements in order to do this well As I said about shotgun debugging shotgun debugging is the opposite of understanding. It is the not thinking so TDD helps us with With thinking because it it focuses on the what and not on the how in fact, I would say When when you are at this place that you want to write a good test is the first thing you can't really do that without Without understanding what this is about because you have to formulate a test name and you have to to create You have to create the what you have to articulate it not only in the name But also in the in the in the test code and at this time your understanding becomes deeper On the other hand unfortunately, it is possible to just put there some code which Which seems to be like maybe what the customer wants and It is always very easily possible to just put some tests afterwards which pass Writing tests that passes is very easy But that's not what we want.  Why is testing especially good for pythons? In some linked in post unfortunately, I I didn't write down the source So I can't give you the source but in some linked in post I saw like nine or twelve a Matrix of nine or twelve of these kind of diagrams which plot Efficiency that you gave that you have in a language as a function of the experience that you have in the language And I distinctly remember that there was a significant update in Spike in efficiency due to unit tests and I was wondering and I mean it's true I felt this myself, but but why is that so for Python and not for all the other programming languages? In my opinion one of the reasons is Python has problems and That's absolutely fine. Nothing is problem-free, but we we need to have solutions for those problems and One of the problems that is very often mentioned with Python is the dynamic typing Especially Java and husk L programmers might not even try Python because they say a dynamic typing. That's Can't really work. Well My compiler checks against that And does everybody know what dynamic typing means or let's ask who? Who knows what dynamic typing means? I think that's almost everybody Yeah, I'm a bit short on time. So I'll I'll Continue on so what what is it that that Python programmers say afterwards? They say it's not really that bad So so who is right are the Python programmers just biased to see their own faults or are the Statically typed proponents just not seeing the light well in my opinion unit tests help alleviate the problem a lot because comprehensive unit test suites will help you Help you go through all all branches of your code and that's why they will execute all type errors They will execute all none none type exceptions and they will fail on it. I Have realized that myself that I am actually suffering from the dynamic typing I am producing a lot of these type errors in my code It's just that during the trying out and during the testing I find them very quickly and and they are not a problem for me anymore. So, okay The Haskell compiler and the Java compiler they they solve the problem systematically, but unit tests they do it They do it well enough for Python Another thing is the Haskell compiler does it for free Unit tests are not free because you have to write them, but then again you anyway want to write unit tests So they are a free site effect Another reason is are the great frameworks and at the moment that's especially nose and pie test There there are lots of talks about pie test, especially also here in Bilbao So I'm not going very deep into this but there's one thing that I want to mention as as the difference between J unit and pie test which I don't hear so very often so J unit is object-oriented which means that we have a base class with all with all kind of generic Assertions, and then we have lots and lots of test cases which have a setup and a teardown Very special assertions some helpers and then maybe lots of test cases So we an object-oriented programming We try to encapsulate many things into one class things that belong together They go together into one namespace the thing is that we for tests It doesn't really seem to work because we have on the one hand the functionality and on the other hand We have the state in which the thing is so for example if we have some some list implementation or some stack implementation We have different functionalities like getting the length appending something popping something And we want to have test cases for the setup when the the stack is empty when it's at Capacity or field So how do you organize these in an object either you you organize them? by functionality Then you can't use the setup Then you can't use the setup provided by the test framework each each test function has to do its own setup Or you you organize them by state which means that you you have to put widely different functionality into one object And where do the helpers go they the helpers must be somehow mixed in from the outside and mix ins work if you have Multiple inheritance, and if your language allows mix ins I was working in a project This is not from the project, but in that project we had to write a diagram in order to find out How much How to write the next test? Okay, I have to speed up a lot. PyTest is the answer. There is There there it has a more function based approach instead of the object based approach and that helps a lot Okay, the when not I'm sure that if you have some frustrating time with tests you would like to have a certificate like this I you want me to give you now a direct reason Which hopefully is exactly your reason and from now on you don't have to do any tests You don't have to put any work there, but it's not that easy the general General thing is that if it doesn't work for you improve it until it works But what I don't like about this is that it doesn't mention the costs And it's an economic factor. We have to see We have to measure how the the cost against the profit and maybe the profit is really high And maybe the costs are low But the costs are something that we have to be aware of and that we we have to mitigate We have to first find out where our costs first reuse them and only then we should try to improve Where do the costs come from they come from mismatches between TDD and other things the first mismatch might be you It's not common school practice to throw little children into the deep water because that's the way how they learn to swim fastest Unfortunately in corporate culture that is the case So you are a developer you start with TDD right now, and I think that's the the reason why Managers don't think that testing is a good thing. Why why they don't get that feeling Because it's simply not you can just turn it on and it starts laying golden eggs Well the the luckily we have we have a good argumentation here we agree that That having good tests is what we want and we have to write tests to have the good tests But writing them also gives us bad tests and now the good thing is that the more we write the more we learn to write better tests But now the problem with this is that learning is a human experience and you can't infinitely Learn you cannot learn too many things at once and you do not learn at all if the problem is too difficult And now we have a new concept the difficulty of testing I don't know of any metric, but I'll give you some examples of things that are very difficult to test So framework subclasses like jungle generic views, maybe, you know Where where the class really is a combination of class class Variables and mix ins those are really difficult to unit test Anything as an chronos is very difficult simulated environments like a mobile platform Where where where the platform on which you are developing is evolving and and you have to mock a lot abstract subclasses Evolve in in my case quite often before I really know what they are supposed to do. They become useful already I generalize without really having a good name for that thing that I'm producing there and that makes them really hard to test and Everything that has high interaction means a lot of mocking and a lot of mocking always need means a lot of complexity Another thing is that If you read a TDD book You get the impression that TDD is all that you ever need you just you just turn this one on and then everything works fine But what is not said there is that you need to have a process around it which fits with that so You need a specification gathering process, which is maybe in your company done by non-technical people and Especially you need an architecture around it and the architecture also needs to fit with TDD because if you do TDD alone Ignoring the architecture you will always build something Which breaks apart at iteration 3? The team has to be on your side because doing it alone just doesn't work and If you have a customer that you can educate in your process great But if you have an ever-changing customer, it's simply not worth it So so you have to to compromise between what the customer gives to you Maybe the customer gives you only very vague things Which simply doesn't work with TDD at all because TDD requires you to have very good specifications at the beginning Now I'm not saying that having good specifications at the beginning is a bad thing definitely not you want to have that But but if you don't have to you might have to compromise Then there are spikes I'm sometimes going off to little programming adventures and I'm and those that code might become really big But it's I'm starting really on an adventure without a plan not knowing where and then TDD is simply impossible so in the end I would say it's a Everything is in a relation you have to see is your competence good enough to to tackle the difficulty and Can you alleviate the uncertainty if if not if if you Encounter something which is simply too difficult for you to test and don't don't try to bite it until your teeth fall out maybe skip the tests on that one and and test something else first until your competence grows enough because It will always grow. No, nobody ever finishes. Nobody has this competence where he can test everything But you can also see that there are there three people on one side and the process is for hire So if you can get the process on your side There are fee for four people on your side and that should should give you the bias that a lot of testing is a good idea Okay, but how how to do it now? We agree on the why and we know that there are some costs, but how how to how to go to the next step how how to work with those costs one thing I This is mostly a recap actually because I have mentioned already the tools and it's very important Not only that you use the right tools, but that you learn them beforehand Don't don't start learning a completely new testing tool and a new testing etology in In the new project that you are building Which which will involve may involve maybe 30 developers what you want is you You build maybe a small experimental project on your own self for yourself Maybe a tic-tac-toe game and in that game you try out everything so you will learn all the dependencies and all the configuration of the testing tools Don't try to learn too many things at once Continuous integration helps you and and your team with with peer pressure because it shows you Everything It shows you whenever somebody breaks the tests the test don't help at all If you don't run them if you just write them and you don't run them regularly Continuous integration will not only run them, but will inform the whole team by email for example if somebody breaks it and you have to create a company culture in which nobody wants to be the one who broke the tests and with peer pressure you can It becomes fun Doing it the right way. I Also have realized just just do it just Just start with the first test if you have legacy code and you test after that's fine, too Just start with the first test and while you're doing the test you will realize. Oh, by the way, there's this one error case It's very easy to I just copy paste this test and change a little bit here and there and then you have the second test and And then you realize hey, well, it's just a few steps and I can have really thorough tests and I will have you'll have a comprehensive test suit in no time and Never stop the trying out I have mentioned at the beginning trying out is is a thing which gives you Which gives you a feeling of the code How how usable is it? How how performant is it? Does it make really any sense? I have just heard somebody tell me that he he has written these great tests and everything was working with tests But then when after a long time they actually started the application They realized that half of the buttons were invisible because they did have tests on that part and I Have mentioned these things which are very difficult to test especially with unit tests like interaction and asynchronous asynchronous connection to third parties and that the the point here is that functionality tests or integration or acceptance test whatever the name for that should be Will help you a lot and that gives you behavior-driven development as the the next step above There are the names are sometimes used differently, but also I have seen in this conference already talks which show you You have the TDD process as the small one using small unit tests And then you have the behavior-driven development cycle around that which cares for the bigger tests for the acceptance tests So there are cases in which I don't do any unit tests at all because the functional tests will catch it a unit That is also a thing right here. What is a unit? and I was very confused about this a lot because this name also implies somehow that everything is made up of units So everything can be unit tested and I disagree with that There are some things which are simply not meant to be unit tested You have to have tests on everything so that you know that the code runs through But sometimes functionality or integration tests are simply enough for it If you want to to create your your test test your test names then think think user story as A storage module. I want to access the file system by doing this and that and out of that user story You can generate the the test name and as I have now mentioned a few times Don't be dissatisfied with your progress Sometimes you see people that say oh, yeah, I'm doing I have a hundred percent coverage. I have three thousand lines of code for tests lines of tests and only 40 lines of code and you get the feeling Oh, maybe I'm not maybe I'm not satisfied with my testing Maybe I don't benefit because I'm not doing it extreme enough. I don't think that it is that that it is like that So don't overdo you will grow? Slowly and the thing is don't expect Testing to be the thing that you turn on and then everything works fine What do I mean with do it all wrong? I said already you should have this small You have this small Testing project you have a tic-tac-toe game for example and now try it It's it's only maybe one one file of code and you write comprehensive test suits suites That that have a hundred percent coverage coverage is a tool which I didn't have the time to to mention now And you will and then try out afterwards to introduce a bug that is not found by any of your tests and and that way You will find out it's actually quite easy to do and that way you realize how to write the tests You can create a monster test case for all features at once and then you try to refactor and you will find out that test is horrible You can if you test too many implementation details instead of the overall API your tests are really bad I have learned all of these things by doing them in huge production projects And I just wish I would have learned them in in very small projects So if this is all that you that you get from from my talk Try it out beforehand don't try to do too much learning at once and with that I I reached the end of my presentation and Do you have any questions? Thank you, Fabian. I'm very sorry, but we have no no time for questions because we are running out of time. Thank you


Why don't we go ahead and get started? We had a few technical difficulties that we've managed to work our way through. So we're here to go ahead and provide an update on the Community Generated Roadmap. My name is Carol Barrett. I'm with Intel and part of the product working group. With me today is Ann. Hugh Bliming from Rockspace. So the three of us will go ahead and work together to talk about the content for today. So this content was developed by a team of 16 people that were working from the product work group. They represent companies across our community and across the different industries that we serve, working together with different projects to gather information and synthesize it, and then create the information that we're going to share with you today. The process that we use for creating the roadmap starts with looking at what projects to include. We look at the information that we gather from the user survey on what projects are being adopted by operators in their deployments today as one indicator of what projects to include. We look for things that have 10% adoption and above. Then we also include projects that are sort of essential to an open stack deployment, things like Oslo and Revstack, but wouldn't show up in the user survey. And then the third thing we consider is what are the projects that might be new to open stack or we're seeing rapid adoption and a change in the interest level in the community or in operators or prospective operators to go ahead and guide which projects we include inside the roadmap. As you will see, we're including 28 projects in this version of the roadmap. We start by looking at the baseline of information from the previous roadmap. Then we do some data mining around mid-cycle ether pads and specs and other repos to gather information to create a baseline that we sit down with the PTLs for the different projects and actually have an interview, a structured conversation to understand from them what's accurate in what we data-mind, what additional insights and things they know about that we wanna add onto it. We take all of that and go off and do a little work on it and then bring it back to the project team for them to review it and help make sure that it's as accurate and as comprehensive as we can make it. As I said, in this project, in this release, we're covering 28 projects. That's up from 22 in the last release we did and 17 from the first time that we did this in Vancouver. So we're seeing a steady growth in the breadth of the projects that we're able to communicate the future releases around. And we're also seeing that the project teams are also talking more, talking earlier about what they're gonna do later. So in all and all, we're getting better as a community about projecting where it is that we're going to go. When we compile the information, we organize it around themes. In the last release, yeah, so now we'll keep everybody guessing what the themes are, oh, that's lovely. Do I get help on that? No, Big Ten is bigger than that. So currently we do not cover all of the projects that are in Big Ten. Yeah, so I'll just keep going while we work on that. So for this release cycle, there are five themes that you will see around the groupings for the capabilities. That's adding one new theme from the last release that we did. So the first theme is around scalability. And it's everything that you would expect that to be. It's around how broadly and how many, well, how broadly you can scale a service and performance at that scale as well. The next one is around resiliency, which I think is another term for high availability. The next one after that is manageability. This has a couple of components from user experience as well as ease of operations. The next theme is around modularity. And that has to do with how we refactor projects to enable them to be more easy or extensible. The example I use for this one is Horizon invested a lot of time in building a plugin architecture. So as new projects come into the Big Ten, they can write a plugin for Horizon that allows their information to be exposed to the operators through the common dashboard. And then the theme that we added in this cycle was interoperability. And there's multiple flavors of interoperability from federation to the interoperability across clouds to interoperability and dependencies across projects to backward compatibility of projects as well. So you'll see these themes used throughout the different views that we organized the roadmap in. There was a session yesterday that was held by a couple of the folks in the team to get feedback on the themes. Are these themes helpful? Are they the right granularity? Or would it help people and be more valuable if we added more themes or if we redefined and subdivided some of these themes? So we'll have a conversation later this week when we have our workgroup meeting on Friday. Get the results from that. So you can expect that we'll continue to evolve the information that we put in the roadmaps and how it's organized as we move forward. Okay, yes, Evan. Great, thank you. So rarely is a conversation about roadmaps completed without some type of a disclaimer. In this case, we wanted to go ahead and just give a baseline of the information that you're gonna see is based upon conversations that we had in March with the PTLs. So it was as Mitaka was getting frozen and getting ready to release, but well before the design summit conversations happening this week. So we're using best information to date. You can expect that there will be variations as Newton comes out and as Okada comes out and that's why we do regular updates every quarter on the roadmap. So with that, I'm gonna go ahead and turn over the conversation to Nate to go ahead and talk to you more about the details of the anatomy of the roadmap. Okay. Thanks Carol and Carol. Thanks for getting through that with all the technical difficulties with all such ease and poise. All right, so today I'm gonna take you through the different views that we have that make up the roadmap. Specifically, we've got everything from the 100,000 foot view all the way down to 100 foot view. So if you think of it as elevation, very macro at the bottom, all the way up in space, looking at the planet of OpenStack. So let's go ahead and get started. If we look at the 100,000 foot view, I like to call this one the spider view. This is an aggregate view of all the different projects and which themes that they say they're investing in across the next three releases. So Mataka looking with a real rich set of data that we gather from the PTLs, as well as Newton and Akata looking at more forward looking statements in those PTL interviews that we go through with all of the 28 different projects. So it's kind of weighted and you can see here looking at Newton, you can see how resiliency is slightly reduced, interoperability starts to move forward, and interoperability actually includes things like backwards compatibility as well as cross project compatibility. So looking at things like ironic plus cinder for bare metal volume support, for instance, would be a good example of that. Looking into Akata, that obviously has the most potential for change in terms of the two releases forward. So we use the data that the PTLs are indicating. For that, you can see how scale increases slightly, as well as modularity increases. There's been a lot of focus from the PTLs and wanting to take their code base and make it more modular. It always seems to be more of a forward looking statement versus a statement we're working on right now. So if we continue to zoom in and we look at the 10,000 foot view, you end up with this wonderful eye chart. And so what can you really gleam from this? You need to look in specific places, and so we've actually done a little work to help you out. If you look at the gold rows that are highlighted, you can see those are specific projects that are focusing on a theme across all three releases. So this is an area of focus for them, an area of investment, and one that's a long-term investment. So some of them that we might wanna call out would be heat and scalability, and cinder for resiliency, looking at some of the things like active-active on the cinder side, and then on heat with scalability, some of the parallel provisioning work that they're doing long-term. If you look at the columns, you can see in blue, let me make sure it actually looks that color on this screen. Yes, they are right, very good. You can see for a specific theme, in Mataka, resiliency is one that is focused on, I guess we'll call it number two. If we take out the large box of manageability in the middle, which always continues to be the focus, you can see that resiliency is next in terms of where the most projects are investing time and energy within a specific release, in this case, Mataka. But it's just an example, you can kind of go through and glean things for yourself here. Again, it's a really rich data set. We provide different views and some helpful hints like this so you can help glean things out, but by all means, we want you to educate you today so that you can see these different views and you can go into the data and look at the things that you're most interested in. Most people are interested in two or three specific projects. You can see the big box of manageability there. I guess I circled this because it probably tells me that we're not granular enough and we call a lot of things manageability. So in the future, when we look at how do we evolve our themes for the roadmap, trying to get to a more granular level with manageability so that there's more data that we can mine and that we can categorize. If we continue to zoom down into the thousand foot view, this is a release centric view. And because of the level of detail, we start getting down to putting a subset of projects on each slide. So the thousand foot view is actually made up of eight slides and I'm only gonna take you through two, just to give you some examples of the types of things that you can glean from the view as well as I guess how to read it. So you can see the Mataka, Newton, and Ocata on the Rose. Here you wanna focus on one specific project. So if I take Glantz, for instance, under resiliency, just as Keystone trusts. So we've got more level of detail here, but it's still titles. You're gonna have to drill down into that hundred foot macro view within a project to really get a lot of the data points. And even then you're gonna get links to blueprints and specs and a lot of the details for you to continue drilling down into that data set. But the Keystone trusts, for example, it provides larger image uploads that previously failed due to tokens expiring. So that's certainly an important piece there. If you look at Glantz, again, we continue just to focus on just one project at a time going down into Newton. You can see hardening security for their new V2 APIs, as well as wanting to get V1 APIs deprecated, something that they're gonna be talking about at length with the Nova team here this week in the design summit. So looking at just another example, this one has neutron, cinder, and heat. If you look at heat for a minute, you can see that under scalability, there is heat in the convergence phase one from Ataka, additional convergence engine work for Newton, and final engine parallelization in Okada. And you might say, what exactly is that? That's really the scaled out parallel provisioning work that the heat project wants to do in terms of being able to support higher scale and multiple concurrent workload provisions. And as you can see, I referenced that because it really goes back to the 10,000 foot view and those gold rows that I had showed you that said, where is the project continuing to invest long term in one specific theme? So that takes us to zooming in even further down into the 100 foot view and I'll turn it over to Hugh from RaxBest to take us through a couple of those. Thanks, Nate, and thank you for bearing with us with our projector problems earlier. I think we may have hit peak projector compatibility some years ago, actually. So as my colleagues have pointed out, we've been progressively getting into more and more detail with each of these slides as we go. The thing we should point out is we're not actually expecting you to take all this in right now. In the final slide, we actually have a URL which will take you through to a PDF of all this so you can study it in detail at your own pace. So to use Nova as an example, I did three of the PTL interviews, spoke to Nova, to Neutron, and to the docs team just to find out where they were at, so just quickly walk you through those. These slides have a consistent theme. On the left, the description of the project, Nova, obviously, is a compute service and then on the right, we provide a bit of detail about the specifics of it. So in the case of Mataka, for example, 82 specs were involved in the Mataka project, Mataka release, I should say, and 63 blueprints. For most of these 100-foot views as you go through, you'll see there's actually a link to the video or phone interview that we did with the PTLs in each case. In Mataka, the focus here was on migration, for example, simplifying rolling updates and improving the API documentation. We'll start to see a theme of these in the case of Nova where in Newton, continuing to focus on stability, further documentation changes, and then some internal, I guess, one of a better way to put it under the hood changes around scheduler improvements underneath and implementing support for cells V2. Also, better interoperability with Neutron. Then we look at Okada, this is of course a much more forward-looking view at this point, and the feedback we had from John Garbert who was the PTL, the expectation, is they're pretty much going to do a little bit of everything. So across those themes we spoke about earlier on in the presentation, they'll be looking at all of those. Ironic, which is the bare-metal provisioning engine for OpenStack, should have pointed out that we provide some basic stats around the number of individual contributors, 121 for the Mataka release in this case, and the number of companies that are represented in that process. I shan't insult your intelligence by reading, also rereading what's on the right, but again you can see that same sort of flow of the different emphasis they have on the themes for all of the projects and the underlying work they're doing. And last but not least, another example of 100 foot view for the documentation, project very, very important part of OpenStack being a ultimately developer-oriented project in so many ways. The Taka design series looked at, they started the process of migrating from DocBook XML to RST, and as you can see there, at Mataka it was almost completed, and in Newton that transition has been complete, so you can start to get a sense of the forward progress on all these projects. And then for Okada, the emphasis is perhaps more of an internal one for the documentation team in that making it more efficient, for making their own workflows more efficient within the documentation team, but also making it easier for the various projects involved in OpenStack to contribute to that, to the documentation project directly. I have the pleasure of saying a few thanks on behalf of the team, obviously my co-presenters, but also to the broader product working group and the PTLs who were very generous actually with their time in working with us and responding to our queries about the different directions they had. The URL there is perhaps the key takeaway beyond the presentation itself, if you go to the www.openstack.org slash roadmap, about halfway down the page, the section you're looking for is community roadmap, and you'll actually be able to download the full PDF of this presentation with, I think, of the order of 80 odd pages of information, sort of the 10,000, 1,100 feet views for each of the different projects, and the iChat will be rather easier, I suspect, to see on your own screen than perhaps it was on the project. The project working group is a relatively new group for OpenStack, and we've still very much, welcome people contributing and being involved, and particularly giving feedback as to whether the work or undertaking is useful. There's a session tomorrow afternoon to where we'll be looking at both the user stories and also the development of the roadmap that we do, and of course, the OpenStack Foundation itself has an excellent YouTube channel where you can find out more sort of information. Now, I'm not sure how we're going for time to field questions we have, so if there's any questions from audience, I'd ask merely that we use the microphone over on the left here, because I believe that my stage left you all right. If you have any questions, please walk up to the microphone just for the benefit of the recording, and we'll go from there. Anyone like to step up? It's that time of the afternoon, we're all falling asleep, wondering why this guy has a funny accent. No, no questions? Right, well, again, thank you for your time and your attention this afternoon, and we'll enjoy the rest of the summit. Thank you.


Welcome back to my channel guys, it's Shakira Coco Styles and on this channel we talk about beauty, fashion, lifestyle and styling. So today I am in my kitchen and guys I had two more videos, well I have two more videos for you guys, well actually I had because the lighting was really bad and what I'm going to do, I unbox a new juicer, I'm going to use it for a little bit more time and then give you guys a full review on it. It's the Nama J2, I really really like it so far so I will let you guys know about that in the next video. But today I have a new pot set, alright I've been wanting a new pot set that was non-toxic for a really long time and there's just so many things out there and it's very confusing what is non-toxic and what is, right? So I did some research, before some years now I've always wanted the all clad stainless steel and they actually had a huge sale at William & Sonoma today so I was like let me get it, I mean it was like a lot off. So with these pots I did get the all clad 5D, I think this is cool, yeah it's like the 5D or something like that, I think they have a 5D and a 3D and the 5D actually has 5 different layers of, I don't want to say stainless steel because it's mixed with something else but it's not aluminum, the other one has aluminum. But I'm just going to unbox it, the box is not that heavy, I got the 7 piece but let me just, I'm going to actually put it on the floor because I went grocery shopping guys and I have no space, so let's open this up and I'll bring them up for you guys. Now I was a little confused that the box was like this but it's inside like the other box piece, something, I'm going to sit it to the side and pull it out actually because that might be easier. I had this out the box but I thought, I thought it was going to almost there. Well no, it's not heavy, it's just not open, I guess that was for them. Well anyway, I got these D5 stainless steel 7 pieces and I figured this would be a good amount for me because currently I have 1, 2, yeah I have 5 now so this was good but I think, well actually I guess that's considered 7 as well, they include the tops. But this is the D5 stainless steel all clad and this is the, I think this is the brushed metal one but let me open it up and see because yeah I told her either one is fine doesn't matter. Let me just, let's make sure we not open it in the wrong way. Little blade and just open this. It's like my juicer so the video that I did for the juicer, it was also packaged the way which I like but like I said that video just, I don't know, was something weird about the whole video. Everything was like moving slow so that's one box. I'm going to shift some stuff around on my counter. I got to tell you guys about this detox that I'm taking. Oh my gosh, 28 things, tasted so that's a good thing. Okay so that's 3 boxes so far. Here's everything. The first box is a 8 quarts, right guys, it's a 8 quarts stainless stock pot with a lid. Now you guys know that this is, so it says patent 5-ply bonded for exceptionally even heating drip free pouring rim so I did see that it does have like a small little pouring section on the rim which is perfect because you know how you pour and oil or whatever would just like slide on the side of your pot. This will help that, oversized handles for comfort, oven and broiler safe. So this is what I'm talking about. I'm probably still going to, I have some cookware like some oven cookware that I've been using for like some years now in their glass so those are good but I also can use this and you guys know this is assembled and engineered in the US. Now I heard that the pots were made in the US but the tops were made in China. I don't know how true that is but let me just open up the first one so you guys can see. Let me show you guys. All clad, yes. This is exciting. Like this is exciting. This lady said she had her pots up for 20 years. Now I did hear, I was doing some research about my toxins and stuff and you know she actually said that she, she prefers stainless steel but sometimes she has to be careful because of metal and I was like oh brother here we go but we'll see, we'll see. This package is really nice guys. It looks like a little envelope. This is not the, this is the, the, the. So you guys know that this is a lifetime warranty right. So now I should be doing like halls and stuff like holding halls but I'm in the middle of redecorating my home. You guys are going to see that as well. So right now it's like empty and well almost empty. I'm trying to sell some stuff but it is lifetime warranty. This is like the best and when you think about purchasing pots over and over and over it's really a waste of money and you guys know I talk about that all the time. So pot number one. So if I'm making like chickpeas, if I'm making chickpeas, noodles, any soup or anything I'll definitely use this. So that's that. I'm going to hold these boxes for like maybe 30 days possibly. I can probably stick them in the garage in like a bag or something. And okay so that's the eight quarts, eight quarts stock pot with a lid. Then I'm going to, now I'm going to open up the four quarts saucepan with a lid which is this one here. Okay. So this is perfect. Okay. I'm going to register each, each one. This I'm going to register. Register each one. This one let me get the top so it comes with another one. Let me just grab the top. These are really nice guys. This time I know I'm getting old. Like I get excited over stuff like this. So I was hearing that people were, this is a heavy pot. I know it's heavy. It's pretty now but I'm sure once I start cooking it's going to get crazy but I'm going to try my best to keep it. It's not going to be shiny. I know but it's going to be at no like stains and stuff. Like burnt stains. So that is the four quart, four quart pan with a lid. And this pot set was $6.99 and the original price is like $10.50. So nice little sale, right? You can buy these pots individually if you want to. However, I think a seven piece set is good for a person with maybe, maybe three kids. Honestly, let me see. Maybe like, maybe, maybe two kids. Maybe two kids. I think it's a good set. So again, seven pieces. They do have a 10 piece that's also on sale for $8.99. The original price is $14.30. That's also a D5 and that's the brush stainless steel. Then they have another 10 piece one D5. That is, what is this? Oh, this one is a little different. It got like a, this is a sensual cookware. That one was $7.99. The original price is $13.00. Now this one that's 10 pieces, it has like a little scooper but then there's another pot here that looks like maybe like a rice. I don't know what that is. What kind of pan that is. But it still does have the pieces that I have with an additional pot and like a little tool to use. So yeah, if you guys are looking for a new pot set and you really want to invest in them, trust me, invest in these. I did a lot of research. So I'm going to go through them again. Here's the one pan two, three. Because you guys know they count the top as pieces. Three, four, five. Soup in here. Maybe some pasta. This is a big pot. That's only my chickpeas. So that's it. Those are the seven pieces guys. I'm going to link this particular one below. I'm going to link it to William and Sonoma just so you can go straight to that website because they have a sale and I think Macy's may have it on sale. But they may be cheaper at William Sonoma right now. So check that out. As far as like cooking utensils, to be quite honest, I'm going to be shifting over to bamboo. And that's just because just some research I've just been doing. It's just like in pots and stuff like that. So you guys are going to see that as well. But I'm going to show you guys the other thing that I got in a separate video once I get my house in order because like I'm buying so many things new that I just want to revamp everything. My living room is literally with two chairs in it right now because I sold my sofa. I sold my sofa. I sold my dining chairs just trying to revamp everything guys, you know, 2023. So but if you guys have any, any comments about how to clean these pots, I bought some bacon soda, how to cook with them. If you have them, definitely please comment below. I would love to hear your thoughts on these pots and just some pretty much some help, right? Because it is different when you start cooking with a totally different type of cookware. So I'm sure I'm going to go through the phase of burning some stuff and not liking my food, but I'm going to figure it out. But if you like videos like this, please comment below and if you say to the end of this video, please comment Coco we see you and guys don't forget to follow me on Instagram at CocoStyleNYC and my style services page CocoStyleNY and my personal styling services CocoStyleNYC.com and my personal style blog CocoStyleNYC.com and I will catch you guys in the next one. Bye guys.


Okay, from there, I did want to take a look at some of the features that have come into the new Capture app as we're bringing all tracker functionality over to the combined Capture app. One of those things that's been long requested is to be able to create working lists for users, and we continue to add functionality here. So you can see as I'm logged in as a user, I'm inside of the RMNCH tracker program in a single registering unit, and you can see that I have three different individuals here, but I actually am a data entry person who is responsible for doing secondary data entry for the entire district or across a multitude of clinics. So one thing I can do is to back out of that work unit, and you can now see the message here that will let you know, select an organization unit if you want to see the individual working list, or you can see all records accessible to you and would be able to pull up all of the records that are accessible to me as a data entry clerk, for example. I also can filter by who it is assigned to, whether it's assigned to me, anyone, no one, or a selected user. And so I have a lot more dynamic way of interacting with the records that I am responsible for, the data entry that I am expected to be doing.


I think that the Australian population recognise that there is a need for their aid dollar to go towards development, which will assist a country to run by itself and generate its own income and of course have higher economic growth, but as well as that, there are immediate pressing human needs. Biggest from a 2005 survey suggested that there were some 3,900 people with disabilities in Gidibus. However, the data gathering methods of the World Health Organization would indicate that the real figure could be three or four times higher, around 15 to 16,000. But no matter what the figures, life for most people with disabilities in Gidibus has meant travelling along a very difficult rough road. In the past, people with disabilities are always left behind. The challenges that we face, like people with disabilities, the accessibility, access to everything, access to infrastructure, access to education, access to social inclusion. I think those are the main issues that we face in Gidibus. To date, there are only limited forms of welfare assistance for families who have members with disabilities. Sometimes, these people are either simply neglected as non-contributors or families must cope as best they can. An extreme example is this father on the Outer Island of Putaritari. His daughter is totally reliant on his care for her every basic need. It's always humbling when we meet the kind of sacrifice this father is making for his much-loved daughter, and he has asked his MP to access a wheelchair to lighten the load. Unfortunately, it seems that there may be some kind of delay. Until recently, the main distribution point has been the rehabilitation centre at the hospital. But in one fiery moment in November 2012, this very important facility was burned to the ground. But the good news is that Australia is supporting the rebuilding of the rehab centre with construction time to start later this year. We recently funded a specialist team of two people, one from Australia and one from Fiji, to come here to have a look at the whole range of disability needs here. And they're preparing an assessment and a programme, a strategic programme for our future involvement in disability activities here. Another area which carries a great deal of stigma here is the area of mental health. There's a lot of work to do in Kiribati in terms of mental health. It's for our vulnerable patients who are actually discriminated in the community and actually looked down upon.  They keep to themselves, they're not able to perform tasks that they normally do. They need to come back to that normalcy, to the normal things that they do, the basic things. Things that we sort of take for granted in our lives that we're able to wash, we're able to get ourselves dressed in the morning, we're able to communicate, socialise with the people around us. All of these things are really important to a person's recovery. And Marike has done a great job here. She has made a lot of changes, patients are improving and they know what to do, they're attending programmes, which is good. I spent quite a lot of time talking and interviewing and really trying to get a good understanding of the culture as well because it was all very unfamiliar to me. So as I was doing this, I was writing down my thoughts and felt that it should be documented. This important foundation research led to the preparation of a comprehensive assessment of mental health needs. This in turn has resulted in recent Australian support to begin upgrading the facility, to bring greater comfort, safety and security to patients in their journey to recovery. I believe that if they are on treatment and start treatment early, they will get well and they will get better and they can go back to their normal self quickly. This 18-year-old young man is profoundly deaf. He very actively contributes to the family, but he has not received one day of formal education in his life. The children who are unable to get to school, the deaf and the blind kids on the other islands, it's actually a tragedy because some of those kids could be really smart and they could be really useful to their communities. The recent passing of the Inclusive Education Act has been a major turning point. It opens opportunities for many children with disabilities, but it also brings with it a set of challenges, for example, this young man. Gakya Man is obviously very bright and he could be taken to school in his wheelchair, but the belief is that he can't be educated because he can't hold a pin. This challenge is solvable, but it calls on the family, the school and the community to find a solution. It's all about giving him the opportunity. Since her accident at the age of 18, Ne De Wata has had to constantly face questions about her abilities as a woman with a disability. I volunteered. I said, I can't go to the Outer Islands. They said, no, they just take pity on me because they might think that I will fall off the ship or whatever. But I just got mad, but I understand that they want to help me. But with me, that's a discrimination. So I just said, let me go. I want to go. How can you go? You let me do it. I denied it. And during the travel and during those small islands, I have to carry my leg, put it on the canoe and then jump off after. But I managed to do everything I managed. So my feeling is that I wish that other people with disabilities have been given a chance to prove that they can do something. But although the going may have been hard, we have of late seen a breakthrough in some very important areas. I'm very proud to mention that the Kiribati has signed the Convention on the Rights of Persons with Disabilities. Because with this mechanism, it helps the government how to help those people with disabilities. And there's also the National Disability Policy, which is in its final draft. With these successes, the disability community of Kiribati would be the first to recognize the advice and support of various regional bodies. Several of these organizations are in turn supported by Australian aid. And here's another piece of good news. The man we met with the old wheelchair at the beginning. Well, now he has a new one. He was one of the last to get one just before the fire.