Hello to everyone, thank you Yacopo for taking care of the organization. So today we have Tynki Hu, who is a student that just arrived in the QLS group that will be among us for at least a year. Tynki is a statistical physicist with specialists in in the statistical physics of learning. In particular, he studied a lot restricted Boltzmann machine, which I think will be the subject of this talk. So Tynki, welcome and thank you very much. Yes, thank you very much. Okay, let's add Brian to give me this opportunity to share some of my research. So now I will share my screen, okay. Sorry. Okay, now I share my screen so everyone can see right? I mean, you can see my screen right? Yes. Okay, okay. Hi, can I so yes, we can see the slides, but the voice is a little bit probably because there is a little bit of echo in the room. So I don't know, maybe if you open the window maybe. I will give that to Tynki. You mean I open the window? Oh yeah, there is a little bit. Okay, now, okay, next everyone. So today my this seminar is my talk is about the physics law of unsupervised learnings in neural network and I'm Tynki and I'm from the Han Han University of Science Technology and I am a physics. So now I want to share some of my finding about some physics understanding about the unsupervised learning. Okay, so let me give you some introduction of what we want to research on. Okay, so we all know that now the AI of deep learning get lots of inspirations from neuroscience and now and so we can see that the deep learning can also give some some light on our neuroscience back. So I just want to share some now some opinions about these two fields. They are interact-togethers and previously we know the convolutional neural network get lots of inspirations from the human beings vision system but now we find that the deep learning the deep neural network is also a very good framework for modeling the vision systems and for us to understand the information process in our brain. For example, we can see that in deep learning our convolutional neural network there are hierarchical architectures for models to process an image but in our brain it's similar from the retina to the alien and to V1, V2 to other air brain and let's talk about the machine learning or deep learning. I think there will be three aspects we need to focus on. The first is that the express power of your models and the generalization powers of your models and then the most important that we can put forward an algorithm to to training but there are very basic questions beyond basic on these three I think very important aspect for learning that how much data we need so I mean we must to answer that is there a simple model or toy model to can give us an analytical result about what is the minimum data sign for us so we can if we know that and we can answer that okay this model is how the trainability is how the express power is and it's based on how much model with how much data I need to provide so now we know that when we talk about the learning there are a lot of different kinds of learnings and now I focus on supermass learning. On supermass learning I think is the definition is easy that we only have the raw data and I want to search for the heightened features from the data but I don't have the label and I just can provide pictures by the queen and he has a very famous word just like I showed in the pictures he seems okay like the proof the reinforcement learning is just like the cherry and the supermass learning just like the ice but all supermass learning just like the cake just like the cake it's just fundamental for us to understand our human beings intelligent systems and also you can see the end name from the code separate herb he also think that for a human being or for a biological if a our human being for example if we are a baby we come across the word and we face lots of data without the label it's the first thing we can do and based on this if we understand the unsupervised learnings we can get a more deep understanding of the other kind of learning so our question is that can we find some basic role to control or to for us to to understand the unsupervised learning so next we focus more on a very basic and simple models we want to see if we can get some excuse me may ask a question yeah sure could you go back to the nice cake okay nice take yeah so I can yeah okay so just just to put in perspective your considerations unsupervised learning also attempts at making sense of the design on the cloth which is on the table and also the cup which keeps the cake all these things matter right yeah but you were pointing arrows to the cake which means that your attention is already directed to something which is rewarding so I think that it's a bit diminutive to sort of say that reinforcement learning cares only for a limited amount of information and that the same the way that you perceive an image is already strongly conditioned by the fact that the meaning that you attach to the objects inside the image yes yes I I agree yeah yes but I just want to see that unsupervised learning is more like I think a basic and for for us to to understand the other kind of learning so so I just stress that yeah sure yeah yeah sure yeah so so so I just so the previous just the background I want to give you about why we have interest in on on this model okay so so now I just to turn to our focus our topic today about the restricted bread machine and the basic the first papers I think to okay it's not not not not the first paper but more famous papers by the Hinton on on science in the 2006 if I remember correctly these papers they talk about to use the restricted machines to just reduce the dimension of the data and the model he used is very simple just like I show the rbm is just a two two two two layer neural network and the first layer is the visible and the next layer is the heightened so they are connected by the weight just in the photo is a is w2 right so the restricted bread machine is an energy based model it's me that's okay we can see here the the w is just like the w2 in these photos and w's connect the visible they the visible unit and the heightened unit ball and they and and this and and this and this is just like the buyers of external field on the visible unit and heightened unit so based on this energy function and we can use some for example the lot lots of famous algorithm because for example the contrast divergence and the others are the ones the version but they all based on the mcm state minimum color to to to sample from these distributions and you use this sample to train in a weight to to improve the low likelihood and this is the restricted bread machine the basic and also based on this there are lots of more advantage the version for them for the deep resume machine and the deep belief machine but if we want to use the physics to an elite code get the results of this model I think this will be too complicated because you can see there will be lots of visible unit and lots of heightened unit for example there will be 1000 and 2000 and I I feel it's difficult to to analytical and now we turn to a very base can we turn to a very basic model for example if we only consider there is a one heightened unit here and the data is the high dimension are you still stuck on this slide reducing the dimensionality of data or I'm still on this slide I don't know if it's a normal yes so sorry can you can repeat are you still on the slide the first slide on rbm or there are other slides that you show sometime in blocks no I'm just on the first slide about the rbm yeah sometimes it gets okay okay I just want to say in the hidden models he just talked about the the algorithm and he used the algorithm based on this energy function but my question that can we put forward a very basic models for us to analytical get to the right right now of how many data we need for training this model so so because now you can see there will be 2000 and 1000 units in here but what we want to consider for a very simple case I mean if we only have 100 units so what will happen and okay if in this case we call this you know one-bit rbm because we know that for the hidden unit if we consider is the binary for them both the positive one negative one so if there is a 100 unit we call it the one-bit rbm and it's my call operator they they have a primitive paper to talk about the these things about the one-bit rbm so if there is a one-bit rbm so the only weight of the features that we consider is xi here and the sigma is the data and the a is just the data index so we provide the data number in m and the dimensions of the weight of the features xi in n and so based on if there is only one hidden unit in the positive one and the negative one so we can get the posteriority distributions of the weight just like is this way and z is the partition function here so if we analytically model we can get the rfc the strength of the the rfc is just the minimized of the data it's only uh you can see that it's particularly that's the beta's power minus four beta is just the inverse temperature it means that it just shows the noise level the noise level of this model we can see that if the temperature is high means that the noise is large so we need more data for us to we should provide more data to this model for that to get some useful information so i can give you a feature here figure here so you can see at the different different temperature you can see the there is a phase transition here it's just the second phase transition because it continues and so you can see the different temperatures the from the numerical algorithm and for the theoretical predict it has different stress holds and first it's just like one and next it's just like 2.5 and they are show different behaviors of the stress hold to show the physical relations from zero the zero is just the overlap with this other parameter if this other parameter is zero it means that the machine the personal machine haven't learned anything from the data right so can you remind me the beta is the temperature of the model will we generate the data yeah yes beta beta is just the inverse temperature and the data also generates basis on this temperature okay yeah that's excuse me what is on the horizontal axis so here okay the the x read just the alpha alpha because i just assume that the alpha equal to n alpha equal to m over n the m is the number of the beta and the n is the dimension of the feature yeah so we can okay you can you can see for them pose for this for this line we know that the beta equal to one and the r alpha c equal to one minus power power power minus four so it's equal to one and the foreign you from the numerical also you can see it's it's a map map map well and the one beta go to a point eight so if you put point eight into this expression you can get to the position of the stretch hold of the fifth position the critical point yeah okay so so this is the one beat r bm so we can get we call this the spontaneous symmetry breaking because before that we can see it's just like the random gas because there's no no buyers of the weight to be positive one or negative one because here we only consider the binary case and because we don't know if they're positive or negative so we can see the random gas but if the data is more than the structural alpha c we call this that's about turning a symmetry breaking appear and the machine begin to learn something from the data oh okay and basically on this and we we want to see that's okay we know that based on these there are some other other guys to uh to do some um i mean numerical work for example in balala and the peter solvice and they also are training some restricted bottom machine and i i just we can just show you here the p is just a hiding the unit they find that no matter p equal to one two three five or ten the alpha c the critical point is just like very very similar positions of the their gamma is just what i call the alpha so he just do this by the simulation and he didn't give the results so that this will let me think that can we get formula or to analytical solve that if there is a more hiding the unit can we decide the alpha c if there are more hiding the unit and if they are hiding the unit the hiding the feature has some correlation so what they are there will in fact the alpha c and so it's either what i want to solve the next step okay so because they put forward that that's just how it didn't depend on the number of hiding the unit but can we prove this is what i uh research uh interesting so so next step we can consider we try to prove um i mean the proven method we can use some phoenix no records way to prove that okay so uh based on this if we consider the more hiding the unit we consider first we consider the two hiding the unit here okay so you can see this is the rbm and the igk adjusts the the input data and the x y is the two hiding unit and this is the two features that can say one and then connect two and based on this we we can consider a factor graph here so the factor graph here so we can just push the igk here is just the weight and the every weight we can know there we have two elements first is from okay there index is also i but the first from the feature one and next is one feature two and the data so that's like the constrain like a constrain to constrain the values of the every element of the weight if there is no data to constrain the every elements of the weight will be positive well an active one and just randomly but if more data show here so there will be show some buyers buyers right okay and uh based on this we can know that if we if you give me a lot of data we can infer the the features from the the data so we can write a big based on a big uh based on the base law we can know that if we this is the likely hood here and this is the posterior here and what we find that's different from the one hiding the unit there will be two partition function here the first partition function is based on the uh likelihood in that it's related to the consign one and the consign two the next uh partition function the sigma outside is basically it just not related to it's just the average of all the consign one and consign two so we have to solve these two partition functions against analytically without an analytical expression for these two roughly can uh then two partition functions and we can uh get the results and because if you know the previously in the phoenix we only consider one one partition function but but now we we have two so can can we solve it okay sorry can you explain again the meaning of these two partition functions okay okay okay yes so okay so we can see that's okay so from okay so from that is pressure the p uh sigma a based on the consign this is uh this is a distribution right so this distributions there are because there are two consign one and consign two but this this distribution that has our partition functions basically it's all it's only related to the consign one and the consign two so this they this partition functions is just related to the average p consign a based on p sigma a based on the consign right i mean every so because p sigma a based on the feature is our probability distribution this probability distribution that have a partition function okay okay yeah yes and the next that is now we have add data and you just product that and after you product you have to sum over the consign one and the consign two right so the denominator become another partition function so i mean the sigma here just sum over all the consign sum over all the feature one feature two we know that for the z they can they can set one side two they just sum over all the data sigma but he didn't consider i mean they just sum over the sigma but the but the omega here sum over the data and sum over the feature so there will be two position function i'm i'm i'm clear i think if you understand yeah okay uh okay so there are two position functions we have to deal with its two position function okay if you see here there are the two position function and the first we can see if there is only 200 units because n is a very high dimension and we can either tolerate its passions and find that the position function z we can add the analytical result it's only related to the q q is just lack the correlation between the two features so this will be uh all the parameters uh after we will use so because of this now we have no how to deal with these two potential functions because in our case the first potential function z we can get to the analytical result of the n is the high dimension here okay and if we have already know z here's and we the only the only remaining potential function is just omega outside so we can use some so from okay if we know this and we can use some algorithm to to to training and because we can use the cavity method uh i didn't show the details but i just we can just define the message from the factor to to note and the note to factor and to to training this a model and we can get the margin probabilities of each of each cosine one cosine two that's like the magnet hidden for us to to infer and now we can learn the features from round data but if we want to prove the first trend isn't the critical point and get to the whole face diagram and what we need to do next so so we need to use the uh replica method from the data physics to get the analytical expressions of the free energies of of the position functions the the capital sigma here so this average we have average on the architecture and mean as the distributions of weight and on the data samples so we do these two we call it a quick average and then we just okay there is a replica trick in that we just copy the system to n times and it makes and go to zero and we can get an analytical expressions of this free energy okay and the basis on this replica method we have to define how many other parameters we need okay so next we think here we need to define eight other parameters i i will just show you that okay now we have two feature right so these two features and because now we we use a teacher students as now real it means that there is a teacher they have two two feature we call this a feature one true and a feature two true and our students has also two feature we call this a feature one gamma and a feature two gamma gamma in replica index so these two feature also have a overlap we call it r so it's other parameter and the average features with it is true teacher features also have overlap we call it t1 and t2 and if i cross cross eight the average features which they are different teacher's weight for that pose that students the students the feature one with the teacher's feature two so we call it the tall one and tall two and the average feature they have there a self overlap just like the ea parameter okay so we can call it it's just like the q the q1 q2 and the average two features from a different replica index has has a small r and the same replica index we can call it the capital r so if we define this eight other parameters and also we will introduce that there are conjugated eight or the parameters in the conjugated space so if we solve these equations so i think finally after some calculation we find a very elegant formula of the alpha c okay so now the q i can just show you here q adjusts the correlation because the two features and we can see that the alpha c depends on the beta is just the north level of the inverse time feature and the q is the feature the overlap so in the two two half in the case if q is equal to zero it means that if these two features are just orthogonal so the alpha c is equal to beta of my power minus four it's equal to the one of the unit cases but if q is not zero so we can see the alpha c will reduce and i mean that's more hidden unit and there have correlation we'll reduce the beta the minima data the meet it's better for us for us to learn because these two related features can provide some information to us so i think it's common it just makes sense but we use more analytical to express these results and so we can i just put the figure of the how the beta and q will influence the alpha c and another thing i think of very interesting that based on the previously results if i just find that okay i just find this this figure i mean that when q is very small you can see the when when q is very small so alpha c just reduced very sharp and when q become more large so it will just not reduce very large and finally it will reduce to just 0.5 level here so this makes me feel that the weak correlations will do better right so we can know that in the neuroscience and we all know that the neuroscience the the correlation between the different synapse just like the one over square and the one over n this this order and we see that in in our models it just the neuroscience just physical machine learning models we know that the weak correlation is not equal to the no correlation it's very it shows it's significantly important because the weak correlation here shows his powers to reduce the data you need very significant here so you can see it's very very sharp so i think it's the first as price for us to show that the models we consider here has such a property okay next things we get that now we have eight other parameters and we get the shadow point equation of this eight other parameters so we think this is the equations for the also what we're learning because if we solve these uh eight other parameters also the there will be eight conjugates the other parameters so actually this will be a 16 or the other parameter here if we solve these other parameters we will still we will know that how when alpha become become large these other parameters will change and so how this system will be because now we know that the different features will will learn different from the two teachers right to two teachers wait so we can see what will happen so what we will see that we find the whole free stack when of this system there will a picture here so when we see that the first we call that's the alpha c in that the spontaneous symmetry breaking the the the stretch hole it just what we get okay it just wait what we get here uh sorry just what what we get here okay so we we call this alpha c is uh simultaneous symmetry breaking stretch hole so we call this is ssb the simultaneous symmetry breaking okay so so when the alpha is smaller than this alpha c so we can see that all other parameters will equal to zero there will there are nothing in the symmetry states and when alpha the begin the asset alpha c access to b but it's more than the simultaneous symmetry breaking and we we we will find that all the t1, t2, t1 come to it equal and the q1, q2 and r equal is mean that in these regions there will be symmetry on the students and the teachers so the students can't distinguish each other because of this uh if you because we know that the t1, t2 is to distinguish the different parts of the picture one of the picture two but in this case there will be no difference because in these regions they just begin to learn but they just learn the common part if the students learn the common part they can't distinguish each other because they they're different parts it just in random as it just the overlap will be there though so if they only learn the common parts so all the overlap we will show some symmetry here so i think it's a surprise for us that the system will be automatically first learn the common parts maybe i think it makes sense because if you for example if you first learn math and then you turn to phoenix and you are first want to learn something they are have some some similar i think either for you and then you go to to learn the different aspects of these two fields but i think from the equation of the system we find it interesting because it will the the the learning of this system will also show the similar behaviors they first learn the common parts and the next when the r fun more bigger than this threshold we can see that the q1 and q2 equal but it's not equal to r and the next step that's uh when the when the r fun with it more big so it will be it will be so some bad fabrication here and r will be have a so you can see the r will be have a turn over here and the q1 q2 you'd always see because it is just the overlap of the kassel one the student kassel one student can type two but we know that in in these regions that the q and r they have just to separate because the students begin to learn the different parts and when when r has a turnover here and when r just go to from from increase to reduce it means that the two teacher will be will be separate so now the students began to know we are different and they also began to know that their teachers are also different so that they have distinguished that the reason of why there will be two solution is that there will be some perpendicular symmetry because you can also see the first one in your teacher or second one is also your teacher so because of the this perpendicular symmetry there will be two applications of this solution but their free energy will will will be seen okay and we can know that okay so we kept from the numerical results so we can see this is the way what we from numerical predicts of the SSB and this is what we predict by the perpendicular symmetry breaking we call it the psp and finally when alpha will be larger and larger the small r will will turn to the true correlation level we send it equal to 0.3 just from theoretical we just set so when the when the alpha is a large mean that we provide more data then the two features we all learn they are we will turn very very similar to the true features of teachers and their overlap will turn to the true overlap of the teachers so this numericals and we match very well of our theory and also we can see the red one is just the common part and the black one is the different part but we can see after the q and r has just separates so you can see at the beginning part the alpha see when alpha see when alpha is very very small so the different part they have to learn and after they separate the two students have began to learn the different parts and before that they just learn the common part so you can see they just learn some common parts and after alpha beyond the alpha see so you can see the common part is just the very stable but the different part they just learn more and more okay so based on this we will draw the whole fish diagram of the of of this model is based on there will be two parameters the first is the beta and next is q so we can see that the first it just the random gas phase it means that it didn't know anything and all the primary just all all equal to zero and and after that we will turn to the ssb phase ssb means that's a pertinent symmetry breaking it means that the students began to learn something common and the overlap were not equal to their role and after the ssb and and the two students began to learn that we are different and they began to learn the different parts and after that they we can turn to the psb t i mean that's the teacher we also the the students will realize that not only they are different their teacher are all the different so they began to learn that and now we can just just draw the whole of this diagram here to based on these 80 equations so i think this will be because we know that the prominent symmetries we talk here is very common because if we have more data more hundred units there will be more complicated complicated symmetry here so we think that maybe the um maybe the supermarket learning is equal to the ssb plus psbs and psbt so we think maybe this we just find some nature of the of our supermarket learning here yeah okay and i think we have some two contributions here that first we show that if if the overlap equal to their roles the critical learning is not dependent on the number of the hadn't neurons but now we have only prove in the n equal to two but we didn't go to n equal to do five ten more and we didn't try but we saw that in n equal to two case the critical points just match was the bala and the pitasol let's do they are gas we we met well and next that we know that the weak correlation is not no correlations the weak correlations will reduce the data size very significantly and the next thing that we we think the arms to progress learning will it would be a universal that it will just shows it will express that as sb faith and the psb faith okay the next thing we want to consider that the role of the pre-knowledge so based on the premise models if we only plus okay we add some pre-knowledge to the system okay if we just pre-knowledge our system of the how the true correlation that they do will be and it's just like in the the best optimal case so we can know that the artist so this gamma is just the this sigma is just what we get from for the alpha c but we know that if we put the pre-knowledge here's alpha c will more it will reduce more so it means that we provide the correct pre-knowledge and it will help the system to reduce the minimal data they need to to to learn to learn from the data okay so I just show the figures here that's there show some difference of the pre-free and we with pre-case we know that with pre-case the minimal data will reduce here and how the first diagram with the okay I just show here okay how the first diagram of the we have pre-knowledge here so we can see just the these two colors okay it is so these two lines and this just what what we call it in the pre-free case but it just these two lines is just with pre-knowledge so we can see that if we have pre-knowledge the psbt and psbs they merge together so in the permittance symmetry breakage case of face there will be no two brush there will be one one one case so I mean that's the the point of the yellow the point of of the black and the red they just separate and the point of the r will be just turn over they mesh together to to this point so as we believe is because we now in a psbt case so it will be a little more light here and based on this property we can have a more symmetry and the first diagram here and so as I see this is what I introduced about we just we have top population in in paper so I think it's just what we see that we find the permittance symmetry breaking and I think we it's what we call them the philic laws to to to are very important to understand that also what's learning here okay it seems very much thank you very much thank you yeah so if anyone has specific questions please feel free so thank you very much so I I didn't understand how does the structure of the data enters in your calculation oh you mean the calculation of our the replica calculation here yeah no I mean or in general I mean what what would you imagine that there are some data which are which have a lot of structure and a low dimensional nature that should be easier to learn than highly structured data uh yes noisy data sorry yeah yeah so now we just want to first on one thing that's how the permittance symmetry uh in in uh I think the permittance symmetry is very common in what's learning so we want to know how this permittance symmetry will will will influence and what will happen if we consider the permittance expansion symmetry so how the first diagram will will be this what we uh what we can consider more here so we just introduce lots of other parameters you can see here to see how this permittance symmetry will change with the alpha yeah yeah thanks so maybe I don't know if uh this is related to Matthew's question but what you consider is the is a teacher-student scenario right so yeah the data is essentially the same structure as the yeah that you're using to to learn right yeah yes now we consider the teacher-student scenario for example you can you can see here and we we have a teacher and the teacher have two two features and the three feature one true and the feature two true and now we have a student we also have two two feature feature one and the feature two but because of the but because of the function it just the even function so if we change the consigned one the consigned two for example if we first write a consigned one the next we write consigned two so the the distribution will be same right so we want to know that's because this shows some permittance symmetry we want to know that's how this symmetry will will influence uh the system this is the k point what's what we want to do yes uh I wonder if you can understand more really of what we want to get because uh we know that's uh there are actually there will be two symmetry firstly if there you consider the consigned one if you consider it is the negative consigned one if the the distribution will be same and if we consider at first the consigned two and next the consigned one the distribution is also same so we want so there will be a lot of symmetry so we want to see how this symmetry will influence the learning process and I have a question so uh you consider an unsupervised learning setting yeah um I I know a bit more about the supervised learning thing and in for example in committee machines there is a transition where if you consider a few hidden neurons at some point you have a so-called specialization transition where the these hidden neurons start to to align on different features while before the transition all these neurons essentially encode the same feature is it kind of connected to this permutation breaking symmetry in your model is it of the same nature or yeah yes yeah sure because you consider is about the community machine that has a multi-layer case right and the multi-layer case because I think the permanent symmetry is not only in unsupervised learning in supervised case just like you mentioned on the two layers the community machine and there will be some hidden and they also show some permanent symmetry and I believe if I remember five ways Sablinsky and had some papers many many years ago talk about the talk about the permanent symmetry of the community machines on the supervised case but no no no one consider this on the supervised case so it's what way uh focus on okay yeah yeah and you could also consider settings outside of the teacher student setting or for me for me for the mean for the for the mean mismatch case right yes okay okay because firstly if we actually if we just I'm here if we consider the if we provide the true pre-knowledge of the how the how the overlap of the two feature this case is just the best optimal case is that's a match case and the first one I I consider here it is a mismatch case because the models are the model here is the different from different from the teacher because we for the teacher models we know that we can set the how the over how the correlation level of the two features the level you can set 2 equal to 0.3 0.5 you can set it for teacher but for students you don't know this information and because of this there will be no nethermory affinity and no such good properties here so because so we have a very complicated phase phase diagram but if we setting a match I mean that if we consider here it is just if we consider the the true if we provide the true pre-knowledge and we guess in a PS optimal case so the first diagram will be more more more more easy so there will be only three phase diagram the first is random gas and the asset being and the PSB so the the two branch of the PSB will disappear because of the PSB optimal setting yeah yeah any other question okay thanks so if there are no questions maybe we can stop here thank you very much thank you yeah thanks very much yes thanks


You have these guys, they support, for example, they simp or what I call a red pill hose. Just pearly thing, there's a real femme skankian, her little friend. These are some big YouTubers sometimes. Pearly has like a million fans now. Almost all dudes that simp for her. They think that they're a red pill because she panders to them and tells them what they wanna hear. This to me is pathetic, it's delusional.  Now instead of simping on only fans, you're just simping on YouTube.


Welcome to this lecture on digital communication using GNU radio. My name is Kumar Appaya and I belong to the department of electrical engineering IIT Bombay. In this lecture we are going to study an initial example of how we can estimate the delay. If you recall in class the estimation of the delay of a signal S of t involved essentially maximizing the absolute value of the convolution of the received signal with the match filter. We will take a very simple template function or a set of simple template functions and then show that the peak indeed gives us a good estimate of the delay and we will confirm this by performing random delays as well and ensuring that we are able to estimate the delay correctly consistently with the maximum likelihood estimate based approach that we have seen in the class. Our next pursuit is delay estimation. In other words, maximum likelihood delay estimation. As we have covered in the lecture, in this case if you take an overlap with the S of t that is a template function but modify it to have different values of tau a and theta we can in effect just verify that the final solution boils down to maximizing the magnitude of y convolved with the match filter and finding out the location tau that maximizes this modulus. This is what we will start with in the beginning. Let us begin by constructing a very simple example. I have first set the sampling rate to one nine two triple zero.  So let us begin. I am now going to first create a vector source. So I am going to do control f for command f type V E C T and grab the vector source and place it on my flow graph. Let us make the vector source have a particular filter. Let's say that let's say that we want the vector source to have about let's say two thousand or let's say a thousand samples. So let us actually create a variable that will hold our filter so I'll say my pulse and we want to make sure that the length is a thousand or let's say let's keep the length to a thousand. So we're going to say plus square bracket zero that is this is going to create a list containing zero and we want as many elements as needed to fill in the length to a thousand. So we'll say length of my pulse. Okay. Oh, we should say thousand minus length of my pulse. So the reason is because my pulse will essentially be the pulse S of T and we're going to now start searching for the delay in this particular example. So now my pulse is missing. So let us create a variable. So I'll say control f for command f say my pulse sorry way I'll say variable V A R I and double click will say that this is my pulse and for starters, let us just make this let's say a hundred ones so I'm just going to say one times 100. So we are just going to have 100 samples of one followed by 900 samples of zero. In fact, this is going to be this is going to be perfect because we can just now use this to perform our match filtering as well. Let's add our throttle but before that let's make this into a float because we don't need complex. Let's add a throttle control F D H R and grip the throttle, we grab the throttle and we connect it but of course we need to make the throttle into a float. Then remember this is the template pulse which is sent and at the receiver we are going to perform a convolution with the matched filter. The match filter is just my pulse reversed. So of course it's symmetric in this case but let me still just add it. So control f for command f I'll say inter or let's say decimating even though it doesn't matter decimating FIR filter will say float to float real taps and connect it and the taps must be my pulse and just in case I'm just going to put square bracket colon colon minus one to reverse it even though this my pulse is symmetric. If you change the program it will result in a pulse which is not symmetric. So I'm just swapping it around and finally I'm going to add a QT GUI time sink. So control F for command F would say time and grab this QT GUI time sink double click it make it float connect it. Now I'm just going to carefully choose the length of this number of points for this QT GUI time sink. Here we have a thousand and here we have my pulse which is of length 100. So this should ideally be about 1100 actually 1099 but I'm going to make this length 1100 so that I get a nice static kind of picture. Let me now run this flow graph it's it is moving a little probably because I did not get the length correct. So in this case it is 1000 followed by 100. So it's may let me check if it is 1099 works okay it's still moving okay let us just set it to 1000 that should essentially just take care of everything yes. So now if you execute this flow graph you will essentially see this particular shape and if you notice where the peak is the peak is going to be at 0.514 millisecond okay. Now what does 0.514 millisecond correspond to let's inspect I'm just going to open a python prompt just to do some calculations. So we said it's 0.515 0.515 milliseconds so upon a thousand times 192 triple 0 corresponds to about 99 samples and it's 99 samples from the beginning 0 which means it is the 100th sample which makes complete sense because the length of the filter is a 100. Now if I add any amount of delay then I will be able to figure out how much you know the shift of this peak will tell me how much the sampling point delay will be in other words I've not taken the absolute value here but because it's already positive but if I add a random delay in between this point like between this and the decimating FIR filter then the shift in the peak will tell me the exact sampling point just for fun let's do that I'm going to delete this I'm going to do control f for command f and say delay and let's just put the delay element here make it float and we'll make this delay something called r a n d o m random underscore delay it's a variable and we need to get that variable okay now this random delay let us do one thing let us actually generate it randomly so I'm just going to say control f for command f I'm going to say constant or let me say variable VRI and if I grab this variable and double-click it and I'm going to say this is random underscore delay and I can use numpy to get a random delay I will do in p dot random dot rand int and it's a 0 through 50 so it's going to give me a number between 0 and 49 of course I have to import numpy as NP so I say control f for command f and I'll grab the import block and say import numpy as NP now we are set now every time I generate this a new random delay or every time I run this a new random delay will appear if I run it again okay each time you run the flow graph you'll essentially get a new random delay for example you keep doing this you'll get a new random delay now let us actually figure out what the delay is okay let's figure out what the delay is by just looking at the pulse which we get okay so and I'm also going to do one thing to cross check our answer I'm going to add a way to view this delay so control f for command f and I will say QT GUI number sync so this number sync will display a number so my delay is between 0 and 100 so I can just call it let's say short and number of inputs one minimum is 0 maximum is 50 and let me add a constant source control f for command f c o n s the constant source constant source I think of type short yes and this constant store source will be the random delay if I now execute this flow graph you can see that the random delay is 17 here now let's verify what this random delay is as shown here okay the time over here at which the peak occurs is 0 point let's say 604 604 milliseconds 0.604 milliseconds so divide by 1000 to get seconds times 1 9 2 0 0 0 gives me 116 so that corresponds to about a 117 samples of delay now 117 samples of delay if you take modulo 50 that's exactly 17 which is what you get over here it's 17 samples of delay that makes complete sense let's do it one more time if I run it again I'm not going to look below I'm just going to look at this number at the peak so this is 0. I'm just going to say 0.6927 okay 0.6927 so 0.6927 by 1000 so this corresponds to 133 so 134 must be the number the modulo will give me 34 this is correct just something to keep in mind that you must actually before doing this take absolute value so I did not do that so let me just add an absolute value so controller for command f I'll say abs and I'm guessing that I can take float here and I'll connect this I'll connect this and now let me change my filter to something else let me change my filter to let's say instead of this I'll do np.a range let's say minus 50 through 50 it's like a ramp okay which goes minus 50 to 50 has the same 100 length so now let's check what this is yeah I can't add you know zeros that way an array so I let me just put list here so that becomes a list which is going to take care of things now if I execute this once again I get a very similar kind of pulse but I get to you know this kind of pattern because of the modulus operation because of the ramp now let's look at the peak over here peak is at let's say 0.6767 6767 let's see what 6767 means about 130 so 131 should be my answer and 131 modulo 50 is 31 so we got it so this method which is proposed in the slides which we saw does indeed work very well to find the delays but let us also see how this translates when we actually implemented in a practical scenario with all our you know interpolation and pulse shape which is closer to root rate cosine and so on. In this lecture using GNU radio we have essentially seen how we can simulate the effect of a delay and use the ML that is maximum likelihood delay estimation approach to characterize the delay appropriately. One limitation is that we used a single pulse which is consistent with what we did in class but a practical approach would require you to estimate the delay when you have a symbol a signal that is more complicated and has several data sequences as well. In the next lecture we will try to put together a simulation based on this and see how well that works and what adjustments have to be made in such a scenario thank you.


Hey guys, Brian here here with another gratitude education snippet So we've all got those curly-headed clients that don't really like to get their hair blown out after service But then what do you do after you've just done a haircut and comb through all of the hair and broken up all of that natural curl So what we're doing here with the list today is going through and actually Helping her curl come back by working off of her part and just creating almost like little Dreadlocks with her hair just twirling it around and around with lots and lots of product While it's still nice and wet and that's going to allow her natural curl to reactivate and then as this air dries it's going to help cut down on her frizz and Just allow that nice bouncy curl to really shine through So we're just going to leave that there and then let her go and then as this dries It's just going to naturally expand with her natural curl. All right. Thanks guys


So this is a really special evening for us. This is our 10th anniversary of our Cybernight program. We started this 10 years ago as a small program that we didn't know what it was going to become, and it's grown up to be the largest Cybernight practice in the country and one of the largest in the world. So we're going to celebrate with our patients, our families, our friends, take our tie off and just have a really special evening. Winthrop is a center of excellence for treating folks who have cancer. We've treated more patients with prostate cancer than any place in the country. So we have the M6 machine, which is special. It's the sort of cutting edge Cyberknife that has multi-leaf collimators, which is an innovation where you could really shape the dose of the radiation quite well. So you really get the best of both worlds. You get these thick tungsten leaves that are moving in and out to really shape the dose and you're also coming from so many different angles so the dose is precisely delivered. As a scientist it's gratifying to see such a technologically sophisticated piece of equipment that combines a robot that can position the accelerator with sub-millimeter accuracy and to see that technology being brought to bear on improving the lives of these patients in a very profound way I think is the most gratifying thing about the Cyberknife. You know when I see my schedule, it's a busy schedule during the day, when I see follow-up from Cyberknife, I know it's going to be a quick easy visit. I know that the PSAs are going down and they're doing well. When you come to Winfrock, you're not just seeing a urologist like myself. You're getting a complete comprehensive view of multi-disciplinary consultation. The most important part of our jobs isn't to fly to Tokyo in lecture. It isn't to go to Boston to present data. It's to sit one-on-one with a scared patient, look him or her in the eye and say, you're going to be fine. We've got this. At Accuray, we're a very mission-driven company, so it matters what we do every day is get up and try to do something that gives tools to Dr. Haas and the team at Winfrock and other customers around the world to really make a difference for patients as they're going through the process. That's when you know you really have a technology that helps people have quality and quantity of life. And that's what we're striving for. We partnered with Accuray and through this decade, we've grown in our technological sophistication. There's been a good cross-pollination of ideas between us and the company and we kind of feel almost part of Accuray, so it's very gratifying to see everybody here. Every single person out of the thousand people that do this every day from the engineering staff to the people who work on the assembly line to the folks who make the linear accelerators to our field teams, every day, every single person gets up and does it to help a patient. It has been really motivational today to be here with so many patients talking about how our product has made a difference in their life. The success of CyberKnife has given me the opportunity to plan all kinds of future that I might not have been able to plan otherwise. The side effects were literally nil. The team that they have is outstanding. They're like family.  I can't say enough about the way I was treated and of course the success that I had. To tell you honestly, it wasn't my first choice. I wanted to do the holistic treatment first. After meeting with Dr. Katz, he said I wasn't a patient for that and I knew I didn't want invasive surgery so he said, why don't you do the CyberKnife? I couldn't be more pleased. If you ask me how I felt tonight, I feel better than I did prior because I'm so relieved psychologically that this is over and I feel so good. No after effects at all. The CyberKnife, it's the right way to do it. Theoretically, it's perfect. The guy who figured out must have been an engineer. He wasn't a doctor. So I was impressed and being a physicist by training, I got to study about the linear accelerator and how it works. If I had to make the decision again as to how to treat my prostate cancer, I would definitely go through windchop CyberKnife treatment. I was really at a crossroads where I didn't really know where to reach out to and when I met Dr. Haas, he sat down with me and he told me about the CyberKnife program and he didn't try to pitch it for Winkler, but he was telling me about it to help my life. I was able to perform my son's wedding two years ago and I was waiting for God for that. Two years ago, I underwent the CyberKnife treatment and at that time it changed my life because it made me cancer-free and I'm living life to its fullest right now because of the treatments that I received through the CyberKnife program. It's like a family reunion for me tonight. It's so rewarding as a physician, as an oncologist for patients to come up and say, you know, you've really given me a new lease on life. You've allowed me to have an excellent quality of life. I've went to see my grandchild's bar mitzvah graduation or I can watch my son or daughter get married and it's not only about eradicating and getting rid of the cancer but again allowing men and their spouses and their families to maintain an excellent quality of life. I have a very dear friend who two years before I had the CyberKnife radiation went through this period of nine weeks of radiation and after the nine weeks he had to have hormones and after the hormones he's still doing testosterone things and injections and I said, I'm not going to go through that at all. It was a no-brain. We both agreed that there was a right thing to do, get it finished with, be healthy and enjoy our lives. We just celebrated 60 years and went to Paris for a week and we're off to India next month. The CyberKnife program at Winthrop is successful because we believe in it wholeheartedly. It's a garden to us. We tend to it every day. We watch it grow. We watch it blossom. It's what we live in. It's our passion and I think it's kind of symbolic that all of us are here in the greatest city on the planet with I think the greatest treatment team on the planet. What makes this institution so special and so unique cannot be replicated. It can't be mass produced like machine parts. It's a unique patient-centered culture and it celebrates collaboration and places an appreciation of every single individual who's participating in a patient's care. It's a culture that promotes research and scholarship and one that dedicates itself to continual improvement. Today's not just a 10-year celebration of Winthrop utilizing an amazing machine. It's a celebration of patients, of physician and physicists, visionaries and of a hospital leadership that's determined for excellence and that has accepted nothing short of greatness. Thank you so much.


Hello everybody hooded core commander 788 here It is class of friday time again when we look at a gi joe classified series figure every friday And we are looking at another snake eyes gi joe origins movie figure the last of the movie figures And to be honest, I've just wanted to get these out of the way So we are looking at scarlet for the most part I've liked these movie figures more than I've liked the movie, but they've still been kind of lackluster So let's see if this one is any better looking at the box We have the window pane showing the figure and a single accessory the arasha kage ninja hexagram in the background We have the snake eyes gi joe origins movie logo the gi joe classified series logo and the name scarlet We've got some box art on the front and on the side and this is meant to look like the movie and I like this art style I like this Realistic painter's style. I kind of wish we had this style of art on all the boxes scarlet is number 20 in the classified series We have a movie poster on the back and on this side We have these symbols which represent her specialties. This one is syringe key This one means she doesn't really know which way she's going This one means she couldn't reach something on the top shelf with her hand So she's trying it with her foot and this means empty recycle bin Let's take movie scarlet out of the box and take a look at the figure Here is movie scarlet out of the box and this figure is obviously inspired by scarlet from 1982 there are some nods to the colors from the original figure and of course the red hair and the crossbow Other than that this movie figure is entirely reimagined. This isn't the first classified scarlet figure We've had we had one very early in the line and that first six inch scarlet figure was much closer to the vintage Original comparing apples to apples even though these figures represent the same character They don't seem to share any parts even though they could have shared a few parts and nobody would have noticed Obviously, they can't use the same head because the movie figure is meant to look like the actress Let's take a look at scarlet's accessory that won't take long. She comes with only one. She has this crossbow It is in black plastic. It's a good-looking crossbow. It is loaded with a single bolt This is a unique accessory. It is not a copy of the other figures crossbow And this is an important accessory because the 1982 scarlet figure came with only one accessory and it was a crossbow Okay, so you're giving scarlet only one accessory and it is a crossbow that seems logical And these movie figures tended to come with fewer accessories than other classified figures But for this figure to only come with this one accessory is a problem for two reasons reason number one She only has one shot. There are no other bolts anywhere on this uniform or on the equipment The other scarlet figure included this backpack with extra bolts reason number two is this detail on the belt piece which at first I thought might be a holder for extra bolts for the crossbow But upon further inspection, it doesn't really look like that. It almost looks like an empty pistol holster So if the figure is not going to come with a pistol, then it should not have a non-functioning holster That would be acceptable for figures of a smaller scale, but it's not really acceptable at this scale Let's take a look at scarlet's articulation and she had the female classified figure articulation Which is pretty good, but a little bit more limited than the male figures The head has really good articulation with the ball joint so you can move the head in any position you want That works great. She has butterfly joints at the shoulder She can swing her arm up at the shoulder and swivel at the shoulder all the way around She has swivels at the elbow and she has single jointed elbows This has been improved on more recent figures She has swivels at the wrists and she has up and down hinges on both wrists She has a ball and socket joint at the ribcage, which is artfully disguised by this chest armor piece So she has an ab crunch and a swivel at the chest There's another ball and socket joint at the waist so she can swivel and move at the waist as well She has a leg split her legs can move forward pretty well back not quite as much She has a twist at the thigh cut. She has double jointed knees She has a twist at the boot cut and she has hinged and rocker ankles Let's look at the sculpt design and color of movie scarlet and really it's not too bad There are some yellowish tan highlights and some red and I think those are subtle nods to the version 1 figure from 1982 But the rest is totally different and that's not a bad thing after all We already got a classified scarlet that was trying to do an update of that version 1 uniform The head features red hair in a pony tail really good detail on that hair wrap The face is in the likeness of the actress samara weaving and it looks really good. I like this face It's amazing what they can do with actor likenesses on action figures these days overall the uniform is brown So scarlet has a more earthy color palette than the ninjas or cobra and I don't think that's a bad choice It's a bit refreshing in this very limited movie line The chest features a brown armor piece over a brown and black textured uniform with some of that yellowish tan on the front and the back And there is a gray digital camouflage pattern on the chest piece. I like this a lot This is more paint work than we got on the other movie figures Her arms feature brown sleeves with patches of tan on the right shoulder and the right and left forearms And a patch of red on the left shoulder She has textured black at the elbows and black and brown and tan forearm armor and brown gloves Around her waist she has this belt piece with a bit of silver at the belt buckle And this part which i'm interpreting as a pistol holster I could be wrong the figure needs this belt piece It adds some depth and dimension to the details and it adds a bit of black to break up all the brown on her legs She has a brown textured uniform and she has leg armor on her thighs in a slightly different color than the uniform She has black straps around her thighs And then she has this border over the top part of the leg armor It looks like maybe that should have continued all the way around the leg armor pieces But maybe that was a paint application that got cut for cost She has brown knee pads. Maybe black knee pads would have looked better, but the brown is okay Then she has tall boots, which I thought were black, but are more like a dark gray They are nicely detailed boots with some buckles and some lines on them And then she has more of that digital camouflage the gray digital camouflage paint spray That matches what's on the chest and I'm a big fan of this. I really like this camouflage pattern Just looking at this figure on its own. This is a nice looking figure The colors are really well balanced and the colors work really well together Brown is a little different for scarlet, but it works This is probably the best of the movie figures One of the reasons I think it is one of the best is because more effort went into it than the other movie figures I mean look at this We have paint sprays of multiple colors. We have a camouflage pattern We have a lot of details picked out in paint and we just didn't get enough of that on the other movie figures Comparing the movie scarlet figure with the 1982 figure Well that 1982 figure always had some problems and never lived up to its potential So that's not really a fair comparison standing it next to the earlier classified scarlet figure I think is a much more fair comparison and other than the face sculpt which I think looks really good on the movie figure I think the first version of classified scarlet is a superior figure in almost every way The snake eyes gi joe origin's movie figure is probably the best of all the movie figures And it was the hardest one for me to find and the last one to review But if the best of the movie figures still doesn't measure up to the main line of gi joe classified figures That's a problem for the movie series and maybe a reason why so many of them are still on the shelves right now That was my review of the gi joe classified series snake eyes gi joe origin's movie scarlet figure I hope you enjoyed it. I'm kind of happy to put the snake eyes movie to bed for a while I'm ready to move on to other things and we're going to do that next week I review gi joe classified series figures every friday and vintage gi joe toys every sunday So make sure you subscribe to the channel for all of that You can find me on social media on facebook and twitter and I have a website hcc788.com If you'd like to support the channel patreon is a great way to do that I could not continue to do this without the support of my friends on patreon You could get some special purse and get your name in videos like the names you see scrolling on the screen right now Thank you for watching. I'll be back with more gi joe classified and vintage gi joe toy reviews until then remember only gi joe is gi joe You


The last day of your BSDCon 2014, our next speaker is Masao here, who will be telling us a few things about some useful tools supporting to the BSDs. Hello, thanks for attending. My name is Masao Uiebayashi, coming from Japan, and I'm self-employed. I have my own company doing BSD, hopefully BSD development. Now I'm working for a customer who is developing a network for your product based on open BSD. Their business is really good and they are developing a good product and extending open BSD, and they have some local extensions, including networking-related demons. And it works, but they also had experienced some troubles, problems, and especially memory leakage, because networking demons run for a long time. And if it's called battery, it's slowly leaking memory and it ends up with severe problems. And they wanted to fix it, but finding those dynamic memory leakage is very difficult. And actually there are not so many options to find those memory leakage, memory defectors. So they decided to port and berglings, which has already proven its usefulness and found many problems in Linux. And so, previously people already ported berglings. It's not really used wisely, but they have ported and it is said to be working. But if there is still a big uncertainty, if it really works on open BSD, because open BSD has many local features to make it more secure. But my customer is very good and they are generous and they allowed me to work on this uncertain project. And my porting project is not really finished, but I have reached to a point where I can finish this project. And so I just want to show you first that it's really working and it's real. Has anyone tried berglings for open BSD? No, okay. It's not really, I think it worked 30 minutes ago, but just give you one minute. Zero. One. You can tell it's the password. Anyway, I think I can show you. It's very close just from there, but it's a little difficult. Anyway, so I think I suppose all of you already had the name of berglings and you already know how to use it vaguely. It's basically most known as a memory profiler, memory debugger. And actually it has more features internally, but for now I'm already working for a porting memory profiler. And porting all of them is a little too much work. And it's basically for developers because it helps development and actually it can run unmodified programs. So we can use it, just users can use it, but it does not help to accelerate watching movies, something like that. It just slows things down, so it's not really helpful. And where our berglings work is not finished and it still has bugs. So if you want to use it now, you have to debug berglings. That is not fun, but still I need some help from you to stabilize and detect. So I don't want you to involve a bug in development deeply, but still. So I need some help from advanced users. So I set three goals in this presentation. Part is involve more people and explain its internal. And I want to focus especially three things, that is system call and exec ve. When berglings executes a debug target program, it internally does what kernel does for exec ve. So a berglings has to simulate what kernel does in exec ve. And it also has to simulate our signal features. And it's very fun. Ideally, berglings can work without any fixed changes against OpenVC locally. But unfortunately, I have found some changes to be done. So I have to convince community to accept those changes. So you can see this explanation at the up sharp side of berglings. Or there are papers that berglings is a framework for heavy weight dynamic binary instrumentation, which is a little too difficult to understand for me. And you can also see Wikipedia and it says it's essentially a virtual machine. So this is much easier to understand. And in my opinion, it describes the things more correctly. So it's basically a virtual machine and emulator. And once it starts running, what it does internally is basically a loop, which interprets client's debug code and disassembles it and executes those instructions one by one. It's basically what it does. And instead of actual resistors, it has virtual resistors in memory. So if you see some move instruction, which moves value from one register to another, what it does is just copy that value in virtual CPU. This is the basic. This is another view. Berglings is special in that it executes debug targets within the same other space. It's one process. Berglings runs somewhere in one process other space, but still target client, target program is mapped in the same process. This is very special for Berglings, I think. But actual stock, given by Cornell, is used by Berglings by itself. And client stock is allocated somewhere else. So for clients, it's basically the same. It does not know if it is executed in Berglings or not, but there are some differences. You can see many documentations and papers at berglings.org, which is good. And my project is based on previous reports hosted at BitBucket, and I could just fork that branch. This is our view, static view, how the code is structured. In a sense, Berglings is emulator, and they have emulator code, which is very portable. Actually, I had to change no code in the central core emulator. It's called VEX. I had to change nothing about it and accept some basic type definitions in headers, but it is written in a portable way. And it also has to interact with Cornell to do many realistic things, like system call and signal or something like that. To port Berglings, I had to modify those parts, which I'm explaining. Actually, those resources Berglings project provides papers all about emulators and theoretical parts, and realistic parts. There is no documentation. That is the problem. There are some numbers. Many machine-dependent files and if-defs. They have some definitions for if-defs. You cannot expect a quality of code like VSD. This is a typical example. They have in single dot Cpy. You see one if-defs, VGP. P means platform, and X86, RENUX specific code, like this, and AMG64 RENUX, like this, and like this. This is not beautiful, but it works because they already have... You see this one. If you forget to add your platform definition, you see a compilation error. So this is not beautiful, but it helps to do development. So if you port Berglings, just get used to it. So Berglings is basically developed for RENUX originally, but it's ported for Darwin and Android, which is almost RENUX. And the Darwin code is already merged into their official branches. And as I said, there is a FreeBSD port, but unfortunately it is not merged into the official branch. I don't know the reason, but their page declares that FreeBSD port is maintained out of tree, which means they don't intend to merge FreeBSD codes. I initially wanted to merge my work in FreeBSD ports into the main tree, but I have changed my mind, and I think we can maintain our changes as external ports. As far as we don't want to extend the basic functionality, just maintain port it. And now we have good version control systems like Mercurial. It is doable. So I think I'm happy with maintaining ports in the beta packet project. My work is kind of between alpha quality and beta quality. At first, of course, it didn't work at all like I'm calling initial development a stage. And after that, some limited, most simple programs start to work. But at that time, you don't usually have no idea if test code had bugs or a bug in the head bug. So you have to use some programs. You have to debug both things. And bugging is basically a debugger. But if debugger has a bug, it's very confusing, and it's not really fun. So I'm now trying to hard to make the situation from here to... and no range of developers who don't know Berggrind can test and help. Yes. So I want to explain system code. Actually, Berggrind has to simulate a system code. So I have to understand system codes to simulate it. And system code from our user application point of view, it's all C function. But internally, it's... Okay. This one example is... This OpenBSD is a little system code. If you call the system code from your code, it's just C function. Jump this here. And internally, there is a queue on instructions. And the real system code instruction is here. This is M1. It has more arguments. So a little more code. And basically, from kernel or from CPU, system code instruction is just one of Trap's exceptions. And when application code is running while running, and it gets hardware interrupt, CPU and kernel tries to save all context registers into some areas called Trap Frame. And after CPU finishes those tasks, it just restores those information back into our CPU and just returns back to application. And applications does not notice that it was interrupted. For system codes, it's very similar for kernel's point of view. And it saves state into Trap Frame as well as for interrupts. But this time, application voluntary calls exception at Trap's, and it wants some information, or it wants to do something for kernel. And when it comes back from kernel, it sees something changed like some memory areas are written, or it was read by kernel, and some registers have changed for returning values. So it's basically Trap. And while entering kernel, kernel does the things for application, and it modifies frame struct and just returns back to application. So kernel has to change Trap Frame, and it also saves some state on struct too. So Belgrade has to simulate this, and it uses system for both for emulates, both for application debug target, and it also uses system code for itself. And Belgrade does not rely on host libc for some reasons, including to avoid symbol conflicts. I don't know all of them, but it does not use libc codes, but instead it has its own system called wrappers, and uses it, for example, just open debug target file, read its elf headers, something like that. Basically, Belgrade simulates what kernel does for system code. The difference is that, as I said, Belgrade interrupts client text, and it maps in the process, and it reads instructions and executes one by one. And resistors are also allocated in the same process address space. So basically, most of system codes are just passed to real kernel. For example, if client wants to read some file, Belgrade, of course, has to read some file descriptor, some data from kernel, otherwise it cannot pass that data back to client. And basically, it just modifies reads a system code. When Belgrade meets system code instructions, it checks machine state structs, and its contents has arguments to system codes, so it can know what debug target wants to pass to kernel as arguments. And of course, it has to return values as system code return values via resistors. So Belgrade fills client machine state and chooses right resistors and fills it. And internally, it actually calls a system code against kernel, and those wrappers are written. Belgrade has its own wrappers to call real system codes, because when Belgrade sees client system code instructions, it's running Belgrade code. It's Belgrade kernel. But when Belgrade executes real system code, it's for client debug target. So it has to carefully swap contexts. And when it actually calls real system code, it carefully reads resistor values from client machine state structure and moves them into real resistors and just call it. And after that, carefully restores resistor values back into machine state. So you have to carefully implement these assembly wrappers. I'm sorry for just including the codes. But it basically... You see there is sigmask. It has to block all signals during calling system call. Signal has many problems, and I will explain later, but basically, Belgrade pulls signals. It does not accept signals. And it wants to control all signals explicitly, so it basically blocks all signals during system call. Then later, these instructions are just looking into structures and assigning them into real resistors to press them as arguments. And you have to set system call number two, of course. And this is a real system call. And later, you have to put back resistors into some structure against restore signal pro, signal mask, and that. Belgrade has many... It can have hooks for all system calls. Belgrade tracks memory read-write when memory is written or it's read. It's easy for user programs, but it has no knowledge. It cannot know... It has no knowledge what memory is written or read by kernel. So without these narratives, if some memory is written by kernel in system call and a user application tries to read those memories, if without these narratives, there will be mistaken reports that you are touching an initialized memory. Like that. So we have to teach all these information for all system calls. This is a little messy. And if kernel does system calls conditionally read or write, it's much, much more complicated. And it's impossible to maintain perfectly. Okay. Next... Exactly. When, as I said, when Belgrade executes debug target program, what it does is actually exactly... it has to create an initial process image and execute. So... Belgrade caused this operation in its image and it caused just image. And... So our initial process image is something like... it's just process memory contents and initial registers and our power process resources which is stored in a kernel and struct process in OpenBSD and struct block. Depending on operating systems, there are many power process resources. So initial memory image has a text, of course, and database VSS areas which can be mapped by parsing ELF program header. It has road entries. So... For kernels, kernel has ELF header parser in kernel and it parses and look for all those road entries and internally map those V nodes areas for it into process address space. And the initial process image has a stack with arguments and environments and auxiliary information for dynamic linker which... these are metadata for processes to initialize... initialize a program to set up things for our main function. These are done by a start code in user-rand. So there is hidden ABI, there is hidden promises between kernel exec and our start codes in user-rand. Of course, there are resistors which are used to pass parameters from kernel to our start code. Like this. So, exec ve. So, along this development, I had to understand exec ve function in kernel to simulate it on background and had to figure out which part I need and which part I don't need. But when I looked at the exec ve function in NetBSD at the time, it was wrong function and it has... I had no idea which is needed and dependency was unable to understand so I could not figure out I could not have splitting those functions into small functions. It was... it was fun. And another problem is all BSDs have slightly different ABIs for these and for application exec ve of course is standard function but as I said it has a hidden ABI hidden promise from kernel... between kernel and the start code and what content to put on stack and what values in registers they are not documented slightly different among BSDs which... those differences I could not see any benefit one over one they are just different for no reason so it's strange. So to initialize a process you had to fill these things and typically traditional BSD has on-stack RGC and RGV and environment and all AUX for mainly dynamic linker and those strings on stack and closer initial stack pointer has to point on top of those exec arguments but as I said there are a huge difference difference between among BSDs where to put stack and alignment and how to pass arguments for example an FBC has PES strings which is just a little duplicate of pointers connected to RGV and MV and RGC and count of MV strings in one struct so try to pass address of that via registered features I'm not sure it's helpful but not to be useful a open BSD doesn't have that so I had to adjust all those differences and carefully implement it otherwise things don't work I'm very good in the heads to simulate this exec VE precisely so again it has background runs or target debug program within the same process address space and it has our client machine state or register content in its memory space so basically it it sets content in machine state structure and it has to fill a client stock exactly the target device a target process expect 15 minutes signal signal is interesting thing and I think all of you like signal for me it was I have little knowledge about signal and I didn't read any signal code in corner but I had to understand it and now I like it and yes signal is basically same as system call it's basically a trap and for application it looks like a function if you press ask colon your signal action signal action function and as colon just call this function when signal is triggered but from colon's point of view it's kind of trap and just yes sorry it's special in some ways for colon basically a kernel just resorts application user and state when it triggers by hardware interrupt except one exception was system call and another exception was exec these are a few exceptions when a kernel transfers user and which is just not restoring original context and when this is about signal handle signal handle in user space so when application asks a kernel to call signal handle instead of just use it processes kernel has to set up context temporarily to call those client signal handle function this is done by allocating sorry executing a small code called a small code called signal trampoline it's just here some instructions just to call signal handle and just return back to kernel and signal trampoline expects some arguments from kernel which is put on stock and from application's point of view it's just called just signal handle function is called and when it exits original context is just restored but during that kernel has to save context the original context and execute 100 and again restore the original context the original context are typically saved onto the stack otherwise kernel has no space to save that information and of course these there are hidden ABI promises between signal handle and kernel they are slightly different among these this is a trampoline code for freebase of freebase.img64 which is in kernel and the lines of assembly code but these are copies into user space when executing signal handle and you see this expects that actual signal handle address is stored on top of stack this is ABI for OpenBSD also has signal code in kernel and copies those code onto a client user space stack and this one expects signal handle address in RAX register which is different from FreeBSD NetBSD is slightly different and special in that it implements signal trampoline in user for some reason so this code is called this fragmented code is called after signal handle exits this is put carefully and as a return code of signal handle slightly different and Berglint has a unique strategy to handle signal for clients basically it blocks all signals and pulls signals when it wants using a signal waiting for signal but you cannot block synchronous signals like segmentation for and how it works internally is very difficult I will explain it and the trampoline Berglint has no notion to copy executable code at runtime it may be possible but FreeBSD people decided to avoid that and provide a trampoline from user this is like how NetBSD does but it turns it works when returning back to corner user and really return back to corner it just cause fake return system code signal return system code and it's only handled by Berglint so this a bit simplified basically it has to simulate what corner does and ok this is for all synchronous signals like segmentation for and this is very very difficult to handle and actually Berglint as I said Berglint basically blocks all signals if possible and it receives other signals like synchronous and those conditions are stable sorry static when application want to block some synchronous signals Berglint manage it Berglint has it remembers those signal mask internally but still configure corner in the static manner so basically Berglint has static information internally and when Berglint receives a synchronous signal while during execution it jumps to you can read this in this paper it unpublished but basically it handles this is signal and wrong jump out of that context and try to the executing scheduler from there and actually execute or client signal from within schedule so I had just one minute I had to change base operating system to make Berglint work one needs system control okay sorry one minute to summarize I could manage to work to make Berglint work almost work but I still need a lot of work to support all system codes Berglint is good for users and it's good as far as it works for users but internally for developers it needs a lot of work and to maintain


meeting of the Rochester Stockpards Unified Board to order and I would entertain a motion to approve the ballot as presented to us by Jamie. Can you present it again so we can see what you updated? Yeah, Ray will present it. You want the ballot? Yeah. Uh, no, the warning. Here you go. Okay, thank you. It still says auditorium in there. Is that the wrong one? My apologies. I know, there's three different ones. Pick one. Pick the one that doesn't have auditorium. Probably the one that's like, well, warnings, parentheses two, because that'd be the third time Jamie saved it, because the second time he saved it would be one, and then the third time would be. Oh, Ray. When I changed it, it's at, it wasn't a Google Doc, it was a Word Doc. That's my issue, Ray. I'm so used to working in Google so that the third time I saved it, it, I thought the first paragraph was already changed. You got the second one, but not the first one. Oh, my goodness. Oh, we're still recording. All right. All right. Here it comes. I'm sorry. I'm sending it right now. Amy, you're going to get it, okay? Okay. Thank you. The second time is the charm. Sorry, Jenny. This says, Justin, this says, voters of town, Rochester, we're voted, the Rochester High School, located at 222 South Main Street, Rochester, Vermont. Ray, will you look at it before you show it, just to make sure I got it right this time? Yep. High school at the top, high school at the bottom. There you go. Okay. And we got the Stockbridge Town Office between 7 am, 7 p.m. I think we're good. Okay. All right. I would entertain a motion to approve the warning and ballot as presented. I've so moved. Do I have a second? Second. The motion has been made and seconded to approve the warning and ballot as presented to us by Jamie Canarney. All those in favor signify by saying aye. Aye. Aye. Opposed? Aye. I was going to say, we've got to get everybody in there. Okay. The motion carries unanimously. We'll have 30 seconds of, since we're up against Jenny's 10 minutes, I'll just tell everyone on Tuesday, it's really nothing's going to change between now and then. If it doesn't take long, Kara, we can do it tonight. Okay. And let's make the motion to go into executive session to discuss labor negotiations, confidential labor negotiations. Second. Second. All right. Ray, if you could, the board has come out of executive section and is taking no action as a consequence of the executive session, I would entertain a motion to adjourn. Do we have to act to approve the ballot for those two things of action items? Right. We decided in one motion, we approved the ballot and the warning as presented. Perfect. Just making sure we did it. Yeah. Okay. All right. Thank you, everybody. Our next meeting is the regular board meeting, which will be Tuesday, the 8th, is that sound right? The 6th? No, this is 6th. Yep. Tuesday the 6th in cyberspace at 630. Thank you, everybody.


Yeah, we're gonna have to build the wall right here on the outside All right, now we're gonna take a fresh layer of snow seal the edge all the way down