or also you can find it via the web. So, yeah. Okay. Okay, great. Thank you. So, doing my talk today, I'm gonna try to merge traffic models, non-equilibrium traffic models, and growth laws. So that is the starting point. So the question that this week, last week, we have seen several times. So, we have the famous growth laws. Which are relations between physiological states, like the growth rate, and the ribosome allocation for the ribosome protein fraction. And so, I'll try to make a model during this talk today that will be in between these more phenomenological models and the very refined models, mechanistic models like the one that we've seen presented by Andrea by last week. So, I think that was the fourth derivation of the growth laws, mathematical derivation. So we have, we can write the biomass production, like which should be proportioned to the number of active ribosomes times, well, a time scale that will be the codon elongation rate. So how fast the ribosome, an active ribosome can attach an amino acid to the growing peptide. So if you do the simple calculation, you will obtain these growth laws. So, I will start with a quite long introduction now. It's gonna be quite longer, but I think it will be useful for what comes afterwards. And to start with, I would like to start where I come from. I come from a community, like a community, not that well, a community that is doing models of messenger and translation. And what I've been doing was like to estimate the, what is called the translation efficiency. So let's say the ribosome flow along the messenger and chain, which in principle can depend on many things. The codon choice that you have, the initiation rates. And actually, in this community, initiation rate is thought to be the limiting, the very important limiting step. So the ribosome recruitment is a central point of translation efficiency. So now if we go back to the growth laws, my question when I first saw them, okay, I see that how much you produce is proportional to the amount of ribosomes, okay? So the ribosome recruitment might be important, but I don't see it explicit in the formulation of the growth laws. So there is no initiation rate. We can see only the elongation rate. So last part of the talk today, so the main objective of the talk was to include the initiation in this picture. And to start with, I start from the other community where I come from, so it's the non-equilibrium unidimensional traffic, which is called, well, I'll tell you what is called. So the exclusion process is the model that I'll be using today. It's a unidimensional traffic model in which you have particles. So you have to think that these particles are ribosomes, for instance, joining the lattice with a given rate and that will be the initiation. I will call the initiation alpha. So alpha is the tentative rate for initiating translation. Then a particle move along the lattice with the translation elongation rate, which I always call epsilon. But well, if there are two particles next to each other, they cannot move in the sense that one particle cannot overtake another particle. And that is what we call the traffic effect, ribosome interference, if you will. And then, of course, there is termination.  So this model has been introduced in the 68 by McDonough and coworkers. And it was actually for modeling messenger RNA translation. And it's called the totally asymmetric simple exclusion process. So totally asymmetric because, well, there is a preferred erection from here from the left to the right. The movement exclusion process because the only interaction that we have is the exclusion, the steric exclusion between the particles and simple because that is the only interaction that we have. So, totally asymmetric simple exclusion process for friends that doesn't, okay? And so if you have questions, so I don't hesitate to interrupt. So what I'm gonna show you is the simple model that was sketched before with particles covering just one side of the lattice, but actually want to do models of translations. So I'm considering bigger particles. So our ribosome covers more or less 10 codons, okay? And things, well, anyway, we'll show the equations and I will explain everything as if the particle will cover one side. The question will change, will be more complicated but qualitatively, the thing do not change. So, how does it work? So we can measure, if we know the parameters for the initiation, the elongation and the termination rate, we can evaluate the particle density. So how many ribosomes you have, okay? On your lattice and the particle current that will be linked to the protein synthesis rate and at the end that will be linked with growth. And the phenomenology is quite simple. So the current is the probability that you have a particle on one side that is a row times the probability that the next site is empty that is one minus row and then epsilon is the fixer of the timescales of the process. And so that is a parabola and if you keep increasing the density while the particle current goes up, you produce more and more but at some point, traffic effects become relevant. So you saturate, that is what is called maximal current phase and then if you keep increasing the density well, then you will have more and more traffic so you will even decrease the particle current for your protein synthesis rate. So, how do you fix the particle density? Well, the particle density is fixed by the boundaries. So the initiation and the termination. And that is the very well-known phase diagram of the process. So intuitively, you are in a low density phase with just a few particles on the lattice if the initiation is limiting and that is what is gonna be our physiological important regime. You are in a high density phase if termination is limiting. So you have lots of particles going up and the maximal current phase, which as a density, which is always one half is at the maximum of this parabola. So, what can we do with this model? So the model, as I told you, is being introduced at the end of the 60s, okay? And then it was kind of forgotten for a long time. And then physicists started taking over, they discovered it. And actually, the TASAP is the Prototypical Model of Non-Equilibrium Systems, which can be solved exactly today. So, but then in the last years, being used again as a model for translation, yes? Perhaps it's a very trivial question. So I don't understand why you say that people believe that we are in the, I mean, bacteria operates in the initiation limited phase. I didn't understand what is the evidence for, I mean. I'm gonna tell you now. I mean, there are some, well, I'm gonna tell you this slide. So what can we do with the model? If we know the rates, we can even solve it or we can simulate the model and get to the density and the current. So let's say for now that we know the elongation rate that can be estimated probably to the concentration of tRNAs, but roughly we can also measure order of magnitude is 10 amino acids per second. So the speed of the ribosome. And so there are some experimental measurement of ribosome densities. So if we know the experimental ribosome density, knowing the elongation rates, we can get the initiation rates. And that's what we did 10 years ago. So like 10 years ago, we did that for Easter. And for Easter, we found that the initiation rate, well, among different genes is quite broadly distributed, but so on average, there is a 0.12 per second while the elongation rate is 10 per second. So to order of magnitude difference between the two. That doesn't mean that codons are not important. So they still play a role, but the initiation rate is the most limited processing during elongation. And then there are also experimental measurement, the experimental measurement, other theoretical works and they can confirm these values in Easter. And I'm not sure if there are some estimates in Nikolai, but in principle it can be done if there are some ribosome densities. So it can be measured directly. Alpha might vary a lot across MRNAs of different genes, right? This alpha vary a lot, that's what the test is. It may, yeah, I'm assuming it might even be orders of magnitude different for different genes, right? Yes, I mean it could vary a lot. It could depend on sequences upstream of the star codons, for instance. So what we found in Easter, that's actually varies quite a lot, from the distribution of the initiation rate that we could find. Experimentally, I think you don't see orders of magnitude difference between different initiation rates. And as there is some paper by Teriwa's group, they could estimate, so they don't measure directly alpha, but they could estimate starting from ribosome densities. And so the distribution was quite big of the initiation rates. So but there are no extensive measurements of initiation rates. So that is what I just said. So there are simple equations that can relate, yes, no, no. So the initiation rate can also be limited by the density, right? It could just be that you have to wait until the initiation site is free, right? Okay, there is a big, I think in the literature, there is a big misunderstanding what initiation rate is. I completely agree. But so initiation rate is the tentative of initiating. So it's the probability per unit time that you bind here on the first site if there is nothing. Then if you have the first site that are occupied, okay, then the effective initiation rate will go down. And since you always assume steady state, I mean, I will always assume steady state that is equal to the current. So the initiation rates and the current are two different things because they're affected by the traffic, yeah. Okay, that's debated. There was these ramp hypotheses. And I think in the last months, there has been another paper discussing about these ramp hypotheses that are at the beginning of the coding sequence. You have a slow ramp of codons. But I don't know if that is still valid. But anyway, the first codons has been proved, experimented at really matters on the final thing. So if you change the first codons, and that's actually my next slide here, if you change the first codons, you're gonna strongly affect the current because you're gonna affect the recruitment of the ribosomes. So actually, that is quite important. So if the codons in principle can, the speed of the codon, the principle can change from codon to codon. But that's the big problem of codon users and codon buyers. And so in this case, we can forget about these simple solutions, okay? There is no exact solution. So it's still an open problem. In the last years, we made a developed power series approximation of the steady state solution of the TASAP when the initiation is limited. So in this case, we know we have an approximate solution and we can do it for any order of the approximation. And but the important thing, I think, is that we still find this solution that the ribosome density depends only not on the absolute values of elongation and initiation rates, but on the ratio of the two. I'm sorry, now the equation rate depends on the size. Exactly. In principle, elongation rate can depend on the size. And the sequential dissolving. Yes. And then I don't...  So then you can do different things. But it will strongly depend on the position of the actual sequence of the sequence. Yes, but no question. Once you choose position, you can do the same thing. Yes. And actually we now have a Python package if you're interested that can develop this TASAP approximation. But so far, okay, the important point is that no code on usage has been included so far in these drought laws frameworks. But okay, the take home message of this slide is that densities will depend only on the ratio between elongation and the duration between initiation and elongation rates. So I think that at the end there's always a balance between how well you recruit ribosome and how fast they go, so between initiation and elongation. So let's take this picture in which initiation is faster than elongation. Then you might be happy because you have a larger protein synthesis but at some point you might even saturate. But actually there are a lot of resources. When I talk about the resources, I mainly think about ribosomes that are used. On the other picture, you can have a stronger elongation, faster elongation and slower initiation. But in this case, you will have a lower protein synthesis and on the other way, less resources are used. So some time ago we analyzed some ribosome profiling. In the east, substantially in this experiment you have the ribosome footprint for each position. So it's a proxy for ribosome density on each codon. And then with our approximation, so by fitting the data into the model, we could estimate the initiation efficiency. So how well the ribosome will initiate considering this traffic effect and how well the ribosome will elongate so one doesn't find traffic. And so each point here is one gene in the east that we could analyze. And when initiation is efficient but elongation is low, so there is a lot of ribosome interference or traffic and so ribosome resources are wasted because when there is traffic, you don't contribute a lot to the final protein synthesis. And instead effective elongation and weak initiation will still finely tune production with codon choices, but you will not have a waste of ribosome resources. So okay, that was my big, larger motivation section. So now I try to go back to the growth loads and to the growth loads and I will try to implement what I said before. So the biomass production for me now will be not something that is proportional to the active ribosome, but more generally, I will say that is the ribosomal flow that was J here. And then you have, well it will depend on M which is here, how many messengers in the US. And then in principle you can have degradation. I will come back to that later. So far there is no degradation in the month. So what I'm assuming is that the initiation rate, the initiation rate will depend on the amount of free ribosomes that you have, the concentration of free ribosomes, times rate constant that I call alpha on. And with that I can compute the, how many ribosome are bound. So it will be just the density of the ribosome on one loptis times the length of the messenger RNA. But I don't have just one messenger. So anyway, I can also compute the current, okay, like the questions we saw before. I can, if I know there are bound ribosome, I can compute the free ribosomes. But there is not only one messenger, there are many messengers, so the bound ribosome will depend on the total amount of messenger that you write. So at the end I can write, if I put everything together, I can write how the initiation rate will depend on the free ribosome, now that the free ribosomes are a function of the total ribosome. But also something that reminds the ribosome density. Anyway, the elongation rate, but importantly also on the messenger RNA amount. So I can write these in at least two different ways. I quite like writing that in this way, because you see that if you increase the amount of messenger RNA that you have, your initiation rate will go down because there is a competition between the different messengers. So I will say that this way of writing thing is kind of highlighted the competition that you have among the different messengers. And that is potentially what Ludo presented last week. So there is a complex formation limitation, what we called, and so if you want to know more, you should see Ludo's talk of last week. So now I know the initiation, I can put everything back in the growth load. So I know that, okay, I know the current and I know the amount of messengers, so I can compute how lambda depend on FIAR, but importantly we depend also on the concentration of messenger RNA. So if we neglect the traffic, you get a complicated complex formation limitation that Ludo presented last week. And so there is a preprint out if you're interested here, I'm sure that you talked a little bit already. So if you consider traffic, you have to consider these factor here. And now I want to show you two applications of this framework. So one is what Philippe, a story class here, so I'll go very quickly about that because you probably remember the talk, but there are new people, so I just do a very quick presentation about that, and then something about the work that you want us to do. And the first work is also in collaboration with Ludo Vico and Marco. So in Philippe's model, so we can use exactly the same framework that I presented for translation, but coupling also transcription as well. So we have two different models, so I don't fix the amount of messenger RNA, but the amount of messenger RNA is given by the transcription model. So we have two different currents, the currents of transcription that will depend on the amount of genes that you have and the amount of polymerases that I call N here, and the current of translation that will depend on the amount of messenger RNAs that you have and the amount of ribosomers here. And then of course the output we are interested in is growth. So we can be with both systems in low density, but there are four options, low density, low density, or you can saturate like transcription and low density for translation, or you can have low density for transcription and high density or anyway, saturation for translation or everything is saturated. So we can make a phase diagram out of it. And so if we change the polymerase concentration of the ribosome concentration, you will get these four different regimes. And physiologically we are mainly, unless if you put some stress then you still don't know where we are. Physiologically we are on these, along this line here. So that is a isodensity line. So when we fix the density of the ribosome, that is what has been experimentally seen, at least in one of the last papers of Terry Wasgrove. So assuming that the density is constant, what can we say along this line? And we know the density is more or less of four ribosome per messenger RNA and the party doesn't change a lot at different conditions. So let's start by assuming that we move on this density, so that somehow ribosome density is regulated across different conditions. And what can we obtain? So if we move along this density, this isodensity line.  Now a quick question. The four ribosomes per mRNA are like including the inactive ones? No, no, no. Is it only there? That is the actual density. Oh, density on, okay. It's not the total. They don't have a direct measurement of that, but they could estimate, measuring the elongation and the initiation, but they have this estimate. And they observe that it doesn't change across the condition. So assuming that we are on these isodensity lines, what can our model say? So these are the data from their group. And this is the theoretical prediction. So substantially there are no fitting parameters. So we just feed the model with the data. And then we obtain, we can predict the mRNA synthesis flux, which is gonna be, yeah. Can you clarify the unit on the y-axis per minute per micrometer? I think I plotted it wrong, it should be volume, right? Per unit volume? Yeah, yeah, yeah, yeah. Is it right? Yeah, okay. It should be per mRNA concentration or per mRNA, I'm a bit confused. Yeah, but concentration is a number per volume, so sure. But that might change with growth rate too, no? The concentration of the mRNAs. Yes, but that is the concentration of messenger and it changes with volume, with the growth rate, but that's in the model. So the concentration of the... Yeah, but that's exactly why I'm asking, right? Because if the y-axis is per concentration mRNA, then you've taken care of whatever change in concentration of mRNAs with growth rate. But if it's per unit volume, then it still also depends on how the concentration of mRNA changes with the growth rate, right? It changes with growth rate. Okay, we should go for it, okay. It still depends. Yeah, but that is all average, I mean, all the genes. So the assumption is that DNA concentration is constant. So the assumption is also that genes are the same. Sorry. And also on the same line, so they have measurements of ribosome concentration and RNA-P concentrations, and well, we can quite reproduce the experimental value without imposing any effect on the model. Okay, that is a lot of work in progress, right? So if you have ideas or questions, just come to me or Filippo or Budovico, who is also involved. And now I would like to go a bit more slowly on the second part. And here, so I was thinking that I would like to spoil the oneness presentation for last Saturday of Friday, but okay, I'm not gonna do that. I'm gonna more talk here about the role of initiation of translation. So I come back to my motivations, my first motivations. So that is our starting point, right? The question from the framework there that I showed you before. And so I told you that in my motivation, I wanted to highlight the role of initiation because the translation community is really important. So the initiation here is in these A, so these constant rate affinity, let's say, of messenger RNA ribosomes. So what can we take from the literature or the experimental data on the messenger RNA concentrations? The elongation rate has been measured. So we have seen the talk last week. And well, of course, the ribosome number fraction has been measured. So I have all the ingredients here to infer my initiation rate. And that's what I'm gonna do now. So but let me write maybe the initiation in this way. So I put all the regulation that can happen on the initiation on a factor F, okay? That will be something between zero and one. And it regulates the initiation of translation. It could be for many different reasons, I don't know why. It could be for initiation factors. It could be for hibernating factors as a question in the free ribosomes. So but I'm putting all the regulation into that. And now I would like to estimate F subsection. So when we do that with our model, we'll see that, so that is a function of the rate, the F parameter, which is going up and then it saturates. So it's going up means that here at the very slow growth, substantially you have no initiation, okay? Somehow you are regulating a way that you don't initiate the messenger name translation. And because of that, because of that you see it accumulates free ribosomes. It accumulates free ribosomes in your pool. So and F describes all kind of regulations. And I think the most accepted view is to consider that ribosomes are sequestered by some hibernating factors. So that is what the alpha will look like. So that is a function of the growth rate. Alpha will tend to zero and then will saturate some point. And that is similar to the order of magnitude of what I told you at the beginning for Easter. So for Easter, the average behavior was 0.12 per second, order of magnitude. And here we are the order of 0.3 per second of fast growth and remember that, so the elongation rate is order of tens per second, so it's the order of magnitude. So initiation is still meeting and should be important. So now let me do plot the estimated initiation as a function of the number traction, okay? Phi R. And so we see these, there is offset in Phi R and substantial that will be the amount of free ribosomes that you have at zero growth. Exactly like these, so the two things should match. But exactly, so that's the amount of, that will correspond to the amount of free ribosomes that you have here. But anyway, I think, and it was, I think, done questions in the first week. So what about initiation? I mean, what about inactive ribosome at zero growth? So you have not zero, you have zero active ribosomes, but you can measure elongation rates. So that is a bit inconsistent, right? So because you can still measure some elongation rates, but you have nothing that is actually initiating the translation. So that is something that is there in the simple model of having inactive ribosomes. So at zero growth, your extrapolate should have no biosynthesis, but it's a bit inconsistent with the fact that you can still measure elongation rates. So how do we want to, how can we fix it? Well, we thought that we fix it by including protein degradation. And so the next couple of slides that I'm going to present are actually the work in collaboration with Ludovico, Marco. For Marco, I found a very nice figure in the lab coat. And also with Jacopo, who's here. And so Ludovico went back to the literature, and there is actually not much literature about protein degradation, but we could find papers from the 70s, 80s. I didn't put the references here, but you can find them in our paper. And so we first try to see if, because everyone says that we can neglect the protein degradation. So it's still true that we can neglect the protein degradation at those low growths. So we can neglect it if the degradation and the dilution are very different, but it's low growth, so the two things might become comparable. And when we went back to the literature and analyzed the data, so we found that the degradation rate is actually increasing at those low growths. These are data from the 70s paper. And so in the next, so what I will show later, I just assume that this trend, the fitted curve here. And the same thing seems to happen in Easter as well. And we would like to do more accurate measurements of what happens here, because it's something that hasn't been explored so far that much. So anyway, let's go back to the contradiction in the active and active ribosome at those low growth. So we substantially, our thought is that there are some ribosomes that will be, are doing protein synthesis, but do not actually contribute to growth, but actually do maintenance to balance the degradation, the degradation flux. So if we do that, we can have a model with inactive ribosome, free ribosome, bound ribosome, and the bound ribosome can do maintenance or contribute to growth. And if you estimate the fraction of bound ribosome, including this term from the data, which are the crosses here, you see that actually the amount of active ribosome doesn't go to zero, but there is still an offset in the amount of ribosome that are translating, extrapolating the result of zero growth. So and that is the paper that we published last year. So now let's go back to the initiation problem that we had. So we have the problem that at zero growth, so here I plot in FIAR, so that's FIAR mean here. I have no initiation. That is without degradation, the model that I explained before. If I include degradation, I can actually, of course I can see an offset in the initiation rate at FIAR mean. So it means alpha zero here is the initiation rate, that we expect to have at zero growth. And substantially that is kind of consistent in the sense that you measure some elongation rates. Also initiation, some elongation rates that don't go to zero, you still have a protein expression, protein synthesis at zero growth. So the same thing should kind of happen with the initiation. And so now we, these are preliminary data again, so we'll try to do some more refined work on that. So I plot, so you're right. So that is not lambda, so that's FIAR mean, so it's the famous FIAR mean, there's the offset in the growth load. I could have plotted it to zero, but it's easier to see that FIAR mean when you're at zero growth, you have no, you still have some elongation rate and initiation rates that are different from zero. So it's just because it's easier. I could have plotted that as a function of alpha. So, and now let's go back to my motivation because remember the ribosome density should be a function of the ratio, right, of the initiation rate and the elongation rate. So now I can compute actually the ribosome density for different growth rate and compute the ribosome density for different growth rate. That is what we obtain. So that's the ribosome density as a function of the growth rate, assuming the epsilon, so the elongation rate and initiation rates that we estimated. And for fast growth, we are at a constant ribosome density and the gray line that is here is for more or less 4.5 ribosomes. The messenger and I, that is what it has been previously estimated. And actually the lowest value here is for more or less 3 ribosomes for messenger and I. So there is no big difference. So we don't have any mechanism yet on how initiation is actually regulated. You think that most of the thing could be hibernating ribosomes, but it seems that one of the outcome of having this both elongation and initiation are regulated is actually to keep the ribosome density more or less constant across conditions. Yes. Again, a super basic question. So do you use these as, I didn't understand when you were talking about the paper by Balakrishnan. I don't understand if you use the fact that the ribosome density is constant to infer this. So it's really a... That's an outcome of, so in that, sorry, it was a bit confusing. The first application, so Philippe's model that he presented last week, yes, we are assuming that. We're assuming that ribosome density is more or less constant. And in this part, so when we estimate initiation here, there is no assumption that ribosome density. So the only inputs that we have are those. So the messenger concentration, elongation rate, and the welfare. So these are the only input that we feed into the model. And then with these, we can estimate the initiation rate. And as an outcome, we have the density is more or less constant. Okay, and I think I can wrap up. Okay, so my question is, is there a certain input of a model or an output from the degradation that we have as an input? So okay, the question, if I understand is, if the fire mean here is an input of the model or an output, right? I mean, it's in the data, right? That we are giving to, it's in this data here, the offset. Yeah, I mean, yes, I mean, yes, in the data, yes, we are in the input of the model. But the degradation rate is necessary. So the degradation rate can give you the offset, okay? If you don't have this as an input, if you change the degradation rate, it will give you the offset, substantial. So now, if you analyze the data, so if you have an input with an offset and you don't have the degradation rate, you arrive to something that is inconsistent, like that you don't have initiation but you measure elongation, right? So if you, the degradation is not a fit, is actually taking the data from the literature. So also the degradation is an input. So if you take the model without considering degradation, you arrive on inconsistent results. If you add the degradation, data from the literature, you get to a value of initiation with an offset, with an offset. But is the offset observed also? This offset, well, it's not observed. In the sense that there are no measurements of initiation rates, as far as I'm aware, across different conditions. But I could estimate that starting from the data. So one thing to do will be probably to measure these. Which can be done. So regarding the degradation, that means that experimentally, if you were to manage to increase the degradation, you would see in these data from diet R that the offset of sort of the number, the fraction of ribosome at zero gross would go up. So if I understand the question, you're saying if you add more degradation, you should see that the data will go up. Well, no, I don't think so in the data of the data. So it must take this as an input, but it will probably change the interpretation that you give to the data. So if you consider no degradation, the offset is given by inactivated ribosomes. So how can you test these offset? Well, probably by changing the degradation, you should change the offset, that's for sure. I don't know what else can happen to this. One more question. So you said there are no measurements of initiation, right? But I'm just wondering, maybe I'm missing something, but isn't it just the number of ribosomes divided by the number of mRNA copies? I mean, aren't all the ribosomes on some mRNA? No, I wouldn't say so. So the question is, is the initiation rate just the number of ribosomes divided by the number of messenger RNA, right? In the cell? No, because that will give you the current. So the current is a combination, is a function of both initiation and elimination. And I want to decouple these two terms. But, no, but that's, so you're saying, I'm just saying, like, sorry, okay, so you also need to know how long it takes to finish the translation. Well, but even if you know how long it takes to finish, I mean, if you measure just put in synthesis, it will be like the time that you need to initiate, time that, plus the times that you need to translate. Right? Yeah, okay, so not everything is known. No, so the elongation rate, so they have been measured in the data that I show you, is actually the translation of the first ribosome. So the first thing, so it doesn't see any traffic. So that should be something that is very close to the microscopic elongation rate. If you want to do that at the steady state, let's say, you're actually measuring the current. But you're not measuring elongation or initiation. So I want to do a microscopic model starting from this to this. Okay, but I think I can wrap up. So just to make a quick summary. So what I've done and presented is that more general framework that can consider for complex formation limitation for the part that you have competition on the messengers for the ribosomes and which also includes traffic. So we can use, we can then build up on this framework. We can couple transcription and translation. So, and that being the choice that Ludovico and Philippe did last week. And we can investigate also the role of translation initiation. And also the message here is be careful because putting the gradation shouldn't be neglected at the slow growth when the dilution term and the gradation term becomes all the same order. Now, we can build and do a lot of things from now on. And the idea now is to perturb different steps of translation. So perturb not just elongation, like has been done in the literature. We can perturb initiation or we can perturb like with antibiotics that will affect on different ways than just programming. So with that, I would like to thank all these people, in particular, Alphilippe and Johannes who are here. And of course, thank you for listening. Yeah, thanks for that very interesting talk. I'm confused about something. You at some point you showed a graph of ribosomal fraction versus growth rate. The straight line which you mentioned was being done without any fitting any parameters to the data. Can you just go back to that? Okay, probably I went too fast on that part. Like this. Ribosome concentration, yes, versus that, right? Yeah. So essentially here, the thing that we did was to couple transcription and translation and then we can have a phase diagram according if you are in the saturated regimes or not, or in the low density regime as a function of RNAP concentration and ribosome concentration. And then we said, okay, now we know from data that the ribosome density is constant on the transcript. So we assume that, and there is one isodensity line that fixes the density at four ribosome per messenger. So what happens on this line? Now the question, what happens on this line? Well, we can, so I think that was the question. So we can see how as a functional growth rate being on this isodensity line, the ribosome concentration will change and the RNAP concentration will change. And that is the plot that I showed you. So what is confusing me to ask my question is that I thought that this particular straight line is a consequence of some regulation which is the balance, which is what the cell does to regulate the balance between ribosomal protein and metabolic protein. Now, where is that sort of conceptually entering your? Yeah, you're right. So the regulation is here by imposing that you want to live on an isodensity line, that you somehow the cells regulate the ribosome density to be constant across different conditions. So when we look at what happens around this line here, it's where we implicitly put all the regulation that this cell is doing. I see, so that's where, so, but why is that balance between ribosomal protein versus metabolic protein? I don't think we can answer with this one. But yeah, everything is implicit. Our questions? So with all these offsets and the degradation rate not being ignorable, is it more natural to look at growth rate plus degradation rate in all the plots, or would something else go wrong in your model? Sorry, I didn't understand because is it more reasonable to look at? So you always plot things versus growth rate, right? All these plots, sir. But then you say the degradation rate plays the same role at zero growth rate. So isn't it natural to just make all these plots with the growth rate and the degradation rate added? Or do they play a different role somewhere in the model? No, no, no, that will be, no, no. We were talking about the initial rate. Why did I choose to plot the initial rate as a function of fire, for instance? No, no, no, they, I mean, we have as an input with the fire, with the red as an option, we can get to the lambda, but they are, no. But it was just a choice, maybe not for the next one. One question? I have one. When you plot, if you go to this line that you showed before, all right, this one there. It seems that you have this limit there, this horizontal line, it's a sort of, I mean, a phase transition or is it just something that, just... You mean here? No, there is something on one, the black one. Ah, here. At the center one. There is something on one, yes. Okay, this one, yes, that's a phase transition. But you don't see it on the data. No, we don't see, I mean, by nutrient conditions, by changing the condition, we are in this region here. In the white one. It would be nice to see if it's changed when you, actually, but that would be... When you stress? Yes, because that would be a strong violation at the moment that Judo can actually see this situation. I agree. One more question. Right, we are on time.


Even with the scribe of A Course in Miracles, Helen Sharkman and Bill Thetford, if you kind of look at the history of them and the course, you see that, you know, they're basically academia, research psychologists, they're just really eminent research psychologists, two of very prominent research psychologists who one of them is the boss. Bill Thetford was the head of the department and he hired Helen. The year that this body was born, 58, was when Bill hired Helen and then after seven years of working together in a very difficult working relationship in a Columbia Presbyterian, a very, like, frenetic and kind of a conflictual work setting where they both were kind of caught up into all the pressures of being research psychologists working with students and so in grants and all the whole academia package. After seven years, after he hired her, then she starts hearing this inner kind of, not an audible voice, but like an inner dictation, this is a Course in Miracles, please take notes.  This is a Course in Miracles, please take notes over and over. And then finally she, no private thoughts, she spills the beans to her confidant, her boss basically. There's this thing going on in my mind that's telling me things and is saying this and she's quite nervous, has a lot of anxiety as you might have when you're usually drug people or lock people up that hear things like that. And so she confesses to Bill what's going on. And he's just holding her arm, comforting her and saying basically, listen, we'll write it down. Just write it down. I'll type it out. And if it's gibberish, we'll throw it away. We won't tell anybody. So he's very comforting. We'll just type it, write it down, type it and we'll see. And that's when they, this is a Course in Miracles, it is a required Course, the first introduction paragraph game. And they read it and he says, this isn't, this is gibberish, this is not gibberish, this is, let's continue. Well that continued for seven years with some breaks and we have now what we know as Course in Miracles. And Judy Skutch did tell me that they had a psychic reading one time where it was revealed from this psychic reading that Helen had been a student of Bill's in many lifetimes. And when he heard this, he burst into tears because he always thought he was, she was the one that had the great gift and he was just the sideshow and everything. And Judy said he just burst into tears crying when they gave the long perspective.  So we got, you know, from Judy telling me that story, you get the whole context of everything was orchestrated. Because Helen had misused her scribble ability in a previous lifetime as a priestess or something and she had a huge guilt, like she had failed in shame of misusing such a beautiful ability that could have been used as it was this lifetime. She was misused in a previous lifetime and Jesus was like, don't worry, here we are, focus on right now. Let's go with what's right now. We've got an important mission right now. He was never using the past to bring up any guilt just to show that we're here with a mission to bring an end to guilt. I think there are those that seem to be so willing that they take their readiness and they run, they go so, so high with it. And I think Bill Thetford is a good example of that. He retired from being a research psychologist, moved to California, and then during the FIP event Judy said, oh, it was probably the last two months of his life.  He was practicing the Course, praying, every room he walked into, every situation he went to, every Course group he attended. He was just in silent prayer. You know, I'm here to be truly helpful and really praying. You wanted to see with Christ's vision. You wanted to be a perfect instrument of Christ's love. And he really practiced. And then those, Judy said, his final couple of months, he was, he got happier and happier and happier until the day that he laid the body aside. He literally came into her apartment and he was just dancing all over the apartment like Fred Astaire. He was so happy. He could hardly keep his feet on the ground. He got so happy at the end. And then he went out and walked on a sunny day and just very close to her apartment just laid his body down on the grass right next to the sidewalk on a beautiful sunny Northern California day. And when they looked for the cause of death, his heart had exploded. And when we think of the heart, we think of the heart of love. It was literally the physical heart. It was a symbol it couldn't contain. His heart literally burst and he died instantly. And so that whole parable is extremely uplifting because he was one of the first two course students and he took his readiness and he threw his willingness into his readiness and he just threw it in there. And he just practiced and he kept coming with his willingness and coming and coming and coming, going for an experience, which is what the course is all about. It's all about an experience. It's not about memorizing concepts. It's not about a theology.


The modernized Ukrainian uncrewed surface vessels can now deliver nearly a ton of explosives over more than 1,000 kilometers. This means that the Security Service of Ukraine can target practically any point in the Black Sea," Artem Dektyarenko, spokesperson for the Security Service of Ukraine said this. Dektyarenko did not disclose all the technical specifications but noted that these are next-generation drones, on the improvement of which experts from the Security Service of Ukraine, the Ministry of Internal Affairs and other brothers-in-arms are working together. He mentioned that the current Sea Baby uncrewed surface vessel differs from the previous model in appearance and technical characteristics. In addition, it is capable of delivering almost a ton of explosives over more than 1,000 kilometers. Dektyarenko said there were no alternatives to the Security Service of Ukraine's attack surface vessels worldwide in 2022. Even Western drones were large but not maneuverable, making them easily detectable by enemy's radar stations. Recall, in October 2022, uncrewed surface vessels of the Security Service of Ukraine attacked the Russian Black Sea Fleet ships in Sevastopol Bay, damaging, in particular, the frigate Admiral Makaroviy.In 2023, uncrewed surface vessels of the Security Service of Ukraine struck the Corvette Samom and Pavel Dirzhaven, the tanker SIG, the landing ship Olenegorsky Gorniak, and damaged. The tugboat professor Nikolai Muru and the latest reconnaissance and hydrographic ship Vladimir Kozitsky. A man has died and seven other people, including two children, are hurt after a pile on supporting cable cars collapsed in Turkey for an unknown reason, one of the supports of the Tuniktip cable car fell and one of the moving cabins fell off. The cabin, in which there were eight people, hit an overturned pole and collapsed. People fell onto a rocky area, multiple medical teams and firefighters were sent to the scene. A helicopter was sent to evacuate people from other cabins. One person was killed and eight were injured. Anadolu Agency identified the deceased as a 54-year-old Turkish man. The governor's office named Memiz Ghamas, a Turkish national, as the man who died in the incident and confirmed those who were injured were taken to hospital. Two children were among the injured in the accident at the Tuniktip cable car passengers and some of the facility's 35 other cable car pods were left stranded in mid-air as engineers battled to restart the system. The cable car carries tourists from Kanyolti beach to a restaurant and viewing platform at the summit of the 618-meters Tuniktip peak.it is run by Antalya Metropolitan municipality.


Welcome to the show, it's me, John Park, and it's time for John Park's workshop. That's where we are right now, we're here in my workshop and we're gonna build a couple projects or look at a couple projects today that I've been building. We have a Circuit Python Parsec, brand shiny new. I've got a little recap of a product pick of the week as well as a couple other announcements. And I have some hot tea. Ah, delicious. It's slightly rainy here in Southern California today, so I felt like hot tea was the way to go. Thanks for stopping by over here in the Discord as well as our YouTube chat. If you are wondering where the chat's happening, if you're on one of the other streaming platforms such as Twitch or Periscope, if that's still a thing, LinkedIn, some other places, Facebook. I'm not watching those chats, but I am watching this one here in the Discord where apparently Lars has joined the Miyazaki universe. Wow, that's awesome, Andy, very funny, I like that. Lars is just right back there chilling out, staying dry. What else? We've got a help wanted sign up here and that's because we have our Adafruit job board. So if you head on over to jobs.adafruit.com, you'll see this and here you'll see some job position openings as well as a place to go and post your resume if you're looking for work. So head on over there, look and see what's new, what's going on, a little quiet over there lately. So post a position if you're looking to hire someone. It's entirely free to use, it's entirely free to post a position and it's all vetted through Lady Eda and Phil, PT, Mr. Lady Eda, so you know it's good. Also, let's see, we've got the product show that I do on Tuesdays, that's JP's product pick of the week and I had a really cool one this week which is this here macro pad starter kit. So that comes with the macro pad, the enclosure, the key plate, key switches, key caps, some hardware, knob for the encoder, some little rubber feet and that was half off during the show. So if you're not familiar with it, the way the JP's product pick of the week show works is we actually broadcast from inside of the product page. So at the top of the show, I let you know where to go, what that URL is. Let me go over the sort of history of the product by stepping back into a video by LeMore when the product was first released and then I usually go and grab one and do some demos and it's generally speaking, a huge discount during the show. It's only good during the show, you can't dally if you wanna get that one, it's not like a coupon code that goes until midnight. It's just during the show, you can usually get things for half off, so that was the case this week for the macro pad and here's a little one minute recap I did. The macro pad starter kit comes with the board, enclosure, keys, key caps and knob as well as some extras like bumpers and screws to put it all together. I'll go ahead and plug this in with USB-C. When I'm clicking it right now, I'm just doing a brightening of all of the NeoPixels. You can see it's really fast and responsive. I've got some of these keys hooked up to my software's camera controls so or layer controls inside of the broadcast software. So this will switch things around as I press it which is a really nice use for this which is as a camera switcher. I have the code that's running on the board and I also have a little separate file which is my key map file. Here I say what color the key is. If you see here the example of key number nine here it sends shift eight which is the star. So you can layer up your macros with this. The macro pad RP2040 starter kit. Yeah and I've got those, I've got a couple of them. I think I had more and I can't find them. Did I put them into projects? Who knows? But I had a few of them because I was doing all of the demos for Adabox. But I do have this lovely one that I made a little case for sitting right here that was my Ableton Live controller and they also make for really good button boxes for camera switching like I was showing. Let's see, next up why don't we do, let me get a little setup going here. I'm gonna focus my down shooter so that we can do a circuit python parsec. If you're wondering why I'm always looking at the right, I have a tiny little monitor that shows me what's on my little down shooter and that's nice to look at for getting focus better than the device itself. All right, so let me grab a coding window and off we go. So check it out. Let's circuit python. Okay, for the circuit python parsec today, I wanted to show how you can use some loops and the range command in order to create LED patterns. Here you can see I've got a little neopixel ring and there's a cutie pie that's driving it and I have it under some diffusing acrylic here to make it a little more pleasing to look at. And what you can see is I'm gonna go ahead and just make one quick adjustment here and then run my code. So right now we have essentially a green LED on slot one and then everything else is set to red. Now, what happens if I change my little interval values here I can do things like have every other pixel set to my first color, let's save on that and then every third pixel will be set to my odd color. And the way this works is that I'm importing neopixel, I'm creating some color definitions and then I have a ring of 24 neopixels. Then I set a couple of variables called even interval and odd interval. And then here is where I am lighting them up. For example, if I just turn these off and hit save, we're gonna see is just the odd pixels and I'm doing every other, or sorry, the even pixels, just the even pixels, every other one is being lit up. So if I say let's light up every one of them, my interval is a step size of one and now we can go down to let's say three, we'll get every third one lit and you can add on top of this. So let's say I want sort of a Christmas wreath, holiday wreath kind of look. I will set every pixel to green but then every third pixel will get set to red and as I make that step size larger, we'll end up with a more sparse looking wreath. So here you can see it with every pixel as green and then second later I'm drawing in that second set of them and that's every third pixel. So now if I change that, how about every sixth pixel is gonna be that odd color of red. Give it a second, I'm giving a little pause and there we go. So the way this is working is that for each of my little ranges of neopixels, I have this for loop for I in range and then I have the essentially the start and stop number of LEDs and then the interval, which is the step size. It runs through and it sets those to green and then only at the end does it do my little show which lights them all up. If we remove this sleep here and let's set that number back down to how about every other one. Now we're gonna get every other one lit up red and it happens instantaneously. And so this is how you can use a loop along with the range command in order to light up patterns of neopixels and that is your circuit Python Parsec. All right, so I'll probably extend this and do it with some animation at another time you can see that there's always plenty of ways that you can light things up using code, using circuit Python and rather than getting really laborious like saying here's a big list of pixels that are gonna be red and here's a list of pixels that are gonna be green you can instead use these little loop tricks in order to make your patterns. All right, let's see. Let's now jump into some projects. So I've actually got two projects that I've been working on that are both kind of coming to completion at around the same time. So one of them is an update on my Pip Boy. So let me jump over here to the work bench. Let's see, I want these views here, that'll work. And let's take a look at my little Pip Boy 2040, some stuff out of the way here. I got multiple projects, so lots going on. So this here is my Pip Boy kind of in its final form. So I'm gonna go ahead and turn it on. I haven't charged it in a while but I haven't left it on either so it should all come on. So what you'll see is this has this little boot up sequence and I'll just zoom the camera in and focus here, something like that. So the Pip Boy is traditionally a Raspberry Pi based project that is based on the Fallout video games, little sort of personal assistant on your wrist. This one I decided to make as a much, much smaller, simpler version. It does a heck of a lot less. It's mostly really just a display prop because I'm just using a sort of slideshow to adjust my images. Let me turn off this fan because it is blowing the camera around. So I'm gonna give that a second. It should stop shaking. Tighten that. So this you can see here. Let me roll up my sleeve. I don't have a very big strap but you could put a really big strap on this to fit it over clothes, which is a cool kind of fallout type of look. So I'll tighten this up under here and what we get is cool, kind of clunky Adam Punk sort of watch. And I've got the little joystick on there. I've got buttons that I can use to adjust the graphics. I've got an on off switch here. Batteries built in, we can power it and readjust the code or change the images using USB-C right there. And it's up to you what you wanna do with it. It's sort of a platform that could be used for a lot of things. Now I've shown this over the last few weeks. The last thing I wanted to show is just the completion of this case here. So if you, in fact, look here, this was a previous iteration of the case. And rather than take this one fully apart, I think I'll just show how that case goes together. You can imagine the guts going into it. So the circuit and screen and joy feather wing, feather battery, all of that, I screw to this top plate here using M2.5 nylon screws and nuts. Got eight of them there. Once that's on, we can then sort of assemble and sandwich. By the way, you'll notice there's a mismatch in some of these. These were some test prints or parts of my evolution of the design there. So you'll see some things are a little different from part to part. And the base here then goes on the bottom like that. And then I needed a way to keep all of this stuff together. So sometimes a nice way to do this is just with a screw and washer and nut. I decided in this case to actually use some heat set threaded inserts. I just have one of them on this one here and then run some screws up from the bottom. So if I assemble this in parts, you'll see base, these kind of walls here. So slightly tight fit on that one. And then at the top, I've got this threaded insert that we can screw into. I can't remember. I think this one might have some solder on it. Unfortunately, this was something I learned is you have to be careful. If you're using one of your regular soldering iron tips with the heat set screws, you can end up with solder inside the threading, which makes for a rough going. So let's see, let me grab a proper sized bit for that and I'll drive that in. So this one's a little difficult to screw in because there's a little bit of solder stuck on the inside of the threads of that one. Now you could get screws that are the right size. You could also get cap head screws. So you don't have these big sockets sticking off the bottom, which is probably a good thing. It's not terrible for wearing, but it would be nice with some lower profile screws than that. The excess on the top though, I decided it looked kind of cool added to this sort of chunky aesthetic. But again, rather than use a nut up here on the top, I decided to use what I had on hand that happened to look cool. And that is just an extra one of these threaded inserts happens to be perfect sized. Just rest on top and I get this contrast sort of the brass and the zinc coated steel of this screw. So that's how that's assembled. And then I just have four of those running through there. I tried to make this one as low profile as I could so it doesn't bump into your wrist. So depending on how high up, I also moved the wrist band slot over to the right a little bit to kind of get this away from impinging on wrist motion. So that's that I'm gonna, at this point, just clean things up a little, upload the model files for this. And I've got the guide just about finished other than the assembly page. So I'll create a page of how you put that stuff together so that people can follow that. And you'll be off to the racism. And by the way, one thing I'll point out is there's no custom circuit board in this one. I considered it, but was able to get everything mounted without too much difficulty onto a feather wing tripler that's under there. So the screen plugs in, the feather wing plugs into the feather which is already on the board there. So that's that. Also by the way, I left this open right here so that I could have access to the on-off switch. I also liked the aesthetic of leaving it open. Almost looks like a repair happened at some point in the game universe. You could adjust this model to have a complete enclosure there and then have maybe a single hole for the on-off switch or extend that button up or put a side slot in for that. There's a lot of ways you could make that, but I decided to go for this open look which means you can also mount other things like if you want to mount a speaker or some other things, a big glowing LED in there. We've got space and circuit board to do it. So that's the Pip Boy, that's what's going on with that. And let me know in the chat if you've got any thoughts or questions. Oh, that's a good one. I, looking in the chat here, Todd Bot, hi Todd says, I like using the threaded inserts as an aesthetic knob feature, could make them cap sense, touch buttons maybe. Very cool. I was also thinking maybe not on a practical level, although potentially, but if you take some nice short alligator clips, you could use them almost as like little patch cables. Let me look, I have a little drawer alligator clips here. Do I have any short ones? Let's see, can I switch my camera? Oh, that's not connected. Hold on, let me switch cameras here for a second. Show you what I'm on about. The, where'd all the short alligator clips go? This is the drawer of alligator clips and some banana clips got in there somehow too. Yeah, that's not a real one though. All right, well, imagine if you will, this sort of thing where we clip on and clip on, it might be cool to just leave on there. Could also have that do different functions if you were actually reading these, maybe as cap sense or just as a switch to ground. So, possible for sure. Yeah, you can do some cool stuff with that. Where'd all the short alligator clips go? Determined to find one. I think they're all on my work bench inside. Oh well, yeah, but that's a cool idea, Todd. I like that cap sense idea. Might be easier to pull off too. All right, let's see. Other thoughts and questions and comments over in the chats. The Backwoods engineer asked, is something on sale right now? Asked over in YouTube. Nothing, no, there's not a sale associated with this show.  Usually that's on Wednesdays, but it'll be tonight at, I believe, eight o'clock Pacific time. And they, generally speaking, have a coupon code for saving some percentage of your cart. James Mintier asks, can you play Skyrim on it? Doubtful. That would be pretty tricky. All right, so now what I want it to do is dive into a little bit the other project that I've been working on, which is the Neo Controller. So let me just use this camera for now. Then we'll come over here and assemble it, but this is a good way to look at the guts of this thing. So this right here, this is my assembled Neo Controller. So this is four Neo Sliders. Those are all on separate circuit boards and one Neo Key, one by four, which is also its own little separate board. I had one of those. No, I didn't bring it in. But these are I squared C devices. So each of them has a small chip on it, AT Tiny 8X7 in this case, and it's a SAMD, I forget which one on this one, but we're moving to these AT Tiny's because we can get them. And essentially this thing has analog pin read for this slider, and it also has a digital out Neo Pixel pin all built onto here. And then its communication happens over I squared C. So all of these are sort of daisy chained to each other using these little Stemma QT cables. One to the next, to the next, to the next, to the next. They have unique I squared C addresses and then those plug into the feather here. Oh, by Mr. Certainly, Bruce has to run. Take care. Thanks for stopping by the chat. So I get four Slide Potentiometers, or faders as they're sometimes called that have each got four Neo Pixels in them. You can kind of see them under there. You'll see them better when we light this up. And then four mechanical key switches. I'm using Kale Box Blacks here in this case, similar to a Cherry MX Black. It's a linear, stiff sort of linear.  So there's nothing, there's no circuit board under here. There's nothing to solder. It's actually a plug and play as it gets, which is really cool. And then by creating a little base for this, and I have a top for it that we'll see in a second, you get a nice stable thing rather than wires hanging out. Oh, here's one of them. So you can see that's a Neo key on its own. Has the four underlit Neo Pixels that point up through the board. And then these are socketed. So you don't have to solder your keys in. You can plug and play with those. And that allows you to change your mind later about which keys you're using, as long as you don't bend them like I just did. There we go. So that's how those work. There's one of them right here. And then I also made a little three printed plate for it that holds the key switches in place so they don't wiggle out, which otherwise is pretty easy for them to wiggle out. The face plate for it, I'll show you, actually, let's jump over here and we'll assemble it the rest of the way. Actually, before I do that, let's turn it on right here right now while it's open so you can see the guts in action. And so you'll see when it starts up, I get lights on the four faders and I get a light per key. You won't see this do anything right now other than maybe change its light. So I have these at this kind of amber color. And then when I press them, they turn blue. The faders just get brighter or dimmer, but not all the way off as I use those. And you can use multiples at a time. It reads all of that, essentially simultaneously. And let's put it together the rest of the way. Then I'll show you what I've actually got it doing, which for change is not talking to a synthesizer, but it is still using MIDI. So there's your clue as to what's gonna be going on with this. Let's jump over to you again right there. And I made the case for this out of our laser cut acrylic, LED diffusion acrylic that we sell in the Adafruit store. I love this stuff. It's got one side that's kind of shiny and one side that's kind of matte finish. It looks fairly opaque until you shine lights up through and then you can see the lights really well. So there you can see I've got my little cutouts that I made and this is a file I designed inside of Rhino taking some measurements of things. And I also used a 3D model that the Ruiz brothers made of the NeoKey and it happens to be identical size to the size and hardware placement for the standoffs to the Neo slider. So I was able to essentially reuse that model. Thanks guys. And then I've created some holes here for some M3 standoffs. That's how these are connected to the board. Everything else is M2.5 to hold things down. So I'll just place that on there. Fits over those little slider stems. Let's screw the top on and then we'll add our key caps and fader caps. They're just a little bit, but can I focus? There we go. That's kind of focused on the wood grain. That's close. All right, more of these. And these are little nylon kits. Someone mentioned last night on the chat during show until they didn't realize Adafruit sells these hardware. I think it was Bruce actually, Mr. Certainly. So there are nylon standoffs, nuts and screws in two sizes and a couple of colors on the Adafruit store. And now you can use different key caps. I've got these windowed key caps. They have a little light pipe that you can mount them any direction you want. I'm putting them sort of sideways here because that's where the LED is on that NEO key. And then these are the little fader caps. Let's just pop on there. There we go. It's not on perfectly straight, is it? And there we go. So we're in business. And now the question is, what can we use it for? So first of all, I'll mention that this is a fairly easy design to work with either in a sort of vertical orientation or horizontal. It kind of depends on what you're doing. And excuse me, tea break. If you're using it for mixing types of things, audio mixing, then vertical faders make a lot of sense. That's pretty typical. I'm gonna use it actually for color grading inside of Lightroom. So color grading photos or color correction, post-processing of your photos. Lightroom is a great app for essentially developing your digital photos before you publish them, put them somewhere, print them. So I usually take photos of my projects or other things and then go through Lightroom to do some cropping, adjustments, color correction, color grading. And so for this, I like the horizontal layout because that mimics the types of sliders that we have inside of Lightroom. And it's Lightroom Classic that I use. I don't think this project will work with the regular Lightroom. I think it might be a free one because we have to use a plugin to be able to tell a MIDI controller. So this is in fact still gonna be sending MIDI. Tell a MIDI controller how to control Lightroom Classic. And I don't think that function exists in the Lightweight version of Lightroom. The keys we can also use to send states to it to run an action of some kind to tag things, to adjust your ratings on a photo so that you can organize things better. So I'll show you how I'm using those things. We've got our nice little USB-C right here that we'll plug into. And then I will show you how this works in Lightroom. And we can also talk about the code that we have running on there, which is identical to the synthesizer type of code I was using. Let's go to our down view here and plug this in. Now actually I've got a camera view here. Let's go to this. And I'm gonna go to Lightroom right there. All right, so it seems as long as this thing is on top, it'll kind of work. So it's a little tenuous because I think this uses, maybe this uses OpenGL for some of its stuff, but not all of it. So the UI can get a little funny trying to capture it. It's like trying to capture a game. So let me move this window over here. Okay, so what you'll see here, I have a photo. And what I'll do is I can pick a different photo. Actually let me instantiate the plug in. There we go. Okay, so here are the things. There's a million different, not a million, many, many hundreds of things you can do inside of in Lightroom. And what I've picked for four buttons and four sliders is to have them just always assigned to one thing. This makes it a fast, easy interface to use rather than sort of have four different functions sets or layers depending on which button is pressed. You could certainly do that. But for this demo at least, and for my use, I think I'm gonna have it just one function per piece of hardware on here and not worry about states of things. So I've got the left most button here selecting different photos. So this was a photo shoot I did a few years ago with my friend Joel of a light painting Gizmo. And you can see we're a little zoomed in, but that's okay because that's what I've got my other two buttons here for, which are zoom out and zoom in. So I can zoom out there and that's gonna remember that state as I go to different photos. So let's go, let's actually go back to one of these. This is a pretty good one to use. So I'm gonna zoom in here. And now the four controls that I have on here I'm using for some really common corrections that you do when you're first editing a photo. And that is adjust the exposure within the limits of what digital info you've got there. You can adjust the exposure of it as if you had a higher or lower exposure while you're taking the photo. I'm gonna adjust the saturation. I'm gonna adjust the color temperature, which is either cooler or warmer. And the saturation, I think that's what I picked. So here you can see if I just grab this slider and start adjusting, I can really knock down the exposure, which is kind of cool for this one. You can just barely see that guy back there, but it's mostly focused on the light streaks in the front. And now if I start to boost this or drop this color temperature or boost it, I'm gonna go between favoring blues or favoring reds. Let me bring the exposure back up so you can see that a little better. So here's the photo as it was taken with boosted exposure. Here I can make this a little bit warmer, a little bit cooler. And this is often subtle stuff. Unless something has gone wrong, your white balance should be pretty decent, but there we go. That's a little more natural white balance for me there. And this is gonna allow me to adjust saturation. So if we're going for kind of a black and white look, you might boost down that exposure and take the color out of it or really goose it there. And then the contrast, if I bring my exposure back up, you can see pushing the contrast way up, gives us really black, black, or we can flatten that exposure or rather that contrast to sort of gray it out. So this is really nice because you can imagine otherwise you are scrolling through an interface. Most of this stuff I'm doing is right here in one tab, but you're clicking with a mouse and you're dragging. It's nowhere near as quick as some physical controllers here. You can say, you know what? If I start adjusting this like crazy, I want to maybe increase my exposure and increase my contrast. And you know what? That's too warm. Let's go a little cooler on that. Oh, did I lose connection with it? What happened? I don't see it changing. Oh, there we go. It caught up with me. So the plugin I'm using here, you can see here, this is called MIDI to Lightroom and it is a free and I believe open source project. We'll take a look at the page for it in a second. And as I touch controls on here, let's go to a previous photo. You can see when I hit this, it sends a MIDI note 40, which normally would be playing a note in a synthesizer, but instead that's being used by MIDI to Lightroom, which is a plugin which then tells Lightroom to run one of its functions. So here I'm going between photos. Here I can zoom in, way, way in or out and then start adjusting things like the exposure. And you can see it's pretty quick. It's pretty responsive and the plugin highlights whichever control you're using right now. Let's say we want to adjust something else. So this is a pretty simple interface for changing what your MIDI controls do. Let's say instead of going to the previous photo and the next photo, I want to jump into my crop tool, which I use a lot when I start out. So if I hit this one, I know, okay, that's MIDI note 40 right here. I click next to it on a dropdown menu and that brings up pretty much everything you can do inside of Lightroom, all of the menu items, all the tools. So if I change over to, unfortunately I don't think it has a search function and I can't remember where the crop tool lives, but let's find it. It's not gonna be there. Is it a transform? No. Is it right in quick develop or develop? Probably. Anyone who knows, tell me. I had this earlier. Let's see. Oh, you know what I'll do? In fact, if I don't find this right away or even if I do, I'll show you, you can save these as presets and I have one saved that I had the crop tool in. Develop. Show, group, map. Tool, basic. All right, so I give up on trying to find it in there, but if I go here and click on load, I have a previous little set, so you can say it's an XML file and now I have crop, show, crop for note 42. So if I'm here, let's go back to this photo. If I hit this second button, I go between the crop tool and not the crop tool, which is great, it's perfect. So now I can head into crop. This is gonna do a constrained crop by default to a headless guy there or whatever we want. And now it jumps back out. These I still have on Zoom. So you can see it's sort of a non-destructive crop. It leaves the info there so you can change your mind about what part of the photo you're looking at and then jump back out. So that's other than searching to find them and now it can go in here and load back up that previous one that I was using. So depending on what your needs are, you can store these and share them with people. Also, just if you're not familiar with Lightroom, a nice thing about it is that it is sort of a history-based program, so it maintains a history of changes you've made to a photo. So if I double-click, I've gone back to, that's the original, that was the one I started with in this session, at least now I can go and start making my changes again and it builds up and saves that history. So it's essentially non-destructive editing. All right, so let's look at where this comes from. I'm gonna jump over to a couple of new windows here like that and move this one over. I just wanted to check the Discord chat too while we're at it, see if there's any thoughts or questions. Yes, so how do you link the data from the hardware to interact with the software? It's this plug-in MIDI to Lightroom and there's a couple of programs that can do this. This is the one that was recommended to me. So let's have a look at it in, right here, it's RS Jaffe, it's MIDI to Lightroom. It's assets are right here for downloading and install are either for Windows or Mac OS. There's no Linux one because there's no Lightroom for Linux, so sorry. And there's also a little manual here that tells you how to use it. You essentially run it, give permission to Lightroom, it's installed as a plug-in for Lightroom and then it brings up that little interface that we had that allows you to assign your MIDI control. You can change what MIDI numbers are coming out of your device. If you have one that doesn't allow you to change them, you can, oh, my camera froze. What's going on there? Hey, uh-oh, I've angered it. Let me check the chat. Yeah, all of my cameras are frozen. All right, I attempted fate by showing that stuff. Let's see if I can make a new camera here. Let's see, are any cameras working? Yeah, that camera's working. All right, it's just my FaceTime camera. That's weird. Let's see. Well, you know what? You won't see me, but we'll look at the code. I'll put a still photo of myself there on the side. Let's see if I can change this real quick. Hold on. Come back. Nope, still frozen. I think that's gonna stay that way. So I'll go to the other camera to say goodbye, but before I do, let's look at the code here. So, jump back over to Adam. Let me open up code.py. You have to close that and reopen off of the device. There we go. So this will look an awful lot like the code from last week because it's basically the same. So I have, I'm importing essentially seesaw stuff to be able to read the sliders and NeoKey stuff and NeoPixel stuff in order to talk to those LEDs. And then these are the MIDI things. I'm using control change CC and node on and node off. I set up all of my addresses for the four I squared C devices. And then I set the pin on each slider is pin 18, which is the one we're reading for the analog fader. And then we also have pin 14, which is the NeoPixel strip. There's four NeoPixels there on that one strip. And then the setup of the NeoKey is similar. We just tell it which I squared C bus it's on and then I'm setting up a color for fill. I'm then setting up MIDI and I set up my MIDI CCs. Those are the sort of MIDI channel numbers that things are going out on zero to 127. And then in my main loop, I'm just checking all of the keys. And if one of them is clicked, then we send the MIDI number that's associated with it up here in my list. Where'd it go? Sorry. Somewhere here I have a set of MIDI numbers. Where'd you go? That's mysterious. Oh, there they are. So yeah, the keys are sending MIDI 40, 42, 43, 46. And then when I move the sliders, they're taking the slider range, which is zero to 1023, converting that with the map range from simple math to zero to 127, and then sending those out as the appropriate control change number. So this is identical to if you have a synthesizer running, if I actually run a synthesizer, it'll probably play as I use this in Lightroom. And that's one of the cool things about using MIDI for this kind of stuff, is that unlike USB HID stuff, it doesn't matter which application has focus, you will get the MIDI numbers sent out sort of system-wide. So that means I don't have to have Lightroom on top in order to change those values. I don't have to have a synthesizer app on top or with focus in order for these values to change things. Let's tempt fate and we'll go back to Lightroom and I will also open up a synthesizer, because I just like to see if things will break. Let's see, what was that one I was using the other day? The Realistic MG1, the best RadioShack synthesizer emulator I've got. And you won't see this, but you should hear it. Let's set it up, turn on my little amp here. And so you can see now as I, oh, you did see some of the synth there. Okay, good. Let's make that small. All right, you'll see we're now running Lightroom with music at the same time, so. And that's the magic of MIDI is that it's gonna send out all over the place at the same time. All right, well, here's a blurry me. Let me close this window here. Signing off, sorry for the weird camera stuff. Thanks for stopping by today. I'm John Parks, this is your Ben John Parks workshop and I will see you next time. Don't forget to tune in tonight for a very special episode of Ask an Engineer, which is happening at a weird time and a weird day, actually a normal time, eight o'clock Eastern time tonight. And then tune in tomorrow for a deep dive with Scott. I'll be back next week on Tuesday with another JP's product pick of the week. And then I think the following week, it'll be vacation time for the holidays. So I'll be out of here sort of the week before Christmas, I think, or yeah, somewhere around there. I'll let you know. Thank you everyone for stopping by. I'm John Park, bye-bye.


I want to make these here solar sails This is the rough idea here So this would be hinged at the bottom. It'll have a tee that's really strong So that's the mast and then there'll be a like like a mast sleeve that slides over that and this sleeve will keep the Keep the sail from like twisting So I'll either have a mast sleeve there or I'll make the the sail a little bit thick in the middle bit Let's presume I put the sleeve there Then I need some reinforcement things there to hold this sail out and then this thing attaches on here And this is what steers the sail so it can aim the right direction Now how do I build it? It's not too complicated Excuse my imperial noodle units mixed with my metric everything at the stores in noodle units doesn't matter the way it works out best is if the The front sail and the back sail are the same size Originally, I wanted to make the front one smaller and the back one bigger, but Just the way the solar panels fit in it works out better through the same size so That means the front one Is actually gonna overhang the pivot point a little bit So when it's up, I'll lose a little bit of vision But it should be fine because this is the one that's gonna be up less often anyway, and I'll only put it up When you know, I'm not navigating some difficult areas All right for each sail I'm thinking I should have four cross Spars whatever you're calling reinforcement things Because the sail itself is just gonna be one layer of fiberglass I think so it's not gonna be very rigid So I need to make sure it doesn't flex a lot and wreck the solar panels And to make that well that makes it only a meter between each one of these things So to make that I'm thinking I get a piece of sheet metal which I can get in town and I have a board Like I'll just start with a board like this and then cut a big smile into it and Then the top piece I'll attach on one side of the sheet metal the bottom piece I'll attach on the other side and then I can wax it real nice and Put fiberglass in this whole thing right up here And that'll make one of the one of the sail areas and one of the cross things And then I'll take that piece move it over and just build the next piece like Attached right into the previous one. This should be pretty easy to do So I'll need to buy a piece of sheet metal get some extra wax Bit of fiberglass supplies All right now this piece here that attaches to the the sail part to tilt it I want to make sure it's not in the way so much that these Can't tilt when they're down because I want them. I want to be able to aim these toward the Sun a Fair amount when they're down because that really makes a big difference So it'll have to fold up pretty snug I was kind of thinking about I could do this with the front one Just have it hang down and still use that to tilt them, but the back one There's all this stuff in the way. I might be able to slip it between the box up here See the box up here and the paddle wheel cover have it come right down in there when it's down Have to think about that That might work. No, no because these things are in the way. Those will totally be in the way. Yeah, I don't think I can use those all right, so Pivot it here. I'll have that T that comes back and it's gonna rest in here somehow Maybe lock in somehow and it goes back to about here If I have three panels on there, I think that's a good distance Because I sit up here so that will definitely be good shade Then the panel the panel or the sail will be up a bit from that and curve down and I think Hmm, I guess when when they're down. I don't know It'll be locked into here So I should be able to just reach my hand up and push the the panel the direction needs to go If I have something that easily locks it into place wherever it is Yeah, it'd be good to if I made something like that that I could reach from the chair Then I don't even have to stop pedaling or move to adjust them I'll probably have to get up and go to the front to do the front one because I don't want to make some complicated moving system for the panel Yeah, so with the solar sails if I'm Just aiming them at the Sun. I'm presuming I'll set them somewhere and they'll just be that way for hours So I don't need to like make constant adjustments. It's fine if I have to get up and go do something and go back I'd rather get up and do something have it really secure than have some thing that's you know easier All right, I think I can build the sail and the mast things Before put the putting the steering thing on I can do that after the fact And once I've got this together and that together I can put them into place and then you know Maybe get a better idea of exactly how this should attach Okay, the the mast thing I'm thinking I get a PVC pipe That's I know two inches diameter five centimeters Rapid with fiberglass enough that it is pretty rigid And put a few reinforcements in there Just make sure this is really strong and then have a bigger PVC pipe that slides over it Like if I could find it two and a half inch that'd be great, but they don't have them So I might have to do like a three inch or I don't know I'll figure out something that fits over this and Then this pipe will have to be fiberglass all the way around too because it needs to be really rigid to keep the sails from twisting All right, yeah, I'll build that and that I don't think I need to buy anything for this You can just use leftovers from everything else All right, let's let's get one of these made All right, I need the sheet metal here. I know where to get that and then I need the pipe for the mast and The pipe to go through here So the skinnier I can make this part the less it'll interfere with the wind coming through But I don't want to push it too much Because I'd rather it lose a bit of efficiency than break So yeah, I think I'll stick with a two inch pipe and a three inch pipe that it will be plenty strong The two inches like five centimeters three inches like seven and a half and then I'll have fiberglass wrapped around both of them Yeah All right, they come in 20 foot sections and my sails are gonna be nine foot nine all just under 10 feet so I need one One two inch pipe one three inch pipe and then my piece sheet metal and a bit of fiberglass Okay, and the pipes can be thin wall Because they they're not where the strength is coming from the strength They're just gonna basically be the form for the fiberglass except the the bigger pipe the three inch pipe The it'll have PVC on the inside So that's what we'll wear against the mast on the inside as it as it moves So I definitely want to have the PVC on the inside of that But yeah, it doesn't have to be thick. I've also got a good lead on a motor for this boat I don't want to say too much because you know, it's not it's not being shipped yet But the guy says yeah, we can send you this and that part of the conversation always gets a little weird because I'm always like Okay, yeah great Okay, send it Yes Yeah, that'll be great Send me the free thing now, please Anyway, so I think I have a motor coming. Oh, I'll keep you updated and I love yeah either way. I should have sales soon Presuming I don't screw anything up. So this should be the last trip to town in this boat That is only on pedal power Even just with the sales that'll usually there's a breeze coming back on the way back. Oh It's so nice to take advantage of that sometimes I stand up and pull my arms out and it doesn't do that much But it helps a little Yeah with some sales. I Can almost take this guy with me on the trip. I would be much faster, but I have a few big items I need to pick up. I would kind of overload this. Oh I also have a bunch of wood stacked in here in the shark slicer It was freshly cut so it needs to dry out for a couple weeks When it's ready, I'll put them all in here and fill in the front floor These are just a few temporary boards I might take my wheelbarrow to town to pick up some of those bigger items. Oh the bigger items This huge block of Styrofoam a couple rolls like 50 yard rolls of Heavy-duty cloth to make bags and stuff kind of like Kind of like these rolls of cloth here. I haven't even opened that one yet But you know, this is how I'm always getting new t-shirts and stuff. I buy giant rolls of cloth


You ready? Yep. Just make sure you don't touch anything.  Welcome back to our stream of direction. Do you need some Corbin?   And he falls on Instagram and Twitter. And uh, thank you all so much. So pay attention on the follow official Twitter account. It goes to Rick's, uh, quarantine. Uh, that would have been head eye arrived in China. I would have been quarantined. That would have been awesome. Yeah. For those of you who remember talking about, sorry. The reason that we did not get to this yesterday when it dropped was Rick was basically dying.  I had a fever. The only prescription that, that all was high enough. The timing for it to hit me, it hit 24 hours before I was supposed to get on a plane to Calcutta.  But hey, I think everything happens for a reason. It's the agony of becoming, blow it out your nose. I'm still here and life goes on.  And he wasn't allowed over here because he had diseases. Yeah. Anyways, we are reacting to the new trailer called Good News. It's with, oh, Akshay Kumar. I've seen his posts about this. And Diljit, I don't know if that's a Diljit we know, the Punjabi actor. That was my immediate thought unless there's another actor by that name. I don't know, but we will find out. I don't know. I think it's a comedy movie. I do too. And I think it has to do with pregnant people because all of Akshay's posts have his face in between two pregnant women's tummies, which by the way guys, it's the best place for a face. Here we go. Do that to pregnant ladies. Here we go. This process is called in vitro fertilization, IVF. Perfect. Let's do it. Mr. and Mrs. Batra. Yes. It is him. You also Batras? Yeah. Wow. We also. It's going to be a mix up. It is him. Yeah. There has been a strong mix up. Yes. Great premise. This is a great premise. Is that just a cool way of spelling it or is that like a more Hindi way? Your guess is as good as mine. You know what I'm impressed with though? What? Did you notice that we didn't have any kind of a reaction to the actor playing the doctor even though we've seen him in multiple things because we've now reached a point of exposure that we don't go, hey, that's, we used to do that whenever we'd see somebody that we'd seen in one or two other films, we go, hey, where for everyone else was like, yeah, we've been watching them for 20 years. Now we're like the seasoned old Indian cinema viewers after 11 months of watching.  How long are you going to play this out until you're healed? I am. I wouldn't be here. You should be wearing a mask. If I didn't, if I, I checked my temperature before I came over here, I wouldn't come over here and jeopardize your family. You're gross. Anyways, but yeah, it's a very interesting premise. It reminded me a lot of the, I should cough on you. Don't, you dare. It reminded me of a lot of the, the one with the sperm. And then you're going to say that just cause sperm's involved. No, no, no, no donor. It's that style of comedy though. This actually, this actually, yeah, well this, I love this premise and what I'm really impressed by is Akshay has often done comedy stuff where he's kind of over the top. Yeah. He looks really kind of pulled back and reserved in this. This looks really funny. Yeah. I'm hoping, I mean, the actors look really good. Yeah, the cast is good. And so, so the premise is essentially that the both wives are pregnant, but it's with these other guys. So they're technically not the fathers now. Right. It's, it's, well, they are, they're just not fathers of their wife's children. Yeah. Yeah. My bet is at the end, they realize that they mixed up again and they're, but they learn to grow and love each other regardless. That's, that's my prediction. Your prediction is that actually the right dad's sperm went into the right dad's sperm, but they have to, the whole funny part of it is going to be, you know, having to come to grips with this is, this baby is not technically going to be mine specifically. So you're going to be like a stepdad right to each one. Right. And that one's going to be yours, but it's going to be, so it's going to be one of those things. But my bet is at the end, they'll be the correct ones because they have the same name and they're like, oh, we mixed up again. It was a double mix up. It was a double mix up. Yeah. That's my prediction for it. Double Jeopardy. What do you think about that? It reminds me only in a small way, if you've seen the television show of Jane the Virgin, which he's been on. I was right next to Jane. He was, and she's no longer a virgin. Oh, God. Go on. The whole mix up of somebody getting impregnated when they weren't supposed to get impregnated. Yeah. Yeah, it is. It's awful, especially for guys. But I had several guy friends who got accidentally impregnated. It was quite troublesome. I thought I recognized the hot in here or is it my disease monkey body? It's probably your diseased monkey body. I'm glad my tragic loss is your comedic output. Me too. Is it most tragedies, a comedy to somebody? Only to you.  I don't think it's only to me. I think that's to any comedian. And now you've had me wondering about the two W's. Good news. Kapoor and Sons. That's the only one I recognize. And a Z. What's up with the Z? Yeah, that's what I was saying. I don't know if it's like a good, like a cool way to spell news or if that's like a indie play on words kind of thing. I don't know. I don't know. You're gonna have to, yeah, it is. But yeah, guys, don't touch pregnant ladies' bellies. Don't touch pregnant ladies. There's people who do that. You shouldn't touch people. They see somebody who's pregnant and they just think it's a green light to go up and touch the pregnant tummy. Yeah, that's what Steph says. It's true. I don't understand that. Didn't happen a lot because, you know, she was really small. So a lot of people just didn't notice for a while. But also like old women tried to touch little babies. True. I will never let that happen. No, anybody who tries to touch his child is good. Possibly lose a hand.  I can't. I'm the dad. Yeah. Are you diseased filled? You can't touch my child. Go away.  Corbin. Okay, first of all, are you're not going to be this helicopter dad who's gonna like put his kid in some anesthetized bubble his whole life? No, no, he's going to let him like eat food that fell on the ground and play in the dirt. Yeah, you just can't touch him. And let him play in the play place of McDonald's because that thing's a freaking Petri dish. No, I will never. One, they don't really have fun. They don't have a lot of play places.  And also, I don't go into McDonald's. I just go to the drive-thru. For the germs?   Yeah, a little bit. Wow. Is that that's the big reason for the don't feed me with your hands? Yeah, it's not the main reason, but it's one of them. Yeah, it is a reason. The main reason is that I just don't like people touching me much less putting their hand at my mouth. Well, no, I get that. You're not like Howie Mandel. No, no, no, not at all. At all. No, I know that. Not in the slightest. But I'm learning there's more of a, well, it's coming out now because it does that to you when you become a dad. No, no, it's been that way. Anywhere where there's a lot of people. I hate. I don't like people. It's true. It's true. When the neighbors came over and brought you the snacks and stuff, you were really kind and polite to them. When you closed the door, your first words were, I don't know why people do that.