I'm going to need to switch ground. OK. That's good? OK. I'm just trying to move the presentation here. That should work. Let me just check my clock. OK. What's your name? Bartosz. Bartosz. Yeah, it starts from unit testing then goes a bit system testing. But it's pretty much basic principles and practices. Sure, sure. Can you see the notes? It should work. It should work. I didn't expect you to slow this down. Well... Let's give us some background. And I think everybody is looking forward to see about the testing. And make something better. OK. My check. I'm not sure if... Yeah, you can hear me anyway. So hello everyone. Thanks a lot for coming. It was quite a maze for me. I had to ask like two people to get here. So I'm very happy to see so many faces. When I was giving this talk the first time, it was pretty much full of pain and frustration, tears and blood and losing hope. But I think we are in the country where beer is the main drink. Maybe not in this area. I work more about wine I think. So the theme will be beer because beer is good for everything. And it will be about testing. I'm mainly a Java guy. So the examples I have for you will be in Java. However, I think that the principles and practices I'm going to show you, you can also apply in the other languages. And hopefully with what I will present today, you will be able to write easy, readable, awesome tests and have fun doing so. Alright, so let's start with the simple things first. Assertions. This is pretty much the thing which we have in most of the tests because we test for a stage as well as behavior. But tests with assertions are pretty much the most popular ones. So the first part will be focused on assertions. So let's have a look at the first example. So the first example is the test which where I interact with some repository trying to find the strongest beer in the world. You can see it might be a bit unusual for Java people because I'm not using Camelcase for test method names because test methods or tests in general for me, they should tell the story. The name of the test, yeah? I'll try. Sure, it's 500 and it's still... Unfortunately I cannot, I'm sorry about that. At least not in a few seconds. I probably can rebuild the presentation and then make it bigger but for now I'm sorry for that. But anyway, so I tend to give the descriptive long names and I prefer to do it with the underscores for several reasons. First of all, the Camelcase doesn't read well when the descriptive name is so long and if we stick with regular Java testing frameworks we use test methods as a description for what is the feature we are testing. And another good reason to do so is that it's very easy to find the stack trace. So for these two reasons I really favor using underscores even though most of the people I work with were very skeptical at the beginning because it breaks the conventions, right? Okay, then the structure follows a bit of a BDD besides given. So normally the BDD has, for example, given when then blocks, which is coming from Gherkin syntax, where given is an initial context of your test where you set your expected results and the context of the test then when is where you actually exercise your component under test and then in the then block you either assert the state or you verify the behavior if you use mocking frameworks. So having said that, there are better tools to write BDD in Java, in Go, in .NET, everywhere but I will stick to the JUnit-like syntax for the moment. If you are looking for more expressive frameworks and you're a Java guy, for example, ECB or Spock, these are both groovy frameworks or even Kotlin has a very nice spec framework which is also very nicely structured. Going back to the simple example I have, there is already at least one problem here that we use basic assertions which are available in the testing framework and this gives a narrative of the test a bit hard to follow because you need to kind of dig into the whole context here and figure out what's actually the subject of the test and also you might mix the order of expected and actual and then errors in the tests are becoming kind of tricky. So this beer in particular is real it's 67.5% comes from Scotland never tried, I'm not sure if I will but how can we fix it? So if we would have more tests like that with similar pattern of assertions the first thing which people tend to do is to make a common extract and method and just give it some different name and just pass all the parameters and this obviously follows the dry principle so don't repeat yourself but as I said I like to break conventions and I don't really follow dry in the test at all because as I said at the beginning the test should tell the story but when I look at the feature within the method and I see exactly what I'm testing rather than having something which will let me jump to this method and figure out what those values are standing for but that's already a small improvement what we can do better however is to use custom assertions there are a plethora of frameworks in Java also in other languages which let you do so so one of my favorites is AssertJ and this gives you fluent interface or a DSL where you can actually say exactly what you're testing this is a custom assertion which some of you might think it might be tedious to write by hand however AssertJ comes with plugins for generating those so if you use Maven or Gradle you can just have a step in your build which will do it or you can have an ID plugin which will do the same for you but the main principle here the main idea is that having this kind of approach gives you a very good understanding what is the subject of the test rather than verifying a lot of assertions and trying to figure out what was the purpose of the test which the other person is writing so let's go to a bit of a more sophisticated example not that much but still we probably having a repository would like to assertion collections and this is again the regular pattern five AssertJ quals already something which is very smelly because you shouldn't have that many as this introduces not only a noise but also introduces an issue where one of those on the way will fail because that would lead to some sort of a snowball effect trying to figure out what's the issue and fixing one step after the other with AssertJ we can do it a bit easier it has assertions for collections built in so what we can say as you see in this example in the previous one what I'm doing I'm actually getting each of the elements and extracting the name and comparing it to what I'm expecting to have these are actually a checkbears which I tried so over the weekend pretty good what we can do if we are not in Java 8 yet we can have an extracting method which will get the name obviously it's not very factoring friendly but it gives already slightly better structure if we do use Java 8 and if you are Java guys you all should because it's gonna be deprecated anytime soon when Java 9 eventually be publicly available we can use a method reference I was thinking when preparing this example to put Pilsner Rookwell as well because that's not a check beer anymore it's owned by Japanese company but still produced here so I put the Slovakian ones I know still the problem here again is that if we will have size bigger than 4 it will fail we won't be able to reach this assertion what we can do with assert.j is to use soft assertions and this just gives two extra lines if we don't use JUnit and then it will be all grouped and reported at once if we use JUnit however we can use a rule and then the assertions look pretty much the same as the previous example so I highly recommend using assert.j this makes your life very easy and it has a lot of other interesting features question, yeah? sure if for example in this case the size would not be the one that we expect the test following after that could also be meaningless at that point exactly, it's actually this one maybe not this one, the previous one when I had all the 4 beers I was checking it's a bit redundant, that's true I'm one of the principles the question was does it make sense to have two assertions in one test which one fail actually eliminates a need of another or actually the second one makes the first one redundant that was the question adding noise to my... sure, that's a very valid point so normally the good principle is to have one aspect or one functionality per test which normally boils down to one assertion and this is what we should follow, that's true I mean, these are not perfect examples I agree, I just wanted to show in the smaller snippets what kind of features there are but normally your correct one assertion per test should do the job, especially in unit tests that's totally correct if you really have to have more than one then the soft assertion will help you because then it will group all the issues all together you don't have to repeat the test one execution after the other to figure out if the next assertion is failing or not but normally as a rule of thumb one assertion, one functionality per test should do the job and another pitfall or another smell I've seen so many times is that you test some logic, you throw in assertion then you test something related you throw in another assertion and this is obviously a candidate to refactor to two different tests because these are two different functionalities so thanks for this question the example is not perfect but maybe it was provoking to have this question as well so the other cool things we have as I mentioned is the code generation so you don't really have to write all your custom assertions for your business objects for example by hand you can use the scaffolding and then adjust it if you want so maybe the names which the generator provides are not what you like they are not too descriptive you can refactor but it's a good starting point and it also comes with the automatic conversion so if you have already a project with a lot of J-unit test and G assertions or FEST which was the predecessor of AcerJ AcerJ provides a tool to convert them on the fly so you can introduce very easily a new way of writing assertions if you like AcerJ and on top of that it comes with quite a bit of plugins if you use for example collections from Guava the standard ones like multi-maps and so on there is a plugin for that if you use Jodatime then you also are covered then for database testing or Neo4j there is also a custom one if somebody writes swing then there is also a plugin for dealing with swing using AcerJ for me the main benefit of using AcerJ is actually code completion there is another very popular framework which is called Humcrest and it also gives you a very nice way of structuring your tests or assertions which you can read pretty much like a natural language my personal problem with it is that it's all based on static factory methods for Humcrest and then on them you can say like is equal to something but you lose the support from IDE because in AcerJ you have an entry factory method which gives the assertion aware of the type you are testing so you have a support from IDE showing you exactly what you can verify with a given object and on top of that it also reads very natural at least from my perspective so that's a pretty brief introduction to assertions the key takeout for me is that we should write the tests that have a story there a narrative that assertions are oriented under your business domain you are testing and AcerJ gives you this capability pretty much out of the box what we also should do in unit testing especially is not only to test happy paths like my examples were showing we should also think about boundary conditions and one of the boundary conditions are error tests so testing how our application behaves when we pass some wrong values or if we have a correct exception handling and so on so the test taken from one of the projects I've been working for obviously not the same business domain actually had some sort of a BDD flow it was very hard to read because first and foremost you have try which gives a noise and then you have this very smelly turn in the catch block and then there is fail at the end the easiest way to fix it is to do as recommended or as logical by using fail method from Jagend for example pretty much you try where this is a method which is expecting to show the exception and if the next line is reached then you just call fail this is already not so bad there is still try which introduces some noise so there are tools which can let you do it better if you look at JUnit in particular you can test for exception just by defining it in the annotation and personally I think we shouldn't use it because we don't really know obviously these are two lines of code but sometimes it's a bit more than that we don't really know at which point the exception is expected to be thrown and if we don't have our own custom exceptions or we use two type which is too broad we don't really know what happens so expected exceptions by using just a test annotation from JUnit we should avoid and therefore JUnit comes with the rule which is called expected exception and this thing lets you be more concrete lets you set your expectations closer to where the error can occur I've seen people setting it up at the beginning of the test and this is a bit risky because it might happen that something on the way can throw similar exception and then you don't really know what happens so if you want to use expected exception then rule of thumb is to put it as close as possible to the method which actually can cause the error we are testing for so we not only can specify the type of exception we can also specify the method we are expecting but we have better tools for that if we are before Java 8 there is a small library which is called catchException and this pretty much proxies our component under test and lets us inspect in a more narrative way what was the problem with the or what was the error that our component under test thrown it's great except that the author stopped maintaining it when Java 8 came out because he said with Java 8 it can be fixed with just one lambda and makes this library obsolete so with AcerJ again we can do it in two ways it's pretty much both down to the same depends how from which angle you want to look at it you can say assert that thrown by and then you give the lambda block and then you verify the exception or you do it from the other angle you assert that the exception is thrown by with the message you have two ways, depends on your personal taste I think this is the most concise for me and most readable way and it tells exactly what we are expecting from this to happen for non-Java guys it might look a bit awkward I guess but from my personal experience that's the cleanest way of writing this kind of error tests question should it be the creating of the your abstract of the assertion so you can distinguish which part absolutely, you can actually you can put the given block which will be your stimulus to your test out of the shore, absolutely that's right and then you only have exactly the fail point wrapped in the lambda sure the next anti-pattern or common way of dealing with asynchronous or asynchronous calls is something I would like to spend a bit of time on so we can look at another example again about the beers we can have a service which places the order and this might be asynchronous so this approach will immediately fail because might be that this state was not updated yet it's not really a unit test because normally we would probably mock it so we would get an instant answer but if we go a bit higher than unit tests we will face some cases where asynchronous calls will be taking part of so the easiest and naive way is to just sleep, right? we just wait 200 milliseconds works on my machine we push to Jenkins for example and then it fails so what we do, we increase to one second it looks funny, it looks probably embarrassing but I've seen it so many times that I really thought it's important to spend at least one minute on this topic the other, and also you can see it in UI tests probably UI tests are those where you see it the most so we can make it better with one tiny library but before I show you one last word about this approach is that we pretty much expand our build time by one second and each and every time we invoke it which is first of all not needed and second of all pretty smelly and painful there is little library for Java which is called awaitility and this gives you a way of wrapping your call and then for example pulling it for two seconds until the condition is satisfied reach probably better, won't wait two seconds until it's finished by default it pulls every 100 millisecond I guess but then it's closer to the real response than putting a brutal thread slap in the code thread slip and this is what I was referring to before to huntress these are the static methods which you as I call it onion and it's readable more like a natural language if you like to use assert.j again you can do that the library provides also a way of doing it by just passing a lambda with verification so if you have to deal with asynchronous calls forget about thread slip for simple cases and for UI test awaitility which boils down to one line of calls eventually will do the job for you and your test will be less flaky, faster and way more readable additional benefits from awaitility is that it actually is able to detect deadlocks on top of that you don't need to have this fixed polling mechanism which pulls every 100 millisecond if you know you are dealing with something more sophisticated you can use maybe Fibonacci sequence you can use an iterative so every polling will be multiplied by two or if you want to do something more fancy there is also a very easy SPI to do so so if you will need to deal with asynchronousity definitely highly recommend this library it's very tiny, small jar, not a lot of magic and tests are way more readable your friends from the project will thank you after some time for sure ok let's jump a bit to the higher level of tests and let's talk a bit about testing REST endpoints so again we have an endpoint which returns strongest beers let's say I have just those three I'm aware of I'm not sure if you see it clearly but this is the actual bottle of this beer not produced anymore it was wrapped in squirrels Scottish brewery called Brewdog ok so the thing you can see pretty frequently is to use for example Apache HTTP client again taken from one of the projects I was working in so we have an initial context where we just set a get call then we set the clients then we need to do something with the response so we unwrap the body we can check the status and then we need to do something if it's JSON with return JSON and then assert on the elements of this response and then obviously at the end we have to clean up the connection otherwise we might end up with some memory leaks so there are several problems here first of all it's not really clear what's going on there's a lot of levels of abstraction which introduces noise but the test doesn't tell the story the right way there is a very nice library which is designed for testing rest endpoints I mean I've seen people using it for just interaction with rest endpoints but I wouldn't recommend because it's quite maybe not heavy but it uses groovy underneath which normally you don't need to especially when groovy is used for asserting you don't need to bring so many dependencies just interact with rest resources but for testing purposes it actually provides you a behavior driven way of defining what is the interaction and what would we like to know about the response and personally for me it's way easier and it tells exactly what's going on if you compare it with the previous example we have probably like 3-4 times more lines of code and this is doing exactly the same thing again what we can do we can assert on the status and then there are several ways I will show in the follow up examples what we can do with the content the easiest thing which is probably too happy a case is we can assert on the sides what we can also do is obviously having some query params we can also do the testing for example limit on the return collection here there is a convenient method which is called param and this will be then inferred based on the HTTP method called either to query or path params but if you want to be more verbose or more precise there is query param and path param available as well and then there is, if we deal with JSON it provides some sort of a JSON path expression where we can just extract all the names and verify the content of it we can do better things with verifying the content as I said it comes with groovy so even though it's a string in some ideas you can inject support for the given language this is g-path which comes from groovy and g-path you can think about it like similar to x-path it basically is expression language which lets you interact or inspect the structured data so it works with XML it works with JSON out of the box here what you see I pass the I call the find all method which is the method available on the structured data with some condition on it and then I can call a size for example and I can verify the content so if you have a bit bigger payloads or bigger responses there is a pretty convenient way of verifying those as well but obviously sometimes something can go wrong so we can lock what's going on we can lock pretty much everything what's concerned about the requests params, body, cookies, method, path or everything and the same for response whereas in response we can actually leave some of the logging for the tests because the previous request logging is probably only useful when you have a test failure and you want to see what's going on then I normally remove it because it's a noise and lock will be super huge in your build or in your CI environment whereas for responses you can actually have some conditional logging for status or validation failures or if you have some custom matches just a tip of an iceberg the other interesting things we have in REST assured we can have a request specification so we can have one shared request spec when we have for example authentication or some other common elements extracted in the setup method and we can share it across all the calls in our tests this will give us cleaner tests less duplication and reusable request spec we can have custom parsers so if we return something which is different than JSON or XML this can be used to handle this use case SSL support and we have filters which let you do something like intercepting request response doing some things with authentication with logging or maybe session management that's fine so yeah highly recommend using REST assured very good library for testing very descriptive and also very helpful when it comes to debugging and analyzing what's going on ok let's go one step further then because the previous example of interacting with REST resources was more thought about having calls to your own components but what about the case when we have to integrate with the third party services so we can for example have a rate beer service which is a website for rating the beers and we can check if our client code actually works as it should but there are certain problems about it for example we might not have a network network might not be reliable we can have a limit on the API calls we can have some other random things because the component we are interacting with underneath is not under our control so how we should deal with that we can have our own fake ACTP server so we can stop responses we can have quite a bit of boilerplate code to do it but this probably is good as a first step the issue with this approach is that we might not really reflect the reality so the headers and the content is just our understanding and we will have to maintain it having the knowledge of the third party service so good as a start but probably not good in the long run so we can mock ACTP layer as well but then again we are working we are testing in the setup where this is our understanding of how the things are working and we are not really sure if the contract between us as a consumer and the provider is still guaranteed it's still respected so one of the approaches which you can consider is so-called service virtualization so again we'll be showing Java examples but there are tools in Ruby there are tools in JavaScript to do the same the idea is that you can have some how do you call it like a thin proxy in between which will let you go to the real service but on the way it will record it and then the next time you run it will pretty much just use what you have so in JavaScript there is a tool called prism in Go language there is a tool called VHS comes from the inspiration comes from Ruby it was VCR I think that was the name of the testing tool so in Java we are a bit better than Ruby we have Betamax for example there is also a tool which is called Wiremock which can be used for exactly the same purpose but with Betamax you have just a tiny little annotation and the magic happens underneath if you use JUnit so Betamax is a concept of tapes so this is the name of the tape which is pretty much just a file storage with all the interaction happening between us and the third party service it works as a transparent proxy if we set up the JVM correctly if not then you have a way of just having an HTTP client which will serve the same purpose so the tape is just a YAML file it has everything captured you can also have some regular expressions it handles the binary content as well and then we have several strategies we can have read write which was what I was explaining before so the first call if there is nothing will go to the real service then on the way back it will be persisted so the subsequent runs will be using what we have in the local storage then there is read only which means we assume we know what's going on there is no network probably so we can use it just with our isolated environment the write only will just overwrite everything and then there is another two cases read sequential and write sequential this will just go over the whole tape and without any matching will reply the request responses so one tool for doing service virtualization with lightweight quite simple but for a lot of cases very usable if you want to have more control then wire mock might be the better choice for you okay then let's talk about the UI test as we are going higher and higher in the testing pyramid which I personally don't believe we should use as a silver bullet or the hierarchy of tests blindly but it's a good starting point to think about the amount of tests in your project so the UI tests most of the times even if you are not a Java guy you use WebDriver Selenium WebDriver which are now the same things so again the example of the tests which I've seen pretty frequently in the project which I would assume came from Selenium Firefox IDE which lets you record and gives very low level operations on the browser on the DOM and this is just not readable just terrible code right we have ThreadSleep which I was talking about some magical IDs we don't really know what's going on except of the name of the test itself and then I'm not sure if you know what this 13 should be doing it's pressing enter right but yeah it's probably not the right way of writing your tests I mean might work at the beginning but as the project evolves and people are changing you will probably delete those tests afterwards so there is no benefit of having such beasts in your code base so something which is actually suggested by Selenium WebDriver Fox is to use page object patterns how many of you have heard about page objects just a few so basically the idea is that you introduce classes the character of classes which model your UI and this is what you use in the test itself so it abstracts away what is the interaction with the browser because WebDriver is not really a testing tool it's a browser automation tool so page objects will give you a way of structuring your components and hide the complexity of your tests in those and expose the interaction with your web app through some meaningful methods which actually describe more what user is doing but not what browser is doing and that's the main purpose of it so if we would look at the slightly re-written test I think it's a bit nicer to follow what's going on so we create the page which is encapsulating our website we need to pass a driver which is the WebDriver object, a URL which we would like to use in the browser but then all the other interactions are described more in the way of how user would do it if we peek into the class itself it's just simple encapsulation with the way how to locate the elements and then how to interact with them but again you can reuse them across all your tests and you hide the nitty-gritty details so the tests are telling the story almost my personal experience with the page objects over the time with the not so big team, different skills is that it's getting very hard to maintain and it can result in God objects so we can have an object which represents the page with everything that's in the page and then it's like 2,000 lines of code and you will be lost after a while trying to figure out what's going on when the test fails and UI tests tend to be flaky unfortunately and on top of it it violates single responsibility principle because if you look at the class itself it first defines how the elements should be located and then encapsulates the interaction with it and then on top of it as I said the test should tell the story but who am I in this test am I a browser? a page? I mean it's a great starting point people who are strongly involved in acceptance test driven development they came up with a better idea some of the shortcomings of page objects like for example huge classes with a lot of logic responsible for finding elements this can be solved with another framework built on top of web driver which lets you define page fragments and then you can slice your websites to smaller bits and then reuse them so you might not have an insane hierarchy of classes and insane amount of web elements which are the smallest bits of web driver DOM representation but you can mix some smaller fragments and reuse them like for example calendar widget or whatever so there are things which are making it nicer just obviously as I said web driver is a browser automation tool there are some nice tools built on top of it which makes you write test more concise and more user oriented for example from Groovy there is gap there is a lot of selling ideas another one which is more oriented towards testing the page rather than clicking and opening but another approach to fix it is some evolution of page objects which is called journey screenplay pattern and the whole idea behind it is that its user is the entity of your test is the key point of the test and you see exactly that the user plays a role there is no browser open no page search for and so on and so forth another idea which it promotes is that the components are small and reusable and they are highly readable at least that's what they say the code is a bit small so I'm not sure if you can see from the bug but what it says given that Bartos was able to start the app when I attempt to search then I should see that it has this item so there are frameworks which actually gives you those small building blocks and then the test will be written in this DSL fashion if we look at this part which is still hiding the real interaction the page the journey pattern has roles, has actors has tasks and actions underneath so these attempts too can be broken down to entering the value into the search field or hit the return or enter key on the search field obviously you would like to probably hide it because this is not appropriate level of abstraction but the key point here is that you have those small components which you can build together and have tests saying some story actually so as an example there is a Serenity BDD framework which came from Java and now there is JavaScript version using Protractor underneath if you would like to know a bit more because actually it's a topic for the whole presentation that's a short link explaining all the details all the ideas behind this evolution of page objects and that's pretty much all what I wanted to share with you so just as a recap if you write tests do it well or don't do it at all because if you write ugly tests, flaky tests there is no benefit deleted because it will just cause problems and it will add time to evolving the project so tests should tell the story one way of using it or doing so is to have custom assertions strongly encouraged to avoid wrong abstractions and boilerplate and from my perspective tests should be readable, they should be repeatable and probably most importantly reliable and that's all I've got I'm Bartos Maesak, I work for Red Hat in DevTools tell me your thoughts about the talk, that's my twitter handle if you want to see what I'm hacking, that's my github I'm originally from Poland so thanks a lot for staying with me we still have seven minutes I guess so I'm open for questions so probably won't be able to show it now the question is can I show how to create custom assertions not ready for live coding but what I normally do not only for custom assertions but even for tests when I want to have some DSL I just write the test in the way I want to read it and then I implement it but for custom assertion in particular AsterJ comes with the generator so you define an object you want to have a custom assertion for and then it will go over all the fields it will generate the methods like hasName, hasAge, hasSomething and it's very similar like you would think about builder pattern generators for IDE, for Eclipse for IDEA and so on Visual Studio has it for sure as well but normally my take is I just write it the way I want it to have I have compilation errors obviously but then I implement it and that's a bit of discipline but it pays off dramatically I mean these are so simple that normally you don't I think but that's a valid point I mean testing your tests it's another interesting topic if you said yeah, sure but I mean it boils down actually to reusing existing assertions most of the times you have primitive types or some collections and these you have already out of the box in those libraries and there is no point of testing these libraries assuming that they are tested well about testing your tests there is interesting topic about mutation testing but that's another thing probably for another talk but if you are interested about the crazy idea of testing your tests have a look at mutation testing concept okay, thanks a lot I'll have the next time the best practice to test your services suppose I am developing the REST service and I won't write tests so these tests are running with my unit test so you are developing the REST endpoint yeah what I was normally doing what I normally do is I test the components which are served then as the REST resource as a unit test so the business launch everything and then I have few of the happy paths and some boundary conditions as a black box test for the REST API so that's normally what I do there is another interesting concept for doing that which is called contract driven tests so when you have a producer and consumer you define the contract between them and then providers so your REST resource you try to do it at some point you need to implement what are the expected behavior or expected payload or whatever but this you can use even before your REST resource is implemented from the client because you agree on how the interaction will be going on so that's not a new concept because I mean SOAP had the same with contract first approach just nowadays there is more and more tools not only Java then PACT is one of the tools which is providing that and it works for JVM it works for GO it works for JavaScript and I think for .NET and this is all about contract testing so you define the contract interaction how it should be then provider will eventually comply to it but client can start implementation of its own because it's like a mocked or stopped request response but how to organize it if I would like to test REST service it should be deployed somehow how do you automate with this stuff so if you use these tools for contracts or even stabbing it with my wire mock you don't need to because you just are interested in the payload right so this you can store other than that there are tools for you should have so normally what we were doing we were just deploying it automatically with some predefined set domain data these are not integration tests but such system tests so basically you are testing it already in continuous integration not on your machine also on my machine because there are tools which let you start all this stuff straight from the test for example come to my talk at 3pm I'll show straight hopefully this demo will be working but we'll see okay cool how was your talk I don't know you tell me I was not sure sorry okay well I said what I was planning to do so I lost only two guys had some questions I watched it later and I tell you or you watch it and you tell me okay thanks for a real nice presentation cool thank you glad to hear that so see you in an hour right okay okay okay thank you for reminding me about repeating the mistakes I always forget and keeping the time cool then see you in a minute okay so we are the next yes what's your name Matej because in Portuguese we say matej we play matej in Czech thank you thank you for the explanation you can use this one here you can do you can prepare atmi or bj it's up to you but there is atmi we use atmi there is idon't condition somewhere yeah here thank you disable wait and please repeat the question okay because of recording and we will show you like 10 minutes before the end like it's 10 minutes sign here


How's everybody doing welcome back to my channel this week? I'm actually gonna be tattooing my co-artist Andrew and the piece that we're gonna be doing on him is his Frenchy I am excited.  Let's go. That's like beautiful skin. That's like super beautiful It's like paper bro if paper was a human it'd be Andy Now you get to ask me questions like how I started tattooing What made me want to start tattooing? You're the client bro.  You don't know nothing today. You're not an artist today You can't help it. You can't help it Didn't hurt. I'm sorry that I hurt you with the stencil. I'm sorry Mr. Klein I'm gonna have you stand up. Yeah So the approach that I'm gonna be taking is for this piece making sure that I use a lot of tones. I Clearly have here a beautiful canvas super white skin and With that I'm able to use Light grays medium grays dark tones highlights Like everything you can you can literally use everything.  I'm excited I don't get this kind of skin complexion on a daily basis, you know, I mean We're done with the bottom portion of this piece. We're gonna start on the body The way I'm looking at right now, I feel like I'm gonna be using a 3-1 liner and if I feel like that's too thin I'm gonna switch to a 7 round liner. Yeah, there's a lot to play with here So I definitely want to see what I feel more comfortable with either with a 3-1 liner or a 7 Okay, okay. Oh, yeah 7 7 it is Yep, the 7 round liner so first I'm gonna lay down my solid black with texture here and Then I'm gonna go back on my say with my second layer and out of my medium grace To execute this part of the piece I'm gonna start using my 7-round liner with a voltage of a 5.0 and the technique that I'm gonna be using is my scribble Technique if you guys are new to this channel the scribble technique is basically me doing little X's circle Squiggly lines all over the place You're not following a pattern all you're doing is doing a little bit of everything to create that texture that you need to give it That depth on this piece on those gaps that I'm leaving in between the black I'm gonna apply later on my medium gray and my light grays to give it that Dimension and that realism that I'm looking for Let's start applying my medium gray and my light gray and in between those gaps I'm gonna start adding those little texture that I was talking about earlier The technique that I'm gonna be using here is a combination of doing texture and also feathering the skin Since I'm using such a low voltage I like to stick on my needle as much as I can that way whenever I'm brushing the skin I can feel the skin vibrate and that's letting me know that I'm packing in the ink the way I'm supposed to The cartridges that I'm gonna be using for the chest area is my 11 curve mag the reason why I'm using this cartridge is because it is gonna help me to do those little hairs on the chest area where It looks natural and not too much or too dark or it's too harsh on the skin Thank you so much for coming back and watching this brand new video I hope you guys liked it and let me know what was your favorite part of this tattoo So with that being said if you're a tattoo artist, I hope you learn something from this video And if you're a tattoo enthusiast, I hope you're very entertained. Thank you so much for watching. I'll see you guys next week. Peace


Sometimes, my robot vacuum cleaner will get caught on a ledge between rooms and sort of rock back and forth until it can free itself. It's a kind of vacuum metastability event. Okay, so we did the thing about local Maxima, and I'm glad that we did it. Really, it's an important concept. It informs how I think about a lot of stuff, and I think I was able to do it justice. But to make a halfway decent script, I had to cut something that I really wanted to talk about. Well, my editor is out of the country, and she can't stop me this time. Buckle in, folks. We're in for a wild ride. So way back in episode, oh god, 24? Definitely don't watch that. It's probably garbage. Watch the PBS space-time stuff instead. Anyways, we discussed the Heisenberg Uncertainty Principle, specifically the position-momentum formulation of it. Because subatomic particles are very small, figuring out where they are isn't as easy as just, oh hey, there it is. Observing them requires interacting with them in some fashion, and the more precisely you want to know their position, the stronger that interaction has to be, and the less certain that you can be of their momentum at that moment that you punch them with a laser pulse or whatever. But that's not the only version of the Uncertainty Principle. Let's say that you have an electromagnetic wave of some sort, and you want to know its frequency. If you can only measure it for a brief moment, getting a single little squiggle like this, it's difficult to be sure exactly what its frequency is. If you squint at that wave form, you could convince yourself that it's any number of values. But if you can really draw out your measurement for a long time, averaging over 50 or 100 peaks, you can get very, very close to determining the actual frequency of the wave, which is directly proportional to its energy. This is an example of the energy time version of the Uncertainty Principle. The shorter the period of measurement, the less certain we can be of the frequency, and therefore energy of a quantum state. So what about the quantum state of nothing? No particles, no photons, nothing at all. Everything that we might think of that could potentially provide energy to a section of empty space, electric fields, magnetic fields, particles with mass and velocity, if we get rid of all of that stuff, then we can expect that there will be an average energy of zero over enough time. But over very, very short periods of time, the Uncertainty Principle states that we can't be 100% certain how much energy there is in that empty space. That implies something really weird. So long as you get back to zero energy faster than the Uncertainty Principle requires, you can borrow some amount of energy to make, well, anything you want. Protons, electrons, photons, gluons, any of the subatomic particles can suddenly pop into existence in empty space and vanish again. There are a few rules that govern these so-called virtual particles. They must obey conservation of charge and momentum, which means that they're generated in opposing pairs. A virtual electron always comes with a matching positron. A virtual proton always has a sister anti-proton and so on. Also, because of the limitation set by the Uncertainty Principle, more massive virtual particles can't exist for as long as smaller ones. After all, they have more energy. E equals mc squared and all of that. If you don't have any previous experience with quantum mechanics, this all probably sounds like speculative baloney. But check this out. If you take two metal plates and hold them very close to each other, there are a number of particles that simply couldn't exist in that space anymore, like a radio wave with a long, lazy wavelength would never fit. The closer the plates get together, the more frequencies or possible energy states of particles get excluded from the space in between. Now, if there are no virtual particles, no big deal. But if these particles are popping in and out of existence all the time, the bigger ones can only appear outside the place, meaning that they'll only be bouncing off the outsides, not the insides.  More particles outside than inside would create pressure. And in fact, if you do this experiment with a spacing of just 10 nanometers, the plates will be pushed towards each other with the pressure of one atmosphere. So to recap, the Heisenberg Uncertainty Principle tells us that we can't be certain that empty space doesn't have these spontaneously generated pairs of virtual particles, at least over very short timeframes. If you artificially exclude these virtual particles from the space between metal and plates, you can feel the plates getting sucked towards each other by a real pressure differential. It's called the Kazimier effect and it's fricking bonkers. But hang on, if we're getting some sort of force out of otherwise empty space, that's energy.  The mathematics of quantum physics readily verified this idea. There are a number of equations for quantum fields and particle energy that you can plug nothing into and get some amount of positive energy out. It seems that our universe has a baseline energy level just from empty space that's somewhere above zero. So what does that mean? Can we, you know, use it? I mean it sure would be nice if my phone could just liberate energy from the fabric of space itself instead of needing me to plug it in all the time. Well, it's possible that the energy might be liberated someday. But if that happens, a dead phone is really the least of my worries. The energy of empty space is called vacuum energy and you can calculate it directly using fundamental physical constants like the Planck length and the speed of light. That value is 10 to the 113th joules per meter cubed. For comparison, the atomic bomb that devastated Hiroshima was about 10 to the 11th joules. So, you know, take that, compress it down to one meter on a side, then multiply it by one with 100 zeros after it and you'll only be short by a factor of 100. However, you can also calculate it by measuring its effects in the universe, things like the Kazimir effect and the acceleration of cosmic expansion. That value is kind of tiny, only 10 to the negative ninth joules per cubic meter. I'd need to drain millions of cubic meters of space of energy just to charge a AAA battery at that level. That's quite an embarrassing discrepancy that remains unexplained, so embarrassing that it's known among physicists as the quantum catastrophe. But, speaking of catastrophes, what if the 10 to the 113 number is the actual vacuum energy and the reason we only measure 10 to the negative ninth is because our universe is balanced in a local minimum, like a ball in a little ditch on the side of a mountain. In this scenario, the vacuum energy we're measuring is a false vacuum. The real vacuum energy is 100 zeros down from where we are, and it's just a wacky chance occurrence that we find ourselves in this little metastable divot. If that were the case, we might be in trouble. Quantum particles can spontaneously hop energy states in a weird process called quantum tunneling. You'll occasionally see an electron jump up or down a couple orbitals in an atom without any apparent cause, essentially skipping a high energy in between state. If some pair of virtual particles somewhere in the universe happens to hop to an energy state on the other side of our little hump, they'll drop down to the much, much lower true vacuum state, releasing all that energy on the way down and dragging everything around them with them. This theorized scenario is called a vacuum metastability event, and it's bad news for everything. Not only would this massive cascading release of energy simply boil everything in its path into plasma at the speed of light, the fundamental laws of physics that apply to our current vacuum energy state would be totally changed. The existence of particles, the operation of forces like gravity and magnetism, everything that we know about the universe and how it works would be unmade and replaced by some other system, quite possibly one that doesn't support the formation of matter. Like I said, phone charging, not the biggest problem. A vacuum metastability event would unmake the entire universe at the speed of light. It might have already happened somewhere in the cosmos or in several places. Of course, we don't really have every aspect of quantum mechanics totally worked out yet. Maybe our predictions about what the vacuum energy ought to be are way off. Maybe we're already in the lowest real vacuum energy state and we'll just keep on keeping on the way that we have for the last 14 billion years.  Is the existence of virtual particles the wildest thing that you've heard for a while? What do you think of the possibility of a vacuum metastability event? Please leave a comment below and let me know what you think. Thank you very much for watching. Don't forget to blah, blah, subscribe, blah, share. And don't stop thunking.


My name is Kate Shamba from the Portland Parks Conservancy. I'm coming from you to you from Lincoln Park on this absolutely stunning day to tell you a few things about my organization and some cool things that are coming to this park and other parks around Portland. The Portland Parks Conservancy is a small young nonprofit that helps enhance the parks around Portland. We work very closely with Parks and Rec and the people of Portland to make sure that needs and wants are being met in the different parks around Portland. This year would have been Olmstead's 200th birthday. Frederick Law Olmstead is an architect who designed landscapes and public parks around the entire country. He did Central Park, the Chicago World Fair, Yosemite National Park and many parks that you might find very familiar, including the Emerald Necklace in Boston. Inspired by the Emerald Necklace, he came up, or his firm, came up to Portland to design something similar to connect the parks around Portland. You can thank the Bat Cove to some of his work, as well as many other parks in Portland to his inspiration. To celebrate his work and the things that he made possible around the United States, we are celebrating his birthday around the country in different parks for free public events celebrating something called Olmstead 200. In Portland we're taking a little bit further. We have events public and free to everyone in all the different parks around Portland. Friends of Lincoln Park are putting on a concert series, four concerts, four Tuesdays in a row, free and open to the public for local artists. We also have other events going on. Sail Main is putting on an event of colorful, painted sails, setting sail off of Casco Bay. Come watch them buy Sail Main or in Amethyst Park by Ocean Gateway. We have other events going on, such as a documentary being put on in Congress Square Park about Olmstead and all his work and the things that he made possible. And finally we are going to have a big open picnic in Amethyst Park down by Ocean Gateway. On September 10th, we'll have food trucks, we'll have live music and a whole lot of fun. So feel free to come join us.


We have a lot of choices to make about our diet. Add to that doing the right thing when it comes to preventing or treating a chronic disease, fighting a virus, or losing weight. And suddenly our nutrition choices can seem almost overwhelming. Well, I'm here to help. Welcome to the Nutrition Facts Podcast. I'm your host, Dr. Michael Greger. Today, it all comes down to the shape and support of our body, the protection of our organs, and those things without which we would become quickly a gelatinous mass. Our bones! In our first story, we look at how those eating plant-based diets may be so slim that they may suffer from a loss of bone mass. Osteoporosis is estimated to affect 200 million people worldwide. Literally meaning porous bone osteoporosis is a disease characterized by reduced bone formation, excessive bone loss, or a combination of both, leading to bone fragility and increased risk of fractures. And bone mineral density is the most robust and consistent predictor of osteoporotic fracture. What can we eat to boost our bone density? Well, we know that increasing consumption of plant foods is associated with increased bone mineral density. There is an extensive range of micronutrients and phytochemicals packaged within plants that can be powerful promoters of bone health. So healthcare professionals should be encouraged to advise the increased consumption of plant-based foods, particularly in mid-life, irrespective of the client's underlying dietary pattern, meaning no matter how much meat or junk they eat, adding more healthy plant foods may help prevent the development of osteoporosis. On the other hand, a more animal-sourced nutrient pattern has been associated with a higher risk of fractures, suggesting that a more animal-based diet is related to bone fragility. Who would expect less osteoporosis in those eating plant-based diets? But you don't know until you put it to the test. The incidence of osteoporosis in vegetarians and omnivores the first study published nearly 50 years ago, and the density of the bones that were measured was significantly greater in the vegetarians than the omnivores. In fact, the average bone density, so the vegetarians in their 70s, was greater than the densities of the meat-eaters in their 50s. Online, these results suggest there's less likelihood of vegetarians developing osteoporosis in the old age.  Dexascanning, which is what we use now, didn't come online until the 1980s, so the researchers were just using just regular x-rays, and they confused the readings such that darker bones on the x-ray got a higher score, but that actually means less bones, so their conclusion should have been the opposite of what they claimed, so vegetarians had worse bone mineral density. Fast forward about 40 years, by which time 9 studies have been done on thousands of individuals, and all in all, the results suggest that vegetarian diets, particularly vegan diets, are associated with lower bone mineral density, but the magnitude of the association is clinically insignificant, meaning the difference was so small as to not really matter out in the real world, reinforcing the fact that vegetarian diets have no clinically detrimental effect on bone health. And it's important to note that the findings of lower bone mineral density didn't fully control for key confounding factors, such as for differences in body weight. We know that people who are obese have stronger bones, why? Because their weight lifting 50 pounds all day every day, and maybe 100 pounds.  That's how you build strong bones, weight-bearing exercise, so people who weigh more have denser bones. And vegetarians, especially vegans, have such low rates of obesity that no wonder, on average, they would have lower bone density. The researchers didn't take weight into account, but if the difference they found isn't even clinically significant, who cares? As of 2009, the answer to the question, is vegetarianism a serious risk factor for osteoporotic fracture? The answer was no, vegetarianism is not a serious risk factor. By 2018, the latest meta-analysis on veganism, vegetarianism, and bone mineral density were up to 20 studies, involving tens of thousands of participants, and, again, lower bone mineral density was found in studies of vegetarians and vegans compared to meat-eaters. The researchers conclude that vegetarian and vegan diets need to be appropriately planned to preserve their bones. But wait, did they account for the obesity thing? No, they did not. They just used what are called crude risk ratios, meaning no adjustments for confounding factors like weight. So they didn't control for things like age, smoking, obesity, exercise, and so the results are really uninterpretable. But no one had gone through the trouble of going back through all those studies and making the proper adjustments until now. The title gives it away. Differences in bone mineral density between vegetarians and non-vegetarians become marginal when accounting for differences in body size factors. Yes, bone mineral density values were significantly lower among vegetarians than among non-vegetarians, just like is the case with nearly every study on bone mineral density and excess body weight, but forget clinical significance. These differences even lost statistical significance upon adjustment for body size factors, suggesting that lower bone mass among vegetarians is in larger parts explained by their lower BMI and waist circumference. Thus, it's not so much the composition of the diets of vegetarians and vegans as much as it is the fact that they become so much slimmer. Now a small but statistically significant difference remained for total lower spine density, a difference of 0.03. This was dismissed as having little clinical relevance, but is that true? If you look at the reproducibility of bone mineral density measurements in daily medical practice, you can see how if you repeat tests back to back, there's some scatter in the measurements. And so a significant difference really has to be more than the inherent variation. And indeed, expressed as the smallest detected difference, you really need a bone mineral density disparity of at least 0.05 at the spine before it can be considered a significant change. And so indeed, there does appear to be little clinical relevance. However, even if vegetarians and vegans basically have the same bone density at the same weight, everyone who is skinny is at risk. Low BMI is a risk factor for fracture, so all persons in a low body weight category, consuming any kind of diet, should be monitored for osteoporosis. In our next story, we look at the decades-old dogma that animal protein leads to bone loss. For most of the last century, a prevailing theory within the field of nutrition was that by eating acid-forming foods such as meat, we were in essence at risk of peeing our bones down the toilet. And no wonder experiments dating back to 1920 showed over and over that if you add meat to the diet, you get a big spike in the amount of calcium being lost in the urine. And so this made total sense. We had known since 1912 that meat was acid-forming within the body. And how do you buffer acid? What are in antacid pills? Anti-acid pills like Tums? Calcium. Meat and eggs have a lot of sulfur-containing amino acids. 2 to 5 times more than grains and beans that are metabolized into sulfuric acid, which the body buffers with calcium. That's why the antacids like Tums are made out of calcium. Calcium can buffer acid. And where is calcium stored in the body? The skeleton. So the thinking was that every time we ate a steak, our body would pull calcium from our bones bit by bit, and over time this could lead to osteoporosis. Based on 26 such studies, every 40 grams of protein we add to our daily diet, we pee out an extra 50 milligrams of calcium. And look, we only have about two pounds of calcium in our skeleton, so the loss of 50 a day would mean losing close to 2% of our bone calcium every year. And so by the end of the 20th century, there was little doubt that acid-forming diets would dissolve our bones away. But if you actually look at all the studies done on protein intake and bone health, that's not what you find. So where is the flaw in our logic? Meat leads to acid, which leads to calcium loss, which leads to bone loss, right? Well, it's uncontroversial that protein results in greater calcium excretion. But we've just been assuming it's coming from the bone. I mean, where else could the extra calcium dumped in our urine be coming from, but from our bones? This is the study that appeared to solve the mystery. An intrepid group of researchers tried feeding a bunch of volunteers radioactive calcium and then putting them on a high protein diet. What happens when you put people on a high protein diet? The amount of calcium in their urine shoots up. And indeed, that's just what happened. But here's the big question. Was that extra calcium in their urine radioactive or not? And to everyone's surprise, it was radioactive. Meaning that the excess calcium in the urine was coming from their diet. Remember, they're feeding them radioactive calcium. So the excess calcium in their urine wasn't coming from their bones, but from what they were eating. What seemed to be happening is that the excess protein consumption boosted calcium absorption from down around 19% up to 26%. So all of a sudden, there was all this extra calcium in the blood. So presumably the kidneys are like, whoa, what are we going to do with it all? So they dump it in the urine. 90% of the extra calcium in the urine after eating a steak doesn't appear to be coming from our bones, but from our diet. We're not sure why protein boosts calcium absorption. Maybe the protein increases the solubility of calcium by stimulating stomach acid production. Whatever the reason, yes, more calcium lost, but more calcium gained such that in the end, most of that extra calcium is accounted for. Soon in effect, more calcium is lost in the urine stream, but may be compensated by less loss of calcium through the fecal stream. This was repeated with even more extreme diets, an acid-forming five burgers a day worth of animal protein diet that limited fruit and vegetables, versus an alkaline diet emphasizing fruits and vegetables. More calcium in the urine on burgers, but significantly greater calcium absorption, such that at the end it was pretty much a wash. Other studies have also since supported this interpretation. Here's an ingenious one. Feed people a high animal protein diet, but with an alkaline salt to neutralize the acid. Now the old thinking would predict that there would be no calcium loss since there was no excess acid to buffer. But no, even though the acid load was neutralized, there was still the excess urinary calcium consistent with the radioactive isotope study. Challenging this long-standing dogma, the animal protein consumption results in an acidosis that promotes the excess excretion of calcium. Finally today we look at how the galactose in milk may explain why milk consumption has been associated with significantly higher risk of hip fractures, cancer, and premature death. Milk is touted to build strong bones, but a compilation of all the best studies found no association between milk consumption and hip fracture risk. Drinking milk as an adult may not help bones, but what about in adolescence? Harvard researchers decided to put it to the test. Studies have shown that greater milk consumption during childhood and adolescence contributes to peak bone mass, and is therefore expected to help avoid osteoporosis and bone fractures in later life. But that's not what they found. Milk consumption during teenage years was not associated with a lower risk of hip fracture, and if anything milk consumption was associated with a borderline increase in fracture risk in men. It appears that the extra boost in total body bone mineral density you get from getting extra calcium is lost within a few years, even if you keep the calcium supplementation up. This suggests a partial explanation for the long-standing enigma that hip fracture rates are highest in populations with the greatest milk consumption. Maybe an explanation why they're not lower, but why would they be higher? This enigma urked a Swedish research team puzzled, because studies, again and again, had shown a tendency of higher risk of fracture with a higher intake of milk. Well, there is a rare birth defect called galactosemia, where babies are born without the enzymes needed to detoxify the galactose found in milk, so they end up with elevated levels of galactose in their blood, which can cause bone loss, even as kids. So maybe the Swedish researchers figured even in normal people that can detoxify the stuff, it might not be good for the bones to be drinking it every day. And galactose doesn't just hurt the bones, that's what scientists use to cause premature aging in lab animals. They slip them a little galactose and you can shorten their lifespan, cause oxidative stress, inflammation, brain degeneration, just with the equivalent of one to two glasses of milk worth of galactose a day. We're not rats, though, but given the high amount of galactose and milk, recommendations to increase milk intake for prevention of fractures could be a conceivable contradiction, so they decided to put it to the test. Looking at milk intake and mortality, as well as fracture risk, to test their theory. 100,000 men and women fall for up to 20 years. What did they find? Milk drinking women had higher rates of death, more heart disease, significantly more cancer for each glass of milk. Three glasses a day was associated with nearly twice the risk of death, and they had significantly more bone and hip fractures, too. Men in a separate study also had a higher rate of death with higher milk consumption, but at least they didn't have higher fracture rates. So a dose-dependent high rate of both mortality and fracture in women, and a high rate of mortality in men with milk intake. But the opposite for other dairy products like soured milk and yogurt, which would go along with the galactose theory, since bacteria can ferment away some of the lactose. To prove it, though, we need a randomized controlled trial to examine the effect of milk intake on mortality and fractures. As the accompanying editorial pointed out, we better figure this out soon, as milk consumption is on the rise around the world. We would love it if you could share with us your stories about reinventing your health through evidence-based nutrition. Go to nutritionfacts.org slash testimonials. We may be able to share it on social media to help inspire others. To see any graphs, charts, graphics, images, or studies mentioned here, please go to the Nutrition Facts podcast landing page. There you'll find all the detailed information you need, plus links to all the sources we cite for each of these topics. For a vital timely text on the pathogens that cause pandemics, you can order the e-book, audiobook, or the hard copy of my latest book, How to Survive a Pandemic, or go to your local public library, for that matter. For recipes, check out my new How Not to Diet Cookbook. It's beautifully designed with more than 100 recipes for delicious and nutritious meals. And of course, all the proceeds I received from all the sales of my book, Scov2Charity. NutritionFacts.org is a nonprofit science-based public service where you can sign up for free daily updates on the latest in nutrition research via bite-sized videos and articles. Everything on the website is free. There are no ads, no corporate sponsorships, no kickbacks, it's strictly non-commercial, not selling anything. I just put it up as a public service, as the labor of love as a tribute to my grandmother, whose own life was saved with evidence-based nutrition.


Okay, so I looked it up the other two wolves are spices, but Bergamo is like just a place in Italy Is it cuz he's like the leader of the pack base or that he has to be special ladies and gentlemen welcome back to the channel My name is Jack the boss right shinobi. We have episode 81 of our Dragon Ball Super watch today We're at the final match the Grand Zeno Expo. It's Goku versus Bergamo We've won both matches already boo and Gohan came through so there's no way that we just completely like one shot All of these guys right or does it go that easily? I mean they are technically the weakest universe it was revealed last episode so hopefully I mean it's goku We should win right? We're gonna hop right into it. You knew this channel. Don't forget to drop a sub and let's get started Yeah, dude Bergamo He's excited for the match. Yeah, the fighters knowing that everything's on the line. They'll give it their all Oh, here we go. I am the eldest brother of the unstoppable. Oh, here we go Yeah, you're so special. How can it be true when this man's level is far below any of his brother The way goku is standing there. We wouldn't be facing universal destruction if he hadn't requested this tournament in the first place Uh, I mean he's gonna have everybody target goku On behalf of all that that was what all of this was leading up to was just him saying I'll crush you Okay, bro. Let's see it. You're talking some big game after I defeat this joke I beg you to receive. Oh, he's gonna say if I can beat goku Oh wait But he doesn't stand a chance against goku. I don't think He knows how to speak. Yeah, he's convincing everyone here that goku's the bad guy. Yeah The anti goku sentiment will clearly be on the rise Everybody wants some on the blame, especially something dire like this. That mortals should have left well enough alone Oh, they are all against him now. Do you have an answer for bergamot your majesties? But zeno has so much confidence in goku. He's gonna be like donku won't lose to have the whole cosmos rooting against And he loves that Let's talk. Oh shoot Oh This makes things interesting too bad goku is gonna stop him if he wins this match No universe will be destroyed for losing the tournament of power.  That's the guy I want to hear top speak more. I first need to see him fighting all out bro Then can I give you my appraisal of bro? It's like butter Okay, choppa goku's just a weird guy I'm At least shamba's honest It's rather nice being exempted. Yeah, their their universe is strong enough That's one of the many benefits of the universe having excellent divine guidance. Yes. They're so about it He looks like an onion. We didn't even know that mortal levels were a thing, but I don't say we're just delighted to be exempt Oh, they're so gross stupid Yeah, for real I want to fight them just to show them who's boss even though we probably lose to them based off the power levels calculated I feel like bergama doesn't stand a chance of goku's actually trying Uh, maybe i'm underestimating him, but his brother's already lost if anybody was gonna lose out of these three I think it would have been gohan but gohan pulled it out because of his willpower and goku hasn't even gone super sane yet So he's just trying to figure bergama out before he asked to I think he will have to too I love the how fast these wolves kick too Is this what he wanted though Okay, okay, hang on. What is he doing? Maybe he like absorbs the hit and he gets stronger goku should just go blue and then just give it his all He's just taking it bergama the crusher. I don't know Oh my god It enlarges him based off punches.  He just crushes anything. Come on goku stop messing around You're just the kind of guy i've been waiting to Yeah goku loves this.    He's not running. What do you mean? It's goku laughing He's fighting of course. He's having fun probably because kai doesn't realize that like goku actually does stand a chance That he knows exactly what he is doing and what he's gotten himself into. I feel like that was obvious though He's gonna hit the ceiling he's literally gonna go through the roof Oh, he tripped him. We just throw him out of the ring Say he didn't have faith.  Okay, you really don't stand a chance bergamot Yeah, shut up man Exactly one million percent did why do you think they were saving him for last goku single-handedly raises the power level of of the that universe bergamot shaking in his boots, bro Wow, I'm actually shocked that he's not intimidated. He's barely even gotten to hitting on goku How many punches is a cameo male wave count four two? Oh my god.  No, that's a sick moon name It's beautiful. Oh my god. He actually crushed him question piece bergamot. Didn't know you're very long though, man Wait small Wait Oh, I kind of had hoped that he would grow so big you like popped or something. I don't know. Is that like dark Zeno's eyes are really dilated.  Oh my god the disrespect And then fight me with only that you gotta show me what you can do. Okay, imagine. That's all he has. He's like, yeah, man I'll show you I'll do everything to make sure your vial universe is the first to go Yeah, okay bergamot Everybody's at risk of destruction bring it on I love goku so much man to the expo excites you for the tournament proper. Yeah, it's a little warm up When does the tournament start? Dragonball super Okay, so when does it start that means we'll be moving on to the tournament of power allow me to explain it Okay, here we go some outlining the null realm will be home to this Whoa, it looks like a spinning dial thing of the ring. They lose knock them out Decided to add a few other prohibitions Number one. No weapons. Any outside weapons is strictly good. You are not allowed to kill No killing all right any advanced techniques that enable flight will not work in the null realm Oh, you can only move. Okay. Interesting. There will be a time limit of 100 a time limit Translated to earth time that 48 minutes. That's so long It seems like a rather long time. Yes. It's gonna take forever. Yeah, that's what I was saying from the beginning Oh, what? The firefighter will compete against everyone else at the exact same time. In other words, the tournament Yo, what? That's like a battle or y'all. Yo, that's sick Oh, I'm I'm game. I'm even more excited now. The ring. We're constructing is quite large Oh, that's high 48 minutes for everybody to be knocked out Yeah Right son, you know she thanks dad. No pressure. Yeah for real Beers is like clawing his eyes out in the background competing universe. I kind of wish destroyers could fight low key Clarified right, okay Excuse me. Oh Tops of the move. Oh shoot. I want to see what he looks like. They're covering him for a reason I feel like he's like a sein or something forgive me for I don't think he's a sein greetings goku. That is a tight suit with you if I may in a big moustache Yo, he's a unit 11 Oh What He wants to figure goku out Dude, I love top 11th universe minneasolomo Oh, wait, he's a cool guy. He's a good guy. Yeah This'll be fun and just like that goku faces So there's gonna buy us like a warm-up for the tournament the 11th universe named top It seems like he wants to just kind of figure him out before the actual tournament next time on dragon ball super Finally, we get to see what he looks like too But again, I don't know why they were hiding him because I don't should I recognize him? Should I know who he is? Maybe it's just because he has a very flashy design It wanted to have a reveal which I understand but I like his whole like enigma He is very superhero like the way he talks the way he hero fires himself the the outfit Especially is very superhero is esque But there we have it the zeno expose concluded But it seems like we have sort of an encore bonus match But dog I like I said, I'm so much more excited for the tournament now I already was but I was even saying like couldn't that go on for too long or I feel like it could burn out based off of just like one on one's over and over and over and over again But a 48 minute complete battle royale is insane Guys, that's been if episode 81 of my dragon ball super watch So do drop us a little of this channel if you're new and I catch you in the next one. Bye space


Hello, everyone, and a warm welcome to the inauguration ceremony for the Pacific Regional Channel. I have the privilege to present Professor Asha Kanwar, President and CEO of the Commonwealth of Learning for her address. Thank you, Helen. Honorable Ministers, colleagues, and friends in Fiji, Nauru, and Samoa. Warm greetings from the Commonwealth of Learning here, and of course, it's winter, so it's quite cold. And I wish this pandemic wasn't there, so we could have all met in person, either in the beautiful Pacific or even here in Vancouver. But thank you for making the time to join this meeting. We are very grateful to you for your consistent support to the Commonwealth of Learning, both financial and intellectual, which enables us to actually do our work in the field and to serve you better. I think you have done an excellent job during the pandemic in trying to keep the education and training continued, even though there have been complete lockdowns. But even we have tried, Honorable Ministers, we sent you a report on what was the situation in the Commonwealth during the pandemic and how various countries had responded. And I hope you found that useful. But I think in Fiji, let me just highlight one thing during this time that we've done in each of your countries. Of course, Fiji hosts very kindly and generously the Pacific Regional Centre for Distance Education for Development called Backfold, hosted by the University of the South Pacific. And through that centre, we organised a massive open online course, a MOOC on Functional Numeracy. And the maximum number of participants were from Fiji. Of course, during this time, we also worked with the Fiji National University and supported them to put 33 courses in different subjects online so that they could continue to reach their students. In Nauru, working with your ministry, Honorable Minister, and with the Ministries of Industry and Environment and Taiwan Technical Mission, we have worked with community leaders and farmers to develop and design an app for kitchen gardening so that communities can develop and grow their own fruits and vegetables. So this is something which has happened even during the pandemic. And in Samoa Honorable Minister, of course the capacity development for assessment because one of the big casualties during the pandemic was that how do we actually assess online learning? And this is something which we supported the National University of Samoa to do during the pandemic. In addition, what we had also done was we offered Coursera courses. Col has joined a partnership with the Coursera. Usually it costs quite a lot of money. In fact, one license costs $400, but they gave us 125,000 free licenses. And we have participants from 49 Commonwealth countries who have taken these courses. In some countries, a small country like Guyana, 30,000 unemployed youth have joined. In the Pacific, because of connectivity issues, in many of your countries, the uptake has not been so big. For example, in Samoa, in fact, it's 298, which is not so bad, but we could have more people. Now, Route 56, Fiji is even less than that. So my request to you honourable ministers is that these are wonderful courses about 4,000 professional courses for skills development, all of them online and offered free. Please encourage your colleagues to find the people to take them. In fact, I have taken two courses and I found them wonderful. They are from the top universities in the world, 200 top universities. I've done two courses. One is from Yale University and one is from Case Western. So please make use of these. And we still have a window of opportunity until 31st March, which means people have to enroll in these courses and you can generate a certificate from those universities. But I think we have to do it fairly quickly because all the enrollments must be completed before December, I think. So we will be again getting in touch with your ministries to ask for more names. And if you yourselves honourable ministers are interested, we will also invite you to join these courses. So that was one big thing I wanted to announce and request your help. But today, we are meeting for another big task. We have focal points meetings for every region and when we met the Pacific focal points in May this year, we asked them that what are your needs because we need your help to shape our strategic plan. And one of the things which they said is that we want a regional broadcasting service for education and training in the Pacific. So we said, yes, we will try and do that. And we will try and do it before 21st November because 21st November is World ICT Day. So we called another meeting in August and in which we requested the focal points that tell us what do you want? You know, what exactly do you want? So five countries participated and three countries came forward, which is your countries. And we are very happy that they came and we asked also that what content do you want? We will curate the content according to your curriculum and provide you videos. And in that meeting, it was decided that instead of asking for a regional broadcasting service, why don't we provide a video on demand service which can even work in low bandwidth situations? So which is why we started then curating video content. And of course, this has now become a platform which call has set up. It's called the pacificregionalchannel.org and it provides direct access to content which is curated as per your requirements through a series of showcases or channels. Now these channels are accessible from any computer, mobile device or video feed and you can easily link them to your local television broadcast channels if you wish. So far, and this is still a work in progress, 800 video resources have been added to this platform and we are going to provide the control to your local contact points for further additions and maintenance of the content. For example, in your countries, the video resources, in Fiji, they asked for content in secondary level for secondary level in biology, chemistry, mathematics and physics. In Nauru, we have curated content at again secondary level, biology, chemistry, scientific method and diamond space. And in Samoa, the content is at the tertiary level for English, mathematics and statistics. Of course, the platform has capacity for many more countries so you can create a lot of content. We for our part will continue to replenish the content and add more and more videos as soon as we find them because there are some people have developed simulations, interesting things, all of that we will be adding. But at the same time, we are also committed to building the capacity in your own country so that your own teachers are able to develop their own content and then upload it because that's the only way to make it sustainable. This video on demand platform will serve as a valuable resource to support education at all levels. This is just the start. And we expect your educators from your countries to contribute to make it into a very vibrant shared resource because this is not the first and last pandemic. There can be many disasters in terms of cyclones, hurricanes and so on. So what we really need is resilient education systems which have all this content up in the cloud. So even if things are washed away, books are washed away, our online content is safe and we can access it and keep the doors of learning open at any time. And I also have a piece of good news but I'll tell you in the end. So back to you, Helen. Thank you, Professor Kanwar. It is my great pleasure to introduce the Fiji Minister for Education, Heritage and Arts, the Honorable Rosie Ackbar. Professor Asha Kanwar, President and Chief Executive Officer of Commonwealth of Learning, Honorable Ministers, ladies and gentlemen. Nisam Bhulevinaka and a very good morning to you all from the beautiful islands of Fiji. It is indeed an honor to be part of the inaugural ceremony for the Pacific Regional Channel. I'd like to thank Professor Asha for the brief this morning and I must say that all thanks and appreciation goes to the Commonwealth of Learning for their continued support in enhancing education for our students at all levels across the region under your leadership. The Pacific Regional Channel is yet another example of called support to improve the learning of our students. Video on demand is perhaps one of the earliest attempt at providing our students with online learning support as students would determine demand. But before I go on, I think it's very important to note the challenges that were posed to our member countries when COVID-19 impacted us. And I think we all have been able to manage the pandemic and ensure that the learning and the education of our children continued despite the various challenges we had and online learning for me, for us here in Fiji was the new means of ensuring that our children remained occupied and continued with the lessons while at home as well. So we welcome this resource with open arms, which is of great value, particularly for the practical sciences and mathematics. As I believe these concepts are generally more difficult for our students to grasp. My term with the Minister of Education for the last two years has also indicated that our students need a lot of extra support when it comes to learning of sciences, science subjects. So the Fijian government is fully committed to providing students with opportunities to engage with e-learning tools. While we are mindful that connectivity and other resource limitations create challenges to our efforts to provide students with such opportunities, we must all do our best to provide such opportunities. The Pacific regional channel populated with video content which is now accessible through mobile devices and devices with internet connectivity will definitely will sure provide learning materials for our teachers and students. Our issues here in the country with connectivity and the cost of internet also makes it difficult for equitable access of such very important resources. So we promote downloadable resources which in our context immediately becomes accessible. And we did the same during the period when our schools were closed for almost three months. And I'm hoping that these can also be downloadable. I'm sure that our schools and teachers will take great advantage of this learning resources and use it as materials for learning. Fijian students now will be able to access biology, chemistry, physics and mathematics lessons with the aim to have many other subjects added into this platform as we progress. Ladies and gentlemen, this resource has come at a very good time when we are rethinking, teaching at a global level as we continue to endure this pandemic. But I seriously believe that this pandemic COVID-19 has taught us to think outside the box, to rethink and re-strategize and create fit for purpose resources within the means that we have as countries. With Kohl's assistance now, our teachers and students have additional resources at the disposal whenever they wish to use it. And I can assure the members here that the Fiji will encourage all teachers and heads of schools and students to make the best use of these resources that has been designed specifically for them. The Pacific region channel will open various other avenues, not for our educators and learners, but also for those who have vested interest in the education of our channel. I thank the Commonwealth of Learning for their continued support towards the Fijian government in creating a smarter Fiji. And I must also thank our counterparts for the support and contribution. Professor Asha, I'd also like to thank you for your leadership and I look forward to working with you and your team in future to ensure that we progress with this initiative and any other initiative. And of course, as you mentioned about the online courses, we will continue to encourage our Fijian students and citizens and I for one, definitely would like to be part of that. So you will also receive my application to be part of some of the courses there. But all in all, it's early morning here in Fiji. And like you said, I wish we could have met physically if the pandemic was not here and progress further with these discussions. So thank you very much. It's a pleasure to be part of this virtual inauguration of our channel here today. Thank you, Minister. It is my great pleasure to introduce our next special guest, the Minister of Education, Sports and Culture Samoa, the Honorable Laou Kanet Tissio. Honorable President of Carl, Professor Asha Kanwa. Honorable Ministers of Pacific Island Nations, Distinguished Tharova and Greetings from Samoa. It gives me a great pleasure to join you in this in a close ceremony for the launch of this exciting venture, the Pacific Region Regional Channel. And I would like to join the Pacific community in thanking and congratulating the Commonwealth of Learning for its vision and foresight in launching such innovative and much needed technology. The video on demand radio channels for the Pacific, such an innovations could not have come at a better time. As all Pacific nations are struggling to meet the technology demands of the pandemic era, with its heavy reliance on technology to ensure business, working and learning continuity. I am told that this video on demand technology provides video streaming services, which can either be offered online using the internet in situations where there is sufficient bandwidth, but it can also be offered in areas of limited bandwidth by combining with a library of video content and using TV and radio broadcasting services. Such a combination would favor our situation with both the ministry of education and the National University of Samoa, have TV and radio broadcasting facilities as well as online learning platforms. Samoa as a member of the Commonwealth of Learning look forward to fully utilizing these exciting regional initiatives. I would like to thank all parties that have been instrumental in its inception and setup. I would also like to take this opportunity to thank President Ashwa and the Commonwealth of Learning for its continuous support for small island nations like us in the various fields of education and technology. We have benefited immensely from your assistance in capacity building and training, use of digital learning platforms and numerous donations of open educational resources as part of your COVID response. And I conclude this morning by wishing you all the best in this new initiative, which will ensure better access to educational resources. Thank you for your attention and so far so for from Samoa. Thank you, thank you, Andrew Register. And from Nauru, it is my pleasure to introduce the Deputy Minister for Education, the Honorable Richard Hyde Menke. I am honored to represent his Excellency, the President Lionel Rowe Nengmea, MP and as Minister for Education on this occasion. This Excellency sends his apologies as due to prior commitments, he is unable to join us today. At the outset, I would like to congratulate the Commonwealth of Learning under the current leadership of Professor Asha Kanwar and her team for its tireless contribution to education. The ongoing support offered by Paul to Nauru and our neighboring Pacific Island States has always been one that promotes sustainable development. These supports has never been relevant or needed more than today. Recently, the COVID-19 pandemic thrust upon us its agenda and the top of our priorities and at all levels of our educational institutions. Not only did the COVID-19 situation present new challenges, but it also brought to the forefront weaknesses and gaps in our education systems that required urgent attention. For us in the Pacific Island States, this added another issue onto our list of vulnerabilities and challenges. Among these urgencies, virtual learning rapidly became a necessity and the new normal of operating. Fortunately for us, Paul has moved ahead of its time. While most of us are still grappling with the new realities presented by COVID-19, Paul had been championing the virtual learning front in its mission quest to empower people of learning, for learning through its lens of inclusivity and education empowerment for those most vulnerable, the idea of remote and virtual learning was well in advance. Today, I am honored to accept the handover of the video on demand platform for Nauru. It is a prime example of what Paul has long encouraged in our education systems and that is a response to disasters through resilience. The opportunity to explore, network and innovate on existing resources and services with other Pacific Island States would call at the helm is indeed an example of building resilience in our systems. We are looking forward to engaging with the subjects and contents of our curriculum presented to Paul for this project and eagerly anticipate a model that will provide guidance and direction for subsequent work and for the potential capacity building opportunities. The Department of Education is in discussion with relevant service providers to ensure that capabilities and requirements are met for this initiative. Professor Asha, your works of encouragement are taken on board and we will revisit our efforts on the Causary Recovery Program. Surely we should be able to find the time if you are able to find the time and motivation to take courses. In conclusion, I would like to thank Paul and reiterate its invaluable commitment to education. I also would like to thank and acknowledge all of those who have made this possible, especially the vocal points of the Pacific States that have come together to put forward this great initiative. Thank you. It's so good to hear from you. If we were meeting around the table, I would have asked the three of you honorable ministers to cut the ribbon. So basically symbolically, you are cutting the ribbon from three different locations, but you have started something which I hope will spread to the other nine countries as well. And let me just, you know, the one question which came up from honorable Rosie Akbar about, you know, how you can upload and in low bandwidth. Let me just invite my direct IT and innovation who is leading this whole project to tell us how that can be done in just a few words. Professor Malik. Thank you, Professor Asha. Yeah, the platform has been designed to be completely downloadable. So all the resources that we've loaded on it are downloadable at your end. So you can do it even in a low bandwidth scenario and then host them on local servers and link them to your local systems on whatever bandwidth you have available in country. So it's a very flexible platform. We also look forward to having an active participation in terms of control of the content from the country's concern. So if you could indicate people who could actually, you know, lead national efforts to contribute to the platform, that would be very good. And you can create new showcases or channels as we call them on this platform. Pijio permission, I would like to acknowledge a couple of individuals who have been playing a very significant part in this whole exercise. The first one is Ricky Cheng from our own team who's been, who's established the platform and the landing page and, you know, populated, et cetera. And the other one is also participating in this webinar on this meeting today, Dr. Nantakumar Subramaniam, who's sitting out in Malaysia at a very early hour in the morning. And he's helped to curate all of the content from worldwide OER repositories and made this, the possibility of the rollout of this platform, you know, it made it a reality. So thank you very much to both of you. And I look forward to having a very active participation from the country's concerns. Thank you. Thank you. So thank you, Professor Malik. And now for the good news, honorable ministers, just today we've signed an agreement with the Ministry of Foreign Affairs and Trade New Zealand in which over the next four years we have been given a grant. It hasn't come yet, but we've just signed the agreement to strengthen our work in the nine Pacific Island States, which means your countries, in three areas. And those three areas are off-top priority, I know, as you have just told us. One is teacher development in ICT integration. One is in online learning and quality content. And the third in skills development for livelihoods. I think these are all top priorities for you, honorable ministers. So this is the good news that in addition to our own modest resources, we have received also some commitment from New Zealand to further strengthen our work. And we are looking forward to working very closely with you. You have been extremely supportive and we really value your support because without your support, you know, political will is really important. And then it trickles down, you know, to the rank and file. So your personal stewardship and championship of this cause of making a difference to hundreds and thousands of people is really helping us out. So thank you, be safe. And thank you so much for taking part in this in spite of your schedules. Thank you very much. Thank you. Thank you, Professor. Thank you again, Professor Kanwar. We invite you to visit pacificregionalchannel.org and start exploring the video on demand platform that has been custom designed for the Pacific Island States. This brings us to the close of today's ceremony. Thank you for participating and goodbye.


My goodness And how central we got knowing Gorman on the RPA 7 of 10 that is disgusting dude Three color Cardinals patch. Oh my god