Can you hear me now? Oh, perfect. Yes. Whoo-hoo Excellent perfect. You know what if we push enough buttons and something will happen, right? All right, now take it away to talk about graphql and that net core Excellent so I like to basically talk about graphql and sort of an introduction of it in dot net core most of the talks I've seen around the internet mostly focus on this around Sort of the dot node ecosystem and I thought it'd be good to talk about it from a sort of a dot net perspective So we're gonna talk about today. We're gonna talk about sort of the basics of graphql In terms of introduction to why we want to use it and how it kind of works And then we'll talk about how to sort of build it within a dot net core ecosystem And using sort of the hot chocolate graphql library. So let's get into it My name is Nigel Samson. I work at a company called push bay here in New Zealand And we're using graphql across a number of microservices and applications My GitHub handle and Twitter handle there. So I don't get a chance to answer your questions later on hit me up on Twitter Sort of graphql. It's a specification originally written by Facebook Really quick, can you close yet the little box for Skype on the rubber right-hand side? Sure done Excellent So as I said, it's a specification for Korean data from the service Facebook originally wrote this internally and then shared it as an open source They also shared a an implementation in JavaScript of that specification And since then it's been picked up by the open source community And there's a number of libraries almost almost every language that support graphql in Dot net we've got probably two major libraries you're likely to see one is hot chocolate and the other one is one called graphql.net So what's really interesting about graphql is that it supports as I said a strongly typed schema with a Karebel API So this means that you can actually look at the schema of a service You're gonna know what data you're gonna get back from it in what fields it has and what sort of types you expect from it And the graphql server actually enforces that type specification So you're not gonna have a problem where the spec or the docs say one thing and the service actually Returns something else in terms of databases or storage Graphql spec has absolutely nothing to do with it You can store your data in anything It's a database the graph database relational database flat files or even hard coded or even delegate them out to rest calls in other ways So let's get into it some actual demos So the tool I've got in front of me here is one called insomnia. What this is is basically a normal sort of Request tool much like postman where you can use it to send requests to a server I'm using it because it's got some excellent graphql support So for this scenario, we're gonna talk about this idea of you know, so a blog most of us sort of understand the domain model of a blog In terms of posts authors comments images, etc So for our normal front page scenario, we're gonna want to click get the collection of posts We're gonna get the date the title the author Important thing is we don't want things like say the HTML content of that post for the front page scenario So on the left here is the the graphql query. So this is what we end up posting to our server You notice up here. We're actually just sending this to a single endpoint to slash graphql and We post this query and on the back here on the right hand side as the results we get So as you can see at the top we're marking this as a query And we're gonna query from the posts field on top of the posts endpoint And that's gonna return a collection of posts and from each post we're gonna ask for the ID the title some other fields the image Which and the URL for that image the author and the name It's you notice on the right-hand side here the data that we get back is in the same shape or Structure as the fields on the left So we can send this we get back the data nice and easily What's already important here is that we're we're deliberately Querying for the fields we we want the specification for graphql has no way to say get me all the fields or the equivalent of slick star And that's really important from a from a usage point of view and we'll get into reasons why in a minute So another scenario but slightly more advanced query the users clicked on a post and we want to actually Get the details for that post and show it in a page So again, it's a query And we're querying from the post field now rather than posts and this post takes an argument called ID And what we're doing here is called a variable. So up the top here We've declared a post ID variable of type ID and here we're using that variable That's like the post We're asking for the title of author name again, but this time we're asking for the HTML and the comments on that post Down here in the bottom of insomnia is where we're actually providing the value for that variable for post ID So why we want to use this idea of variables is that it what that means is that query up the top here can be static It won't change in terms of usage We can have this this query then stored in some sort of resource document file Whatever that becomes constant and it's only the variables that need to change This means we're not trying to build up our query via strings or anything like that which could be susceptible to some sort of injection problem Again an image this time. We're actually providing an argument for the size and We can go from here Comments we can make a list of comments And here we can see the again the data on the right returns the shape of the data on the left, which is excellent so why From a sort of introduction point of graph QL. Why is it? Why is any of this a good thing? Well from An application point of view. We're only ever getting back the data that we care about for any given scenario We're not getting extra data and we're not we're able to get all the data We care about within a single request so most times when people talk about graph QL And the problem it solves they talk about it in this idea of under selection and over selection If we imagine a post like this Trying to do this via a sort of a deep very denormalized rest request We might end up doing a number of requests one to get the post content One to get the comments on the post one to get the the details of the author of the post etc This is this idea of sort of under selection that a single request can't get us all the data We care about so we have to issue multiple requests to multiple resources to get our data Conversely in the first scenario If we were getting all the posts and that posts in point and a normal rest request was actually returning the HTML Which I was promptly discarding This is this idea of over selection that I'm getting more about data back on the response than I actually care about for my scenario Now that may not seem like much but when you're building things like mobile applications This means you're consuming bandwidth. You're consuming someone's data cap or battery life But doing a lot more work on the on the wire than you need to so this is One of the sort of main benefits in terms of applications is Being able to get all the data you need for a given scenario in a single request and making sure you only put the data on the wire That you really care about for your application From operability point of view, this is also really good. This idea that you don't have This notion of select star means that Applications are only ever going to query for the data they care about and let's say we wanted to remove a field Author post for instance, we could market as deprecated put out an API notice to say hey We want to remove this field and you can actually monitor via your logs Which applications which queries are still querying for that field and you can make a considered effort to migrate those applications across To use in a different field or whatever you're doing for your migration strategy here And then again once you've got no logs of people using that field You can kind of remove it safely knowing that you're not going to cause breaking changes with an application So as I said before the GraphQL is a strongly typed system And so most GraphQL Implementations have a way for you to pull the schema in some way. So this is called the SDL or the schema definition language It's part of the Facebook GraphQL spec We'll go into some detail about it in a moment But this is essentially the the more human readable version of the schema we can see here types authors comments, etc We'll go into some more detail in a minute The second really interesting thing is all GraphQL in points Implement an introspection schema. So this lets me actually inspect the schema itself I can say give me all that in the square. It's giving me all the types the name of that type The fields on that type in their names. And so if we go down here We can see things like Post post as an author and comments and HTML and so on. This is essentially a really good way for Software tools to to get access to that schema and they can do it all sorts of number of things with it One in use case is generating TypeScript So TypeScript can use these introspection schemas to essentially generate strongly typed types and your client side And think tools like insomnia here Provide IntelliSense over other things And what's doing under the covers essentially is that? Insomnia is using this introspection API making a request to your GraphQL schema to pull back all the information it needs in order to better provide IntelliSense And last but not least we have our mutations Mutations are a way for you to modify state for GraphQL That clearly marked at the top has been a mutation different than a query And ultimately though that the only thing that is actually the mutation is that top level thing that in this case it's submit post the rest of this Queries and she's a query on the result of that submit post which is obviously the post itself Again, we're using a variable here. In this case a complex variable of type submit post input And I've got our properties for that input down here and ultimately the result of that mutation on this side Cool. There is a third thing. So we talked about queries and mutations just now But there is subscriptions, but it's probably out of the scope of a 25 minute 101 talk So The GraphQL schema as I've said has a strongly typed schema like this The other thing it also consists of is a resolver. So the resolver is what happens when each of these fields is queried So when you're implementing a GraphQL service You're basically declaring a schema and attaching resolvers to that schema But first let's take a little bit more of a in-depth dive into what these schema looks like So here you can see we've got things like types really simple types like author And these are just sort of what we call object types all types have fields These fields can be Of types scalars so scalars are things like ID string Boolean And the like or they can be more complex objects So if we look at something like a post it has an author which references back to the author type You can also if you want create your own custom scalars if needs be we have enough support as well You notice there's a lot of exclamation marks through the schema. So what that is is that? Most GraphQL now the GraphQL speak has the notion of null ability. So if we have an exclamation mark here It means that This property cannot be null So an author must always have an ID. It must also always have a name if it's no exclamation mark It means that it may not so it might it might be null in this case a post has a null HTML It might not have HTML at the moment We also have this notion of lists so in here we have a go here take a look at this one Post of comments and the square brackets indicate that this is a list so post obviously has a list of comments and it kind of gets a bit confusing with these double exclamation marks What this essentially means is that the comments field on the post can't be null and The values within that list can't be null. So it's a non-null list of comments Well, sorry a non-null list of non-null comments, which is a little confusing, but it doesn't matter too much Excuse me. Sorry. The last thing is the input type. So the input type It's essentially the complex types that we're going to be posting to our mutations or posting to more complex queries And that defines separately than sort of your regular types Because they've got slightly more restrictive rules on what you can do with them and last but not least We have a sort of schema declaration And this defines our top level query in our top level mutation All right, so let's jump in to see how we can build some of this stuff So I've got a normal sort of dot net core Web the blank web app that I've kind of added a lot to so we're going to be calling using EF core and talking to a local Postgres database running out of docker For our data, but ultimately the the data source as I hope you'll see is kind of irrelevant for this so What I've done is referenced our hot chocolate ASP net core And then obviously a few other libraries for some fake data Some markdown rendering and again EF core in order to talk to Postgres So that's all we're going to need to reference. The first thing we're going to do Is set up our endpoints so In our configuration, we're going to create two different endpoints here The first using GraphQL to do post is setting up the actual service itself We're going to post our queries to I've just got that out slash GraphQL And I've got this here use graph HTML get schema, which is essentially Set up a second endpoint where I can get Do a request to get that stl which is this thing here So I want to set that up because I think it's quite easy Quite good for developers to call that and look at their schema But so that's all the setup we need now. We need to kind of start defining our schema and our resolvers So let's take a look at a really simple one first. What you're going to see is a pretty common pattern of things like a type In this case author So this is our my EF core model with an obviously an ID and a name And we're going to see a matching type here. So we've got an author class up here And we're going to see an author type down here So this is how we're using code To define the the author type within the GraphQL schema Jumping back about there's actually two ways we can define this the schema in GraphQL The first is What's called schema first and if you watch a lot of dot-net sort of node ecosystem GraphQL talks They often do what's called schema first. So this is where you define your your schema using using the stl define a Define it basically as one big string That's your schema and then we're going to bind resolvers to that which we'll get into in a minute What this works and it's pretty actually really good for demos But it gets pretty unwieldy as the as the schema gets larger and larger And so one the other approaches you can do is code first. So code first is what we're kind of showing here This is using c-sharp to define the schema of our GraphQL library And you can mix and match the approaches, but you tend to find Yeah, you go sort of all in on one or the other One of the other benefits for me in terms of code first is it means that some of these types can be shared between different microservices in different ways Especially when we get down to sort of custom scalars Right, so we've got this author and author type here. So again, author is my normal ef dto Or entity and author type is the the declaration or definition of that author Within our schema now hot chocolate. It's got some real good capabilities around this idea of sort of inferring this schema So if I didn't do anything and I didn't create this class at all Author hot chocolate could still infer a lot. It would probably still get in further be a type called author It's going to have a property called id and a property called name But what it might get not quite right for me is I want the in my schema I want the type of the id to be id not int and I want the string to be non mullable So this is why I've created this author type here and I've defined for the field id It's a non null type of id type And again, you see the sort of type suffix happening here And for the field name it's a non null type of string So this lambda is actually really important. It's going to do it's doing two things right now. One is it's telling Hot chocolate what the name of this field is it's inferring it from this expression id and name respectively And the second thing is this is actually what the resolver. So this is the bit of code That gets executed when this field is requested. So when someone asks for the author id It's this lambda that gets executed Which pulls it from the id property on the author and returns that integer or string in case of name So let's move on to a pretty um, but more complex scenario. So let's look at the top level query We're actually getting our post and posts from the database. So here we've got a query class It's got two methods get posts and get post And you'll see it's basically just using the db context to pull from that data What's interesting is more of the the arguments to this So we're actually doing this what's called a service level or a method level injection to the the method for the db context And i've marked this up with an attribute from hot chocolate to basically say this is a service I want you to inject this using dependency injection The reason i'm getting injecting this at the method level rather than the constructor level Is because db context is a sort of a scoped dependency. I want a new one per request So that's why I don't want to do constructor level injection at this point if I had some sort of singleton Dependencies then I might declare them as constructors, but in this case I want them to be Scoped dependencies. So I'm going to inject them at the method level. You'll also notice for the get post that We have an id and it's automatically going to be injected from that argument on that field back of Here this value will automatically be injected into that method call for us So again because we have our query class we have our query type describing this within The schema again we have get posts So this is the same this is the method to call when this field is recalled And hot chocolate is smart enough to get remove the get and turn get posts into just posts And again, this as we said, this is a non null list of non null posts And again for get post we're saying that there's going to be an argument called id and it's a non null id So we're just doing a bit more of sort of tweaking that inference that hot chocolate can do So this has been all pretty standard stuff we're basically just sort of mapping things that already exist And tweaking them on the way through let's look at a more interesting example So we have our post type And we're going to be doing a number of extra things to this again So we're doing some extra things I've got a helper method here to tweak some of that syntax to get rid of the non null id stuff But ultimately this is the same thing I'm tweaking the ability for id and name I don't want the author id that's on a post to be in my graphic quell I want an actual fully strongly typed author. So I've told in this case Author id ignore it. Don't put it in the schema And this is the really interesting one here is html. So on my post In my database, I don't store the html I'm storing the sort of edited markdown But I want to return the html as part of my schema So I'm creating a new field here and you feel that exists in the schema, but not in the database called html It's a string and I'm attaching a resolver to it. So this is what I want to call When someone requests the html and it's simply Taking the parent post Getting the markdown Competing it to html. So now we have this sort of being computed on the fly and only when requested And we're doing repeating this pattern for another number of things as well. So here We're adding a Resolve comments So call resolve comments Uh, we're going to name it comments and it's going to return a list of comments If we go down here again, we have a method. We're doing service level injection to inject the db context We're going to ask for the parent post at the same time. So hot chocolate is going to inject both of those And I can go to the database and retrieve the comments So this is where I'm sort of attaching more complex types to my uh, my post And I'm getting some good sort of strong structure to a lot of my graph ql This more complex scenario here for resolve author is using a data loader I don't want to get into too much of the implementation of this right now Probably a bit much for a half hour talk, but ultimately Using data loaders is a way to prevent sort of in plus one problems within Graph ql So if you have this idea that I'm doing a query that's going to pull multiple posts from the database and those posts are asking for author I don't want to have 101 calls to the database to get 100 authors out of out So a data loader is a way to to solve this, but sort of the implementation of this I don't think really we've got time for After that, let's quickly look at mutations. They're pretty much the same thing We have a method here Called submit post again taking a db context and that's strongly typed that input we've defined in this case. It's submit post input So it's just you know, what we want an authority some title markdown And we're creating a new post saving at the database and returning it Up here, you can see I need a clock from notetime and so this is where I'm going to construct a level injection of that So this is a sort of a common path and you'll see you'll see things like Mutation mutation type post post type this code first sort of approach code. Sorry Yeah code first approach in order to define our schema From there, we just need to register it So you got going back to our startup code We're doing our work here. So we're doing a couple things We're calling that add like a day loader registry, which we don't need to go into right now But ultimately the important part here is add graph ql We're using a schema builder And we're registering that query type and the mutation type we've defined As the top level queries and mutations and I've got a custom scaler here Which we can probably a little bit of time to go into which is essentially a new class to represent offset datetimes at another time And it's a way to kind of it's using extended ISO to render them down as strings This means we can have sort of the idea of a strongly typed offset datetime within our schema Going back to our startup You'll notice here. We're not registering things like the post type or the orthotype And we we get that basically by the fact that query type talks about posts and post type If we go back to that It talks about comments and authors and lists and images So we don't need to go through and be meticulous about making sure we've registered everything because ultimately As long as everything is reachable Through the other types Then we only need to reach those two level things Once we've done that we create our schema and give it back to graph ql And we're done So we have this notion of a schema we've defined using C sharp And we have this idea that we're attaching resolvers or methods to each one of these fields to call now Some of these Resolvers are complex. They're going to databases to do work or to file systems or whatever And a lot of these resolvers can be Pretty small, right? A lot of them are just going to properties to get values Or they're doing some sort of in-memory computation for read our computed fields In effect if you try and start up a service in hot chocolate that doesn't where a field doesn't have a resolver This would be an error every field needs to have a resolver essentially To know to know what happens when it's called So that's it. We've now got a sort of out of the box ef core To postgres database happening. We've got graph ql sort of the top of that In a pretty strongly typed way taking mutations as well as doing queries So jumping back I just want to give you a couple of links Uh, the first is for hot chocolate itself. Uh, it's a great library. I highly recommend you're going to check it out And the second is the github repo that will contain all the source code from this talk So, um There's a bit more than I've gone over today So have a have a play around have a look and see what see what you're like As I said, I'll be around on top of the questions, but I think we've got some time now as well again, so the The constructor injection Well, actually all of it's provided by hot chocolate, but the notion of sort of attributing a service The the resolver level injection With service like this is a thing from hot chocolate itself The the reason why you want to do this is as it is because of scope dependencies But ultimately, um, it's hot chocolate that's using the di container to Construct or to sort of create these these classes for you And ultimately it's the thing that's going to be responsible for working out where where these injection points come from and so on


So we're here with Catherine Queen, the 2016 Junior Scholarship Champion, marking 2-20 on Princess and the Pea. What's here about to run, Catherine? It was nerve-wracking. My first cal is pretty quick, so I'm in the second one, and the third one, it's pretty positive about it. So I knew I had to do good, and I was worried. Yes. When did you draw tonight? I drew fourth in the first set. That's a good draw. So who do you want to thank tonight? This is Catherine Queen. I want to thank my help and my grandma, grandpa for the horses and everything they've done for me and my parents, especially. That's nice. So have you rode this horse before? I've rode her in a couple of weekends, but this is the first time I've ever won anything or done good on her. That's amazing. So have you made the scholarship finals before? Is this your first time? No, this is not my first time. I've made it. This would be my fourth time. So let's hear about your horse, Catherine. She's a six-year-old aged-invent horse. She's my mom's, and she showed her in the non-pro, and I showed her the limited, didn't do any good on her, and then I showed her here in one. That's good. Is this your first major event in the Serena? Yeah. That's awesome. So where do you live, Catherine? South Carolina. Well, that's quite a drive, wasn't it? Yes. Is your plans hauling for the world now since you won this? Yes, I'm not going to haul for first just anything in the top. Just to make the top 15? On this horse or what horse? I have, I think she's eight-year-old horse that I brought from the Colgros. Yes, ma'am. Did you make top 15 this year? No, I've got 18. 18. So where do you go to school? Miss Jettie's home school. So your home school. Do your plans have to go into college? Yes. So you're going to use the scholarship? Yes. Do you have any clue where? No. So how old are you? Again, I'm 12. Did you watch your own cattle tonight? Yes, my dad helped me. Did your dad help you? Did anybody else? A Nick and Cole and an Austin. That's good. So I heard this isn't your first scholarship final? No, I made it on Sister CD and TGL Playtime and also Little Stinger. So how did you do on them? Little Stinger, I got third in the world and TGL Playtime, I think, I've got every night and Sister CD, I didn't do it too good. How old were you when you showed those horses? Thank you, Catherine. That was Sister CD and TGL Playtime. Catherine Clean. I want to say 11. Thanks for joining us tonight, Catherine, and congratulations on this great win at the junior scholarship cutting. Thank you.


It's official, the Supreme Court will hear the Prop 8 case. Meanwhile, supports growing in Congress for repealing the Defense of Marriage Act, and progress in state legislatures could mean even bigger advances for marriage in 2013. At the American Foundation for Equal Rights, I'm Matt Baume, and welcome to Marriage News Watch for December 11, 2012. Well, the big news this week is the Supreme Court. After weeks of suspense, they finally announced that they'll take two marriage cases, a first case to overturn Prop 8, and one of the lawsuits challenging DOMA. Now we can look forward to briefings and oral arguments in the spring, with the ruling probably by the end of June. These are going to be a very busy couple of months for marriage equality. It's a big deal that the Court took both the Prop 8 case and a DOMA case, because the cases take two different approaches to the freedom to marry. Prop 8 is a state law, which means that it forces California to deny the right to marry to gain lesbian couples. DOMA, on the other hand, isn't about the right to marry. The couple in those cases are already married. Instead, DOMA prevents the federal government from recognizing those marriages. If the Court invalidates both Prop 8 and DOMA, it sets the stage for marriage equality at both the state and federal level. Of course, there are a lot of different ways that the Court could rule, and there should be plenty of activity in those cases between now and June. We'll have instant updates whenever there's important news in the case. Subscribe here on YouTube and at AFER.org to stay up to date. While those cases work their way through the Court, congressional support for DOMA repeal is at an all-time high. Last year, 109 representatives supported the Respect for Marriage Act, which would repeal DOMA. This year, that's up to 159. Passage in the House requires 218. And national polling on marriage continues to trend in our favor. New data from Quinnipiac and Gallup show support climbing over last year. Turning to states, marriage began this weekend in Washington, with nearly 300 licenses issued in just the first few hours after midnight. Across the country, main marriages begin on December 29. Several towns there will hold special hours to issue licenses. And marriage in Maryland begins on January 1. One of the next states to watch for marriage is Minnesota. Governor Mark Dayton this week expressed his eagerness to pass a marriage bill if it can pass the legislature, which is now controlled by Democrats. Organizers in Illinois are also pushing a marriage bill in the legislature. It may come to a vote as early as January. A new survey from public policy polling shows the bill would be supported by 47 percent of Illinois voters with 42 percent opposed. Support is even stronger in New Jersey at 53 percent to 36 percent opposed. Lawmakers there need 27 Senate votes and 54 Assembly votes to override Governor Chris Christie's veto. Organizers say they're close to reaching those numbers, but they aren't quite there yet. 2012 has been a huge year for marriage, but 2013 is already shaping up to be even busier yet. We have at least two major cases before the Supreme Court, some very close votes in state legislatures, and a handful of states that could be close to putting marriage on the ballot. Subscribe here on YouTube and at AFER.org to stay up to date on all this work, and to find out where you can get involved. At the American Foundation for Equal Rights, I'm Matt Baume. We'll see you next week.


I absolutely see who lives a Challenger brand, which by the way is an incredibly fun place to be as a marketer. I think it's important that you always retain the mindset of a Challenger brand. You know, Levi's is over 145 years old and we've certainly had our ups and downs. And I think when we got back and the Challenger mindset is when we fought our way back to a leadership position and put the brand at the center of culture again. A lot of Challenger brands often spend a lot of time thinking about who or what they're fighting against and maybe not necessarily who or what they're fighting for. We know that the marketplace is crowded, it's increasingly complex, there's new entrants all the time. So we have to not only focus on really smart growth, but also on building connections with our consumers and creating breakthrough moments that get people talking. For a brand like Levi's, it's really important to understand sort of the culture that you operate in, arguably for every brand. Without knowing how we started as a company that primarily sold mattresses, we thought about that experience for a consumer was really awful. I consume culture in all the ways that interest me. I read fiction, I see movies, I consume news voraciously and I just find inspiration comes in unusual places and if you read a lot and consume a lot, there's going to be ideas in the culture that inform the way you think about your job and how to put your brand at the center of the story. Our first sort of I would say chapter of Casper was about how to make that more approachable, more accessible, more inviting and in many ways I guess I'd argue that that disruption is over now and not just because of our growth but because of how many brands in the category our success has spawned. I think it's more fun as a challenger brand because you can take risks. There's almost an imperative to do so and I also think there's more of an opportunity to create a deeper, more lasting connection with consumers.


Oh my gosh, it's so cute. Assalamualaikum warahmatullahi wabarakatuh. Hello, this is Daokie. So today I will cook special briyani, of course, Bangladesh style, for special people. The reason that I prepared this, because Bangladesh people are welcoming me so much. So I wanted to pay it back. So that's why I come here to cook briyani. Then let's cook first, and then I will show you the people who I want to share the briyani together. Let's go. I'm going to cook here. I'm already getting ready for the chicken, because it's chicken briyani. I'm going to get ready for the cooking, and then we'll start cooking. First of all, I'm going to explain the ingredients first. Not ginger, local spice, chili pepper, coconut paste. This is jeera. I'm going to mix it like this, and make the briyani. I've prepared this much. The master oil is really good. I'm going to start with this. If you do that, the oil will be really strong. I'm eating briyani with rice. Let's make the world's best briyani. This is onion press. The color of the briyani is coming out. I'm going to add the chicken. It looks so good. I think it's going to be really good. And I have to prepare the rice. So this is also too big, because I will serve many people today as long as I can. So I prepared so many rice. This looks different with Korean rice, but I really like this. Let's pack the rice and chicken together. Okay, let's eat. We're all packing. The staff at the barcode restaurant helped us. So thank you so much. Please use it a lot. The barcode restaurant is the best. I did my best this morning. Fighting! I want to try how it tastes first. Because I don't want to serve not delicious foods. So let's try first. It's not bad. It's good. It's good. It's good. I'm going to put it in. Follow me. To meet the special people. We're going to go to the other side. This is my favorite friend. He's a professional cyclist. He's a cyclist. We're going to go to the tea garden tomorrow. We're going to go to the tea garden. Tea. Tea. Garden. Okay, let's go. Let's go. Let's go. Hello. Hello. There are a lot of people who work hard. There are a lot of people who are homeless. I saw it on the street. So I wanted to help people like that. So I cooked. There are no people here. There are a lot of people who are walking around. I'm hungry. I don't have money to eat. There are a lot of people who ask for money. That hurts my heart. I'm going to give one to them. It's really nothing. It's just a meal. It's just nothing. This is nothing. It's not nothing. It's not a big thing for me. But they really think about that. I'm really grateful. I'm really grateful. Do you have any money? No, I don't have any money. Okay. I gave them all. I gave them all. Actually, I think there are a lot of people here. Is the water good? It's over. Actually, I feel a lot of things. Actually, I feel ashamed too. Because nowadays, I complained a lot. About my situation. Like, why do these bad things always happen only to me? Like that. But when I see people who are happy even when they eat, I couldn't thank myself for what I have. I thought it was so uncomfortable and I loved it. The teacher of Karam told me that If you have the gratitude of what the teacher gave you, It will be related to happiness soon. It doesn't matter how much I have. It matters how much I appreciate that what I have. I think this sentence is related to happiness right away. So, today, I think I should live a life where I can get more full and share more. It was a very thankful day for me. Thank you for watching my video. Take care and be safe. Alhamdulillah. Ma-salam. Thank you. Bye. I need your help. My heart is breaking. So, tie it off.


Our next speaker is Robson Jr., as he is online perfect. He works at Microsoft, he is a developer there and he's involved with software community, of course, especially the Python community. And he talks about the data pipeline with Python. Six years of learned lessons from mistakes. What is better than learning from mistakes? So please, Robson, start sharing your screen. Okay, it's time to start. Thank you so much. Good morning. I'm talking from Berlin. My name is Robson. Thank you for the organization. Thank you for everybody to make it possible, especially online. It's hard at times. It's quite a challenge. I know how it's hard to organize in a conference, especially online. I have to keep everything on track, on time. So congratulations for all the team. It seems to be a nice conference. It's my first time talking on Euro-Python, so I'm quite happy to be here. Actually, I'm working in the GitHub. It was bought by Microsoft in 2018. So basically, I'm still in Microsoft, but we do have it right now. Yes, feel free to drop a message anytime, even in Discord, even in Zoom. Let me introduce myself a bit. So I'm originally from Brazil, so I moved to Europe four years ago. I'm a developer for more than 16 years. I learned programming with Python. Python followed all my career. I'm quite happy. Even I transitioned for another technology along the way, so Python always followed me. Feel free to reach me out on Telegram. My Telegram is public, so if you have a question, if you want to talk, feel free to add me there. B-S-A-O-0, or you can ping me on Twitter, or of course, in the GitHub. It's the same username, so feel free. All the feedback is welcome, and I love to talk about everything. What do you talk about today? It's very important to equalize the expectations. Even this is a fully Python conference. Of course, you'll talk about Python. But for now, half of this presentation is about data products. Python is a keystone on data products. It's because you are talking Python here. But first of all, you need to equalize. This is a beginner talk. I introduce all my mistakes because, as mentioned, I learned a lot with my mistakes. It helped me a lot. Now I think that's fair enough to share the knowledge as well and come back to the conferences. It's not about code. It's not about how to optimize code, but it's about how to understand the anatomy of a data product. Data product is not basically data pipelines, but having to see the data products as well. And all these principles, it's applied for the same. We covered the concepts of lambdas and capital architecture. It's very important to understand. The main quality of the data pipeline, as any other software in the world, software should have some quality and pipeline as a software as well as quality. And of course, you'll talk about Python. Python is a keystone, so you need to glue everything with Python and you'll talk about where Python matters. My goal in this presentation is to help you to start planning a great data product. Think as a data engineer. How to help your team of software engineers to produce, to collect, to store, to process, to serve data in a large scale. First thing is to understand the anatomy of the product. It's very important. When you're talking about a data pipeline or a data product, you need to understand which kind of variables you are dealing.  You can imagine any kind of product today are collecting, using behaviors, telemetry logs, databases, interacting through APIs and you need to collect all the kind of traces. It's very important. So the concept of the big data, the old concept of big data that follow us by the book, by theories that you represented by five or four v's, the pains of the author. And this is our splitting tree. One of these v's volume, volume means the quantity, the amount of data that you are collecting that you are storing, right? So the type of data. So JSON files, party files, API calls, unstructured files, structured data, unstructured data. Imagine that you have the image, you have the tweeters, you have web pages, logs, database, and other things needed to be stored. In general, this kind of unstructured data is stored on one thing named data lakes. And data lakes, it's basically where you store everything. You put everything there. Of course, you'll have some techniques to store the data in the data lakes. But in general, you put everything's there, you organize that. And from that, that place, it's called source of truth. You are able to collect your data and instruct what you call it off data sets. For example, you are collecting a bunch of tweeters, and you need to get just a piece of these tweeters by the date or by username or something like that. So you extract this data set, right? In the middle, you have like the process. The process basically are the softwares as well. So when the magic happens, right? So you have a very city. So when you, so you can trust, you can trust in your data. This is the most important question to do, right? So you can rely on our data. So your data represents something for the final user for who needs to use this data, right? And how fast your software are able to process all the data that you need. This is the velocity. How frequent you need to process this data to deliver this data, right? So imagine a bank that you needed to process the payment, the fraud detection. So you'll have like machine learning models or you'll have some kind of analysis and you needed to do it in a near, near real time process. Or you'll need it to be this kind of decision in a short time. So it's the fee that you needed to talk to the velocity. And the lesson in another, in another point, you have the velocity. It means your data represents exactly that you collected. And after you process it, after you analyze it, your data represented exactly that you are expecting for. Not the result itself or exactly what are expecting a good or bad thing, but the calculation, the analysis, right? So you need to make sure. And it's basically the code as well, right? As you can imagine, a data architecture is a software as a computer program, right? So you have a memory, you have files, you have inputs, you have functions and variables that deal with the software, right? They are processed, they happen as a site of the process. And in the end, you need it to delivery. You need it to spread this, this, this information that you took from, from, from your software. Sometimes you'll have the IPI, you'll have the files, you'll have UIs or even you're delivering another way. But works exactly the same. The idea is the same, right? Another important aspect is to understand the different architectural styles. And you are talking the most acceptable architectural styles in the market nowadays. They are not different, but they complement each other, right? So Lambda started first. So you need to understand the Lambda and then you need to understand the cap after in order to determine what's more simple and you can evolve better in your challenge, right? There's no silver bullet. So you need to understand what you need. For example, even I work for a bigger company. Actually, I'm not working more with data science two months ago, but before, I'm just working with batch process. Along with timing just to work with batch process for solving my problems. You understand, so I don't need the real time process, but probably you can need because you need to understand the architectural styles. And this one is what you call as Lambda. Lambda is an architectural style that tries to deal with a huge amount of data in a efficient way. And here you have two prints, right? You needed to reduce the lattice between the process and the serving, the data, because you have a high throughput. You needed to have a low latency to process this data and you needed to deliver this data. For that, you need to keep in mind that any change in the data state needed to generate a new event. So it's like it's a hetero event. Every time that you have an ingress, you are collecting the events. Some systems are sending events to you like logs, API calls, whatever. And you needed to decide if you needed to process it in a real time or in a batch layer. It's up to you to decide. But you needed to understand what's happened, one concept called event sourcing. Event sourcing is a concept that you use in events to make predictions and storing chains and assisting in a real time base. It means so you'll have like a column in your data storage based on date or something that you can have like historical data, right? To ensure that all the chains in your data, it means our events that are happening in your data, you'll be stored in a sequence. For example, you are trying to buy something with your credit card in e-commerce. So you put your, you type your credit card to paste for something and then something goes wrong. And then you have like a transaction. This transaction has a holdback and then you try it again and this creates a sequence of events that you needed to analyze it before. For example, this kind of a situation that I mentioned so can result, for example, to block a card by doing the fraud, for example, right? Because you need to understand what's happened and how it can happen in this speed or batch layer. Imagine that you are trying to put your credit card in e-commerce, right? So we identify our IP and your IP is not from Berlin or it's not from Dublin. Your IP is from any place in the world that is suspicious. So you needed to get all this information, cross this information in a very short time, low latency to determine if this card is facing a fraud or not, right? This is called event searching because you are generating events and events and you are able to analyze this timeline quick. But you have two splits here. You have the batch layer. The batch layer is the most common nowadays because it's the most cheap, it's the most defunded technique. Basically everything that you consume from the ingress is started in a data lake, right? And from this data lake, you have like periods of jobs or jobs running hour by hour, day by day or in periods that get this data from the data lake and create new data sets, right? They extract the data sets, they clean the data, they structure the data, they can generate machine learning models, they can do all the jobs. And then in the ends of the batch layer, you have one thing named batch views. And that means that is the representation of your data, right? So your data lake. So any manager from your company, any person who wants to consume this data can go there and query the data. In another hand, you have the speed layer. The speed layer consumes the ingress as I streamed. Once the data comes to your system, they started to be processed. As I mentioned, it can be used for financial proposal to identify fraud or not, right? And in the end, all this data, even you use speed layer or batch layer, in the end, you have all this data prepared and started in a database that permits you to consume or to serve this data, right? The main difference in the next slide where you talk about, so you have some pros and cons on this Lambda architecture. So for the Lambda, you needed to keep your data permanently started, right? So based on that, you might have a problems with GDPR in the Europe. So because you needed to retain user data, you needed to be compliant if you previous the loss, or even you spend a lot of money to store a huge amount of data to be processed. So you needed to plan it, right? The second one, all the queries are based on the immutable data. It means that nobody can change the data. If data is changed or the state of the data is changed, a new event is created and then you can follow all the things happened before, right? Since this is used for a long time, so it's re-elabeled and safe, so it's fault tolerant. It's why it's fault tolerant because you have all the data started in a permanent basis. If you found any bug, anything that is wrong in your code base, you can correct it and then you can run one thing they call it backfill. It means that you can go to your data lakes, read all that data and reprocess all the steps of your pipeline. And it's become a lambda architecture scalable. Vertical is labeled because if you need to process a huge amount of data, you can put more machines in your cluster to process it, right? And you can manage your historical data in a distributed file system. The most common or basically in fact distributed file system nowadays is Hadoop, you are in the cloud based in Amazon, Microsoft or Google, for example. But you have some cons that you needed to take care. One is prematurely modeling. It means that when you are talking with your team and you are preparing your data ingestion. When you are modeling your data or how you want to receive your data, you needed to think a little bit more.  As I told so can be expensive because you are storing a huge amount of data and depends off the batch cycle that you decided to use. Maybe you can spend a lot of money to process a huge complex pipeline, right? Now we will talk about the Kappa, right? As I mentioned, it is not a replacement for a Lambda architecture, but it's alternative or even you can consider like it's like a opiate of serving layer of a Lambda architecture, right? And Kappa architecture is unique use it for streaming process.  Another nice thing about Kappa architecture that you can keep just a small code base for that. Different from Lambda architecture that you have different components that you can use different pipelines inside one pipeline, super pipelines. In general, Kappa architecture is you can share the same code base because the data ingress tends to be restricted for field data sources, right? So basically, if you are not, it's the most important, if you are not up to real time answers, keep your life in the batch process and apply all the things that you know about software engineer to keep your code healthy and probably you'll have success in that takeaway. Applications of a Kappa architecture so you always have a well-defined event order as you have a life in a Lambda architecture most part of the time so we can instruct any data set any time, right? It's more used, it's more often used as a show network, set platforms for detections and it's very important because you needed to answer the questions fast. So if you needed to change and deploy your code fast to fix any bug or implement a new feature, you can do it in few minutes or few hours.  Another thing about string process that they use less resources than Lambda architecture because you can implement idea of horizontal ability scale that you can just grow your machine instead put more machines and then you can apply better the ideas of how to scale in your machines. Another thing about the Kappa architecture is that leverage machine learning to real time basis. Okay, have you ever did a question here? Let's see. So to do a stream. Okay, you answer after, right? But you have a console because if you introduce a new bug into your code probably you needed to reprocess part of your code if it's if you have some loss of data, right? And sometimes you needed to stop on your pipeline.  So, otherwise, you can bring problems to your business. So you have a pros and cons here. Now you talk about quads off on a pipeline or a data engineer product data product so science it's like a computer programming so the problems are almost the same. Of course, I mentioned the what I see the difference, right? If you see something wrong is in a software development, probably you see the same wrong thing in a data product as well, right? The first things the first things that it's very, very, very important on on data products access access level for the data.  You must implement access level to all data levels. It means that you needed to implement access levels for your tables for your data lakes for your data sets. That's how your code interact with your level codes. For example, how your codes can read the data from the data lake or your code can read the data from different data sets. So this is more about the ethical and how you implement the compliance in your company doing the GDPR in Europe in another country, then technical things, right? Another thing about security is try to use a common format for most part of your your data. For example, try to use the JSON files for text files or PNG or CSV for image or parquet files or files for columnar format. So you have different different kind of formats that you need to understand the better how to use.  Separation of concerns as well. Who needs to access the data in a while, right? And based in the code. Of course, the separations of concerns in your code, but avoid any kind of hard codes.  Automation is the most important, I guess. I think that's a consensus. So science data products are codes. So version of your code is using the best way to use your version. Power of technical tech platforms. Try to distribute the automation in different tech platforms. So you'll have your server for continuous deployment for continuous integration. You'll have your tools for code review links. You can use different tools for monitoring logs that you talk ahead. So automation is the key to keep the data product easy to fix, easy to improve, right? Monitoring. Don't waste your time creating monitoring using the monitoring. It's something that I learned in any company, even the small, even the big company that I'm working for. Delegate your problem of monitoring things to cloud all the time, logging, but try to avoid some kind of window login. So you'll have some right wrappers around the market that you can use different vendors in the same code base with the same analysis. It's very important, but try to not waste your time deploying monitoring infrastructure. Even it's easy to deploy, it's quite hard to maintain and tends to be very, very, very expensive because even more, as much as you started to collect in the data, more expensive your infrastructure become, right? And here, the challenge. So test and trace your code. Regression test is a must in the data engineer. It's a slightly difference. If you change your schema any time, if you change your input, if you change your code, you need to make sure that your old data is still working. That you can read your old data from your data lake. Remember that the data started in data lake, for example, is immutable. They can change along the time. So for that, you need to have some regression tests to make sure that you can read the data from data lake, for example, from some stream because everything changed. Remember that I told about inputs, inputs can change, can bring problems. Try to keep your inputs deterministic enough so how you can define your inputs, your schema to test and how force your tests to break, to correct and then you can identify and trace all your code, right? And of course, as any other software, try to, sorry, try to focus on unit tests, especially for internal components. And just two tricks here that's very important for data products. It's try to containerize all your third party components like, let's imagine that you have a Kafka, you have a message quiz, you have like Spark, you have different softwares from different platforms that interact with your Python code, with your Python platform, and then you need to to interact if you already started to deploy it into your machine. You can use some kind of container and integrate if your continuous integration service and continuous deployment service, right? And of course, when you reach this position, it's easily to reach like an end to end test. So once a week or each new nice feature that you are developing or delivery for your pipeline, you can run an end to end test to make sure that all the things are running, right? That said, a lot of concepts. Let's talk about Python, our love it technology that bring us to this nice conference. Are you talk about six mainly areas of data products? The most common it's what you call the UTL, extract, load and transform. And this kind of tools, this kind of APIs is responsible to read the data, to process the data, and to send the data to another place, right? The most common and famous tool is called Apaches Spark. Apaches Spark was developed in Java, Scala, over JVM, but they have a native wrapper for Python that you can write Python and interact directly with JVM, right? There's a lot of magic behind the scenes, but don't worry about managing Spark clusters. You can just use PySpark for that. It's my recommendation for anyone who are starting to deal with data. We started with Data Engineer Stux, right? Apaches Spark is a must nowadays, right? Okay, I don't want to use Java too. I want to use something more Python way. So I offer to you Desk. Desk is a Python project that's right in low level code, but they have like a Python wrapper. It works basically like the same as Spark. They are a parallel computing library that you can integrate with your pandas, and you can have like a bunch of machines in a cluster, and you can distribute like your process in different machines, right? It's a very useful product. It's not the well-used, I guess, for most part of the market, as far as I know. Correct me if I'm wrong. But it's a great choice if you want to start to interact with pandas, jupiter, and don't want to spend so much time to learn Java and Spark. You can go directly to Desk. Luigi is an open-source project that handles different tools, but they work as a library in Python. It's writing in Python. It's quite easy that it handles complex pipelines. Basically, you have a class that you define methods, and basically in these methods, you put your logic to consume, process, and deliver your data. It's really useful. I love Luigi. Luigi was created in Spotify, and I still use Luigi until today, nowadays. MIR Jobs is a quite old project. It's wrote in Python as well, right? But they run method-reduced jobs over Hadoop. It's more old-school-style way to create distributed files, but it's still useful. I need to be honest, a long time I don't use MIR Jobs. Ray, I just read the documentation. I'm not able to recommend it or not, but seems to be promising. When you need it to do with stream, streams, we don't have like a Pythonic tool for streams, but you have Kafka. Kafka is basically the facto tool in the market nowadays. Basically, everyone is using Kafka. That Python has like a library named Faust. Faust, you can just plug it into one topic and start to consume it. As I told before, Python is a keystone here. You can do everything with Python, even integrate different platforms and technology. You can use different platforms, instruct the best of each platform, and bring everything to work properly with Python. It's awesome. Storm is another platform for a stream that Python is accepted as well in a stream parse. It's well-used as well. For who uses Amazon or who uses Amazon, it's supported in Amazon websites. You have a brief analysis when you need it to do. Pandas is the facto analysis tool for that. You have different parts for plugins that you can use in Pandas to provide a high-performance analysis. You have data structures, data analysis tool, integrated with NumPy, and then you can instruct a lot from Pandas. You won't talk about those three or four libraries because my time is about to finish. Keep in mind that Pandas, if you are going to analysis way, Pandas is the facto tool and you can go and interact with a desk or Spark. It's very important. Pandas works with Spark and desk. You can use both if you want. Management. Airflow is another Python de facto tool for managing scheduler for pipelines. Please, if you want to work with data, learn Airflow. Airflow is a Python-based tool that acts as a cron job and you can create, as a Luigi, you can create very complex pipelines with Airflow. For testing. Testing is very important.  And for finishing, the most important, the most important also, it's very important that you validate your data all the time. Remember that I told about to validate to have inputs deterministic and something like that. Yes, you have a bunch of tools that help you to validate the schema, how your data are coming from the external data source, so you can define if the types of the columns, if the types, if the information is correct enough, right? So, serverals and envelope tools is really awesome. Tools are really recommend, right? I use the schema for small tasks, but I really recommend those three tasks, okay? And I would like to say a very obrigado. Thank you, Danky, and another language in European. And if you have any questions, you have two questions here in the Q&A you try to answer. And if you have further questions, please drop me a message on email, discord, telegram, Twitter, whatever you want. You'll be more than happy to interact with you. Thank you so much for the talk. I mean, quite happened. It was a pleasure. Thank you very much, Robson. We indeed have questions. One very interesting question is related to the Kappa architecture. How to deal with streams that needs a strict order so one event cannot be processed if the previous failed? Okay, great question. So, you can assume that in the Kappa architecture, all your events, all you'll be in a temporal timeline or an historical basis, right? What can happen if you lose some of it is because your streaming software failed and you couldn't retry, but you can assume that all your data will be in a time series. If you needed to process, as I told you, so they state of your data, you always change. So, if you have one update, one deletion, one upgrade, whatever, you can follow it by your time series. And then you can reprocess and then you can extract your data sets from there. Okay. But if your code are not able to process the event, you must make sure that at least you have some retention policy in your stream software. Like in Kafka, you can retain your software. You can retain your message or if you are using another software in Azure or Amazon. Okay. Thanks. So, we have all the questions. Oh, they are popping up very quickly. Next question is, what's a good way to link data and the version of the code that processed it? For example, the version column per every row doesn't seem like the most elegant solution. It's quite a complex question. I needed to understand better what the mentor wants, but are you trying to be generic to try to give you some insight? Doesn't make so much sense to relate the version of the code with the version of the data because what's matter is you have your version, your schema, not your, let's separate. The version of your code as a tool, it's okay. But the version of your schema as a technique as a good practice is even better than relating your code with your version of your data. For example, in general when you use some JSON or if you use some tool for creating schemas for your machine, for your data, in general you specify the version of that schema. If you use it on that version, you can have your regression tests, you can manipulate. For me, this is the most elegant solution because you can focus on your schema and then go to your code to fix it. So, we have another question. Thanks. Any recommendation for end-to-end tests in the stream world? Simple Python script can handle it. So, for my case, most part of the case, I create like a small Python script or I create some Ansible script that gets spin docker container with all the 35 components that I need. And then I run end-to-ends and this Python script that I mentioned, check the inputs, the process and the output to make sure that everything is running smoothly. Because there are three kinds of tests. So, you have the regression tests, my unit tests, but the end-to-end, I need to make sure that the previous tests are running fine. You can use this technique for any kind of end-to-end tests. For example, if you needed to run like a streaming process with Kafka and Spark, you can have two different docker containers running Spark and running Kafka. And then you can deploy your Python codes and then you can create a small script that validates the results for you. Thanks. So, we have one more question. One is a good idea to replace legacy SQL-based pipeline with Python code. Benefit would be just readability or one my count on speed-up? I think the answer is when you are not able to create more easy queries and you started to create a lot of procedures, functions or anything that helps you to automate your pipeline probably is a signal that you need to improve your architecture. Because functions, procedures into the database is quite hard to test, it's quite hard to maintain, it's quite hard to version it. So, probably you bring more complexity to your architecture that I afford to migrate to code and you have like a good data pipeline that can work better than a simple SQL-based pipeline. Okay, thanks. Just one thing for Philippe. So, I still use a lot of SQL-based pipeline because solve most part of the problem. This is not a problem, but when you get your product, getting more users or getting more complex, you need to change the strategy. But if your strategy is still working, this is very good. So, thanks again, Robson. Thank you so much.


What is going on guys welcome back to the channel critical over here, so we talk about some things that just came out regarding Halloween ends now the Stuff regarding the new potential character names and the breakdowns about them. That's not confirmed I couldn't find anything to verify that but I did manage to find stuff to verify the fact that the Working title apparently for Halloween ends is going to be called cave dweller. Now if you Google of Halloween ends cave dweller in the search results You should get an image like this with the production weekly being one of the sites that has it listed And then you if you look through this little image that I have up now You'll see that it has Halloween ends with the working title cave dweller So rest of the stuff that I'm going to be talking about is coming from Murphy's universe shout out to them for Going over these potential new characters. I'll just say because again, I wanted to find something to Verify that these are on casting sheets somewhere or just casting call sheets auditions somewhere. I couldn't find it But they are claiming that Filming will take place in Savannah, Georgia starting on January 19th and then of course they go over the fact that the director David Gordon Green is returning and Then of course he how he's described the Halloween ends film as a coming of age film And you know we already know it's going to be set four years after the events of Halloween 2018 and Halloween ends so They go on to say Halloween ends looking to cast a fair amount of roles among them are self-assured nurse named Aaron So first character named Aaron who's between the ages of 28 and 35 and is very judgmental as well as a Proprietor between the ages of 40 and 80 years old. So a proprietor is that I guess that'll be just a random background character Other roles being cast for the film are so along with Aaron We have a character named Scott a character named Donna a character named mr. Mead and Mrs. Mead and then from the breakdowns Scott is described as a male between the ages of 52 and 57 He is stern strong and in a straight shooter who was sometimes checked out Donna is described as a 55 to 65 year old female who is Timothy's overbearing and critical mother Mr. Mead and Mrs. Mead are the parents to a young boy named Noah Who is a nice kid with the ability to switch to a jerk on a dime? Both mr. And Mrs. Mead are described as being between the ages of 40 and 50 years old There's a middle-class or or they are a middle-class suburban family with the father being described as a tough as nails and The mother said to showcase emotional depth So some other characters apparently that will be factored into Halloween ends Will be a character named Brandon young Johnny and Veronica Brandon this arrived as a male between the ages of 40 and 60 He is a large man in weight and a sense of authority who finds his son to be a disappointment Young Johnny is a male between the ages of six and ten who has long blonde hair With a slight gap between his teeth the character is described as having dark eyes being a bit small Veronica is the last of the trio. She's between the ages of 40 and 45 and his strong-willed protective wife Who was broken by the reminders of tragedy? So Halloween ends being shot out in Savannah, Georgia now I might be but I guess I'm late to this but this has been a I guess known by a lot of people for some time Maybe I'm mistaken. Maybe some of you didn't know this either I thought they were still filming this out in Wilmington, North Carolina But apparently they seem to have switched up gears and they'll start filming this according to Murphy's multiverse On January 19th out in Savannah, Georgia, and then those characters. I just went over how of course they are connected to Laurie Presumably of course Allison as well Lindsey Wallace if if Kyle riches returns again, I believe they have already expressed interest in wanting to have her back and You know, of course the other individuals that survived the first two movies How they'll factor in with these already established legacy characters plus the character of Allison Nelson. I don't know Allison Nelson, I know already Will presumably be someone who I don't know this for fact, but again, I'm just going to assume She's going to be someone who is going through kind of like the same thing and generally that Laurie Stroh was going through in the first half of the 2018 film and then What she had been going through for the past 40 years since the events of the 78 film.  At least try to track down Michael Myers and keep her daughter safe from the boogeyman Because that's ultimately what ended up happening when she left the hospital Karen didn't leave right away But ultimately she ended up leaving Helping the mob and then saving Allison at the very end at the Myers house When she was about to get killed By distracting him and then luring him out into the mob crowd where they beat him to death or not to death Where they tried to beat him to death and then for some strange reason they thought that all of those little I would say Baby shots when you're dealing with Michael Myers. I thought that was enough They just left him lying there and then Michael got up and he of course took out several men that we know He should not have been able to do like that. We know that shouldn't have happened But as far as like all these new characters, I think that We'll learn more of more about them Of course as the date for production to start nears We'll also learn if these characters are actually going to be in the film because again, I can't find Where they have gotten these names from Murphy's multiverse again. That's who is Claiming these are the new characters that are going to be in halloween ends That's why I put in my thumbnail potentially I couldn't find anything as far as like a casting sheet or a casting call because I know those are out there For anything titled cave dwellers. I couldn't find anything like how I I have been finding stuff for those of you who watched my Jeepers creepers videos I was finding things left and right for Jeepers creepers were born But I haven't been able to find anything casting wise or character wise for this film In particular To verify that any of these characters are actually going to be characters in the film So if you are excited about these new little bits of information, then I guess let me know down in the comment section below Of course, nothing really too big to go off on just some character names With their ages and I I was starting to think that young Johnny Was going to somehow be related to big john and little john But then of course as I was reading the descriptions and find out that's not the case So let me know what you guys think about this down in the comment section below Are you excited and looking forward to halloween ends starting the film out in savannah georgia? Apparently on january 19th of next year. What do you think will go down in the film as far as like how it all ends? How it all wraps up? How do you think lord strode will play a factor? How do you think alison else will play a factor? How do you think all of these characters will be connected to them? But let me know what you guys think about this down in the comment section below However, of course, make sure you subscribe turn on postification and miss a video in the description I have links to my social media accounts on facebook twitter and instagram You can message me there, of course There's any movies news or reviews you'd like me to cover in the future and all that in mind guys I will see you in the next video


Hello everyone, I'm John Furrier with SiliconANGLE News and host of theCUBE and welcome to our SiliconANGLE News MWC news update in Barcelona where MWC is the premier event for the cloud telecommunication industry and in the news here is Red Hat, Red Hat announcing a collaboration with Nvidia, Samsung and ARM on efficient open networks. Red Hat announced updates across various fields, including advanced 5G telecommunications cloud, industrial edge, artificial intelligence and radio access networks ran and efficiency. Red Hat's enterprise Kubernetes platform OpenShift has added support for Nvidia's converged accelerators and aerial SDK facilitating ran deployments on industry standard servers across hybrid and multi-cloud platforms. This composable infrastructure enables telecom firms to support heavier compute demands for edge computing, AI, private 5G and more and just also helps network operators adopt open architectures, allowing them to choose non-proprietary components from multiple suppliers. In addition to the Nvidia collaboration, Red Hat is working with Samsung to offer a new VRAN solution for service providers to better manage their open ran networks. They're also working with UK chip designer ARM to create new networking solutions for energy efficient Red Hat open source Kubernetes based efficient power level exporter project or Kepler has been donated to the open cloud native compute foundation allowing enterprise to better understand their cloud native workloads and power consumptions. Kepler can also help in the development of sustainable software by creating less power hungry applications. Again, Red Hat continuing to provide open source, open ran and contributing an open source project to the CNCF continuing to create innovation for developers and of course, Red Hat knows a lot about operating systems and the telco could be the next frontier. That's SiliconANGLE news. I'm John Furrier. Thanks for watching.


Sneezing, coughing, fevers, and dizziness are all signs that this year's flu season is back in action. Because this money is 5-20% of Americans contract the illness, Boston University Student Health Services has scheduled a series of flu clinics on campus to ensure all students get the protection they need. Helen Williams, the nurse practitioner at the BU Occupational Health Center, believes every student should watch out for those symptoms and act appropriately if they begin to get sick. If someone has the flu, usually the signs and symptoms are the fever, the tired, achiness. You don't usually get an upper respiratory infection, so to speak, like a runny nose or a sputum, but that could come secondary, so you could have a secondary infection from the flu. In as far as treatment, usually stay home and rest and drink plenty of fluids and eat a proper diet is the menu for that. As we get further into this year's flu season, both students and faculty are taking advantage of the vaccinations on campus. Nurses are saying that even the scaredy cat should take advantage of this opportunity. So let's take a look and see what the Boston University Medical Group has to say about it. We're very skittish of needles. We will, you know, take care of you. We've given out maybe 3,000 vaccines so far this year. We hope to give out another couple of hundred, but we all need to do it together. We need to protect each other. The vaccination clinic will continue on the Charles River campus until Friday, November 1st. With BU TV, I'm Kirsten Glavin reporting in Boston.


What's happening man to say? So apparently we got some wild world news going on. Some type of scam on Facebook almost cost somebody thousands. So let's check this out shall we? By the way I will put the link in the description. Some reason I cannot download this. So yeah but you will be able to hear it. Cheryl Albrecht says she almost fell victim to a $2,000 scam on Facebook. And I consider myself a fairly young tech savvy person. It all started when Cheryl, nutrition director at a senior adult center received a friend request from an elderly woman she knew. Message back and said have you heard my good news? Well no. The woman claimed to have been awarded money from the federal government. She had seen my name on the winners list as well. Wanted to know if I'd gotten my money. All Cheryl had to do was send a Facebook request to a man she'd never met who would fill her in on how to get the cash. So she did and the man asked Cheryl for personal information like where she lived, whether she was married and then the man asked Cheryl to send him $2,000 in order to claim her prize. So today's veterans day the banks are closed and he said well you've got a Western Union you can go to. And I'm like a Western Union you any money. I knew at that point that it was too good to be true. But it didn't stop there. Still hounded me. Literally what do you want your money? Do you want your money? Cheryl learned the original friend request came from a bogus Facebook profile an imposter claiming to be someone she knew. Then a couple weeks later Cheryl said it happened again. In conjunction with Facebook lottery program. This time money being awarded through a Facebook lottery. The man even sent her this certificate is proof. Oh it is really sketchy absolutely. The Better Business Bureau suspects the Facebook lottery scam is being used to deliver malware on the computers and to get your personal information. The BBB says warning signs include it being message out of the blue being asked to click on links in demands of confidentiality. A few of the Facebook accounts that have contacted Cheryl have already been deleted or flagged. Cheryl says her close call should be a warning to others. That's my concern was I didn't want any more of my former seniors or my current seniors to be fined when I was a hard-working money. To those knows a lot of money. To those knows a lot of money. There's someone working let alone someone who doesn't have a lot of reserves. Yeah so this happened to me. First of all this particular scam has never happened to me. Post your comments below let me know if this particular one you know someone might try to get you. But another thing is a career began about 20 years. I almost got got a few years ago by one of those Nigerian email scams around when the internet first you know everybody this is back when I was still living in like Beverly, New Jersey. So get this email and you know how it is with the Nigerian ones. It's always like some rich prince or somebody that wants to transfer money to you.  So I remember they wanted a little bit of my info. They want my phone number so they could call me and give me the details and then they would ask for a few things later. So he had asked for like my phone number my address my social my bank account or something like that and all I gave was my phone number because I was like wait a minute. So then he had called me and he had the authentic accent and everything you know this is from Nigeria.


First question is from Barbells and HousaFells. What are the best accessory lifts to increase overhead press numbers? Ah, the overhead press. I'll tell you one that had a huge impact on me. One movement or one type of movement in particular that just, it really made me, it probably added, I'd say 15 pounds to my overhead press and that's coming from someone who's been working out for a long time.  I knew you were gonna say that. Yeah, just pressing something overhead like a pair of dumbbells, a barbell, a single plate, kettlebells, straighten my arms out, having good posture so maintaining that strong tension and then walking for, you know, 20, 30 yards, putting them down, resting and then repeating because it gave me so much more strength at the top end of my movement where I tend to, where I, When you're reinforcing that support at that top position, which is everything with the overhead press, which yeah, that's a great exercise. I think for me too, like adding rotational elements to help then even more sort of bolster that stability in the whole shoulder joint is huge for me. So one of them was like a kettlebell halo.  But I like went down the rabbit hole with this and that's where I got into Indian clubs and into Macebell swings. So it's loaded shoulder swings for rotation and it has totally transformed my strength in terms of overhead press and even bench press as well. So I highly recommend it all the time I'm recommending this. I don't know if you would count this as an accessory lift because it's kind of the same thing but the two movements that I think I noticed made a big difference and to Sal's point, I've been lifting for a long time. So anytime we get any sort of incremental gains and like the big lifts from doing something, that's a big deal, right? And for me, there was two movements that I wasn't doing, let's say 10 years ago that I started to do more recently and saw a huge gain in my overhead press. One of those being the Z-Press, which you've heard me probably tout a million times on this show, which is why I tout it all the time because it made such a big difference. I think that actually speaks to kind of Sal's point because in the Z-Press, you lock out at the top and you stabilize. And so when I do the Z-Press, I exaggerate how long I stabilize before I come back down. What I like about that is it gets me to where I'm in a good locked-out position. It teaches me great upper body mechanics because you can't cheat it. If you cheat it at all, you're gonna fall over to the side and then I get kind of that isometric hold at the top, which is the benefits that Sal's talking about. He gets so the Z-Press was one of those movements. And then the other one that I never used to do until actually I started hanging out with Justin is I never did like a push press, which allowed me to increase the weight because I got to use a little bit of body English to get the weight up over my head. I came from like a bodybuilder type of a background or way of training, you would say, which is very tension-based and slow tempo and shortening the range of motion up and seated overhead press, and that was like the go-to way to build your shoulders. And I really didn't get into push presses until Justin, but what the push press allowed me to do because I was able to use some legs and body English into the movement, it allowed me to load the bar a good 25 to 50 more pounds that I was ever able to strict shoulder press on there and just getting used to moving that much weight over my head and then stabilizing at the top really not only developed my shoulders but increased my shoulder press strength. Yeah, years ago, as a kid, one exercise that had a huge carry over to my barbell overhead press was the Arnold Press, which I learned from watching from reading magazines with Arnold Schwarzenegger in them. And I think one of the main reasons why it helped was because it really exaggerated the range of motion because I was rotating my hand and bringing the dumbbell down in front of my body. Now I'm pressing from a much lower position and getting a fuller range of motion. Now what's even better than an Arnold Press, in my opinion, is a kettlebell overhead press because it's very similar. Yeah, because you can keep it like relatively close to the body the entire way through because of the way it's loaded and it promotes that nice natural spiral line that you can press your way through so you get that rotation in your wrist and your elbow and your shoulder all simultaneously. And so it's like your body responds to that, to build a nice stable joint there.


Hi everyone, Joe for jaspyscasebreaks.com. What a great late night rally. We knocked out 2022 hip parade, goat, all-time greats, multi-sport edition, random player break number two from jaspyscasebreaks.com. 32 spot, it's a random player break. You'll get randomized to player. Now, sometimes there are could be a name that's if there's like a dual auto and one of the names aren't on there, what we're going to do is everyone will get a shot at getting the other name. You'll see what I mean if we get there. It doesn't really happen too often, but I just want to put that out there. That's how we've been doing it. Big thanks to this group right here. Most of these were picked up straight up. I appreciate that. And we only ended up doing one filler, which was awesome. There's all the names right here, some real nice names on that list. Let's roll it, randomize it, six and a three, nine times. One, two, three, four, five, six, seven, eight, and once more, ninth and final time after nine. Daniel down to Daniel. Daniel with a spot that he won in a full spot as well. Six and a three, nine times for the players. One, two, three, four, five, six, seven, eight, and ninth and final time. After nine, we've got Hammer and Hank down to Lewis Hamilton. It's looking like that F1 season pretty much wrapped up, right? All right, Daniel with Hank Aaron, Chad, Joe Montana, Steven, Patrick Mahomes, Jason, Novak Djokovic, Kennard, Diego Meridona, Jason with Tiger Woods, Chad Floyd, LeBron, and Bill Russell, RIP. Jason with Mario Lemieux, Chad with Michael Phelps, Vipple, Wayne Gretzky, Andy, The Babe, Babe Ruth, Chad Serena Williams, Diego St. Bolton, Chad with Alex Ovechkin, Steven with Lionel Messi, Patrick Sidney Crosby, Michael with Tom Brady, Kevin, Shepard Jr., MJ, Michael Jordan. Greg with Cristiano Ronaldo, Jason, Seth Curry, Chad, Roger Federer, Mickey Mannell, Rafa, and Belé. Michael with Mike Trout, Chad with Chris, oh, Chris Bryan, not Chris, Chris Bryan's not coming in here. Kobe Bryant, Patrick with Mike Tyson, Chad with Muhammad Ali, and Jim Brown, and Daniel with Lewis Hamilton. All right, let's alphabetize by player, and if you, we're gonna pause the video. If you want to trade, definitely trade. Now we're gonna keep the trade window open when we come back, we'll see if there's any trades, and then we'll pop that open. It's gonna be really nice. We'll see you in a little bit. BRB. All right, welcome back. There were no deals done, so this list right here remains the same. The song remains the same. Thanks. There is right here. Six of six. Order 66. Hi, guys. Whoa, yeah, Diego, you're right. That, if he was here, he might've done that trade. Diego would've gotten Diego Maradona, and Canard Bolt would've had Usain Bolt. He might've done that trade, I don't know. Well, we'll never know. We'll never know. All right, I don't know if more cases exist of this. We don't have any more. I don't know where the other, well, we did two of the six. I don't know where the other four are. They're out in the wind somewhere. Sell sheet. Roger Federer, yeah. 9-5-10 from 2015 Sports Kings. See him soft. Centering edges, corners at 9-5, surface at 9, lost at doubles match, I think the last of his career. And I didn't even have the hour just crying together, it was sad. It was sad. End of an era, for sure. It's a great time to hit this card. Roger Federer, Chad Cromwell. There you go. Definitely a goat, definitely an all-time great. Big card right there. Yeah, what a night for Chad. Look at the big hits for Chad. What was that movie from? Well, look at the big brains on bread, Pulp Fiction. All right, PSA4. Mickey Mantle, see your mom. Wow, from 1959, tops the mick with a facsimile autograph right there. PSA4 for a card from 1959 is not too bad. Mickey Mantle's spot, going to Chad. He got a lot of spots in this. Scared money, no money, money. Another one is just a 9-5 LeBron James from 2013-14 Prism.  That's a pretty good grade for these die cuts. Miami Heat edition of LeBron, 137 out of 199. Chad with the LeBron James spot. He's got half the hits so far. He did invest a lot of spots in this, so far so good. There you go, thanks, Brandon. Brandon looked up the Mantle. He said recent sales, 550, 650 around there. Easily covers the Mantle spot and a couple others. Ooh, what's this? There's an extra card here. I'm gonna hide all the, oh, I think it's expired. Sorry, there was a giveaway here, but they did the drawing already. We did a break once where we did pull that one of those giveaway cards and we gave it to the person who got the card and I think that person actually won the giveaway box from Hit Preview. All right, we have 12 out of 20 material grades, Babe Ruth. Come on. Come on.  Maybe from the barnstorming days. Babe Ruth licensed by the Babe Ruth League and the family of Babe Ruth. Care of Luminary Group, www.baberuth.com. This is from 2016, Flawless Baseball. The Babe, going to Andy Rask. Got a spot straight up, got the Babe. Not sure what that's from, but you might be able to read the small print and figure that out. Traditionally, I've seen some of these Babe Ruth like relics or bat relics or something like that and they will refer to it from a jersey from one of his barnstorming runs. All right, a couple more to go. We've got a 1992 Tops Archive Basketball Card, PSA 10. Michael Jordan. His airness. Air Jordan. Be like Mike. Michael Jordan, Kevin Shepard Jr. K. Shep. The Michael Jordan. Last, this is an excellent way to end the night. I'm glad we did this break, ladies and gentlemen. Thank you. Thanks very much, everyone. Appreciate it. Last one out of this hip parade, goats, all-time greats, multi-sport break is gonna be another Mike. 11 out of 25, Iron Mike. Mike Tyson, Relic and Autograph. Actual training trunks. Nice. Mike Tyson, Patrick. With Iron Mike. Nice. That's awesome. There you go, ladies and gentlemen. Pretty awesome stuff. Thanks everybody for watching. Thanks everybody for getting in. Appreciate it. I'm Joe for jaspeascasebrakes.com and I'll see you next time for the next hip parade break. Bye-bye.


This is not the first time these officers have dealt with her. And so I want to make it clear that she was not there because she was distraught over the situation that her father has caused. She has caused the same type of disturbance all over this county multiple times in the last year and I'm tired of messing with her. I've told the officers get in here less and diet her. Let's lock her up before she kills herself, before she hurts somebody else, or before she dies. So we intend to pursue Santana Hall pretty aggressively in this case. I'm tired of messing with her.