Hello guys, in this video we are going to create a simple calculator app in Angular. So let's go ahead with command prompt and write the command ng new and project name that is CalculatorApp in order to create a new app. So make sure your internet is connected and for the time being we are using only one component so we don't need routing so let's go ahead and hit no. Then you can choose the CSS I'm going with the basic CSS so later on whenever we will use other CSS then we will choose accordingly. So let's wait for this to finish. So once it is done you can just close it and go to your project folder that is CalculatorApp and just open this folder with VS code. So once it is opened we can simply go to terminal and simply write the command ng serve and hyphen o in order to open it in the browser. So it will generate the build for the browser. So once it is done it is going to open it. So meanwhile it is generating we just go to source app and here you can see by default you have this root module that is app module which is using one app component over here so we have default opened. So let's go back. So we have this default component and that is called root component. So let's go to the HTML file for these. This is the HTML file that is displayed on the browser and this is the CSS file that is currently empty and this is the testing file for the sake and we just need to modify this one. Let's delete everything and simply use the table tag over here and just save this table and inside the table we will use table row. So we are just designing a form kind of thing tr and inside this tr we will be using td and this would be first number and just close this td and the second would be the input tag for getting input from user. So input type is equal to number and then place holder let's say first number save this and once I save it you can see immediately this is output coming over here. So same way let's quickly create one more row and create second number. Same way this is for second number and then save this. Let's create one more row and this time we don't need this first column and in second column we will be using button tag over here and inside the button we will use add let's just save this. So add button is here same way we can add one more button over here. So let me add one more button here this one is for subtract save this same way I will add one more row that would be for multiply and divide next we need one more row that would be holding the result let's say so result and here would be the result. So now what we can do we can add little decoration over here. So let me add one caption over here let me use for tag over here. So you can decorate it as per your requirement calculator save this okay. Now I just go to CSS and just use this table over here and in this tag let's try to give some background color yellow save this okay so we are getting this yellow let's use some water as well for decoration one pixel and so let's give it gray color save this and we can use some padding as well let's use 10 pixels and now we need to just put it in the center of the screen. So what to do let's use the property top to 50% and left to 50% and once you do this it is starting from the center. So we need to just write that position fixed save this okay now it is moved to the center but we need to just take it to the center point instead of starting from the center for that we can just use that transform property transform and for that we can just translate it to minus 50% and minus 50% take just save this it should move to the center yes exactly. So what we can do we just change this color from yellow to something else so that it should look good we have this RGB color factor. So let's use 240 for R, 244G and 244B save this now it should look better okay so everything is done so we can do what we can just add little spacing between these buttons so let's go here so we can use that button here buttons and for button we need some margin let's say you can say 2 pixels save this and we get margin and let's make a fixed width of these buttons so that it should look equal 80 pixels I think that's enough. So seems better now we left with we can just move these buttons to the center as well so let's do what let's create one class here dot center content and we simply say text hide one align center and we can just copy this class name and go here and just add it to this DD class is equal to this and same way we need to just align these using class is equal to center content so now it seems better so what we left with now we need to create some template reference variable so that we can get the enter value so let's define over here by using hash so this is my first number and I'll just copy this and same way I just create one here for my second number second number and to assess these values let's add a click event over here so once it is clicked what to do simply just call a function that is add so once you're adding we need to pass these values so how do you do so simply say this template reference variable dot value so this gonna give me the value whatever user will enter as a value property and the second argument I would like to have is second number so we just copy it from here and paste it just save it so since these values are not available so that's why it is showing and let's do what simply just create a add over there I just copy this for simplicity and we just move to this component of TS file and simply create here one function and instead of using this dot value we can simply just add two variables so we can just make it as number type number type and here you can simply log let's say first number plus second number just not giving me auto stations let's save this and you can see we are facing this operator cannot be applied to number okay so the problem is that by default we are getting it as a string that's why we are facing this problem let's convert this as a string and working for let's open this inspect and go to console and let's clear everything and type let's say 30 and 2 so let's click on add and you can see you are getting 302 so since both are strings for whenever you use plus operator it gonna concatenate so what we can do we can just create a result variable over here which would have something let's say initially we don't have anything I just use it as a string type for nothing we have initially so whenever we will execute this function we can do what we can simply say result or we have to say this dot result is equal to so first of all we need to convert this to numbers so that we can change this concatenation to arithmetic addition and once you got this number you can simply just convert it back to string since this should be as a string okay so let's save this and one more thing we need to do if you want to display the result over it just go here and I just use the bold tag over here just use this variable which variable this result variable okay so copy this and this gonna display the value over there so let's try this time say 20 and to go at and you got 22 and same way I just make it bold and one more thing we can do I just add because we need to perform different operations so I just create one more variable over here that is result name is equal to initially it should be result and later on we can change this for example if this is like this so we would say this dot result name is equal to add result this would be better for example if I try to use this first of all go back here and same way instead of using this result I have to use that variable result name so initially it is coming result so if I use this addition it would say add result 33 so same way I need to add this function call with all the buttons let's copy this paste it go down paste it go down paste it and just change from add to this one is for subtract and same way this is for multiply this is for divide so save this you may get error because we have not created these so let's go to TS5 just copy this paste paste paste the first one is for add second one is for subtract and say subtract result and here change the sign from plus to minus and go down this one is for multiply and just change this text to multiply and change this operator to multiply go here change this to divide function and change this text to divide and change this operator to do this save this so errors are gone so let's go back and try this so I say let's say 50 divide by okay so let's go for add is giving 52 subtract 48 multiply 100 divide 25 so that's all for this video if you have any doubt do comment in the comment section otherwise like subscribe and share thank you


Sentences can be analyzed into hierarchies of constituents. This unit discusses the historical development of phrase structure systems from 1957 until today. Well, why 1957? Well, that was the year when Chomsky published syntactic structures, his first major influential work. Well, and today is influenced by his minimalist program and the discussion and alternations of what he published in 1997. The method of representing syntactic structure visually by the use of tree diagrams, also referred to as phrase markers, has a long tradition with a number of significant milestones. So as already mentioned, the first milestone, and we will illustrate this on the basis of one sentence. The first milestone was the year 1957, when Noam Chomsky introduced the first version of a phrase structure rule system as you can see here. It was neither strictly binary as it is today, nor did it use intermediate category levels such as bar levels we know from modern systems. Before 1957, American structuralists such as Leonard Bloomfield or Zellick Harris suggested preliminary versions of hierarchical structures in linguistic analysis, thus predecessors of modern phrase structure systems. Let's look at the central properties of the 1957 system. Well, S, which stands for sentence, is the highest category. Inconsist, it consists of two central categories, the noun phrase and the verb phrase. The verb phrase itself consists of the verbal complex, so this would be the verb itself, well an all optional and obligatory elements that are associated with it. So there is no distinction drawn between optionality and obligatory. So there is no distinction drawn between optional and obligatory elements such as adjuncts and compliments. The auxiliary part in this model exhibits all grammatical aspects, so here it is. Well, this is not too remote from what we have today. It exhibits all grammatical aspects associated with the verb, tense, aspect, modality, etc. Let's look at the successor from 1965. Now, this version was published in Chomsky's influential book Aspects of a Theory of Syntax and it was at a time referred to as the Standard Theory. Today, of course, it's no longer the Standard Theory, but in the 1970s, 1980s it was referred to as such. In the Standard Theory, two major changes were introduced to the phrase structure rule system of 1957. First of all, we find the predicate now, or predicate phrase. Now, this is a new node. It consists of the auxiliary complex and the verb phrase. And the second very interesting new node was the operator node. Now, the operator contains a symbol for the sentence type. So the idea was that prior to generating the syntactic structure of a sentence, we have to determine what type of sentence it is that we want to generate. A declarative sentence, an interrogative sentence, an imperative sentence, a declarative sentence in the passive, a negative declarative sentence, and so on and so forth. So this operator node is, well, if you wish, an early realization of the space comp node in modern theories. Well, the next major step was published in Reflections on Language in 1976. However, one of Chomsky's disciple Ray Jackendorf was also very influential in the development of this first version of what they referred to as X-bar syntax. The idea goes back to Chomsky and Jackendorf, as I said, and a discussion of the representation of nominals. The intermediate categories, so we have something like a system like X double-bar, X-bar and X, so this would be the intermediate category, this would stand for the highest category, Xp, so that is the idea. The intermediate categories between Xp and X, for example, between noun, phrase and noun, so here we have such an intermediate category. Here is another one, here is one, and here is one, verb bar. These intermediate categories are represented either by means of a real bar on top or for reasons of simplicity, especially if you want to write these symbols by means of an apostrophe. They filled the gap between phrasal and lexical categories. The resulting phrase structure system has been called X-bar syntax, henceforth. Now, what was new in this system apart from this intermediate level? Well, we have a new node called complementizer, a node for all those elements that can be moved into sentence initial position, for example, WH elements like which and who, that, conjunctions, etc. Well, and we have, well, similar to the 1957 system, we have an inflection node infill, which is filled with the inflectional properties of the verb. In English, these are all parts of the verb group except the main verb itself. Well, as we move on in time, in 1986, Chomsky published a book called Barriers. Now, moving on, the new system exhibits now strict binary branching and a change of the former top level node S-bar into CP, complementizer phrase. So this is the complementizer phrase. Now, we have strict binary branching and intermediate categories in all sorts of nodes. For example, new was the P-bar node, which now filled the gap. It was simply forgotten in versions prior to that. Now, also we have C-bar, which is the equivalent of former S. So here, this well is former S-bar. We have IP, the inflectional phrase that is the projection of infill, inflectional phrase. This is the, by the way, I forgot the bar here. This is the projection of infill. The verb phrase now contains just verb bar and an optional specifier which has been dropped here. So in items, in constructions like have just gone, just would be the specifier of verb. Propositional phrase have the typical S-bar structure and infill is filled with the inflectional properties of the verb. Now, today's system is generally associated with S-bar syntax. No serious syntactic representation in generative grammar does not use S-bar syntax. However, we have now two different types of phrase. You can see them here. Type 1 and type 2. As a consequence of this, now phrases can now be reanalyzed either as simple phrases, which would be here. So you have just the head in the specifier. Or as complex phrases, which would be here. So this would be number 2 and this would be number 1. Now note that the term noun phrase has been replaced by determiner phrase as a consequence of having complex determiners like a lot of etc. A simple determiner phrase with a simple determiner and a noun would be number 1. And a complex determiner phrase with a noun phrase structure inside would be determiner phrase 2. So here we have the old noun phrase structure. Further changes concern the introduction of a general functional category and an extended daughter structure of I-bar. So extended daughter structure would be here and I-bar. To account for the morphological features of tense and aspect. So something like this. Now several interacting arguments lend support to the postulation of the phrasal categories and the branching as presented here. These arguments can be subdivided into non-syntactic evidence, distributional evidence and other syntactic evidence. The e-lecture phrase structure testing illustrates these arguments on the basis of various phrase structure rules.


Hi, today's presentation is about auto-skilling in OpenStack without telemetry. I'm Dr. Wu Thuan from VietTel Group. The other speaker, Gien Wen Thuan, is here today, so he cannot join me. We will have four parts today. The first one, what is auto-skilling and what auto-skilling can do. The second one, OpenStack auto-skilling with heat and telemetry. The third one, and talk about what are the problems with telemetry. And the final, I will introduce our architecture with faith and promise. So, what is auto-skilling? Auto-skilling creates a target tracking scaling policies for those resources in your scaling plan. These scaling policies adjust resources capacity in response to live changes in resource utilization. And in most architecture, auto-skilling is simply the combination of three steps, metering, alarm and scale. So, auto-skilling in OpenStack with heat and telemetry. In OpenStack by using predefined rules that consider factors such as CPU or memory usage. OpenStack heat will add or remove additional instances automatically when they are needed. The architecture, the component, the core component providing automatic scaling is orchestration, which is heat. The template defined rules to evaluate system load based on telemetry data to find out whether there is need to add more instances into stack. Telemetry does performance monitoring of your OpenStack environment, collecting data on CPU storage and memory utilization for instances and physical host. However, there are some problems with telemetry, especially with our rocky OpenStack environment. First, telemetry projects are lack of contribution, which I think is the most important factor of an open source project. As of the Queen's release, the telemetry has lost several developers. The development of Panko and ALDH has stopped. Gnakti was moved out of OpenStack in June 2017. The integration between Gnakti and ALDH is really not good. Gnakti is unmanned, so telemetry is only carable of collecting OpenStack-related metrics from instances. How about application data? Customizing in telemetry is not easy. How about custom rules, custom metrics? In order to custom rules and adding new metrics to Sailometer, three different projects need to rebuild and reinstall. Sailometer isn't plugged in. Gnakti to store new metrics and ALDH to be able to evaluate new metrics. And one more thing, RebitMQ was under heavy load due to Sailometer workload. If Sailometer gets stuck, it queues overflow. And ALDH listener doesn't support high availability. Next, I'm going to talk about our problem. We use ProMeteor ecosystem to monitoring the whole infrastructure system as well as applications. So why we use ProMeteor? ProMeteor features a customizable tomb keep and delivers metrics without creating lag time on performance. ProMeteor also supports a wide range of exporters. ProMeteor also has a really nice query language from QL. So I was showing you the other scaling is a combination of three steps before the metering and scale. So in mapping to over stack, height and telemetry, the Sailometer and Gnakti is in charge of metering and ALDH for alarming and height for scaling. So we use ProMeteor stacks to collect and store metrics and height for scaling. We need a new one to do ALDH based on metrics from ProMeteor. Here we introduce faith and open source software. We view ourselves working at us as a bridge between any cloud platform from OpenStack or cloud platform, Amazon Web Service to any monitoring system. So all architectures with height and telemetry will move to the new architecture with ProMeteor's exporters and faith. So how it works? ProMeteor collects and store metrics from a set of ProMeteor's exporter. In over stack, we use over stack SD config to auto add or remove instant by querying over stack. We add a label and query over stack instant list using instant metadata. Basically, we add metadata to instances and based on that kind of metadata, we add a new label to metrics. And then faith, periodically check scalar rules, user defined from QR expression by querying ProMeteor to evaluate query is satisfied or not. If the rules is satisfied, then check a scale action. From there, it will take care of the rest. Here is an example from our system. When system on peak hour is had a really high traffic, so we need to scale for instances to serve and user requests. When the system in off chat or pick our the traffic is a really low, so we need to scale in to remove instances for other applications. So why we use faith and ProMeteor's? As I said before, ProMeteor's provide a very flexible query expression and ProMeteor's also support a wide range of exporters. So many metrics can be used or combined with each other. We can fully handle ticker scale action method, number of retries or kind of delay. And faith also has its own cluster mechanism. We also have web UI and HTTP API. So here is our web UI. You can specify what kind of query you want to input into query and the duration interval text description and so on. So this UI, you can choose a different cloud from the cloud input and ProMeteor's query goes here. The interval is the delay between each ProMeteor's check. The duration is the total amount time from the beginning of the query happens to the when the action ticker. Cundal time is the time between two HTTP action. Okay, let's go to the demo. Here I have one instant which has sent out 7.7 image. Here I have a stack with a flavor M1 medium and sent out 7.7 image. I have one dummy from QL which calls the number of faith instant. Okay, let's check if the number of faith instant equals 12. The interval of 10 seconds, 1 minute duration and Cundal 1.5 minutes. So for the URL, I copy the scale out URL of the stack. That's okay for the scale out. So let's create another for the scaling action. Okay, repeat the steps, copy the scaling URL. Okay, let's check if we have two scalars. Okay, let's go. Let's wait for a step. It may take one minute for Prometheus exporter to... Prometheus to scrape metrics from Prometheus exporters and another minute for the scalars. So that's my B2 minutes, up to two minutes. Okay, another instant. Another instant having sent out 7.7 image and M1 medium flavor. Okay, delete the scale out scaler. Okay, remove one faith instant. So the number of instant less than 12 is 11 now. And wait for another one or two minutes. So one instant is being deleted. It works as expected. Okay, so thank you for your attention. If you have any questions, please ask me now or feel free to contact us via email on the screen. Thank you.


In this video, I'm going to be talking about some alternative units for rotational motion. I'm assuming you already have seen my other videos on rotational motions, if not, the links to them should be somewhere below. Let's just quickly review, in rotational motion we're going to give the position as an angle in radians, the angular velocity in radians per second and the angular acceleration as radians per second squared. So basically our SI units are all based on radians. We also have the period, which is the time to go around a circle once, which is either the circumference 2 pi R divided by the linear speed V or the whole circle 2 pi in radians divided by the angular velocity. Now what are the alternatives? The main alternatives are the following. We could have one rotation, could say this is equal to well in radians, let's first look at the SI standard units, so as radians a full rotation is 2 pi radians. Alternatively, we could give it in degrees, you could say this is 360 degrees, or another rather popular unit is revolutions, so one revolution. This one is the SI, the other ones are the alternatives. Now just to make problems more complicated, often angular speeds are given in revolutions per minute, so what is an RPM? One RPM is equal to one revolution per minute. Now if you want to play it safe, you will convert this into the SI standard unit based on rads and seconds. So how do we do that? First I want to get rid of one revolution, so one revolution goes down here and I want to replace it with its equivalent in rads, so 2 pi rads. This way the revolutions are cancelled and replaced by radians. Now I do the same with minutes, you might remember that this is standard unit conversion that I showed you in a video at the very beginning of this series on mechanics. So minutes, I want to go to seconds, so I have minutes on top, I want to eliminate minutes, one minute is equal to 60 seconds. So in the end, if you need to go from RPM, revolutions per minute into rads per second, your SI standard units, you multiply this by 2 pi and you divide it by 60 and you will get rads per second.


So boom. So Indian song, Tati, you say you fell in love with a Tati. Is that true story? I feel like every nigga fell in love with a Tati. Okay, what's up guys? We got a new episode of Talk of the Town. Today we got a special guest, Mr. Little Guy Cash. So for the people that don't know, what are you from? Okay, so you still be out there? Yeah, I'm always out there. Spending a black hair in there?   Queens? Yeah.   Bags.     How do you feel about Queens? You feel like they're doing good in the music? Feel like it's quiet? How do you feel about Queens right now? The Bronx type lit right now? Yeah, that's the problem. I think you want my honest opinion. Honest opinion? How do you feel about the Queens? My honest opinion.  Why do you think the industry not embracing Queens right now, though? It's just the records. So you think they not making good tracks? I ain't say they ain't making good tracks. A lot of people making good music. It's just about making a right. It's not going viral from Queens right now. And it ain't been like that in a minute.  No, I didn't think that. It's just gotta happen. You can't feel me. It's just gotta happen. And then it come down like, you know what I mean? People thinking something that is not.   Who got beef with each other? Y'all.  You do?  They just hate. They ain't never seen a nigga like me and Queens before our generation. You know what I'm saying?  It was like 50s and niggas.  How?  Sure. Really?    You actually have a man. Hmm, it sounds like a true story. It's a lot of truth to you.  Why is it? Why is that?  What you be doing? Oh no, I'm just, I'm just a vibe. You're just a vibe. So they had to hang out with you to know you arrived though. Nah, I feel like females could, they could see you around me.  Anything you be like, you know what I mean? That's the difference between y'all and us.  What's the difference between guys? How y'all know girls wild? You don't kid.   They don't care about her vibe most of the time.  You're not about to do that.  You don't call the bitches that's the best vibes.   That's after the fact though.  So don't do that. That's when you want to chill and be in a good environment, but when you really ready to get this early, you can get right.  Wow. Wow, you're one of those type of niggas. Nah, I'm not. I'm just like, you know, I'm a niggas. So I'm just like, you know, I'm a niggas. I just want like vibes matter, like please. No, vibes do matter. That's when you want to chill them. Yeah, but what I'm saying is niggas have times where they want to chill. Your bros ain't always a vibe. I have times where I want to chill. So you call those vibe bitches. Everyone have them. Okay. So you vibe by yourself. Anyways, back to the music. How you got started in the music? I used to be like being an iPad in the car. I used to live in Georgia. I used to be in my dad truck. iPad? Who you listening to at that time? Soldier boy. Soldier boy was like when I was a kid. A kid, kid. So like 13, 12, who you vibe into? Who you listen to? 14 guys. 14.   How you feel about the drill music right now? Hopefully. Yeah?  And I do it too. Where you can't give New York niggas nothing. Alright, y'all gonna do that. We stuck the whole drill scene up right now. It's a good or bad thing. It's bad for the streets. But it's good cause young niggas getting rich. But what about the people that don't do drill? Like you consider yourself doing drill? No, I don't do drill. I tap into everything. I know, but it's man drill artists right now. So you think they affecting you or? No, they not affecting me. This is work. Drills a phase you feel like? Now phase is a genre. I'm saying but everybody's on drill now. So you think it's a phase? It can't be a phase. It's been going on for 10 years. It's a genre. It's heavy in New York right now. They call people drill rappers. So that means a genre. Recently though, I feel like we're recently drill artists getting bigger. Yeah, but look at all the niggas that started doing drill. They not even doing drill. Chief Keith for all the niggas. They not even doing that no more. They paved the way, yes. If I said it's a genre, you could get out of it. No, it is a genre. What I'm saying is oversaturated. I feel like everybody's looking to drill right now. That's just in New York though. Yeah, in New York, that's what I'm saying. It's other artists that don't do drill. Where they go? What do they do? If everything is drill. There's 20 artists in New York that don't do drill. I can name them. They got bigger records then. What do the drill mean? Yeah, but it's harder to find those records. There's so much drill coming out right now. But it's coming out. What's really going on platinum? I mean, Gala's going platinum. Gala's going platinum.  So, yeah. So, think for you the numbers. Big record. How do you feel about that? Like, how do you feel about thinking? Yeah, I mean like that was... Yeah. So, what was one of those life-changing moments? What that song? Or what was something that happened? That song was going up.  I remember when I was in the studio and Nikki and stuff like that. I was like, you know what I mean? Sit like that. So, you was like one of the, I think one of the, probably not the only artists, but you got to meet Nikki locking the studio with her, right? How was that? Did you feel pressured? You was like, damn, I got to buy this record? I ain't never pressured. Most of the time, I don't be sober anyway. So, I be like in that whole different world. Like, I feel good for me.  I'm forever, man. Some people have two different music for me, like.  I might. You know what I mean?  So, because things for you were so big, do you ever worry that you could make a record out of surprise, that one? I know I could. I feel like you do so once, could we do it again? Do you feel like you're pressured to make another big record, or you feel like you're just enjoying it right now? I was in the label while I did it. I was like, damn, I got to come. I've been doing it. Go to the studio, call my sister. Okay. So, you are independent now? Yeah, I'm independent. Like, 10 months. So, what was the reason? Why you weren't independent? It's just about your situation. You gotta be seeing it out of our everybody. You're not seeing it out of all people.  So you wasn't seeing it out of our way with the P-18? I mean, it's a P-18. It was like, seeing it out of our way. It was just a lot of, in the middle, it's like, I took to you, and you know what I took to you. You got what you took to my house, and then they might not do it, and so you won't.  So, it was the middleman type situation? Yeah. Like, the middleman had to pass down a word, and so on and so forth? Not necessarily a middleman, just a middle party. A middle party? Yeah. Girl, y'all having a whole convo? What's happening? I'm sorry. Yeah. So, what happened with you and yourself? I just feel like, we probably started just outgoing each other. And y'all met how, though? We met through my manager. Okay. So y'all met, was working, he was spending you all the time? Yeah. Yeah. 18, 19, whatever. I was what I was doing, but I just think, I honestly think, like, he just really used to be turning into a grown man. Little nigga, you mean him as a kid. He's the next star grown up. I feel like it's friction because, like, still trying to approach a new kid is different now, you know what I'm saying? Okay, so you feel like he wasn't respecting you? I'm cool. I'm cool now. So y'all got to talk about your differences? Yeah. So, you still cool with, like, DreamDaw and everybody else? Yeah, I'm cool with everybody. Okay, so, would you ever, like, lock in with, like, another DJ or you felt like that was a learning experience? Like, what did you learn from that experience? Now, like, I don't take nothing from helping get to where I'm at today, so for me, it's that. Now, I don't, I feel like right now I only lock in with nobody. Yeah, but what was, what's one thing you learned from that whole experience though?  Because I can't 100% blame her.  You know what I'm saying? Okay, so, how did your family feel about when you got into the industry? Nah, that's it. Crazy. So, I got kicked out of my my dad career. Trying to rap? Yeah, I kicked out my dad career and then I moved back to New York because I was up in New Jersey.   I swear to God, bro. I'll put it up up. My family know nobody believed me, bro. Nobody believed me. I don't kill nobody. Nobody believed me. So, how did you, what motivated you to keep going?   So, it was like, for me, when I started making music, niggas was jacking me. So, like, it was more so the people on the outside. Yeah, it was like... Like, talking to you and things like that. So, when you released your first song, like, what was the first song you ever did? First song I ever did. Yeah. That was nice. So, how do you feel like you improved as an artist, from then to now? I feel like, I know, like, I know it was a hit.  I'll tell myself that.  Still not.  I'm super hard about what I put out. I feel like I don't put out a lot of bad music.   But put out, no, I don't put out bad music. So, you're holding on to a lot of music, for sure. Yeah, not for long, no. I'm about to drop a lot. Okay. So, Spin got, like, million plus views. That was your track. Okay, so, what inspired that track? You sampled the weekend. What inspired that track? Oh, no, I just went to the studio and I heard the beat. Lots of power ups in the beat. There was really nothing, like, nothing, like, specific. It was just when I played the beat, I did the song, and I said, fire. Okay, and then you did the song with Shari K. That's going up.  I was on live doing music in the studio, and he was like, yo, send me the song, pull up on me. How do you feel about that? That record? I love that song. That's cool. Would you collaborate with any other artists? Like, who are some other artists you would collaborate with? Specifically, from New York or what? New York, and then all of them.    I listen to all that stuff. I'm being curious. You think you can do a song with K-Flots?  I don't care about the politics, I'm not doing anything.   Any females in the city you looking at? New York. All over, anyway. I just did a song with Swing, he said it wasn't him. It was someone else. Nobody was specific yet. Right now. I just did a song with Swing.  There's nine females in the city right now. Like, with them.  I don't want to say my name wrong because I know people with Instagram names. So I don't even like...  Not really. You be on Instagram though. Sometimes. Okay. Shout out to Lil' Brooke too. Oh yeah, Lil' Brooke. So boom. You said you fell in love with a thotty. Is that true story? I feel like every nigga fell in love with a thotty. What makes a girl a thot though? She's a thot. What makes a girl a thotty though? So she's just outside too much? Every nigga got girls in his crib. That's outside. They not in their crib. They outside. They in somebody's crib. So you feel like everybody fell in love? So what was your thotty story? My thotty story? Yeah, like what was the thotty? I fell in love with a thotty and I knew she was a thotty.  Like what, is there a difference? Well, I feel like New York bitches play mind games.  But you like them though? Possibly. Possibly. You say a lot of female names in your songs. Why is that?  Sometimes. And then you have preview to preview a boogie. So when can we expect that? In the future. In the future? No release date yet? No. Working on the project or anything this year? Well, 2022? Can't stop, won't stop. It's done already. I did it with some of it already. I got Casco Bay and PMD out. I think that's my own future. You want to do more features or you think you good with that?  Okay. But the song the song thotty though, like what inspired that song? I don't really know the beat. I think I just like the beat. I say it's fire. So we'll be inspiring you? Like just the beats? Yeah, depending on what I drink for the night. Sometimes I might be a doctor. So you can't make a song sober? That's what you're saying? I don't like being in the studio. Okay. So you got a drink in the studio? But you got to have something that inspires you. Like a story. So you're free style? You don't write? Sometimes I write. Most of the time I write. It's particularly you. Yeah. So how do you feel? The songs you work on, like pre-write, you think those go further than the songs you freestyle? I don't know yet. So why are you free style? If you feel like the ones written go further. Oh no, sometimes it's hard to sit down there. Like a life would be too late. I feel like the pressure is on you for real. It's like school. It's like school. That's what I mean when I tell them all the time. I feel like I'm in school. You know what I always say that? It's like school. That's why it's hard to do that. Sit down and just go. But you're definitely free style, man. So what are some qualities you think makes a great artist? Little patterns. Creativity.  I don't care what nobody says. It's not easy to copy something. So don't like remixes like Jack Please and Tori? I'm talking about real writing. You sound like another nigga, 100%. I don't care what nobody says. That's a talent.   You know what I mean? That's hard to... Okay. What are some good artist qualities that you have? What do you think makes you stand up? I feel like I got a good beat selection. I know how to rap.  What type of beats do you look for? Do you kind of look for producers? Or are you just kind of like...  Yeah. You don't want to make no rapid rap songs no more. Okay. Do you think your fan base is more so girls' voice? What's your voice? 50-50. A lot of guys bump it. So like... Well, it was closed now of quarantine. Every shows and stuff was shut down. When shows was opening, where's some places that you performed that or want to perform at? I was in Atlanta. When it was shut down? I was outside. Yeah, I never closed down in Atlanta. So where's some places that you would want to perform at? Like legendary places. You got to hit the stage. The garden still. I did it everywhere except for Lattice for God. Okay.  Now it's like everybody...  Rollin' loud. Yeah. You like festivals or you rather the more inside? What does that mean? The rest of us is like just losing fans. Like they might not be there to see us. They come in and see us at Travis Scott's phone at 9 o'clock. I like coming to the show and it's my fans. They know every song I ever made. So you want a more intimate crowd? Definitely. Do you have a story of your worst performance? Or a performance that you was mad nervous? Nah, I be trying to be nervous.  So that was beginning, that was early on? Oh, um... Hello, we're DSU. Was it thing for you? Nah, that wasn't it. It was part-time. I was like... I was like...  All right, so how did you get in the presence of stage presence? I didn't drink like that back in the day. Oh, so the liquor helps?  Okay. I got a bad interview that I watched before. I was a national. You were smacked or just nervous? I was both. I had a hangover and I was nervous. So, um... What do you feel like was your best performance or a place that you remember?  Nah, Buffalo State.   Okay, okay. So, of course, there's a lot of fan interaction. What was the craziest fan interaction you had so far? Any career? Hell, I imagine. I don't even know. Well, what's one memorable one?  Okay. I don't know. I swear to God. No, they don't stop you. Like, I've seen... That's regular though. No, I've seen people throw their phones on the stage. That's regular though. That's regular, wow.  Crazy? Like posters? Like, I love you, it says?  I let my brother fight. I went to my aunt's and I played my old friend. And one day I pulled up. I swear to God. I pulled up in the lobby.  I'm holding my groceries. Like, I walk right past them. Buzzing myself in. I'm like, get the elevator. I know this. No, I swear to God. But they came to your building? Yeah, that's it. Trying to find you? You don't bring people. But you do post about girls. You talk about girls in your song, so you feel like you will ever settle down with a girl or single for a long time? Yeah, I'm going to settle down with her. No time to? I don't know. I feel like that's random.  It depends on who you're with. I'm saying so. You think if you were to settle down in a relationship, you think you're going to change your music? I don't know. I don't know. I mean, why would you be nice if there's nothing going on? Sometimes you like that. Sometimes you like that. Sometimes you like that. Yeah, so you would love like a nine to five normal girl? Yeah, I come up with a goal. Heard you. Heard you. So why you making music project on the way? You're going to do a project 2022? Yeah, I was trying to drop this one. Tom, Tati going up right now.  We don't care about music very much. I don't want to answer Christmas. I don't go to Georgia. Santa, how's it going? I'm going to go to my pop screen. Okay, family time as he should. All right, so what should we look forward to 2022? What does that mean? I hear when people say that. What is the hottest nigga look like? What's top streamers? That's cool. That's cool. Like a billion streams? Like what? Top 10 in the billboard. Top 10 girl with me, I'm from the church. I take top 20. I take top 100. Top 20. So that's a good like bucket list 2022? No. Gold platinum. Gold platinum. Even if it's an old song, you'll be okay with that. Like let's say make 10 go gold right now. So tell people where to find you, where to find music. Follow me on Instagram at Lugakash. Follow me on YouTube at Lugakash. Twitter at Lugakash. That's all my fish news. And should go stream on my sick. Follow me on. Subscribe to me on Apple Music, Spotify. All that. And should go tune in. And you can find me on Pornhub.


Thank you for coming to my talk. My name is Patrick Altman, VP of Engineering at Eldarion, and core developer on the PNACS project. Well, there we go. So there's currently over 60 open source projects in the PNACS ecosystem. And this morning I'd like to discuss how we've added extensibility to many of them. I cannot figure out how to make these advance. Guess it's gonna do it, so on and so on. So why should you care about extensibility? Number one, it's the foundation of reusability. When we're writing Jango apps, we want them to be reusable. Second, we have a chance to delight our users. We've all experienced this. I know at least I have. Jango is a great example of this, whether it's extending the admin, using class-based views, or using a custom user model. And lastly, we have a chance to make the world a better place. I know it's a pretty grandiose statement, but really if we reduce the need to reinvent the wheel, we increase the time and cognitive capacity that is available to spend working on new and interesting problems. The community benefits and becomes more productive and even more innovative, resulting in more value creation for and in the world around us. Just how do we go about creating extensibility? There's a lot of different ways, but I want to focus just on three today. The first is what we call hook sets. This is a term coined by, it's a term coined by Brian Rosner. He created hook sets in Jango user accounts and it was driven by a client need, where the use of signals didn't quite support the requirement, at least not as cleanly as we'd liked. And it was simply a class with methods that can be overridden at the site level. Then we have class-based views, Russell Keith McGee discussed this at length on Tuesday, and they're a great way to modify and extend behavior of an app inside a site. And lastly, plugins. Plugins permit loose coupling between the plugin and consumer. They allow for rapid expansion of functionality due to the ease of writing individual plugins. And they're used mostly to extend a single app or a website. They're less about reusability. So, Jango user accounts is probably one of Eldarren's most used apps out of Penax. It provides a ton of functionality that we've all come to expect from web applications. Things like sign up, login, email confirmation, password resetting, and more. But a lot of these rely heavily on sending emails. Up until Hooksets, we were really only able to modify, up until Hooksets, we were really only able to modify the content of the email templates and not really change how the emails were being sent. The client in this case wanted to control the content of the email through a third-party website, a third-party service that he had subscribed to, and it would require us to make API calls providing the context for those emails. So, the solution was to create a Hookset method in Hookset methods to override how the emails are being sent so we could implement this in his site. So, let's take a look at some code, if I can make these advance. So, the default Hookset implementation that ships with Jango user accounts basically just pulled out all of the blocks of sending email into individual methods in this object, in this class. Then we have a Hook proxy and we use this Hookset object, the instance of the Hookset proxy, to wrap the pulling of the settings and that setting is what allows us to override the default Hookset so we can create a Hookset in our application, in our website that allows us to override how the emails work. So, here in our Conf module, you can see we use Janice L. Jango App Conf for application settings. It's a fantastic way to encapsulate all the settings in your reusable app. Highly recommend it. So, we ship with default Hookset configured as you see here in this Hookset property of the main Conf module. But to override it, it's as simple as creating your own class at the, and inheriting from the base Hookset and putting it somewhere in your site and then setting the account Hookset setting in your settings.py. Here in the models of the Jango user accounts, you can see in this sign up model, we have a method called send and there used to be a block of your typical send mail code here and that was replaced with this Hookset method send invitation email. And that's what keeps it, that's what allows us to override how the email sent. So, for the client, we ended up just making API calls and replacing the default Hookset. So, moving on to class space views. We had a client with specific needs for our sign up, for the sign up process, as well as complexity of passwords. Geez, I really apologize by these slides, guys. Anyways, the client needed support for a profile creation of coupon codes right upon sign up and passwords had very specific business rules like containing certain characters and whatnot that out of the box are really supported by Jango user accounts. So, we had to extend the sign up view and override some of the forms to modify them to collect and process this extra data, but we didn't wanna rewrite, have to rewrite the entire sign up view and the forms that dealt with the passwords, all we really need to do is add a little bit of extra validation by just going back on. So, as you can see here in the view, this is the views module of the project. We are pulling in the sign up view from Jango user accounts, subclassing it and then overriding just a few methods, two that deal with user creation and one that's called, it's an after sign up method that gives us access to the form. And we use that to basically take the created user, create a profile and process any coupon codes. In addition, we're pulling in the custom sign up form from that has the password, secure password mix in that we'll see here. And really all we needed to do to change these three forms that deal with passwords is to create a mix in and to encapsulate in one place the business rules that were around validating that the password was, the password was up to his complexity requirements and mix it in with the other three forms without really changing any of the forms themselves. Except for the sign up form, obviously we had to add some additional fields there. And we tie it all together and the URL's pie. We override routes provided by Jango user accounts for the change password and password reset views. We're using the stock views, but we're overriding them here so we can use the forms that we overrode. And then of course using our custom sign up view. And now into plugins. So Eldurian has a site that's really an early development KPI tree. It's a tool for teams to track metrics, scorecards and key performance indicators. Core to this app is collecting metrics. Some of this will be manual and there's a lot of metrics. Some of this is manual like we'll come to the site and fill out a form or respond to an email, but there's a lot of metrics that are generated from systems and so it makes sense to automate the collection of those. About to throw my computer across the room. So yeah, so for the automated metrics, we wanted to wait to easily write, geez, there's my rehearsal from last night. Funny enough, when you're rehearsing this, it doesn't automatically advance like this. Okay, I believe I was talking about the automation. So we needed a way to easily write integrations for the automated collections. We'll likely end up writing a bulk of these, but we wanted to expose the ability for anyone to contribute and add to them. We're gonna open source this package so people can submit their own and to encourage this we need it to be dead simple. This is nothing new. Sites like Get Century offer this, GitHub you can send pull requests to extend a plugin. And the idea is you should only have to implement a single class to conform and conform to an API and not have to worry about any of the internals of the host system. So there's really just two parts here that make this plugin system work. The first is the registry, which is really just a small wrapper around a dictionary. And you can see here we create an instance and then delete it to create a singleton. And the important point here is this registry object is a single point of interface between the internals of the website and the plugin system. And the second half of this base.py module that's implementing this whole plugin system are as a base plugin class. Some languages would be an abstract base class, but important to note here, you can see it has this thing called a meta class, which is this, the registrable class at the top. And the really cool thing about this is any definition of a new plugin will automatically register itself. It's one less thing to worry about in configuration on our side or for the plugin developer to have to get right. So here's an example of a plugin that I wrote for our use. We use it to integrate with user voice, specifically to pull in support metrics from Gondor. So this is about all there is to implementing a plugin. Obviously I've cut out the implementation details because they're not important and the slide's only so big. But the idea is you just implement these methods to interact with, in this case, user voice API and not have to worry about the internals of how it's consumed. So here's an example of how it's being consumed internally. This is a model's module of one of our internal apps in the project. The auto collection is simply a model with the user will create an instance of and as such will select a provider, in this case like user voice. The choices are populated from the registry. There's a method on there that will group all the choices together. And the inputs are the user input that the plugin needs to execute, whether it's OAuth tokens or whatever and the plugin developer's responsible for telling it what it needs. This, it will actually validate against the plugins inputs method to make sure that all the required inputs are there. And then I cut a lot of code out here for brevity but in the process method, we're gonna call and fetch the data and then create metrics internally. And the beautiful thing about this is the plugin developer doesn't have to know how this is being consumed and KPI tree doesn't have to know what plugin it's talking about. It's a very clean separation. And earlier I mentioned when, about the meta class and how that works and things get registered automatically when things are defined and imported. Well, to import them, we have, we use a startup.py module on all of our projects. That's gonna quickly change now with Django 1.7. But for the past two years, we've wanted to organize all of our startup code in one place and not have to do things like import things into URLs.py relying on the fact that Django auto loads that. So in all of our projects, we have at least this run method and the auto load method to run the auto discover for the admin and to load all of our receivers modules where we store things like signal handlers. Instead of putting signal handlers inside models, we put them in our receiver's pie to keep that all organized well. So for the KPI tree project, we added this function called load sub modules. And all it's gonna do is loop over this KPI tree integrations package and import all of its modules. In our case, they are plugins. And that's what, and when that happens, they get auto registered. So in order for this run method to execute, we have to modify the two entry points to our application. And that's the whiskey module. You can see here we import KPI tree startup and call startup run. We do the same thing in the manage.py. So as of Tuesday, we've had over 5,000 star gazers on across those 60 PNX projects. And for the ones that are packaged, for example, we have startup project templates. But for the ones that are packaged over a million, close to a million downloads. And I say this because with hook sets, class space views and plugins, it's helped Eldar and make apps more extensible. And in doing so, we've seen greater reuse. And as evidenced by these stars and downloads, I like to think that we're delighting our users, at least some of them. And after three plus years of working at Eldarion, I can honestly attest that our immediate world has gotten better, both for us and our clients, because I've seen that we are building more things and we're building them faster, lots faster than where we were three years ago, both for ourselves and for our clients. So I've covered a lot here really quick. This wasn't really designed to be a tutorial, but just to kind of get things, get you thinking. I'm around the rest of the afternoon. If you wanna talk any more, talk any deeper about any of these things, just find me and let's connect. So with that, are there any questions?


Hey guys, welcome to Echocolip. So we have two banners to give you feedback today and let's see which of these banners are going to help you. So it would depend guys on what your priorities are in recruiting or summoning for these cases. So let's go first to the banner that is available today. Okay, so this is the banner that I'm talking about. You will be able to pull here Vivi and Audrey. So are you needing somebody who has Regen and Rage which is Audrey? Or and also are you needing Rage reduction with Vivi? So both of them are going to be very, very good, especially for Audrey. For Vivi, she's going to be giving you Rage reduction. So damage and Rage reduction, but it's only a 20% chance. Take note of that, not as big. But if you're after Audrey, Vivi is going to be probably a good, you know, a good extra on the side. But because again, both of them are in this banner and both will have an increased chance to get the both of them. So you might not, if you're going for Audrey, you might not be getting Audrey in the end. So that is what I'm saying. So Vivi is going to have Rage reduction, very kind of good as well. But again, the problem is the Rage reduction is only 20% but she hits three targets at random. While Audrey, so Audrey's main, you know, main kit would be centered around Regen for back row allies. So most of the back row, you would have there your support, you would have there your, some of your DPS. Most most of the time you would need Regen because some of the skills of your enemies might target the back row, especially Mori. So again, you would need Regen and there's a 50% chance to add Rage to all targets, which makes you faster in terms of your, what they call this, in terms of casting your ultimate. So that is why Audrey is actually one of the best supports that we have. And so far, out of the two banners, I'm leaning towards this banner just because of Audrey. But before we give up or before we disregard the other banner, let's try to look at who are, who are coming tomorrow for those banners. You have Niz and Tower Red. For me, for me personally, I like Niz. I like how she is actually, you know, she's controlling the tempo with her debuff, freeze, you're not really getting her for her damage, but the additional damage is good, but the 30% to freeze is good because technically out of the four that she's going to target, you're usually gonna freeze or gonna, you know, have one frozen. So at least two or one are going to be frozen each time she brings out her ultimate, more or less, more or less, at least one, at least one out of the four. So because it's a 30% chance. So I like Niz for her utility, but again, if you need Audrey more, then go for the other banner. But before we, before we disregard the second banner, I'm gonna show you Tower Red. Tower Red is a DPS lowers armor and resistance if the enemy has higher HP than the caster or Tower Red. So Niz and Tower Red together in the banner is, if I may rate the duo of, let's see the duo here. If I want to rate Niz and Tower Red, I'd go with Vivi and Audrey at this point because only of Audrey, if you need support, Audrey is the best of this banner. If you need a debuff, I think you would better be, you know, you would better be off with Niz for debuff, for freeze. But if you want to at least, you know, have a good pairing, go for Vivi and Audrey. They're available now. But again, don't disregard this banner. If you really like Niz and want the debuff, take a chance on Niz. I've been using her, she's superb and she helps me control enemy's turn on the other side. So again, it's a toss up between what you need, guys. I'm sure you'll make the right decision based on what you have right now. So thank you very much, guys, for staying this far. Take care, stay safe, this is the warden and I'm out of here.


Imagine, it's 1400 years ago, it's the ninth of Muharram, at night you hear noises and commotion coming from outside, so you leave your tent and you see people leaving the camp of Mama Sayyidina As-Salaam in their hundreds and thousands, for a split second your eyes fall into the eyes of Imam Sayyidina As-Salaam, you see the sadness and sorrow in his face, there and then you decide you're going to stay, knowing full well what's going to happen to you when the morning comes, so now it's the day of Ashura, you've now become the 73rd companion of Imam Sayyidina As-Salaam, and imagine you walk up to the Imam and ask him how best you can serve him and he gives you the choice, what would you want to do on that day, serving him in whatever way you would like to, so for example you could bring back water with a bottle of water, you could protect the tents of the women and children from being under attack, you could bring back the wounded bodies, the pieces of the companions of Imam Sayyidina As-Salaam, what would you want to do, where would you want to serve your Imam, I mean you'd want to obviously serve him in every single one of those ways that you could obviously, hindsight's obviously a good thing to kind of know what certain things have happened, but you know going to get water with Hazret al-Bas, I mean you know the ladies is probably the one thing being able to protect you know children for example that probably didn't understand what was actually like you know truthfully happening and when you've got sisters or mothers for example, I think that bites a little bit more at what you would want to do for example say my you know as much as I'd like to do everything and try and serve you know the best way that you possibly could, if you were there I think for me it would obviously be trying to look after the women, but ultimately you know you'd always try and push you know if you were in that position to ask Imam what he would want you to do for example rather than you know you never know where are only human that then they could always make a decision that might not be the best decision right for you whereas in you know with the Imam he could give you direction in terms of what would be the best thing that would help you obviously, I mean ultimately you're doing the main sacrifice anyway but anything additional that you could do for or are you going to help so now imagine one day after work you come home you open your house door you see your family members running around the house frantically one person's gathering through another person's bringing sweets another person's making tea so naturally it occurs to you that you have a guest or guests that have come to your house so you grab one of them and you ask what's going on why is everyone rushing around and someone replies to you that someone's come to see you so you ask who and they say they're waiting for you in the living room so you go into the living room you open the door you walk inside you look around to see who's come to visit you and you see that it's Imam Hussain al-Assad in that moment what would you say to him what would you want him to say back to you it's difficult in terms of I mean you could only say how much he without his sacrifice even though there were imams after him I don't think this is just my personal opinion that the religion would be as global or the way it is currently for example and if you look throughout the course of you know the calendar year moharam it's probably the biggest month we have a lot more lectures we have a lot more of the kids or even anyone associated with the religion knows a lot more about imam Hussain than they may know about the other imams for example so the sacrifice that he's obviously given but ultimately at this time it would be to ask what you can do that is obviously going to help not just you but obviously if there's anything that you can impact in terms of the religion one person you know can't do much but any kind of anything that someone does for example by other people picking up even if it reaches one person it's going to be ultimately you would get so up for that for example but it would be it would be difficult and without being in that kind of a position to say what I mean ultimately I think I would freeze first of all to kind of even you know come to the realization that someone like that is sitting in front of me for example um but yeah ultimately you know the sacrifice that he's done and what we can do going forward especially with the way you know it's not difficult to follow the religion in the west but you're obviously impacted by a lot more things out here than you would be for example in certain places in the Middle East for example so just what we can do because all of us get certain thoughts that might obviously not be completely halal for example or we may do things that are sins for example and how to obviously best refrain from those so now imagine you've talked about some things with him and it's time for him to leave your house what would you want him to say as a sort of a farewell before he walks out of your life at least in person what would make you the happiest to hear from his holy night I think to tell me that I'm one of your true followers you can't really ask for any more than that so for him to accept your service and servitude yeah I mean obviously you can carry on doing that but ultimately that's what would make anyone I believe the happiest to obviously be told that you know you're a true follower of and you can't obviously call yourself a companion but you know someone that's part of his umma for example that's what mine would be so at the beginning the first question I asked you was about 1400 years ago and as you rightly said yourself with hindsight it's probably easy to say I would help in this way or I would try to stop this from happening or I would be the shield for the little girl from being hit for example and I said to you you walk up to the imam and you ask him and he gives you the choice a lot of us often forget that in this day and age we have an imam who's with us who we should be a companion to also and in a way him being absent or directly absent from us has given us the choice in the way we want to serve him so what do you think you've done for the 12th imam what do you think you would like to do how do you think we should all serve him and become closer to him because some say at least imam sain alayhi salam had 72 who gave their everything how many does this imam have something that I think we all think about truthfully I don't think I've done as much as I would like or I should have done maybe within regards to our imam it's a lot more difficult when you don't have that reminder in front of you on a regular basis for example it's a lot easier to forget and think about it after you've done certain things that maybe you think you shouldn't have because it's obviously going to hinder you going forward for example um obviously I'd like to be the best person I can be and try and influence as many people going forward um but yeah it's it's difficult when you know 72 companions had imam saying in front of them where you know seeing someone you know certain times words are not you know actions are more um more powerful than words than words um you know seeing someone's expression for example it can hit a spot that words will not so with the torch imam not being here you know it's a bigger test in certain ways for us that are we actually going to be one of the people that stands up when the time comes and that's something that I think about a lot but you know as for the answer we always try and balance it on the good side of it but I think there's a lot more that I can do a lot more that everyone else can do um you know you look at the religion at the moment in terms of the way it's portrayed in certain places you know there is a lot of work to do I think we get painted with the same brush um in terms of the media but you know all we can do as individually is do as much as we can to follow the religion in the right way try and obviously spread the message as best we can um and carry on commemorating each and every single one of the imams obviously maharam's a bigger impact uh than the other birthdays and uh deaths yeah try that's all we can do is to try our best to go forward but I don't think personally I think I've got a lot more that I can do


I think one of the things that we've done that led to the success of our operation foreign away the one thing I did for the success of this operation one of the most important things we've done to make our operation succeed is this has to be the success to our operation hi I'm Buzz Clute scientist and I want to let you in on a little secret the best education that I've received in the last 15 years has been from producers like you today's topic is about the secret to successful operations we've been talking to progressive farmers and ranchers across South Dakota and here's what rancher AJ Hess has to say the one thing I have done to the success of this operation that I would say benefited the most would definitely be the rotational system it absolutely helped with the grass it made the soil better it up it made us run 40 percent more cattle it cheapened up our daily cost of grazing the producer is spoken and the professor has been scored


So, again they have done experiments, but not only have they put nucleosomes you could put different barriers now, barriers of different sizes. So, what you do is that you put some sort of a barrier ok and then you ask how does it affect the motion of this cohesin along the DNA backbone right. And now you can put barriers of different sizes and ask that well for very small barriers you would expect nothing happens for very large barriers you would say that it would never cross the barrier and do we see that or not. So, for example, here is a small very small protein which I have put at this location on the DNA. So, if my whole DNA is around 50 kilo bases at the 20 kilo base mark I have attached a protein ok and then I see what the cohesin trajectory show and it because if this is very small. So, this protein is around if I remember correctly around 2 nanometers because it is a very small protein it does not this cohesin ring does not even see this protein it continues to do its random walk happily on its own right. But now what have so now what is done is that on the same protein you put a quantum dot which is at the sizes written somewhere. So, it is a much bigger obstacle now and then you ask the same you put it at this location the location of the arrow. So, everywhere on this there is this obstacles or rather at all times there is this obstacle at this location and then you ask what happens to the trajectory and as you can see it goes it hits this obstacle and then it comes back because it is large it cannot really cross over it comes back it does random walk gain again when it reaches the boundary it has to turn back ok. By doing this in a control and you can do the same thing with different obstacles by doing this in a controlled fashion you can say that what is the effective size of this ring right when an obstacle becomes much big so big that this ring cannot cross over this obstacle I say that is gives me an upper limit to the size of this ring itself. So, they do this and they find that this cohesin pore is roughly between I think 10 to 20 nanometers. What happens if you actually put nucleosomes? So, this is a nucleosome. So, remember this is this is DNA wrapped around this histone complex and what you see is that so, here is here is where I have placed this this is a single nucleosome that I have placed at this location on the DNA backbone right and I observe the trajectories. So, what I will see is that there are crossing. So, occasionally when it comes here it crosses over to the other side, but also sometimes when it comes to this boundary it does not really cross it comes back over here more often than you would expect purely on the basis of a random walk. So, what this is is roughly like a semi permeable barrier. So, I have this a one dimensional random walk of this cohesin protein on the DNA backbone and somewhere over here I have placed an obstacle right. So, when this random walker comes and meets this obstacle with some probability it will cross over, but with some probability it will go back. So, it is this crossing over probability is not 0, but it is pretty small. If there was no obstacle here of course, both sides would be half and half. So, it is definitely not half it is much much smaller than that, but it is not 0 and you can place this new. So, I do not know if you can see this figure you can place this nucleosome at different locations and you can see that the permeability takes a dip exactly at the location of the nucleosome. If you place the nucleosome here the permeability takes a dip here if you place it some other location it would take a dip there ok. So, it functions at sort of obstacles not complete obstacles in that it does not completely stop the motion, but it definitely slows down the motion ok. And you could ask that well therefore, what would happen this is experiments for a single nucleosome what would happen if I put more and more and more nucleosomes. So, they put many many nucleosomes now. So, this lower figure is for an extremely high density of nucleosome. So, everywhere along here there are many many nucleosomes and then you look at the cohesin trajectory and as expected because of this extremely high density you see that the cohesin does not really move at all it stays fixed at a roughly fixed at a particular position on the DNA right because whenever even if it moves a little bit it sees another obstacle and so on. So, this is sort of so, you can estimate how the you can calculate various things like survival probabilities and so on, but you can estimate how the diffusion constant would sort of fall as you put in more and more obstacles or as you decrease the linker length between two nucleosomes. And the answer that you get or the answer that these people get is a diffusion coefficient. So, realistic linker lengths like I said is roughly 30, 200, 150 maybe so, somewhere along this region of the curve and there you would get diffusion coefficients if I took that for completely bare DNA it is around 1 micron square per second you get roughly of the order of 10 to the power of minus 3 minus 4 micron square per second. And this is actually a puzzle in that it is not clear that if you have an object which is refusing on a 1D lattice with something like 10 to the power of minus 4 micron square per second and then you ask that well I know in high C I know from these experiments I will talk about experiments in a bit, but I know from these experiments that I formed these very large loops of the order of kilo bases and even mega bases. I could ask that given this diffusion coefficient what would be the typical time required to form this large loop right and it turns out that if you put in this diffusion coefficient number and if you put in this typical sizes of the loops the time scales that you would get are of the order of hours. Whereas, typically would need to form these within less than a second right because the cells you would have to organize the genome very quickly. So, you would need to form these loops on the order of seconds, but it seems if you put in these numbers which are measured it seems like it would take roughly hours or something like that minutes or hours at least to form these large loops. So, again this is something that is not completely understood we understand how these loops form because of these loop extrusion factors like poheasant, but we are not sure how to sort of reconcile the time scales that we get from here and the time scales that we observe in experiments ok. One more set of experiments one more sort of set of experiments. So, these are a very nice class of experiments called chromosomal confirmation captured and again these tell us something about this large scale statistical properties of the chromosome. So, what I want to ask again is a related question that. So, one thing that I asked was from these fish experiments one thing that we could measure was the average separation between two elements on the genome which are S day spares apart. I want to ask something in a similar spirit which is that if I take a chromosome or if I take any polymer purely randomly for example, two segments of this polymer could come very close to each other right. If these two segments were very close together along the backbone they would have a high probability of being found together. If they were very far apart they would have a low probability of being found together. So, that is something that is called the contact probability that is called the contact probability and it is denoted by p c of S. So, this asks that what is the probability that two base pairs which are S distance apart on the backbone have come in close proximity to each other in in 3D space ok. So, that is called the contact probability and there are these very nice experiments called chromosomal confirmation capture experiments which measures this contact probability.  So, here is my so, here is my DNA right and let us say that this region and this region are very close to each other. What I do is that I cross link these regions so, that they stay close to each other then I lyse the cells so, that I can take out the chromosome. I then chop off the chromosome into small small bits ok. So, the so, this region which was sort of very close to one another stays in one segment and these remaining things are chopped off ok. Then I ligate so, I wash away all these other strands which do not have this protein marker ok and then I ligate these two strands this red and the yellow remember which were initially very far apart. So, let us say this was red and this was yellow ok. So, they are initially very far apart along the chromosome, but at the moment I did this experiment due to whatever reason they were close together whether that was due to some loop exclusion factor or purely randomly or whatever they were close together and so, I freeze I sort of freeze them in in that snapshot in time and then I do this ligate I do this restriction and this ligation so, that I join them together and then I wash away these proteins and I sequence this DNA that I have right and this DNA now contains one segment which is from this region the red part another segment which is from that region which was the yellow part. I do this across millions of cells at many many times and I get an ensemble of experiments which tells me that how often do I find this segment and this segment which was some S base pairs apart how often do I find them in contact right. So, if I have done a million such experiments and in thousand of them I find that these are these are in contact like this I would say that that gives me my contact probability averaged over all S and so on and so forth. So, you can build these curves now and you can do this on actual genomes. So, for example, here is an contact probability a normalized contact probability is a function of this genomic separation along the backbone for the east genome and for the human genome. And here is what it looks like it falls off roughly as a power law and so, it PC of S goes as S to the power of minus beta and for example, in east roughly that B appears to be minus 3 halves on an average in humans that beta appears to be sorry since I have written minus beta, beta appears to be 3 halves in east and 1 in humans. This sort of tells you a little bit also about how tightly the chromosome is packaged right. If you did it for different chromosomes 1 2 3 4 whatever up until 23 it would tell you if there is a difference between how tightly these different chromosomes are packing. For example, in the figure I showed earlier the chromosomes that were on the periphery something like this versus something like this you would see different contact probability curves for this chromosome versus this chromosome right. And this is something that you can actually calculate from simple polymer models. So, let us just see. So, this is in humans remember humans gives S to the power of minus 1 east gives S to the power of minus 3 halves ok. So, we can ask that well now I know at least one simple model for a polymer which is this random walk polymer. If I were just looking at this sort of quantity what is the contact probability as a function of the separation what does the random walk model or random walk polymer tell me. So, here is my probability of loop formation. It is the number of loop confirmations by the total number of confirmations. So, let me say if this was a 1D polymer let me just again do an idealized case first. So, if this was a 1D polymer remember my 1D random walk can take steps to the right or to the left with probability half and half let us say if it is an unbiased random walk and then a looped confirmation would correspond to when the number of steps it has taken to the right is exactly equal to the number of steps it has taken to the left right. So, it comes back to the origin. So, I can calculate the probability of that. So, that is just n c n by 2 that is the number of looped confirmations and the total number of confirmations is 2 to the power of n. I can use because these ends are very large I can use Stirling's approximation to simplify this and this will give me some answer. So, for example, if you use Stirling's approximation what you get for the probability of loop formation for this 1 dimensional polymer 1 dimensional random walk is it goes as n to the power of minus half. Now of course, I did this in the discrete sense you could also write down the full probability distribution like we wrote down the probability distribution for the n to n vector is this Gaussian e to the power of minus r square by 2 n h square. And let us say that I have some cut off that when two monomers approach each other within some distance delta I will say that a loop has formed and then I can calculate what is the probability of a loop formation. So, I take this probability distribution I integrate over all n to n vectors which lie between minus delta to plus delta right and that will give me the probability of loop formation in this 1D polymer. And again you will see if you work this if you put in this and you do this integration from minus delta to delta the simple Gaussian integration what you will get is that the contact probability will scale as n to the power of minus half. So, s to the power of minus half s being the genomic separation. So, for a 1D random walk so for a 1D random walk polymer you get PC of s goes is s to the power of minus half. But of course, these polymers real polymers are not 1D these are 3D polymers, but that is fine we know what is the probability distribution for a random walk polymer in 3D that also we did last class. So, let us say I could take a three dimensional polymer now this is my three dimensional probability distribution e to the power of minus 3 r square by 2 n square with this normalization factor. And again I say that I will I will say that a loop has formed if two monomers approach within some distance delta of one another. And therefore, I can calculate what is the probability of loop formation or this contact probability in 3D. So, this 4 pi r square times this p 3D dr from 0 to delta right this there if this delta is my cut off. Again you can do this integration this is an r square e to the power of minus r square sort of an Gaussian integration. If you do this integration what you all I am interested in I am not interested in all this delta and a and so on I simply want to see how it scales with the separation right along the base base I want to see how it scales with n. So, the contact probability for a three dimensional random walk scales as n to the power of minus 3 halves ok. So, if I put in this probability distribution for the 3D random walk. So, this is nice in that if I now go back and see what these experiments measure it seems that if I looked at the east data I could actually explain this east at least just by this measure there are other measures which may or may not agree. But if I were to simply look at the contact probability and I would look at the east genome it seems that what I would predict from a simple random walk calculation is actually what is observed for east that it goes scales as l l to the power of minus 3 halves. On the other hand that is not true for humans. So, if you you cannot use a simple random walk model to explain the contact probability of humans and people have come up with various sorts of models in order to get this minus 1 exponent I will not discuss them if you are interested I will tell you later. So, that there is a question that what sort of a polymer model could you build which would then explain this sort of a PC of s going roughly as s to the power of minus 1 and also ideally all of these other things that we have noted. So, these are all things that whatever model that you build in order to explain this higher order organization of chromosomes would need to sort of reproduce ok. So, I said that different chromosomes might fold in different ways. So, is that true? So, again let us look at these experiments. So, this is experiments on if I get which cell line this is I think this is a human fibroblast cell and this is a human embryonic stem cell. So, let us look at the fibroblast cell first the different lines are for different chromosomes. So, chromosome X 11, 12, 19 ok and you plot the contact probability for each of these chromosomes ok. You will see that each chromosome lies slightly differently on a different line right each has a different alpha I was calling that beta they are calling it alpha or whatever. So, this is the same as my beta over here. So, each of them has a different exponent they roughly lie around 1. So, 0.93 to 1.3, but they are distinctly different which means that each chromosome has folded on to a different degree of compaction. If you were to do it in a different cell line you would see different exponents for each of these chromosomes ok. In particular if you look at human embryonic stem cells it seems that this distinction has actually gone away. So, all these chromosomes now fall exactly on the same line which is roughly what around which line is this 1.65 ok. The higher the exponent the more loosely it is packed and. So, remember what I said is that when you packed something very tightly it is more likely that this region does not contain any necessary genes for that cell type right. So, in the embryonic cell type this is in the embryo. So, it has not really it has not really how should I say specialized to a particular cell type right it is not differentiated. So, it could this is the my embryonic stem cell it could become whatever heart liver whatever, but in this state it has not ok. So, all there is no distinction between what genes I need for functioning of a particular cell type and what genes I do not and therefore, all of them roughly fold to or all of them roughly compress or package to the same extent. There is no distinction between the chromosomes. As you go through differentiation as these embryonic cell cells divide and differentiate into these different different cell types you will see this sort of it is starting to diverge from this behavior and ultimately in a completely differentiated cell type like this fibroblast you will see different chromosomes folding completely to different extents. So, these are dynamic. So, the these this information is not there in the sequence because the sequence is the same in this cell versus this cell, but these are dynamic. So, this is something apart from the sequence apart from the genetic information which tells you basically how this sequence information is to be used by the cell in a functional way ok. Moreover, from these. So, these are all obtained from these chromosome confirmation captures of experiments that I said these are technically called various forms. So, depending on the sophistication of the experiments I let us say these are called high C experiments. So, these are all from these sort of experiments, but you can do even better. So, these are averaged remember these these are averaged over all chromosome these are averaged over all base pairs which are s distance apart ok. So, I took this base pair and this base pair which was s apart I found out what was the probability of them coming together I took this and this which was also s apart I found out what is the probability of them being in contact I averaged over all such pairs in order to generate this contact probability curve. But I have more granular information than this which is that how often do exactly this pair and this pair come in contact and you can show this that information as well. For example, so because the figures are so bad let me just draw it.  This is base pair 1 2 3 4 all the way up to whatever number of bases the chromosome has that particular chromosome has the y axis is the same 1 2 3 all the way up to n ok. So, if a chromosome has n base pairs I can I can construct an n cross n matrix and the color intensity tells me how often this pair has come in contact with this this pair has come in contact with that and so on ok. Ordinarily what would you expect? You would expect that well there would be a sort of it is drawn like this, but whatever since I have written like this ordinarily I would expect that the highest intensity would be along the diagonal right because there are any way close along the backbone itself and then as I moved away from the backbone this intensity would fall off right. What you see is that that is not strictly true there are actually domains where even though they are far apart. So, there are these domains like this where even though they are far apart they have very strong interactions with each other and these domains actually we now know they have actually an important functional role to play. So, for example, if there is if there is a protein which always brings these two into contact then these this base pair and this base pair would show a very bright red spot in these figures and that tells us something about the structure of these chromosomes and you can do this for all different chromosomes. So, for example, these are all the human chromosomes 1 to 22 and then chromosomes. So, it tells us how these chromosomes are organized each individual chromosome is organized for a particular cell type. If we did this for another cell type you would see some other sort of a feature emerging and also even in a particular cell type you can see that these features will change depending on the state of the cell. So, for example, this is a proliferous this is the same cell this is the chromosome. So, these this is called contact map this sort of a matrix is this matrix that I have constructed is called a contact map a chromosome contact map. So, if I plot these chromosome contact maps let us say for chromosome 18 for the same cell type, but at different points in the cell in the life cycle of a cell and you will see that the features that one sees are actually different depending on at what state of the life cycle is it in. So, not only does it depend so this contact maps not only do they depend on the cell type not only do they depend upon the cell type, but even in a single cell type it depends on time as to what time relative to the cell cycle time of the cell lifetime as to what cycle it is in. So, these are very how should I say these are very rich data that one has now because of these extremely beautiful experiments that people have devised. The challenge is to sort of come up with a polymer polymer sort of a model or whatever model that you want that will take all of these disparate experiments and sort of tell us exactly what is going on when this chromosome 4 goes inside the nucleus and organizes itself, which is still an open question we do not know, but at least whatever model that we come up with must answer or must agree simultaneously with all of these different experimental observations that we have. By the way this website over here actually lets you this all of this data is open source. So, you can if you go to this program called juice box you can upload whichever human chromosome that you want and you can see how these contact maps look for each different human chromosomes and you could average and you could generate those contact probabilities that you generated and so on. It is a good resource to play around if you are interested. So, I think I will stop here for the day yeah I will stop here for the day and I will continue with polymer models in different contexts proteins and so on.