Γεια σας! Είμαι ο Δημήτρος Κολομέλος, Επίσης της Κύρδας και της Τυμδιας Σοφτουαρίας, Ενσυκτήρου και Βερσταφόλ, Τεκνικά Δημόδρυλ. Αυτό το μήνυμα είναι για τις εγγραμματικές εγγραμματικές με βεκτοκομμήτητες και τις ευλογημένες για να δημιουργηθεί με τα κομμάτια της κομμάτιας. Έτσι, αυτό είναι ένα δημιουργό με τη Ματεοκάμπα Μπαμέλι από Μορχούς, Δάριο Φιόρεν, που είναι my advisor, Ατύνδεα και Νικολα Γρακόνι, Λούκανι Τσαρδό, από Πλωτοκολάμπους. Ας ξεκινάμε πρώτα, από να δούμε τι αυτές τις εγγραμματικές εγγραμματικές είναι. Αυτό είναι ένα πλήμητο, αρχασμένοι από Καταλάνου και Φιόρεν 2013, που δημιουργηθεί με ένα εγγραμματικό, ένα εγγραμματικό βαλιούς, για να μπορείς να δημιουργηθεί με κάθε εγγραμματικό, meaning that it allows you to output an opening value for some position, together with an opening proof that testifies for the validity of this value. Now a bit more formally, it consists of four algorithms. One has to do with setup algorithm in order to create the common reference string, a commit algorithm of course to create the commitment to the vector, An open algorithm that takesasc the whole vector and creates an opening proof for a for a specific position. A finally, a verify algarithm to takes a value for some position Together with it's corresponding opening proof And outputs 1, only if it's the value at this position o the commited vector. Για τη στιγμή θα δημιουργήσουμε την πρόσφυξα της πρόσφυξης, που σημαίνει ότι κανέναν να μπορεί να δημιουργήσει μια πρόσφυξη σε δυο βάλλες, meaning that you can uniquely open any position of the vector. Και finally, the interesting property of this primitive is succinctness, which states that the commitments and the opening proofs should have size at most polylogarithmic in the size of the vector. Λοιπόν, η αρχή του 2019, δύο πρόσφυγες από τη ΛΑΑΒΟΛΤΑ και ΒΟΝΑ, παρδοξεύονται αφήτησης πρόβλημα της Βεκτορικές Βεκτορικές, η οποία είναι η Βεκτορική Βεκτορική Βεκτορική. Αυτό είναι η δημότητα για να υποχωθεί μία ανοίκης πρόβλημα για πολλές πρόσφυγες της Βεκτορικής Βεκτορικής. Και αυτά για όλα τα δύο αρχές της Βεκτορικής. Αυτό το αρχή του πρόβλημα, πρέπει να υποχωθεί, meaning that it should have the same size as it would have for a single position, which is what makes this property of sub-vector openings interesting. Λοιπόν, τώρα, σχετικά σχετικά δύο πρόβλημα, έχουμε δύο πρόσφυγες από δύο πρόσφυγες για τα δύο πρόβλημα της Βεκτορικής Βεκτορικής, με δύο πρόβλημα της Βεκτορικής. But the fact is that before our work the only known vector commitment that can support sub-vector openings and constants as parameters was the work by Bonnet Thal that is working over groups of an onboard. So I also would like to mention some concurrent works with ours. One is from Tomescu et Thal and another one is from Garboun of Etthal that came out this year. και έχουν τα δύο πράγματα για τη δύο, έχουν λινιασσάμενα επαγγεσμό, επειδή αυτό είναι, στις μέτρες, κάτι ευκολασμό για ευκολασμότητα, και παραδείγματα για τα δύο, επειδή τα δύο. Και τίποτα, θέλω να μιλήσω άλλα δυο πράγματα που αφήρασαν στο ΤαΝΑΚΙΑΚΙΕΤ 2020, Μεταγραφή στην Αγγουραμμάν, και είναι also supports of vector openings. Έχει συμβαίνει τις παραμοντερές, και είναι δημιουργή σε όλες οι εργασίες των εργασίων. Ξεκινώντας εργασίες, νομίζω ότι η πιο σημαντική μου γνωρίζει, πρέπει να κάνει με το εργασίες εργασίες εργασίες εργασίες, σε εργασίες εργασίες, σε εργασίες εργασίες σε πλώντα, σε εργασίες εργασίες της εργασίας, και τελειώσεις σε εργασίες δημιουργίες, που είναι κάτι που θα δούμε σε αυτή την πράγματα. Τώρα, για τις διάφορες, εμπαιρισίες εργασίες οχείς, Πρώτα παρακολουθούντας έναν νόσιο που είναι called incremental aggregation motivated by two applications that we're going to discuss. One has to do with efficiently opening vector commitment by preprocessing, and then another application has to do with decentralized storage. So for that we formalize a primitive called verifiable decentralized storage. And then in the construction site we give two incrementally aggregated vector commitments plus two verifiable decentralized storage primitives based on these vector commitments. So we said we introduce incremental aggregation. Let's see what this property is. So first of all, aggregating proofs simply means to take two proofs for different positions and merge them into one. And this is the difference between this and sub vector openings is that now you should be able to do this without knowing the whole vector, meaning that you should only know the proofs and the opening values of these positions that you are aggregating. And of course finally the resulting proofs should have the same size as the initial ones should be succinct. Now, the incremental aggregation property says that you have unbounded aggregation and unbounded disaggregation. The unbounded aggregation means that you can arbitrarily and unbounded times aggregate opening proofs while unbounded disaggregation is the inverse operation stating that you can take an aggregated proof and disaggregate it for any arbitrary subset of its positions. And a toy example that explains a bit the usefulness of this property is when we have a network that is cooperating in order to output some positions of the vector. So the first node has one position, it outputs also an opening proof, the second node has another opening value and which adds in the set of the opening values, but now it also outputs an aggregated proof about these two values, meaning that the second node doesn't have to send two opening proofs about the two values because she's able to aggregate these proofs. And this goes on, the third one also outputs a third value together again with an aggregated opening proof. And this shows that since you are able to aggregate opening proofs, the communication overhead inside this network is optimal, meaning that you always have to send only an extra one extra opening proof. So, let's see our first application and we said the first application has to do with efficiently opening with preprocessing. Now the problem of opening a vector commitment is that it inherently takes at least linear time. So in order to compute this opening proof, you should make linear in the size of the vector operations. So, in order to overcome this, and we propose a method with preprocessing, and that is based in an offline phase, where you pre-compute aggregated proofs that cover the whole vector. And then at the online phase you receive a query, you disaggregate your aggregated proofs in order to get distinct proofs for each position of the query, and finally you aggregate back in order to answer the query. So, since we said that this disaggregated aggregate do not work over the whole vector, do not touch the whole vector, this is much more efficient than actually computing from scratch the answer to the query, the opening proof. So we said that in the offline phase you have to store aggregated proofs. This means that you have a storage overhead, which is always the cost of having a preprocessing method. So, the aggregated proofs are about chunks of some size of the vector, so if this chunk is of size b, then you have a storage overhead of course of n over b. This adds an extra overhead in the online time proportional to this b, because you have to disaggregate at the online phase, disaggregated proofs. And this is what we call a b trade-off, which is a trade-off between storage overhead and online time. And this b characterizes this trade-off, is the parameter of this trade-off. The caveat in the previous method is that, take for example, that b equals 1, so in the offline phase you need to compute all the proofs, one proof for each position of the vector. And that would namely take quadratic time, because you have to compute n proofs that as we said take at least linear time. So, in order to overcome this, our idea was to, in order to speed up this computation, our idea was to propose a divide-the-conquer algorithm. And that is first compute an aggregated proof for all the positions of the vector, which, believe me, it is very inherently very efficient to do. So, we have to take constant time, and then disaggregate in a divide-the-conquer fashion, in the left half and right half of the, for the left half and right half of the vector. And you continue like that, in a divide-the-conquer fashion, and at the end you get an n log n time instead of a quadratic time. But the interesting part is that this method is generic, we haven't assumed and assumed and construction, the only assumption, the only thing that we have assumed is that the vector commitment is incrementally aggregatable, in order to have this disaggregation. Okay, so now let's move to our constructions, and we have two constructions that are both over groups of unknown order and have both constant size parameters. One builds on the BBF vector commitment, while our second builds on the LM 19 vector commitment. So, now we're going to discuss, we're going to see how our first construction works. So, the first builds on BBF. So, as a warm-up, let's first see how the BBF vector commitment works. The first thing that we have a vector of bits, meaning that each position of the vector has value either zero or one. The first thing that we need to do is to put each position that has value one into a set, and this set we call it informally a set of ones. And then we are using an object, which is called RSE accumulator, in order to create a small binding digest of this set. So, RSE accumulators can be used to create commitments to a set. But at the same time, they give you the ability to create membership witnesses for elements in the set or non-membership witnesses for elements outside the set. So, now the vector commitment goes like this, the commitment is the output of the RSE accumulator, and for the opening, we either provide a membership witness if the element is one, meaning that its position is in the set of ones, or a non-membership witness if the element is zero. Now, the problem with this BBF vector commitment is that the non-membership witnesses specifically are not incrementally aggregatable, while the membership witnesses are, non-membership witnesses are not. In order to achieve this incremental aggregation property, we need to get rid of these non-membership witnesses. And for that, if we don't have non-membership witnesses, we are not able to provide proofs, opening proofs for the positions that have zero. So, for that we need to consider another set to construct another set, the set of zeros, and use another accumulator for the set of zeros. So, now we have two accumulated sets and we provide either a membership witness with respect to the set of ones if the element is one, or a membership witness with respect to the set of zeros if the element is zero. But this still does not have a position binding because possibly an attacker can put, for example, an element in both sides. So, we need to prevent this. In order to prevent this, we need to show that the union of the two sets, the set of ones and the set of zeros that are accumulated, is exactly the set of all the positions, meaning that the two sets form a partition of the set of all the positions. So, for this we construct a succinct argument of knowledge, which we call proof of union, that proves exactly this statement. And this concludes our construction. For the commitment, we have an accumulator accumulated value for zeros accumulated value for ones and the succinct proof of union. And finally, since the openings are only membership witnesses, as we described, we get the incremental aggregation property. Okay, so now for our second incremental aggregatable vector commitment, we take the LM 19 sub vector commitment, which unfortunately, as we said, has linear as parameters. So we have to apply some tricks to make the parameters constant. At the same time, we provide the methods for unbounded aggregation and disaggregation. And that is with our constructions. So this is a table of comparison that summarizes somehow the asymptotics of our schemes. We compare with constant sized parameters vector commitments. Now, some observations on these tables, for example, that as we said, of course, we support incremental aggregation. On the other hand, the bbf support only one hope aggregation, meaning that you cannot aggregate already aggregated proofs, while Mercury's not support incremental aggregation at all. And then this allows us to have this trade off for the pre computation that we described, while in the bbf this is not possible. So our second subject vector commitment is the most efficient one. Comparing to this tree, to this tree. Comparing to, to, to this three vector commitments with some vector openings. For example, the commitment is one group element while the, while the opening proof is only two elements. Okay, so now we move to our second application that has to do with decentralized storage services. In plain words, the decentralized storage problem is if you have a file that you, that you, that you model as a vector, and you want to decentralize its storage. So this means that you want the network of nodes to store, to store the file. The next application of this is decentralized storage networks, as for example the IPFS project or the file coin, and stateless account based cryptocurrencies where this file, this vector that you are storing specifically the key value map, and the nodes that are storing the file are specifically the owners of the accounts. In the decentralized storage, you have two types of nodes, storage nodes that participate in this, this net storage network client nodes that only wish to learn some sub file some part of the file. The next application is sending a query to the, to the network, the network should cooperate somehow in order to retrieve the opening values at this specific positions, they send the network sends these values to the client, and then the client should ensure it's wondering whether these values are correct with respect to the, to the file that and the network is storing. Now, another aspect of the problem is that we should consider updates, otherwise the static case doesn't seem to be very realistic, so we consider three types of updates, one has to do with modification, which is simply modify some other has to do with deletion from the end of the file from the end of the vector, and finally, add, at the end of the vector, add new values at the end of the vector. So, so these storage networks, and there's a general rule for these networks that says that every node should pay according to how much it has chosen to store. And this is a very important property for a decentralized storage network, since, for example, and the file that the whole network is storing is can be huge. While we don't want to exclude any storage node, even if it doesn't have big computational power or memory, we don't, we don't want to exclude this storage node. So, in this example, so for example, we can have a network that has amazing capabilities in storing in storage, for example, one next byte. While the storage node only wishes to participate with her laptop, and only can afford to to to give 100 to allocate 100 gigabytes for the network. So, we don't want to exclude these storage, and we cannot possibly assume that it can do open and it can do operations linear in the size of the of the whole file all or store something linear in the size of the file. So this is impossible. Now, in order to solve this problem. We have a directive called very fake very file decentralized storage. And this is a cryptographic primitive dealing with the cryptographic aspects with cryptographic matters of the problem. So first thing is to add a commitment for this file, which is a commitment for the whole file that the network is storing this commitment should be stored by any node of the of the network, even by client nodes. And then also storage nodes are responsible for creating opening proofs together with the answers of the of the query. So that is in order for the client to take this opening proofs together with the opening values. That's that are the answers of the query and verify that indeed these values are valid with respect to the commitment. Now, the properties that we described about the decentralized storage problem translate into properties of vector commitments. So we said that nobody should store all file linear in the size of the file data. This means that we need constant size parameters, we cannot afford linear size parameters. Then nobody should do linear in the size of the file computations, meaning that we need efficient proof updates and digest updates, we cannot possibly afford to have to compute from scratch, either proofs or digest that takes linear in the size of the file time. And finally, since the cryptographic overhead, as we described, should be minimal, we need, as we described, we need incremental aggregatable proofs. And if we take a look of what we have in the literature, if we were to use any vector commitment from the literature, then it lacks some of these properties that are necessary. While our constructions, the vector commitments that we described in the previous slides, can satisfy all of these properties. So what we did for the VDS primitive to construct verifiable decentralized storage, to instantiate the verifiable decentralized storage, is to take our vector commitments, put updatable digest, updatable proofs, so we give methods to update digest and proofs efficiently, but this at the cost of lowering the security, meaning that now we need to have weak position binding, we cannot let an adversary compute digests to compute the digest for the commitment. So our VDS primitive is nothing more and nothing less, our VDS constructions for and concretely it's nothing more and nothing less than actually vector commitments with updatable digest and proofs. So that said, there's a general statement that we can make which says that any vector commitment with these five properties, constant size parameters, incremental aggregation, updatable digest and proofs, and weak position binding, can give a VDS primitive. So that was the final statement. There are more things that can be found in the paper and these are shown in this slide. So thank you for your attention.


Yeah, thank you. Thank you for the question. I'm so glad that at least I'm able to connect to you. Otherwise, I was thinking I will not be able to take up any questions today. Okay, Shruti, are you there? Right now? Okay, any other question? So, if any other questions are there, then we can go little in sequence so that the concept is also clear and we don't go haphazard. I note down one question. What is irreversible shock? Great. I will discuss it. Any other question is there? We'll wait for two minutes and I will discuss the question. Okay, anyways, I hope that you have seen my video in Circulatory Shock. I prepared, I thought that if you people watch it, then it will be much better. So, coming to irreversible shock, irreversible shock is the last page of shock. See, any kind of shock, the cause may be any. Okay, hypoxia. Hypoxia we will discuss. Though it is shock is one cause of hypoxia. So, what I was talking is that any, whatever is the cause of shock, ultimately, if we do not intervene, it will ultimately progress to irreversible shock. And irreversible shock is that which despite the intervention of the clinician cannot be affected. Okay, so even though it will show some false readings of cardiac output and blood pressure and for some time we may feel that cardiac output and blood pressure have risen, but ultimately it will go on and deteriorate because actually in irreversible shock, what happens? The key factor which is the energy stores have been depleted and once the energy stores of the cells have been depleted. So, basically it is due to tissue hypoxia only whenever hypoxia occurs, oxygen is not available and oxygen cannot be used to generate ATP. Okay, so cells use the stores which are there, which are due to the ATP which is present, creatine phosphate which is there. So, it starts using these phosphate stores very fast and even when we are providing intervention, it takes some time to recreate these stores. So, the rate of utilization of the stores is so much and they have been depleted that with intervention rate of creation of the stores cannot match with the rate of utilization. So, ultimately irreversible shock cannot be fixed and the patient then cannot be saved actually. So, that is irreversible shock, very rare case is okay to maybe, but it cannot be corrected. So, that is irreversible shock and actually there are so many things happening in body that ultimately this hypoxia becomes worse. One very important concept is that there is activation of the coagulation system because the endothelium is damaged because of the hypoxia, the endothelium gets so damaged. Now, this little bit might not be given in all physiology books or maybe give you if any book is given in point wise manner then they will just enumerate books. But try to understand that whenever there is shock then the blood supply of all the organs, yeah blood supply is correct, blood supply of all the organs gets decreased and it causes hypoxia and why it leads to necrosis of tissues because see very important concept is all cells have sodium potassium 80 paste and sodium potassium 80 paste is the one which is important for maintaining the ionic gradients within the cells and if these ionic gradients are not maintained then the cell volume is going to change because water will move. Once that starts that movement of the water starts the cell will swell, it will, the functioning of all other transporters will break down and it will ultimately releasing lot of contents and these contents basically especially the lysosomes which are there lysosomes have proteases. So these may be released and they will again these proteases will start the breakdown of the nearby tissues as well. So that is why hypoxia lead to necrosis of the tissue that cells start dying which is not natural death and there is breakdown of the neighboring tissues also starts. So this is ischemia and ultimately hypoxia which is causing the increase in the coagulation right with increase in coagulation there is consumption of the coagulation factors platelets start getting consumed all the coagulation factors start getting consumed. So there is a disseminated intravascular coagulation DICs start. So some places there is clots are clots are being formed and because at some places clots are being formed lot of clots are being formed there is consumption of these clotting factors other places there will be lot of bleeding. So that is the main concept that how why shock it is so dangerous okay and it is very important that it is to be intervened at early stage that is in the beginning stage that is a non-progressive stage of shock where body is trying to but maybe pseudo try to understand it no be pseudo cardiac output is maintained BP is maintained. So we have to actually correct the cause also in that stage also if we don't correct the cause in first stage itself then the person will land up into progressive stage. So thing is that we have to identify the shock which I have not discussed in the video which I have released but we have to understand what are the features of the shock right. So because the sympathetic system activity is there heart rate is going to increase the person is going to have palpitations right and the because there is so much vasoconstriction the skin will be cold except in case of anaphylactic shock where there is the cause itself is vasodilation that the skin will be warm okay so that we have to understand that tachycardia palpitations hold the skin then there might be sinuses also okay so with the identification we will be able to intervene at an early stage fine any any other questions on shock I think in the video I have very explained it from the physiology point of view in a very basic manner right so that you understand that because what happens in books it is given in like four or five pages it is given and all the mechanisms which we study in BP right they are also given in shock in fully like two pages and all then we start reading that re-reading that and the concept of shock is lost. Basically we are reading the BP regulatory mechanisms what I see in Gaiden Gaiden has very beautifully explained this shock but sometimes students get lost in between anyways any other question Srishti have you understood the question Hind have you understood how hypoxia and ischemia lead to necrosis of tissue basically it is the sodium potassium 80 paste remember rule of thumb sodium potassium 80 paste is present in all the cells and it is present on basolateral so this concept will help you when you are studying the mechanism of the salivary secretion mechanism of any secretion gastric acid secretion anywhere you will see where ionic movement is there always start with the activity of the sodium potassium 80 paste okay so that is just another sidetrack we took Hind have you understood any other questions are there in this there can you respond in the chat box what I will do is that I will edit this live stream and only the question and answer part I will include in the video so that it is easy for later see also think in treatment part anybody who wants to ask any question in treatment which physiology textbook would you recommend to be best as a standard textbook for next exam for next exam preparation the standard textbook is obviously guidance and get on you cannot understand the concepts which are going to to be asked they are not there in any other book which book I think many people have started reading these books on which give points points actually if you see my notes also I have not done points once I have done the concept why is I have retained the concept because when I read that those books I also don't understand anything frankly I have to tell you and you see the questions in neat PG whatever previous year questions are there what happens that they ask the concept they are not much bothered about each and every point right if you understand the concept you will be able to answer the question so obviously guidance and then on you have to understand obviously ganong is difficult so I myself don't recommend students to read ganon I recommend guidance to to be read okay so needs to be read and especially I didn't give you one pick when you are reading guidance because it is huge it looks huge though this concepts are repeated okay so what you can do is just a minute I will move little bit okay so what you can do is first always go through the headings headings and subheadings okay and then see what is there because and I personally say that first reading should be like a novel so you just go through very fast it is very important that you read the chapter very fast in first reading and what will happen you will do some things you will retain but you will get an overview of the stuff and then after that you try to if you are talking to somebody if you discuss then it is great otherwise when we read everything runs in our mind it is a natural process of remembering things then you should go for next reading when you go then you should go with your this thing highlighting marker and all so I recommend first reading should be extremely fast first go through the headings and subheadings then read very fast you will get an overview and then next reading you do with statistics so I know guidance is nowadays students are not referring guidance but there are a lot of videos concept based videos are there and what I see is the students finding very difficult to read books I know times have changed but the questions are coming from Gaitan only and what I see rather is that not only south east south east station edition the graphs are from the original Gaitan actually that I am seeing some graphs are not there in south east station edition okay so okay but at least minimum you should read the south east station edition thank you Shreya for your question I hope I have not increased your anxieties with this answer and maybe I will ask in next time that which books so I will do a poll which books do students read so that we get to know what is the status right any other question on any topic on anything then maybe I will be able to take some questions I don't know Telugu actually I am from Uttar Pradesh and Hindi I have forgotten much of Hindi I generally speak in English only because I have stayed in I have stayed in Maharashtra I have learned some Marathi I have stayed in Kerala I tried to learn Malayalam there but I stayed there for very short time then I went back to Lucknow I went to Gopal and now finally I am in Pondicherry and little bit Tamil I have learned I think I might be right or wrong I don't know don't laugh on me but guys my original language is Hindi in final year also yeah I obviously conscious the same only and to geologic you have to refer every time great Muzapar Nagar UP how how she knows me yes she is means she is watching my videos or there is some another because once what happens somebody contacted me telling that okay um Richa Gupta are you Richa Gupta she said yes I am Richa Gupta then they were talking in Hindi properly they talked and all then finally I understood they are talking about some teacher in UP and she is also in physiology and her name is also Richa Gupta so he is the same Richa Gupta UP I don't know but if she is watching my youtube videos and she likes them thank you then Architej for letting me know and do convey my regards to Dr. Farah also I'm so glad that I'm able to connect to you and okay she was watching my video videos thank you so much Hi Shinji you have any question actually um okay I'm so glad I was talking I'm so glad that I could connect with you people and I will do this very very often now because now I have found out that this five to five thirty time I can devote to you people so before life for me life was like nine to four I'm at work and you won't believe but I sleep by nine o'clock and I wake up at five o'clock but I have some my own activity I exercise and it's like very packed so I was thinking where to include this live session and everybody was telling through this live session but I will definitely do more of these and I'm loving it talking to you people going live like this she used to learn from your videos thank you thank you and she finished physiology yeah there are many md students who actually contacted me and now they are faculty also and sometimes it happens I meet them also personally and then they come oh are you madam same Richa Gupta we used to watch your videos thank you for letting me know agitation so glad thank you so much okay if there are no more questions on shocker then can we say bye bye because I will stick to five to five thirty initially because I really want to do more often this thing hi Farhana has the best wishes for you yeah I'm so glad that way you are watching my videos and hi Farhana as I am really really very glad best wishes best wishes so if there are no more questions on shock can we take leap for tomorrow or next topic and I will share short soon I will post it it will be very soon probably next Monday only I will do this three days I cannot do because my family is visiting me so that's why but definitely definitely I think two times a week I will add this in my schedule so very often I am going to meet you so be ready with a lot of questions and we will discuss a lot of physiology and maybe some personal talk also we will have I loved it okay can we end the stream bye bye thank you so much agitation thank you so much thank you bye bye all thanks for joining I will be glad to clear all your questions on physiology and maybe beyond also see you then bye


Biomacromolecules with poor mechanical properties cannot satisfy the stringent requirement for load-bearing as bioscalfolds. Introducing hydrogen bond strength in PACG contributes to a significant increase in the mechanical strengths of gelatin hydrogel with a high tensile strength up to 1.1 mPa. This article was authored by Fei Gao, Ziang Su, Qingfei Liang, and others.


Everybody forced here ripping 2022 Prism World Cup soccer hobby three box number 12 Random teams show you the results right here and we're gonna get started. Thanks to get everybody and good luck Results can always be found at late in sports cards.com Silver Cameroon Aaron Eric Maxim Chupamoting Cameroon Silver cracked ice Cameroon Andre Frank Zambo and Gisa red prism England nice Declan Rice Rice number 28 of 399 a Silver Raphael Varan with a piece of glue on the bottom of it. So I'm gonna send a boxer rapper with that The France orange coming up low numbered You got rookie Tunisia's howdy ball 19 out of 25 Nice card there for Tunisia combo Go Harper for rookie Korea Minjae Kim pink prism switcher in granite shotgun It's a b-filed in auto going to the Netherlands is Johnny Hatinga Netherlands Serbia purple Sasha Lukic 67 of 199 Silver Global Reach Germany Mark Andre it's our Stegan rookie silver for France are really on show many Nice cart there pretty good box here red prism Germany is Robin Gosens 126 out of 399 a silver connections for Uruguay Laurie Luis Juarez and ends in Kivani Hyper rookie Canada Ike Ike Ugo and last pack of box one rookie silver Anthony Contreras Costa Rica Gakpo and Adiyemi there box to Brazil silver Anthony Gavi rookie in there red mojo Ecuador nice rookie Moises Kaisado 36 out of 99 rookie silver for Australia Martin Boyle You guys first ones will resume tonight I'll be full pretty soon here. That is a national landmark set to in the case Thank you National landmarks unless these are not from the same case Guillermo Ochoa Mexico What a sick hit Harper congrats on that Guillermo Ochoa national landmarks That is filthy love that one. That's awesome Legend right there red for Canada Kyle Laren. That is a Orlando City legend Kyle Laren 364 399 Silver connections Jafilix Rafael Leal Is a Portugal? Yep, those are case hits. So these must not have been from the same case these 12 boxes Hyper rookie Uruguay Georgiande Araskeita for the three box breaks Stop man Don't watch man trying to do my best to pull big cards for everybody hyper Belgium T-Boca or 2a Silver unicemon Spain cracked ice France Antoine Griezmann I'm not really buying anything right now unfortunately God red Uruguay Darwin Nunez Numbered 194 399 France silver and go locante. Well, thanks for thinking of me man England pink Declan rice a Netherlands auto Luke de Jong Luke de Jong Netherlands non-numbered Costa Rica blue Kalor novice Number 20 of 299 Silver a Phenigian rookie for Ghana phenomenon auto in the first pack is for Mexico Rafael Marquez Numbered 40 of 199 good break from Mexico red mojo whales rookie Joe Rodan 15 out of 99 Silver phenomenon Brendan Aronson United States Then Mark Silver Yusuf Poulsen What's up sin Victor? Red Prism whales Aaron Ramsdale or Aaron Ramsey excuse me Aaron Ramsey 270 of 399 what a Blake hyper rookie Pablo vits Serbia Silver Korea hungman son Nice sunny think Prism France you go Larry. All right half a box left Quality of gold or gold power red rookie Croatia is lover Meyer 5 out of 399 Edgy pickle Rick chillin back there for sure Silver Spain Dany Olmo purple prism Cameroon rookie is Martin Hongla Numbered 132 of 190 silver connections Portugal Christiana Ronaldo Bruno Fernandez Get a Croatia hyper Mario Poshelich Switzerland's silver Braille and Bolo. Yeah, I actually pulled my first Killian and Bapai auto today Cracked ice whales Daniel James. Let's do a real quick recap And we're on to some baseball Silver international ink Rafael Marquez, Mexico to $199 Luke De Young Netherlands auto and a Netherlands Johnny Hitinga auto Mexico national landmarks Guillermo, Ochoa That's so cool Yeah, that'll do it for soccer today. We've got baseball coming up


Welcome to Jalassette News. Take a top stories in cryptocurrency Jalassettes. Break them down into bite-sized pieces. So today, welcome back. We're gonna do a little bit more of Trinity trading. We've got Weston Nelson. He's the head of business development over there at Trade the Chain. We've got CJ with Market Rebellion and each, and of course myself, each person has their own function and we're gonna use a tertiary method. So it'll be, of course, Weston using Trade the Chain or Sentiment Analysis where they use a device or machinery which crawls the entire internet, all the blog posts, all the big exchanges websites, and also is one of only four cryptocurrency companies that has a direct API into Twitter to disseminate billions and billions of tweets to give us a fantastic sentiment analysis. And CJ is our expert over here at Technical Analysis from Market Rebellion, learned from some of the best, the Nigerians, and he's gonna give us the TA standpoint. And then if it gets through Weston and CJ, then it comes to me, Fundamental Analysis. We'll take a look and see if we'll invest. So gentlemen, what do we got today? What can we look at? All right, let's pull up the Trade the Chain dashboard here. Make sure you guys can see. Are you able to see everything good? We're seeing a nice, beautiful green screen. Yeah. I can pull mine out now. Yes. Good, no, good, no. Okay, perfect. So, and again, I juggled Rob as you described the machine of Trade the Chain, yes. It's a, so just to simplify it because we have been getting a lot of questions about what is Trade the Chain and how are you doing this sentiment analysis. It's a form of data science, NLP natural language processing, which scrapes the web to basically take all the text and then determine a sentiment, which is quantifying it for using in trading. So, in a nutshell, that's it. And then we have a community as well, which is extremely helpful to help people understand how to use that to profit the trade. So, the coins page is where you're gonna do most of your research, but if we're looking to make a pick right now, again, I'd like to start with the one hour range. And it looks like we got a few, a few couple of contenders, but I got loop ring right here, LRC. Looking at a positive mean over the next hour of 2.33. Trading volume is up, trade volume is up and we're down the last hour, so probably good in two point. Got you. So, Western, real quick, tell us about that, the one hour projected range, because that's what I get those questions a lot too. What is the one on the red in the middle and the one on the right as far as ranges go? Yeah, so, and if you notice too, it just actually went up, which is good. So, the ranges, those are the projected ranges that the machine or our system is spitting out based on all the inputs. Over the next hour, on a rolling basis, every five minutes of updates, it's projecting negative, so for loop ring, negative 0.275% on the low end, what is that, 7.86% with a mean of positive 2.55%. So, I like that it's leaning towards, the mean is leaning towards a positive 2.555, and that's with 90% confidence intervals from all the data. So, basically, it's likely to stay within that range, but it's very well possible to go out of it on the negative or the upside. So, 90% of the time, it's gonna be plus 2%, is that what we're looking at over the next hour? It will be within that range. Okay. The mean of the likely outcomes is the 2.55. Perfect. So, this is why we need CJ. So, CJ, tell us about the technicals, because one part's looking good, let's see if we can get the second part. Yeah, let's take a look. There we are. So, we're looking at this, we're looking at loop ring, USD pair on a couple different time frames here, and looking at it before the show, it was actually breaking out a couple hours ago when we first decided that we wanted to take a look at this asset. And if I go into the hourly chart here, from a much shorter term timeframe, you can see that each time we reach this nine, or when we reach these nines collectively, they have a general warning sign, and they're telling us from a bullish perspective, the theory, at least, to take profit, or at least be cautious because we're probably gonna get a correction of some kind. And that's exactly what we saw here in the last two hours. We got a green nine on the hourly chart and then immediately dumped right after. Now, we're forming support at around 45 cents. So, I really like the 45 cent base level as support. Now, if we look at maybe some longer time frames on the daily term timeframe, you can see we have kind of a ascending triangle forming here on the daily timeframe. And if you have not heard what an ascending triangle is before, essentially it is a series of higher lows that are rejected by one resistance level. And in this case, the resistance level would be about 47 cents. So, my favorite way to enter long trades in bullish uptrends like this is to buy on a breakout above the prior swing high. So, in that case, that prior swing high would be at about 48 cents. So, I'm gonna look to enter at a price of 48 cents with bullish momentum. Now, that could take a couple hours because we just came down from the recent sequential nine on the one hour. But if we get a price flip to a green one in the next couple hours, I will definitely be looking to enter at about 48 cents. So, interesting stuff. And I think the fundamentals are very strong on this play. Let me just say that I think fundamentals are crucial to entering a trade. I just really believe in using technical analysis to find the optimal entry and exit points for these trade ideas. Okay, perfect.  You can check out that program. There's a 14-day money back guarantee and then with the Maraca Rebellion to learn technical analysis, you can start for a dollar. So, whichever you wanna do, but we just bring these types of opportunities to look at. We are not financial advisors, but these are the things that we see and could be a big play for us. What you wanna do is up to you. So, let's take a look at the actual fundamentals. And before I forget, let me share my screen. Weston, I want you to talk to us at some point about how you use loop ring to sidestep the ETH prices for swapping for Celsius. That was amazing. Yeah. So. Yes. Absolutely. Yeah, they did some big stuff with that. I think, I don't know, I was involved with that with the ring or somehow, but yeah, happy to do it whenever. Yeah. So, okay. What is loop ring? Ethereum rollup protocol? So, okay. So it's another layer two scaling solution which makes a lot of sense. I know, WEC, when you use it, you purchase Celsius, I have actually stopped dollar cost averaging because I can't use Uniswap anymore because the prices are just astronomical. But I think when you use it, there was little to none. So, this is already live, this is already going on. I don't think a lot of people know about it. I haven't heard anybody talking about loop ring except for Weston. So, this might be like a pretty great play and especially for Ethereum. Transaction throughput can be increased, transaction cost will be decreased, which we saw, faster, cheaper, gas fee transactions. Great. So, I knew that there was, I know that there was one thing that you use, you can use it on your Android device. Here's the exchange themselves, but I could have sworn that you can use it. Yeah. Let me see something. You can use it on the web interface, I believe. There might be a difference. Android app. Yeah, so that's what I had. Android app. Android app, beta. I don't know if you can use this without Android unless it's right here. Loop ring swap and exchange. Yeah, on the web though. So, this is the activate layer two you were talking about, right? Yes, exactly. Well, this is like the web interface for layer two. And then I do think they have an iOS app in development. So, you could use a MetaMask account as opposed to a loop ring wallet with it. Well, let me just give everybody my information. So, I think I can see where we're going here. Okay, so once I activate it, I can use it here. Thank you. What were the fees that you use? The fees were, it was like literally negligible. Nothing almost. Okay.  Let's see, I don't see myself. And I just want to clarify, or rather, your size, how great a problem this is currently with Uniswap and other decentralized exchanges. Like Rob said, he wants to buy Celsius, but it's just not worth it with all of these fees. But if there is a system in place which can eliminate that, and it seems as if Weston has already successfully done it, it could be extremely valuable and solve a very, very large problem right now. Yeah, and not only that, because Weston, I asked you, because you got a deposit in here. I asked if you could swing it over to your Celsius wallet, which you did. Yes, because I also wanted to see, okay, great, transfer, right? That's awesome, but can I get it out? So I sent it layer two to straight to layer one Celsius, it worked, I sent it, and then I went back to layer one, sent it to Metamask, it worked. I think for the full effect to go in place, Celsius would have to, like a lot at Celsius would have to be on layer two. But at least for now, half the problem is solved. You can acquire Celsius on the cheap, basically. Yeah, in any sense. So later on, we'll do a full deep diving of this one, but right now it looks good. If the fee is what I'm seeing this correctly, 0.25%. I think it's lower than that, even honestly, because you're in layer one still. Oh, look at what it says price impact. Does that mean, I wonder what that consists of? Is that the market makers? The amount that it would revert if it was more than that. So like that very low price impact is good. Okay, so I'll do this later and what it is right now. But yeah, so it's a weird thing, we're talking about just investing a loop ring, we're going on this rabbit hole, so we get like a two for one special for everybody. Okay, so then just so everybody knows, every trade that we do, we put it up here at Trinity Trading, which is open to the web, everybody can take a look at. We've done three so far. We did Maker, this was on January 6th, started at 1,091, sold off at 1,620, 50% profit. We did Reserve RT on January 8th, and then it went 0.0475, 15%. Synthetics, not too bad. A paltry almost 8%, but this was a short-term and a long-term one. I still think synthetics could be a great long-term play like you guys were talking about, but I will add this in after this video for loop ring. Now, the big question is where do we find loop ring? Because I see it here at Coinbase Pro, I wonder if it's on regular Coinbase. Not my favorite, what are you gonna do? I just bought it on Uniswap. A lot of places. With Uniswap, were you able to use, could you use loop ring to buy a loop ring? Or use Ethereum on this? I think I just bit the bullet and paid the fee. You might be able to create a loop ring wallet and transfer Ethereum to buy loop ring. I had to double check on that. So let me just take a peek real quick. But you can for sure buy LRC on Uniswap V2 right now, like no issues. Yeah. Also available for Binance under the BTC pair. Thank you.  Sometimes, hey, sometimes you gotta bite the bullet. Okay, let me put this up. So that is it. So anything else, gentlemen, before we go? Thank you for watching, not financial advice, of course. Educational and entertainment purposes only. But thanks, guys. Thanks a lot. And remember, just, sorry, listen, just below the links for TTC as well as Market Rebellion. And last thing to say, Weston, what was that? I was just gonna say, I'm very excited about the loop ring. Layer two scaling has been this thing that has been needed for so long. And if it's really solving that problem, we'll see. It's early, but I mean, that would be tremendous for the space and adoption, so yeah. And it's in beta, so just like I said, the very top and yellow, use it at your own risk. All right, buddy, thanks for stopping by and watching. We'll see you on the next one. Thank you.


guys how are you today? Alright so one of the things that I discovered and got some of talked with the owner of while I was at Creativation in Phoenix earlier this year is these relics and artifacts. Now these are, you can find these at the website is I think that Sandra Evertsen is the owner and I believe you can go to relicsandartifacts.com. They are matte resin unpainted embellishments, 3D dimensional craft items. They are part of canvas corp brands and you can go to sandraevertsen.com and anyway they look like these when you get them. These are some of the ones I have that I haven't done anything with yet. I will. So I had one image that I painted black painted it black on all sides with just regular art paint or craft paint. You don't need anything special and then I took some metallic rubs like Treasure Gold or Viva's metallic rubs. I'll get the jars and I'll show you what I mean. So you can use Inka Gold metallic rub by Viva which this is pretty common and easy to get. Joanne has it, Hobby Lobby has it. I also have these Treasure Gold these say metal wax metallic wax finish rubs. These are from London in the United Kingdom and they smell like really strong oil paint or solvent but they work really well and I have these in different colors than these you know. And so I used a combination of them to just adjust on my finger to just rub rub over the raised parts and this is what this turned out to be like. So I initially did this to use it on something else and then thought okay we just need to do something really cool with this and mix media piece and so we're gonna do that now and I'm gonna fast forward through the process and I'll be back at the end. If you want a tutorial on how exactly I painted this to show you step by step let me know in the comments below because I do have more of these so I can do it again. Alright I'll talk to you later. I'll be back. Bye. I like the way it turned out. I love it. An old curtain rod thing from I don't even know what I just found it in my stash of like salvage parts. The original relics and artifacts, little ornament, an old key, a canvas corp flag piece, some canvas corp paper which is this black corrugated cardboard looking paper and some other found bits and pieces I had laying around the room and I love the way it turned out. This is a sample of what you can do with just stuff you have laying around, some interesting little bits and pieces to create a piece of art that's really interesting. So see what you have, look around, go over and shop at canvas corp brands or relics and artifacts. I'll put the links in the description below if you're interested. They have some really interesting parts. That's it for today. I hope you have a great day. Support my channel if you can. All the links for my ways to support my channel like shopping at my Etsy shop. If you want to join my Facebook group, if you want to send me happy mail, any of that stuff, look in the description. It's all down there. Don't forget to leave a comment if you have a question, a concern, or you just want to say hey. I do answer them every day, every other day at the outside. That's it for right now. Go out and have a great day. Everybody do something nice for yourself because you deserve it and I'll see you later. Bye guys.


On today's Visual Studio Toolbox, Chris Woodruff and I wrap up our three-part series on building web API. We're going to talk about best practices and architecture. Hi, welcome to Visual Studio Toolbox. I'm your host, Robert Green, and with me is Chris Woodruff. Hey, Chris. Hey, Robert. How are you? I'm awesome. Excellent. We are wrapping up, for now, our three-part series on web API. Yep. So in episode one, we showed how to create a web API. So that was pretty straightforward. ASP.NET Core. ASP.Core. In episode two, we showed integration testing, which is a new feature in ASP.NET Core. Very, very cool for really easily testing. What happens if you call the service, do you get back success or error codes? Not testing the data, but testing the calling of the service, really easy to do. Then today, we're going to talk a little bit about best practices and architecture. Because you look at our sample code, and we know about MVC and separation of concerns, and MVVM and separation of concerns, but in our little project here, everything is dumped together. So we should probably talk about that. Then what are some of the best practices for doing this for real? Yeah. Cool. I don't have all the answers, so I'll say that to begin with. I just have my example. Everyone can take my example and make it better. There's a lot of smarter people out there. There are a few things. So I'm usually the dumbest person in the room. I just know a lot of smart people, so that's my gift. But yeah, so we're going to look at architecture, and we're going to really just reinforce this idea of decoupling. If this talk is about anything, it's really about decoupling concerns and decoupling responsibilities. We're going to see doing that, but using a lot of the same techniques that you're already used to. So it's not like there's an entirely different way you decouple. MVC and MVVM are similar. If you've seen one, you understand what the other one does, we're going to use very similar techniques here. So we're going to look at a modified more advanced like N tier architecture. Maybe I could come back and we could do a talk on hexagonal architecture, which is really more complex and it deals with domain-driven programming and domain-driven development. But we'll talk about that later. We'll talk about that later. This is more of a simple architecture that people can really start using right away with their ASP.net core web APIs. So let's talk about what you and I do wrong, because I think- We only have 30 minutes. Yeah, yeah. So we're going to have to whip through this list. So bad habits. So what kind of bad habits do we have? In the first video that we showed, we were doing all of our data access from controllers in the actions. Well, that's a bad habit. That's kind of code behind. Smacks of code behind. Yeah, yeah, it really does. It really smacks of cramming all your code into one area and then you're kind of locked in. Right. So don't do that. Even though we showed on the demo, don't do it for your production code. I say don't have all your code in a single project. One, it's hard to test.  And if you update one project, it may not, and you go through CI, continuous integration and building out on the server, it minimizes the work that those DevOps systems have to do. And then we don't want to couple the data access, which in our case is entity framework core, to our project domain knowledge. And I'll explain that once we take a look at some of the layers and once we take a look at the code. And then we don't want to forget, and another bad habit is people don't think about unit testing and integration testing. Or they don't do it. They think about how they should do it, but they don't do enough of it. Yeah, and you should build your solutions, build your systems so that with testing in mind, right? Absolutely. Yeah, because if I build it in a way that I can't test everything, excuse me, then it's a failure. Okay, so you gotta think about unit testing and integration testing. So how I build my APIs is I have this triangle in this case, but I have four different areas I look at. I have my API, which just handles the actual API that people call. So it really contains all my controllers and my actions, and those correspond to entities, in this case, using this architecture. And the actions correspond to different verbs that we can do against those entity types. So with the Chinook database, we have albums and artists as an example, and we can do things like get all of our artists, or get all of our albums, or get one, or delete, or update, or insert new entities. So that's all the APIs should do. Then we take a look at domain. And domain is kind of the heart of my architecture. It really does, it's where all the business logic lives, it's where all the validation lives. It's really the center, and that's why it's in the center of this triangle, or pyramid. And then data, I mean, you need to have some way to get data, even if it's mocking, you still have to have data access to get to send back your mock data. But in this case, data in a production sense is where I have all of my entity framework core logic. And I separate it because I wanna be able to test all, I wanna be able to test my APIs and my domain against production database and mock database, or mock data access, my mock data. And then the last one is tests, which are important.  So we'll quickly go through what each layer should be. So API layer, like a UI of ASP.NET MVC project, the API endpoints should not know anything about domain knowledge or the data access. All it should know is how to get those HTTP calls and how to respond back from those NHTTPs. It's a view, the view doesn't know about the view model, the view doesn't know about the model. Exactly. It should interact with view models to ensure the greatest flexibility. Now, we were talking about this earlier, and I'm gonna use an example. In my Chinook database, there's a entity called invoice, and invoices are made up of multiple invoice lines, right? But we don't know the total amount of an invoice unless we know all of the invoice lines, individual costs. And so in most databases, in my databases, I don't save the total amount for an invoice. I calculate that on the fly. So if you take a look at one side, we have our data models that are based one to one on the tables in our database. On the other side, I've got these view models, and how do I convert, how do I take a invoice data model instance and convert it so it has a total property inside of it? It has to go through my domain layer and figure out all of the individual invoice lines, total those up, insert that into a property in the corresponding view model, and then vice versa when a view model comes in from my API, and I don't have, and I have a total, maybe I use it to verify that that total equals all of the corresponding invoice line rolled up total. So I use it for validation coming from the other way. So that's why the API only deals with view models. It doesn't know anything about the data models. Domain layer contains both my entity models, my data models, and my view models. So because it needs to do the conversion, it contains all of my interfaces for my data retrievals so I can keep a well-defined standard for all my data access. Now, what I mean by that is that if I have two different ways that my API can get data, meaning maybe I get it from SQL server and that's in one project and then I have another project for my mock data, each one of those needs to know the interfaces that they have to adhere to, the contracts, so to say. And so my domain layer contains all of my contracts that my data access projects have to adhere to. Because if they don't, then they won't work well or they won't work at all. So all my interfaces are in my domain layer. And then this also allows me to use dependency injection for my repositories. So those repositories that live in those individual data access projects can be injected into my domain layer. So if they're coming from repositories that use any framework core or use the mock, my mock access, mock data access, the domain layer doesn't care. It doesn't even, it really doesn't. It doesn't know. No. Sure. And then I think of my domain layer as a supervisor and there's an actual class called supervisor that does all the heavy lifting in there. Data layer, pretty simple. It's where all the heavy data lifting happens. Everything that it does is defined based on interfaces from the domain layer. We talked about that. And in my sample architecture instance, I use any framework core 2.1, but you can use anything that adheres to .NET standard 2.0. Okay. Okay. And then I also use mock for testing up a data access layer for testing. And then my tests, I have two types of tests, integration that we looked at previous video and traditional unit testing.  Exactly. And so this is integrated for API endpoint testing and controllers. So we also test out our APIs and the controllers that are in the APIs. And then we cover all of our unit tests for our repositories and our individual data access layers. You can test out, really, you should be testing a lot more than I show in my sample. Okay. And that's it. All right. So let's dig in and show. Let's see the sample. Yeah, let's dig in and show the sample. Okay. So let's first take a look at the different projects. So if I collapse all these down and just show the different projects that we have, there are a number of different projects. Like I said, we have Chinook.API. Now I set up a naming convention for my projects where I have a base name and then a dot and then whatever it corresponds to. So I have Chinook.API, Chinook.Domain, Chinook.Data, Chinook.IntegrationTests, MockData. So I have two, so my MockData adheres to the same interfaces as my Chinook.Data. And then I have integration tests and then I have unit tests. In here, I also have a MSUnit test because my unit tests are all XUnit and I try to make sure that I'm gonna be running some MSUnit tests for people that like that library for testing. So I try not to be biased and just look at one side. So the first thing I wanna take a look at and I'm gonna close all these documents is I wanna take a look at my API. Now in my API, I'm gonna show my startup and I'm gonna make this small. So in here, I recommend, and you don't have to do this, but I recommend not putting all of my configuration stuff into my startup. So if you see here, I have a bunch of these like configure repositories and configure supervisor and AdMiddleware and my cores, which we've never talked about, but I have all these things that I wanna do that I wanna inject and stand up for my services, but I don't want my configure services to be this gigantic method. So if you take a look out here under configurations, I have some classes that handle all those and let's take a look at like configuring connections. So I have an ad connection provider call that basically goes out and gets the connection string from my app settings.json and it just sets that up, adds that DB context, injects that DB context into my project and then returns it. And for me, in my thinking, it is better for me to push all these stuff out so that I know what I'm working with instead of having this gigantic method. So that's one kind of best practice that I do in this architecture. If I go back to my startup, I also use Swagger. I don't know if you know Swagger, but in this, and this project is out on my GitHub account. So it's a repository that we'll probably link to in the episode notes, but we use Swagger for this and Swagger is really simple. Swagger is kind of a human readable form, has a UI to it, so you can actually kind of see what you're working with and we'll show it at the end of this video. It's kind of cool. You can see how that's set up. You can see how I do cores and also some other things, but don't wanna dwell too deep. Let's take a look at controllers because my controllers are dumb. They're very dumb. So this is a album controller and this is a get all, so this is a action to get all albums. So all I do in here is I'm really just calling this Chinook Supervisor, which was using dependency injection was injected into this project and if I take a look up here in the constructor, I just grab that Chinook Supervisor, assign it to an internal private property on this controller and I can use it and I just call get all album async. So I'm using async calls all over the place so that I'm not kind of hurting the performance of my API and if I catch an exception coming back from that, I send back a status code of 500 in this example. You can be more, you can get more advanced fancy and do different things, but for this example, all I wanna know is did I get some kind of internal error behind the controller action? If I did, I send back a 500, meaning I made the mistake, a 400 is you made the mistake, I made the mistake, so I'm gonna send back a 500 and then I'm gonna send back the exception, which will allow the person getting that response back to get some kind of information about the exception that occurred. And that's all I'm doing. I mean, if you take a look at all of this, it's really kind of simple. All my controller actions are very simple. Like if I wanna get a specific ID, a specific album from the corresponding data access, whatever it is, I come in and I check to see if that album exists so that if it doesn't exist in the database, I send back a not found. Okay. And that's a 404, right? Right. Yeah. If everything gets sent back okay, I send back an okay with the response, with that one album to be sent back. If I catch an exception, I send back a status code of 500. Okay. This is all really my actions do, my controllers do. They just get, they call out to my supervisor to get data, to get information, and then they send it back out or send back some error or some kind of other response code. So really, that's all my API project does. Right. Simple. So now let's take a look at the data side. Okay. Of the solution. So the data side is actually really simple also. It's just data access. That's all we're doing. Sure. We don't care about validation or making sure that the data is correct. We just get it and send it back. So we really just have these repositories. So we're using the repository pattern to have all these calls. And they really just correspond to certain things like we have a call that says album exists. So it just goes out and says, does this ID exist in the database? And then we can have like get all async and get by ID async and add async and, I mean, our credit cards, right? It's just straight forward EF stuff. Yeah, it's just straight forward EF stuff. And it's really basic stuff. Okay. Okay. So we're still doing kind of boring stuff. But let's get into the domain now. So let's close that out. Our domain is a little interesting. So we keep all of our stuff in here. So when I created and generated my entity models, they actually got created in the data access layer. But I actually pulled them out because all of my data access, my mock and my SQL server have to adhere to the same entity models, right? So I wanted to keep them separated from each one of my data access layers. So I keep them in my domain so that everyone can reference them and they're referencing the same classes. They don't have different classes and someone could go in and modify one entity class in one project and would break the other one and break the whole thing. I also have my view models which correspond to what I'm interacting with the API. And are these the same view models that you would write in a XAML application? Yeah, it's the same corresponding.  So if I take a look at an album, you can see album is made up of an album ID, a title, and an artist ID. But what if I wanted an album to also have the artist name included in it? So this is an example where I have a view model that has a slightly different shape. Okay, so this is a different view model than the view model we have in MVVM because the view model in MVVM does the actual data manipulation. Yeah, so no, it doesn't do that. This is just basically giving me the shape that I wanna work with through my API. So you can see that the only thing that's really different between the two is really in this, I've inserted a artist name into my view model so that when I send back and someone says, give me all the albums that were created by or maybe if I had some kind of date on this, maybe I could say give me all the albums that were created in 1979 or produced in 1970. Or you want all Dave Matthews albums. Sometimes it's Dave Matthews, sometimes it's Dave Matthews band, right? Yeah, exactly. Dave Matthews, sure. So we've got that. So that's just an example why I have entity models and view models is because sometimes I want different stuff to be to work with the APIs. Right. So if we, also we have our repositories and these are just our interfaces. So that's why I keep all of my interfaces in this domain so that all of my data access have to adhere to these contracts. Okay. And the last two are I have my supervisor which is just one gigantic class. I don't really like it but I couldn't get away from having a bunch of circular reference issues. So I have one gigantic, I call it the Chinook supervisor and it gets injected all of the repositories that I'm working with. So you can see here that in the constructor I get back all of the repositories from whatever data access project I'm working with either the mock one or the entity framework core one. And it uses those repositories to do certain things. Like if I say get all album async I basically get all of my, I call that corresponding repository and say give me back all my albums and then I convert that list over to view models.  Now, I could use other third-party tools that do that conversion automatically but I did converters just to show people what you could do. Right. So in the end and then I convert them and I don't really even need to do this anymore. I thought I got rid of all these but really all the supervisor does is it converts one side to the other. Either converts view models to entity models or entity models to view models. Because I tend to put that code in my view model. You could, you could, yeah. It's kind of clunky. But I do it and I could put some validation. I'm gonna be working. I like the idea of separating that out because the view model is retrieving data and preparing it for the view, right? But I don't have a view. So I call it a view model. Maybe I should call it like an API model. Maybe. So maybe I'm not calling it the right thing. I'm calling it something to distinguish it from. But even when it, in Xamalapse, when it literally is the view model, I like the idea of the view model calls out to something which goes and gets the data and then does the manipulation, passes it back to the view model which then turns around to the view and says, here's your data with artist title attached or invoice already calculated instead of having that code living in the view model. So retrieve the data from the database and then do the conversions. I break out all this because I can build unit tests against a supervisor object and I can build unit tests against the convergence. And it separates the concerns. If you change the way you do the conversions, it's all in one place. Exactly. Okay. Yeah. I like that. So that's really my domain. And I can also show you my mock data. My mock data looks almost like my data that uses any of the framework. It just has really simple repositories in this. I just create one for like get all async for album. I'm just hand coding one album and then I send it back. Now I know there's more advanced as you probably saw with Phil, there's more advanced ways to do mocking. This is just a simple way that one, people can see just how to do it in a basic sense. Mock queue or MO mock or mock queue or MO queue or however you pronounce it. There's tons of ways to do it. This is just a simple way that I'm just sending back one thing and it's just a bare bone as basic as it can get. Okay. And would I do this for production? No, for like a real production API, no. This is just a demo. Sure. And then again, as you've seen in the last video, this is the same exact thing that we were doing before with integration testing. You can go back and take a look at that video. And you got your unit tests in there as well, of course. And then I have unit tests down below where in this example, I just unit test my repositories. And these actually go out and unit test the mock, the mock data access. Because some of these tests, I check to see how many instances, entity instances I'm returning. So I really want that done in a mock environment. You don't want to tax the database. You don't want to spin up Azure charges. You don't want to necessarily have an entire mock database. Yeah, you should be able to test based on mock data. And that's really it. That's my architecture. So it just comes back to I try to decouple as much stuff as I can from each other. I try to break it down into smallest pieces. So one, I can understand them. Because like I said, I'm not super smart. So I have to break everything down into small chunks so I can keep organized everything in my brain. And I can test each individual piece. All my gears can be tested without any other information around. Yeah. And that's it. Very cool. Yeah. So like I said in the beginning, this is just my way of doing it. When I do talks, I do this talk around this architecture quite a bit out in the community. I always say, and I get people that come up to me and go, well, why don't you do this? And why don't you do this? And I take their suggestions and I'll build them back in this. I've had quite a few little suggestions how to tweak things and make things better. So like I said, I don't know everything. I'm just showing you what I've learned over the years. Right. And try to kind of give a little wisdom out to people. Cool. Yeah. All right. So I think this went really well. Yeah. Our series on doing web API, we saw how to build them. We saw how to test them. We saw how to architect them. That's awesome. Thanks so much for doing this. Yeah, thank you. Hope you guys enjoyed that and we will see you next time on Visual Studio Toolbox.


Amphibian embryology, the Neuralation, first the contents, Neuralation, Neural Plate Formation, Neural Folds, Neural Tube, Brain and the overall process of Neuralation. First the definition of Neuralation. So, actually Neuralation is the stage of embryonic development in amphibians. Apart from amphibians, in all the animals, one of the development stages is called Neuralation. Actually it is that stage during which Neural Tube is formed. Neural Tube has to go ahead and make a nervous system. So, we can say that the process of Neuralation during which Neural Tube is formed. And the stage of Neuralation comes right after the gestulation. After the gestulation, the stage of Neuralation comes. How Neuralation starts? Neuralation starts before everything. The embryo, if we look at it, that is in the form of a round form or slightly electrical form. So, on the dorsal side of the embryo, an overall patch appears. On the dorsal side, a patch appears on the embryo. And this patch will gradually attain a plate form or a stretch form. The reason for that is that in the beginning, a patch will appear in the oval shape. After micro filament, I will stretch it and put it in a line form. Or I will put it in a patch form. And I will name this patch as Neural Plate. So, if we have this, then there is a line on it where the patch is formed. Some cells have become a stretch of cells. So, now the Neural Plate goes further towards Neuralation or Neural Tube when it is formed. So, first of all, if I say that the Neural Plate has formed a Neural Plate on the embryo. So, the first step will be that the sides of the Neural Plate will gradually start to raise. So, when the sides of the Neural Plate will raise, then this will be the position. The plate will gradually sink down. And its ends will gradually start to raise. The ends of the Neural Plate that are rising up, they are called as the Neural Folds. We will name it as Neural Fold. In the next stage, these Neural Folds will gradually go up and get formed. When they get formed, then the Neural Plate has now attained a Neural Tube form. This is the Neural Tube. This is the Neural Tube which will make the whole nervous system ahead. The end of the Neural Tube that is usually closed at the end, is actually the brain. It will make the brain. And the first part of the Neural Tube that has been closed will be the spinal cord. The spinal cord will develop. So, this is a simple process. The Neural Plate is formed. The Neural Plate will gradually sink due to the Neural Fold. It will cover the Neural Fold. It will become the Neural Tube. Some parts of the Neural Tube, which are specially closed at the side of the Blastopore, and the end of the Blastopore on the other side is closed at the end. And the part that is closed at the end actually makes the brain. And the first portion will develop in the spinal cord. Here, diagrammatically, we can see that this is the Blastopore that is being closed at the end. At the top of the Blastopore, there will be an ovalsis at the beginning where you can see the diagram. A stretch has been formed. Microfilament stretch is formed at the end of the Blastopore. This is the Neural Plate. Now, at the next stage, the ends of the Neural Plate, which does not disappear at the end of the Blastopore, the end of the Neural Plate will rise up and this Neural Plate will go down, which will ultimately close it from above and make a Neural Tube. It will close the Neural Fold from above. The anterior end that I talked about, where the Blastopore is, it is first closed. And the second end, the distal end, is closed later. When the end is closed, the Neural Tube portion at the end of the Blastopore will form the brain. This will form the brain. And as soon as the Neuralation is completed, it ultimately becomes the Tadpole larva.


Hi everyone, it's an honor to present today Progress and feeds my great module My name is Irene Azaz I came from San Francisco. I am Drupal developer open source evangelist My name is Yuri Recognized as a back-end developer that's in the Netherlands and I'm the feeds module maintainer and I've worked on Feeds for the past six years now In this presentation today, we're gonna cover we're gonna go with overview of Content expert and in content imparts and will compare feeds and migrate frameworks We'll do the demo and then hopefully we'll have enough time for question and answers We're using development tools. So be aware Before we dive into specific content issues, I want to take a bird eye view on the websites all together and Remember put it into context. So we remember why we're doing all this content migrations so the function of the website is support organization and because organization change websites also changed and Content is being generated inside organization and outside organization and you want it to be moved around quickly and efficiently Let's look up what we're moving We're moving Structure data in various formats. It comes from different sources. It comes from files It comes from other websites. Sometimes it come from databases We sometimes want to move all the content one time Which would be a migration for example from the previous website Or we want to keep updating news or courses or some content that is has period of periodic nature We want to give instructions to our site what to do with things that we did previously like do you keep previous? Previously imported items. Do you want to update them? Do you want to remove them? And we want to monitor and make sure that we know what actually happened so Today we're gonna look at two large very typical cases One is migration from old site to the new site. It's more or less one-time thing You have very clearly developed structure and you just want to move things. We're not talking great designs We're talking just pure migrations or upgrade Down the road when you're migrating you won't might want to transform something for example Triple eight uses ISO data date format which has take T in the middle and triple seven does not so there are some Transformation that might need to happen and then the new system Follows the old structure We also have different type of cases where we have existing website for example We'll work I work at Stanford University we have departmental websites and we like to integrate news or courses or some other content and we want to pull it from like central registrar or some other or central news and We have one structure in it in our website and they have different structure. So we have ongoing periodic imports where we need to remap Structure so things are getting into our fields, right? And of course it has to be done by Monday, which by the way was yesterday And here's our tool set in triple eight The huge news is that we have one click upgrade that is based on my great module everyone hoped for this one click upgrade for many years and Some people still say it's just one click at the end. You have to do a lot of clicks before We have wonderful module that I love which is called sheets where I can configure I Can configure experts and then I can figure input and Bring in data and then we have very very powerful my great suit That can work with database with files It is targeted towards developers and we also have an option for custom scripts, which are wonderful and very quick But they're not reusable Today we're going to talk about two major input Frameworks how many people has used my great already? How many people use feeds? So I think that you more or less know what's going on in general in both modules, I'm gonna Quickly go over them and then we're going to talk about why it would be really great to have them working together So my great very powerful The it is for developers. It has very steep learning curve. It supports simple migrations and chain migrations It has some UI I would call it some limited UI where you can see it after you run certain number of drush commands You can through UI see what was happening. What has been imported and you have little limited capability of Rollback or re-import things One of huge limitations is that everything including data source is coded And so if you want to change You can change anything in migration and If through UI on productions, you always have to do it in code you always need developer to change migration and That is a huge limitation in cases when we have Content editors who want to change Something remap field or change the source of migration. And this is where model feeds come in and Yeah, I'm gonna give you a brief look about the fees module for those who don't know the module. It's aims to support non developers to import the content and I've shown you the key features Oh wrong one So it's key features are It provides a mapping UI so you can map source fields to Drupal target fields You with feats tamper you can modify or transform the data and It supports various for a file format you can input from CSV, JSON or XML You can input from various locations like a URL a file upload or a server directory It allows a periodic import so you can import Run an import say every hour or every day this is you that's useful if the The source is not stated and changes and you want to import the updates And most importantly it allows your editors to do it to provide source files and do imports So you don't need to consult the developer would have So I will tell you briefly about how these words first you add a feed type Then and you do specify what type of data you want to create like nodes or users you map source to fields You transform the data if it's needed and And then this part your editor could do is add a feed type supply a data source and run the import So this is how the mapping UI looks like on the left side You specify the sources the second column shows which Drupal target fields the source I'm up to and for some target fields you have additional configuration like for them Body field you can configure which text format you want to input the data in because usually you don't want to Specified it in the source file which which text format Something between you want to have to pre-configured so Let me tell you now something about How feeds and migrates could work together in Drupal it so on the one side you just we have Migrate That's very powerful, but it lacks a good UI And as you see on the other side we have feeds this one does provide to you I But it's a complete separate framework so it just means that Contra modules that want to support both input frameworks They now we have to write and the micro plug-in and the feed spell again, so that's double work So wouldn't it be great if the two systems could somehow be combined together? and that would be win-win solution for everyone because developers only have to wait maintain One import framework as the sidebuilders would gain the power of migrate because migrate can do a lot more than feeds can do and Content management managers can import the data themselves without having to conceal them developer. So that's And that might might cost less so So let me tell you about the feeds migrate module. This is a new module built on top of migrate and it tries to mimic the feats UI It's features are that it's integrated with the migrates Equal systems so so it's top built on top of migrate as I said It says you UI tuned for sidebuilders It works with existing migrations. So if you had to developer coded migrations before With this module you can add them in in UI and it works with other triple distributions as well So I'm going to show you a demo from how it's working today So we have a file here an XML file it has two items and for the simplicity of the demo we only import the titles and It's there are two articles we want to import So first we add the migration group We give it a name doesn't really matter what kind of name then we go to list migrations We add a migration and this is where the feeds migrate UI comes in you can give it a name You select the group You select where you want to fetch the data from in this case you want from a URL this You select how to parse the data in this case XML We specify the root expo which I won't go into detail here now and We specify what type of data to create in this case an article notes Then we go to the migration we go to mapping We add a new mapper And we want to map to note title so we select title from the list Do you specify expo source which also happens to be title and because we don't want to input duplicates We check that it's in a unique field and then We go to feeds migrate and this is what your address would be able to do We should let our migration and this UI is called is subject of change, but now it works like this We specify the URL to input from We check them to make sure it's input our articles it's safe and Then the editor clicks on input and it should import to articles Two articles are successfully created Let's see me in the content list Yes, there they are. There's the article lower on ipsum and the article feeds migrate is ailsome So back to the presentation So let me show you what we just saw The what currently is working for feeds migrate that's adding a migration and the mapping UI and performing an import and Documentation is the work of progress And we currently busy with creating DI for configuring process plugins That's process plugins are the equivalent of Feeds tamper for those who know feeds tamper. We don't know process plugins So I give the word back to Irina Yuri, thank you very very much for all the work and All the coding that you've done and everything However, we still need some help I Want to thank first all the developers that already Contributed and get it from the up from the ground this new module. We have architecture in place We have very clearly defined issues that describe things that can be actually done in two hours six hours of your time and We have regular meetings on Thursdays. So today Around eight of six o'clock Locally, we will have another meetup for those who are on other continents of East Coast If they want to get on slack, we're gonna tell them we have seven more people to join the song Please check it out if you're interested in helping We have a wish list of things that are not started yet if you have expertise in this particular area and Are using feeds or needed for your projects? Please join us and make this module more usable and We have a couple of related core issues where we need help Again, this is a place where We are talking to all Drupalers open source contributors please Try the module. We're talking to all the users of the module. Please try it use it say this is what we need This is what's working You don't always have to contribute by coding you can also contribute by testing by submitting By submitting your What doesn't work for your bugs and just simply spreading the word around so people can Start using this thing I want to say thank you to all the avant-garde developers Well that worked on it years during last year and a half and now we have some time for questions and answers before we have next presentation So we were who does have questions Nobody has questions, maybe I can ask a few questions I've been trying to use the commerce Feeds module and trying to import products, but The products are having some multilingual fields. How can you handle that? Feeds I'm still working on the multilingual support in in the regular feeds module and for feeds migrate I haven't Really looked at how that would work Because now I'm overriding the fields. You're now overriding the fields. Yeah Yeah, there is an issue for language support in Feeds 8 That takes three so just that's not feeds migrate, but Yeah, I still need to dive into that and I'm too busy with Feeds migrate and other feats issues. So it's It's too too much for me to handle all the ones so But it's it's it's a plant So go ahead Niels Feeds migrate module replaces the other feeds module and will there be a moment When the other one then the current feeds module then becomes deprecated What is the schedule or idea about for this? Well if feeds migrate succeeds Then then it will eventually it replaces the old Feeds module, but at the moment all my clients are on the regular fees So as long as they are on that feeds remains supported And I think I will Support it even longer I think the only the only thing I would add to that is that You at one point when you do that that you move stuff over to the feeds because there's a brand in in feeds that it's way easier to for For people that know it then to have to because they so we are now in feeds. We there's no there's no way ahead And they don't know that feeds migrates exist maybe And that came reset me maybe say that that's a microphone and the people at home can hear it too The idea is that when feeds migrate is ready. Maybe what you can do is that you make feeds 4.0 We create a migration pass from 3.0 to 4.0 somebody so migrate migrate you have experience And And that we basically that then you get all the benefits of feeds migrate within regular feeds, which is a very popular module coming out the way from Drupal 5 at least perhaps even before works on feet since 2013 and believe the first water was released in 2009 or something or Not sure Yeah, that's a good idea to just call it feeds version 4 But right now it's We keep it separate for Yes, to have focus in the issue kill you need your own sandbox Yes, so the reason why the reason why we started new module Was to keep it separate from existing working Version of feeds out of the box feeds right now support CSV if you want to extend it to XML or Jason or other formats You need a parsers. It's extensive. It's extendable parsers. So when we started feeds migrate We wanted to make sure that we have very clear indication that is works That is fees you are on top of my great but the hope is that It was very important for me to present branding for feeds Because side builders if you tell them migrate, they're like, I'm not doing it. Just no If you say feeds hop of developers of meh meh feeds now So the idea that things can work together in Drupal is very appealing to my heart. So I think that plan was to have feet feeds migrate Be the like a feeds for everything but right now it doesn't because CSV is not in core and XML and Jason aren't core That's are some of the issues that needs to be resolved And I think I'm going to be closer to Drupal 9 when it all becomes one one feeds module Yeah, so what what Rina said and there is no CSV parser in Drupal core for my great And my great plus my great plus sorry My great plus only supports XML and Jason at the moment Subcsv is not supported yet. I think my feeds migrate. I haven't tried it myself actually So maybe it works. There is a CSV source There is additional module that allows you to so there is my great Migrate source CSV that allows you to In to import CSV sources. There's one more module and She entered to import or something. So people are working Working and trying to make things a little bit easier For site builders. So my great has your eye because it has very strong core But the visual part is a little undeveloped the the discussion with Lucas heading was that Both Jason and XML are supported in core itself and CSV format That's at least my understanding. It's not that the parsers don't support it as well So this is why we said, okay, let's deal with XML and Jason in feeds right now in Feeds migrate right now and live feeds with CSV out of the box as is that So are there any more questions Come here and go to the microphone What was the end goal with feeds migrate? Do you want to have Feeds built on top of migrate API or you want to have a UI for the migrate API? And Because my great is so big we first aim for a feeds like UI built on top of migrate so in the beginning would only support the basic use cases and And we see where we can go from there is not I have not planned that yet. It's first focus on getting it to work So there may be chance that in the future we'll have something more than just a feeds Yeah, yeah, I hope it can go to that So are there any more questions ECK entities in seven are they now migrated to it? Because I tried it at first it didn't work I The ECK is a different model than feed tracing, but there is a there is a migrate pass and I can talk to you all about Okay, as well But it's there So are there any more questions? Okay, then we can finish Thank you everyone for coming and we are ready for the next presenter