Hello, everyone. My name is Shrini, and today I'm going to be presenting to you joint work with Shashank Agarwal titled Quack, key value commitments for blockchains and beyond. So let's get right into it. First, some motivation. And the motivation for our work quite simply put is the stateless validation of blockchains. As a quick recap, the key players in a blockchain setting are the users who generate transactions, the miners who generate blocks that contain these transactions, and the validators who verify that these blocks were indeed produced correctly. More precisely, the job of a validator is to verify that the state of the system is consistent with time. The state of the system for a blockchain like Bitcoin would be the entire set of UTXOs, and in a blockchain like Ethereum would be the entire account ledger. This means that in order to verify the state of the system, the validator would have to store the entire state of the system. And now you can imagine where I'm going with this. The state of the system has been growing rapidly with time running into millions of UTXOs or Ethereum accounts. This disincentivizes people from validating blockchain. The role of a validator is too hard or too demanding, and this is not something we would like. We'd like as many people to verify the blockchain as possible so that we don't have to trust other people on their word for the correctness of the blockchain state. The solution is to compress the state of the blockchain in some sort of verifiable fashion, using primitives such as accumulators, vector commitments, or key value commitments. The users in this context would have to work a little harder to help the validators. They would have to produce proofs. Proofs that what they're claiming about the state of the blockchain with respect to themselves is indeed correct. Furthermore, they have to keep their proofs up to date because the proofs are indeed going to change as the state of the blockchain changes. So this is a small price that we need to pay. The users have to work a little harder, but as long as these operations are efficient, this means that more and more people cannot be incentivized to validate the state of the blockchain. Accumulators work really well for the UTXO model. Accumulators would give a compressed representation for the entire UTXO set. Users can provide proofs of membership of their UTXOs in order to spend them, and then the validators will be able to verify these proofs and conclude that, yes, the UTXO does belong to this user and it's direct to spend it. For the account-based model, though, a primitive that's better suited is that of a key value commitment. The reason is the account ledger is indeed a key value map, and so a compressed representation of that would be a key value commitment. And now users can provide proofs with respect to their keys, proofs of the values with respect to their keys in order to update them. Think of the balances associated with accounts and people wanting to make payments as a simple example to illustrate this. The validators will be able to verify these proofs and hence conclude that blockchain is being altered in a correct way. Key value commitments formally defined have a key generation algorithm that outputs public parameters and the initial commitment states the empty key value map, an insert operation where one can insert a key value pair, obtain a proof, as well as update information that would be sent to the rest of the players in the network so that they can keep their proofs up to date. You can update the value corresponding to a key by some additive parameter delta. We're thinking of additive updates where the value v corresponding to a key k can be changed to v plus delta using this operation. The reason for looking at additive updates is again motivated by the example of having a balance associated with an account. So I want to either add some money to my account or spend some money from my account, which corresponds to an additive update where delta can be either positive or negative. This also releases update information that helps people keep their proofs up to date. The proof update algorithm helps you update your proofs and finally verification tells whether the proof corresponds to a particular key value pair within the key value commitment. What do we require of the key value commitment? Well, correctness. I'm not going to define this formally here, but it is the most obvious thing that you could imagine, is that if I insert things, update a bunch of things, and finally produce proofs that were all kept up to date, verification goes through. And on the flip side for security, we require key binding, which states that it should be hard to produce a proof of any value for a non-existent key or proof of an incorrect value for an existing key. So do key value commitments just to directly give you everything you need for stateless validation of account-based blockchains? Well, not really, and there are some issues, and we'll discuss them right now. The first one is concrete efficiency. We would like for the efficiency of the system to not depend on the bit length that the value is being committed to. The next one is a bound of the size of the map. Many prior constructions require an a prior bound of the size of the map, not only that in some instances, the efficiency of the construction and or the size of the public parameters grow with the size of the map. Finally, updates require knowledge of prior value. In our context, this would mean that if x wanted to pay y $10, x would need to know y's current balance, which is not something that is desirable. Put all of these things away, and that's what our work provides. A key value commitment with efficient proof-update verification operations that's independent of the size of the map that's being committed to, in other words, you also don't need an a prior bound, as well as having the property that additive updates are oblivious to the prior value. This means that if x wanted to pay y $10, we can do so without knowing y's current balance. Our roadmap for today is going to be first discussing two building blocks, the insert only and increment only key value commitments that we put together to build the final quack key value commitment construction. I'll finally talk about aggregation and what some concluding remarks. So let's begin with the insert only key value commitment. We're going to be working in groups of unknown order. So g is a generator for a group of unknown order. The key value commitment takes the form presented up at the top of the slide. The key value map that's being committed to corresponds to tuples of the form Ki Vi, and the values Zi are just distinct primes corresponding to the keys Ki. As you can see, presented this way, the key value commitment simply has in it a group description, a hash description, and two, just two group elements. So how does this key value commitment evolve with time? It starts off with the tuple 1, g. When you insert in k1 v1, you get a new tuple g to the v1, g to the z1. After inserting a second key value per k2 v2, you have g to the v1 z2 plus v2 z1. g to the z1 z2. If you insert a third one, it looks as follows, and so on. On this next slide, I would like to show you how this key value commitment actually gets updated with time. It's not hard to see that using the prior state of the commitment and the incoming key value pair kv or zv, after hashing k we get z, we can actually very easily update the state of the key value commitment. This corresponds to just raising the previous commitment values to either z or v and multiplying them appropriately, and the structure of the key value commitment makes this really easy to do. I hope the math on this slide helps illustrate that point a little better. So this key value commitment supports very efficient insertion. With just three exponentiation, one multiplication, one hash computation, we can actually update the state of the key value commitment on an insert. The proof corresponding to a key value pair akin to many of the prior constructions is going to be the key value commitment of every other element in the key value map. This means that the proof obtained on an insert is simply the old commitment value. The proof update is going to be further insertions, and the proof verification is also an insertion. You would just take the proof, which is a commitment to everything else in the map, insert your proposed key value pair and check that you get the commitment back. This means that not only are these operations possible, they're as efficient as an insert, which we know was very efficient. Correctness follows by inspection. I'd like to talk briefly about key binding. So let's say we have two proofs, pi and pi prime corresponding to some key Ki, for two different values in the key value map. Since the proof verification is essentially going to be an insertion, if both of these are valid proofs, both of them verify, and that's what's written down at this step here, one can actually show that depending on how we choose these values Ki, if we choose them to be a somewhat large prime, then the second components of these two proofs must actually be the same, not computationally, just existentially. Using that, if we try to argue about what happens with regards to the first component, we can show that key binding comes down to the hardness of computing this particular value. So let's zoom into this. So key binding comes down to the hardness of computing the Zi-th root of some strange quantity that involves all the other Zs, as well as the difference Vi-Vi prime of the actual value, as well as the fake purported value corresponding to the key Ki. Again, depending on how these Zi's are chosen, if Zi is a large prime, Zi is actually going to be co-prime to Vi-Vi prime, the delta, the difference, as well as every other prime there, because all the primes are supposed to be distinct. This means that if one can compute the Zi-th root of this quantity, one can also compute the Zi-th root of G, which is actually a break on the RSA assumption in this group of unknown order. So this is how we show that key binding holds based on the RSA assumption. Okay, so that was the insert-only-key-value commitment. Let's move on to the increment-only-key-value commitment. Here, as the name suggests, the goal will be to design a key-value commitment where we can only increment, and specifically increment by one, the values corresponding to any key. Here the key-value commitment is going to take the form presented here. This is very similar to the RSA accumulator, just that we can insert a particular value more than once, and that corresponds to essentially incrementing the value associated with the key. As before, we're working in a group of unknown order, and the Zi's are distinct primes corresponding to the key's Ki. Here, the commitment is again succinct. It just corresponds to the group description, the hash description, as well as a single group element. How this commitment evolves with time is easy to see. So for instance, it starts with G. If we increment the value corresponding to the key K1, we just put in Z1. If we then increment the value corresponding to key K2, we raise the commitment to the power Z2, and now we can yet again increment the value corresponding to key K1 by just inserting another Z1. And now we can see that G to the Z1 squared Z2 reads that there is key K1 with value 2 and key K2 with value 1, and so on. So the increment as we will observe is just an exponentiation to the appropriate C. A single exponentiation, a single hash, very efficient. What is the proof? We'll ask before. We're going to try saying that it's a key value commitment or an increment-only key value commitment to every other key value pair that's inside the map. The proof update would just be an appropriate increment, and the verification would be an insertion. In other words, if you put in the right number of Z's, then you get back the commitment. Unfortunately, you can produce fake proofs in this context, and the reason is simple. If you look at this commitment state G to the Z1 cubed Z2, where I have key key 1 with value 3 and key key 2 with value 1, I can produce proofs for the value corresponding to key key 1 being 1, 2, or 3. Because as long as there are three Z1's inside in the exponent, I can take out as many as I want. I can store these values that were generated prior to this and use them to actually prove that the value is smaller than what it actually is. So this doesn't quite work, but we can fix it. So here's attempt 2. The proof is now going to have two additional components. And what is the job of these components? Well, they're going to show that essentially the Z that's under question is coprime to the exponent of G in the first component of the proof pi1. So what this means is that, remember the fake proofs in the previous context? Well, two of them don't work anymore because Z1 is now coprime to Z1 squared Z2, nor is it coprime to Z1 Z2. It is only coprime to Z2, and that is indeed the right proof because that forces the adversary to put all the Z's outside. So we have to use a value of 3 and put in 3 Z's to G to the Z2 in order to get G to the Z1 cubed Z2. And the reason is that Z1 isn't coprime to anything else but Z2. The proof update is now going to be a little more complicated because we have to update these fill-in Bezo coefficients pi2 and pi3, but fortunately for us, Euclid has told us how to do this. So I'm not going to go through this, but I'm going to just leave it up here to hopefully convince you that pi2 and pi3 can be updated correctly as we keep incrementing more values corresponding to other keys. Correctness of the construction follows simply by inspection. The next step would be to formally prove key binding. Now, formally showing key binding turns out to be a little more of an involved exercise. Using techniques from before, we can show that the first components have to be the same, but completing the entire proof to show that this construction is key binding and finally we will show that it is key binding based on the RSE assumption involves a few more steps. In fact, it has a cute step in the middle that involves showing the Bezo coefficients of coprime numbers or themselves coprime. It's a very nice proof, a little more involved, and I'm going to leave it out here, but you can take it from me that this construction is actually key binding based on the RSE assumption. Now we're going to talk about how we can put these two ideas together to build our final quack key value commitment that supports insertions as well as updations by arbitrary values. For that, let's first recall the insert only key value commitment. One really nice property of this construction is that the exponent of the first component is linear in the VI's and this is kind of exactly what you would look for if you were trying to perform additive updates. This actually means that we can already perform additive updates that are even oblivious to the prior value because all we need is g to the product of all the zj's that are not where j not equals i and then I can update VI. Unfortunately, this computation depends on m, the number of key value pairs that are already inside the key value map committed to. We would like to do away with this, and here's what we're going to do. Now we're going to quack construction, which takes this very complicated form. Simply put, what's happening is that we're going to equate an update to an insert. We're going to do updation the exact same way we did insertion. This means that we would be inserting z multiple times for the same key as long as we're updating the value corresponding to that key, which is why you see the term z to the u where u is the number of updates in the key value commitment. Every time you update, you're actually doing another insert, but this is going to work out fine as we will show. An interesting consequence of this is the fact that the second component now turns into an increment-only key value commitment of the number of updates that have been performed. This is a reason for discussing the building block of increment-only key value commitments prior to this construction. To get a sense of how this construction, this key value commitment evolves with time, with insertions as well as updates, let's look at a few examples to start off. We have the initial commitment to the empty key value map, which is one comma g as before. Now if I insert the value v1 corresponding to the k key one, I get g to the v1, g to z1 as before. And then if I insert k to v2, I get g to the v1, z2, v2, z1, g to z1, z2. Again, this is as before. And now what I'm going to do is try to update the value v1 corresponding to the key k1 by delta. I'm going to do an additive increment of delta to v1. For that, I'm essentially going to pretend I didn't insert anything into the spot k1 and try to insert delta into that spot. So I'm going to do, as you can see, an operation that's very similar to all the insert operations before. And you can see that I'm reinserting z1 and using a value of delta. Now the commitment takes a slightly different form. You can see that the second component has z1 squared indicating that not only has k1 been inserted, but the value has been updated once. Furthermore, apart from z1, the value inside this exponent corresponds to having v1 plus delta for k1 and v2 for k2 as desired. The only additional aspect is that there's a z1 sitting outside, and that actually tells you that the value corresponding to the key k1 has been updated once. So in this way, we can make the update exactly similar to the insert. This lets us update the values, adds a few more z's into the mix, but that's going to be fine. We're still going to be able to prove key binding using the ideas from the insert only key value commitment as well as the increment only key value commitment, which is alluded to before. It now appears in the second component. The second component is actually an increment only key value commitment to the number of updates that have been performed on each of the keys. So that's our entire construction. Quack gives you an efficient key value commitment, succinct, efficient, whose operations as well as the size of the construction are dependent on the size of the map, and you can perform additive updates oblivious to the prior values. There are some nodes on aggregation. Aggregation is possible. We can aggregate proofs and batch verify them using more techniques from essentially euclid arithmetic, but aggregated proofs cannot be aggregated further, and the reason is the increment only key value commitment, and hence our final construction quack, has a non-membership proof. As explained before, the pi2 and pi3 in the increment only key value commitment are essentially a non-membership proof of z in pi1. And this is inherited in quack, and these proofs can't be... the aggregator proofs cannot be aggregated further. This is also limitation in the work of Bloney et al. The final question is, can you aggregate updates and do some sort of batch update? This is actually not possible, as noted by prior work. To conclude, we note that we have enabled essentially almost stateless validation of a blockchain barring two group elements, and this can actually help us construct a new blockchain where validation would be a much easier task. More work is needed, however, to support other features of an account-based blockchain, such as smart contracts. Another question to think about is whether one could come up with a scheme that has all the benefits that quack does, but also supports continued aggregation and disaggregation, as do some of the works today. And a final question is, can we achieve some notion of privacy in terms of the update information that's released? Can we hide the values? Can we hide the keys? And this would be really interesting in the context of designing a blockchain that also provides privacy. And of course, key-value commitments like accumulators and vector commitments and sub-vector commitments and all those great primitives would potentially have uses outside of blockchains in designing a lot of new crypto, and that still remains to be seen. And with that, I'd like to conclude. Thank you, everyone.


Hey everybody Lance here, and today I want to start a series. You know, I think this one's gonna be pretty long on Handstand prep. So handstands are really cool. They look really cool. They're a good Explanation or Exemplification of strength and mobility. They're like the ultimate calisthenic stuff Generally it's very difficult to do the the mobility the positioning that is required to Look good on this, but also having the strength To support your entire body weight with your arms overhead So we need to do things that will Increase extensibility of the wrist we need to do things that will allow the shoulders to go up overhead and We need to we need to have that mobility that mobility We need to have this strength to support yourself and the endurance to kind of stay up there and then the skill To you know learn how to balance yourself now I will say it helps you if you got big hands, but it's still possible if you don't have big hands What I want to talk about first is the the wrist and the shoulder blade flexibility that is necessary so If I have a flat upper back my wrist flexors turn on and they push into the ground even more Likewise, if I have a flat upper back, I can't Bring my shoulder up quite as much as if I have this slightly rounded back because if I Extend my back if my back is flat my shoulder blade cannot tilt backwards all the way So I get my extra motion by extending my back now some of that is okay I want it to be kind of neutral though I don't want it to be overextended this way and to ensure that I can do it without overextending I need to make sure that I can Restore normal somebody's honk it out there restore normal curvature of my spine The big thing that's happening here is not only am I restoring my shoulder flexion, but I'm also calming down those wrist flexors, so I think one of the best Exercises to start with to get that shoulder flexion and that that tension to come out of your wrist If you're feeling that wrist pain is the plank and that's what we're gonna start with


Well, I was coming to the Derby anyways and and so when they put this right with it It just it fit for us because we traveled as far to have a second Chance to cut for money and stuff. It's a and the concept is great and You know the more chances you can go cut for big money on these young horses is great And so it was an easy decision for us to decide to come so the open was yesterday How did it pan out for you? I showed two horses. I marked 20 on my mare and made the finals lost count my stud, but but that's I only take 12 horses to the finals and so you've got to Take chances and I probably cut their own count my stud but three of my mare was great So it was I'm happy as can be and I like the the concept if there's a tie in the finals they work it off and I like that I've always been I've never been in favor of the co-champion deal because I think it just sort of waters down the The the championship. Yeah. Yeah, you know So but I think it's a good deal. I think it's a good concept and anytime you can cut for big money It's good. Would you like to see more slot cuttings across the country? You know, I bet you in a few years you'll see more of them because Because I think this might take off a little bit. I really do I think you might see more of them And Especially, you know, what a great concept for the amateurs, you know, because not very often does an amateur get to cut for a Big prize 20 30 thousand dollar paycheck in any amateur event I was close, but no cigar. I missed it by a point I had a good run kind of did all I could do my horse was good But missed it by a point marked in 18. It took a 219. So how did the event go yesterday? How are you? Enjoying the concept of the slot cutting. I think it's awesome. I really do It it's anything new like this where you can get that kind of money up is is awesome. I think it's great Now have you got any amateurs or non pros competing as well? I do not I do not Everybody kind of in my camp that was a non-pro amateur wanted to just kind of wait and see how it went this year I'll probably have a few next year. So I guess that's a great bonus for the amateurs Who don't have a lot of events that have big money up because they can win. I think it's 30,000 Yeah, I think that the amateur pays 30 and I'll tell you what in the amateur I mean most of these age events we go to it pays five to three thousand, you know and and When you're when you're as hard as it is to get shown and make the finals and let alone win one It's really hard to rack up the earnings as an amateur So I was I would think it would be very attractive to the amateurs Would you like to see more of these events take place? I do I do. I think I think it's it's It's a great concept and I think that you know It adds an element of excitement to what we're doing here And that's what everybody's looking for because in any business it can get a little mundane and anytime there's something new everybody kind of steps back and if there's change they step back and and It's good to have people kind of shake it up and and make some changes And do you think it makes for a more exciting show at the end if there has to be a runoff perhaps for the crown? Absolutely, absolutely now anytime. There's there's a there's a tie and people have to work it off Or I think it definitely adds to the excitement especially when you're going for 60 grand. I Love it. I love it. It's another avenue for these horses to earn money and another chance for us to win money and I think anything we can do to help advance the sport such as this lot cutting is awesome Now there's some pretty good prize money up There is a big entry fee but that means that means good money at the end of the day Not only that you have a one in five chance when there's 20 when there's a hundred people in To get your double your money back. So what do you think of those odds? Love it? It's real good odds. I you know, even though the money is higher the entry fee Your odds are are better and a lot of other cuttings. So it's a it's a great idea I hope it catches on I hope we can see more of these because It's just a way to help increase the value of our horses putting more money on them It's just it'll just help the sport all the way around, you know, we have one horse that made the finals of our own in the open and It's an honor to make the finals at this thing. I mean, it's the best of the best It's four or five six year olds all combined and Anytime you can make the finals in one of these it's it's a great deal


Nikola Tesla is widely recognized as one of the greatest scientific geniuses of our time. When Tesla died in 1943, his room was quickly raided and all of his numerous hidden research papers were seized. He filed hundreds of patents for various technologies and methods, many of which are still in use today. What was it about Tesla that caught the interest of the authorities, and why did they feel compelled to seize and hide so much of his work? Tesla was all about the big secrets of the universe, saying it's all about energy, frequency, and vibration. And let me tell you, he was onto something big. He had ideas popping out of his brain like popcorn. This man was no ordinary fellow. He was a genius. Back in 1931, Tesla cruised around in an electric car. Yes, electric, and not just any slowpoke car, but one that zoomed up to 90 miles an hour. And sleep? Who needs it? The man was a machine, speaking loads of languages and inventing day and night with barely a wink of sleep.


here on stage here to talk about key words thought in here. For example, Janus was part of the impact project, he was a tremendous improvement for Oostlar, and was also part of Church Victorian, this is where Reeds was, and Transcribes was conceived. So it's great to have you as one of the main experts in the field here. Thanks. Thank you very much. Thank you very much for inviting me to talk to you about the hidden component. We are a member of the Reeds Consortium, and I'm going to talk to you about the hidden component, because it's not still integrated in the Transcribes zone. They use it, which is a great tool that you can hear and get feedback about. Unfortunately, for this component, you're not going to have feedback, because still this component is not incorporated, it's not integrated. But I will give you some hints about the value of having such a tool. As the word implies, he was plotting his action of identifying words, a document, a collection, when you really buy a string. You have this experience. So what I'm going to talk to you about is a query by a word image, by taking an example of an image which identifies the word, and I'm trying to retrieve similar places in the collection, in the second document, which relates to this query. It might be a trade-off between a technical description and the basic ideas. I don't know if the vast technical things are not so important at this talk. So when we deal with this problem, we have another segment, a document into certain words, which is a difficult task, or not segmented. So we have a segmentation based on dollars and a segmentation free methodology. The one that I'm going to describe is a segmentation free methodology, which is going to support something which goes beyond the typical table spot, since it retrieves, it can retrieve, not only city words, but part of words may be compute phrases and also grab the components which sometimes, like logos, identify the origin of the document. So the difference between segmentation methodologies and segmentation free methodologies, on the one hand, the segmentation based methodologies apply what we have seen layouts with noise free documents, and we have positive times, but when we have single layouts and it's not evident that currently in the state of the art that this can be used for big data, for big collections. This approach cannot be created with documents and can affect only words, cannot go beyond what I mentioned before, beyond the work. On the other hand, segmentation free methodologies, when we can consider up the presentation, this is the key that we have to apply in order to tackle the worst-plotting problems. It can be used with complex layouts, since it's a segmentation free approach, and as I mentioned before, it can match password words, phrases and symbols. And also, what I'm going to describe today is that with choosing particular structures for indexing, you can deal with the past memory computational power requirements which are needed for this particular approach. Again, additionally, I would like to mention that for this approach, we don't need any training. We don't need to transfer images, we don't need any user feedback, we don't need any user effort. As you are going to see, there is an unsupervised training, but this does not require feedback, it's automatically applied, and it does not require the user involvement. A general picture of the architecture which is used for the approach which is taken into consideration in the reproject is this one, the general architecture comprises two stages, the offline stage, during which we get the indexing part, so we take collections, the ones that we are going to query, and we index the information which is mainly based on these two types of storages, a memory storage, which permits to have a very, very vast access for big data, and another storage which uses hash structures in order also to facilitate this past retrieval. The basic idea relates to using local information in order to model the different words. You see words which can be read in a different way, and we have certain key points, as we call it, which identify similar points in the same structure, but written in a different way. So we have two stages, one is the key point detection, and for this particular key point which is chosen, we compute a particular descriptor, as we say, as we call it. So the key point detection can be seen in different stages, just visually to guide you saying that we visualize on the gradient orientation, which is quantized, and all the connected components which are related to the quantized levels, we define the different key points taking the gravity for each connected component. For each key point, we use different windows depending on the scale. The scale, we have an automatic scale selection based on a function which is optimized, and we build a certain vector with values which represent this particular region. The region around this key point is divided into 16 cells, like in the picture, and for each cell, we have a particular vector which represents the information inside the cell. What is important is to index this information, to make it very fast, in particular, when you have very big data, which was a basic requirement in the read project, you need to have very efficient strategies to do that. For this purpose, we have an approach which is based on a well known principle in computer vision, which is called another word, for which you build a visual dictionary. A visual dictionary. You can imagine it as a collection of particular words, visual words, which means it's not related to the well known words that you have in mind, visual words, which are unique for particular key points. We expect that a set of those particular words can be connected and give us the words in question. That's why in a offline stage, we produce clusters of such similarities, which are the visual words, and here in those clusters, for each new word, you see here, for a particular key point, we have rectangles, which are related to a particular cluster for a particular visual word. If we do that, we can use a hash function, like the one that you see here, each coefficient, which is called PoW, with the index 1, 2, 3, 4, relates to the optimal word, which is chosen for this particular rectangle. And in this way, we provide a particular ID for each word. And in that way, we have this inverse structure, which is a particular ID for each word. And each scriptor is modeled with this type of information, x, y, which are the coordinates in the document, the doc ID, which exists in the collection that we have index, and the particular scriptor, which will be used to have similarities for the query process. Also, we have a special hash structure, which is modeled with this special hash function in order to add outsets, not only for the central point in the world, we are going to understand in the SQL word what this does mean, but also in the context, in the special context. Therefore, imagine that we have a query image, for this query image, we take the central key point, for this key point, and we find out all the element key points in our collection. Such an example can be found. Can be seen here. And for this, identified key points, we set in the neighborhood similar to the neighborhood as it is. For example, here we have a central point and the neighbor key points, so we have a special context, and this special context is created in network, which relate for similarity purposes to be compared with the context which is raised out of these key points in order to find out the built-in boxes which also relate to the particular words which exist in the collections. And in that way, I hope that is quite understood. I'm going to demo later on to give examples how this works. We end up with the selected words out of that query word. So I repeat that really what is my query is a word image and I get the positions where this word image exists in the collection of the image. So for this purpose, we have also ready available REST API which can be used in order to make a connection between someone who is going to use a backend and a program and it actually is going to use this. And also, there is a demonstrator who we plan to integrate in the trash can bush and currently you can also use it, this is the address, but don't do it there before and I'm going to do it and demonstrate to you. You can make it all simultaneously, but it is not really a problem. Just to give you some ideas of results to quantify the performance of this approach on different data sets with this number of queries, the data sets appear like this type of handwriting to get an idea of the type of documents and the problems that we are going to address and here we have for the different collections of the performance of this approach and also the query the type of expense that is required for query these data sets. The very important thing in order to address big data sets is the fact that obviously here in the order of magnitude we don't have a linear increase which means that we arrive at addressing 50,000 documents with just an increase of 0.5 seconds. So in this way I would like to change the mode in order to permit me to demo you here. Here we are. By the way here we have a collection from Azure exactly. Here you see some examples. For example here just to see if you see here we have a logo which is a very unique logo sometimes we may want to retrieve all similar documents from having this particular logo which means that we have to select it and to get the similar logo which is identified other documents but also sometimes we would like to address queries which relate to partial phrases. For example I would like to see which documents have for example this part and we have a response and a relevant word but also in order to become more close to a speed which comes to historical more historical documents for example I think here it's a typical example this is a protocol and we would like to retrieve all documents which are related to this because of the appearance of this word we have selected the word and we search and then we get a response to similar documents which this word describes in this document but also another case which appears as a challenge due to the difference because of the tables the library of Passau gave very challenging let's say manuscripts here we have one table which is very interesting to index and to retrieve related information which is very interesting if we identify thematic information which is related to particular columns for example I would like to retrieve tables which contain this particular type of columns and we see that we have retrieved different other tables respectively the intensity variation you see here that we have a different variation intensity variation profile which is not easy to deal with and many many more ideas from having used cases because with this tool it permits selecting the component you can view the word as a component which means that we have explicit type abbreviations for example additive abbreviations but you can extend your imagination in order to retrieve information from the vast collection of data thank you very much any questions or queries is it possible to because I don't know the right one here is it possible to upload everybody can give his collection in it yes because it is connected to the transcribable not yet it is not yet connected to that but there is the pipeline of uploading a collection so the collection will be indexed and then we get to this collection would you get a better result if you reprocessed the images to high contrast black noise to write this out but currently we don't see this problem with the material that we have already tested maybe for that the material could be a good space that should be followed that was incredibly impressive how you mentioned the use of symbols and marks and you demonstrated the principle of symbols how responsive is your system to variation in a particular mark I give you a use case very formal but it could also be distorted or say an anchor which could be displayed in different ways so I am interested in marks which have got some mounting consistency but can show a lot of variety the variety is related to different transformations currently this approach is not rotational invariant but it can be used can be done but we should talk further this is not a big problem we have time for one more question thank you thank you I wanted to know if you know what the algorithm is missing did you ever put it on a trial to see what would be found in the lecture but the loops are missing what you mentioned the read code I think it was asking about the read code to check the read code what we are losing what is the current problem you mean it's great that you find something but do you know what you do not find if there are resources are there other words so first of all there are two things here a part of the accuracy is to access big data and because of that we step back to the accuracy if we forget a part of access big data and we focus on accuracy we think that we should work a bit more on the scale the scale component to be to improve the scale invariance I think this is the most relevant to deal with the problem when but this is also a scale problem the world with a very small scale and then we have a very, very big world there we have to work thanks a lot and thanks again thank you very much from the technical university in Valencia he is in the team of Enrique Vidal and he is one of the main experts regarding keyword spotting of keyword spotting they have carried out already some different projects on keyword spotting and he will demonstrate and take you away from the technical side I will talk about the indexing and searching for a really large monthly collection to cut it out and develop project this approach is intended to make searchable I mean one million words one million page image which is what the most work of the keyword and keyword system of course we want to make this searchable on reasonable time this is more or less the content of this talk we talk about the motivation we talk a bit about the property index we carry out to make searchable and we talk a bit about the performance measures the product list the final is to demonstrate so everybody know there is a massive definition collection which is available by every cultural institution around the world who most of these document lack of crimine hand transcribe this document so if they are here we have a keyword image transcribe for such document we can transcribe to build index and make this collection searchable also everybody know that manual or interactive transcription such material will be inexpensive and affordable task we need expert in the topic and we will read this kind of letter letter and also see we are applying full automatic transcription system of course they are if we use automatic transcription to obtain some transcript of such material is no error free so it's no useful for searchable purposes the idea here is to make some kind of probabilistic index and I will talk how we can use such index here you can see an image piece of image this is taken from pencil collection we build this spatial probabilistic map for the for the word in this case matter you can see here the peaks there are four different peaks corresponding to each of the possible location of the word matter in this image and also look here this is the word matters which is different from the one matter so it is supposed here working correctly the probability of matter here to appear here is very low this is a more or less the idea how we can obtain this probabilistic map this probability not this concrete is true we can say a sophisticated word classifier which is taking account of the context around each of the word so for example here the word matter is very low probability because it's next to it for example so taking account of this we can decide that this matters is not possible to appear here so we can use this probabilistic map to make search directly but the problem of that is take a lot of time searching in this in this big dimensional map and also we have the problem to store this map in the disk which take a lot of space so one another in order to solve this problem directly we compute from this probabilistic map some relevant probabilities for words we can use or directly build the probabilistic index like this one for example here we have the same piece of the image and here we come the index we can build from this image we have all the word here this is the relevant probability that indicate that the word appear or know in the image in this value and also we have the position of this word in the image look here for example the word matters matters here in this position appear with very high probability practically 0.99 while matter in this position in the same position but it's very low probability it should be in the same position we can also remark that in this index there are a lot of words that don't have any sense for this word so the idea here is we can index everything we call this actually we don't call this word this is a lexicon free indexing tool which we don't apply I mean we don't apply any dictionary so we can in this way we can solve the problem of our vocabulary words so it is expected in this index appear or the word likely appear in the image so how we can compute this probability index as I have commented before we use a sophisticated word classifier which is obtained from the convolutional network and neural network of course if network as Kundra and yesterday explained is depart from text line image we can also call confidant matrix from this confidant matrix then we apply some techniques based on transducer to incorporate language model which are from external purpose and then from this technology we obtain the final probabilistic maps for or less this is the basic idea this is for or less a cool process we depart from raw image we apply the key word important indexing word we have explained before previously we obtain the corresponding index for each of the pages then we obtain from this indexes we can extract some information and to fill out the data set and finally keyword search the user makes search using the image and the raw image and the data set and can find the spot in the full collection now talking a bit about how we evaluate the system we use the indexing the precision of record model in this case indexing and search quality can be accessed in this case by the precision of record so everybody know precision is high since most of the retrieval results are correct while before is high since the system core results are retrieval of course if we use a perfect transcription we produce a perfect transcription the record precision will be in this point 100% in the other hand see we use an automatic transcription which is no error free we have some error probably we will obtain for example this point we lower precision and lower record but in contrast using this pluralistic index what we actually obtain is different many points which form a query record precision query which the user is each of these points are put into some specific threshold and the user can set up in order to make the search so in this way for example the user can decide to get more precision go up increase the threshold and obtain more more correct sample but probably we let record see if we can control the record to get the maximum record possible decrease the threshold until for example we obtain of course again to have more phase positive so in the process to obtain the indexing the recollection we show later on we use transcribable tool in this case for mining from three different tasks first line detection all text line detection well as tactics using the transcribable tool implemented by the Rostov using the engine implemented by Rostov then we use also in order to obtain the network we use the page image text aligner and also of course we use this to transcribe some page in order to have more training samples these are the big collections we have indexing so far the first one is the chance collection it's about it's a collection from the 14-15 century from the National Archive of France it's about more than 70,000 pages this collection the other one is ransom which would be top after me and the final the last collection is the Golden Age of the Spanish Theater it's about it's from the 15-16 century it's about 50,000 pages this manuscript and these are the record precision cubes the preparator of course we conduct this experiment in the very small subset of the collection people we don't have to go through all the pages this is a training test for obtaining for the chance the BELSA and GCO using the language model this is the number of what is said what you want we test it in each of the collections more or less this is obtaining precision record cubes this is the average precision this means the area under the record precision cube is more or less similar similar comparison so this is one of the chance indexing search like demonstration the first one is the chance you can access and test it in these directions as I said there are more the number of indexing pages are around 76,000 pages the number of in the index is about 266,000,000 spots the entries this is something interesting using priority here we can compute what is the number of running words in the whole data set in this case it's about 44,000,000 words this is from the BELSA collection it's a number of in this case this is the biggest collection so far it's about 95,000 pages from which only 89,000 pages were indexed because more than an empty page or printed text page which were still different from the data set this is the number of reports and the running words in this case 25,000,000 words this is the last the indexing of the golden age of Spanish theater which is now the page the running words in this case is 5,000,000 words we show you the demonstration everything is working for example you can look at the most Austria so the interface shows you all the the books where contain some of the page and appear the word Austria for example we can go inside one of them here appear two pages and have this this word this bar show which is the confidence find in the word find here we can look here here we have the word Austria and also what is interesting to see here we can also click in every part of the image and also we obtain for example here in this case we obtain for example a different alternative for each of the words as you know there are lexicon free system and also give for example another possible alternative for the words written in this area this is a good this can be a good tool in order to find out what exactly is written or to have some idea what can be written in some areas of the document so also I want to show it's made possible also it's made possible here to look at a combination of queries using boolean expression for example or and for example and also to come directly search for directly streams if you close in square brackets also we have another kind of demonstrator in expression we are using one of them is directly we are indexing for example another kind of collection no HDR but for example music manuscript for example this one from manuscript is called piano codification I don't know about music but for example open sounds of the page you can click each of the part and give the symbol the music symbol that found in each of the words but the interesting thing here is for this demo it's better to it's not heavily sent to look specific symbols the really interesting thing here is to look for stickers of symbols that's all to upload the private collection and to make the impact from because it is not connected with transcripts no not for now I think we are planning to integrate this at the beginning of the next year maybe you need to say something about how you process the index and what your part is in that regard so in this case you usually do prepare the HDR and then you do some post-processing maybe you need to freely talk about this what steps are to be taken there to envision using your tool ok as I mentioned before we apply more of them we apply the transcript the tool available in transcription about presentation was expected with the tool available in this transcript but then we apply some preprocessing this preprocessing the client preprocessing is about some image preprocessing correct the slant, skew I make some I remember I make some apply some preprocessing to fill in the image and then to train the neural network of course we apply some data documentation in order to to train possible distortion also of course we apply the network to regularization so you said that we also need the language model in order to process it so how does the user or will the user build the language model or where will the model be built automatically yes I think to use the language model can be directly automatically usually it can be built directly from the training sample from the ground through or directly you can you can use an external an external data don't have any sense with it which actually an English copy for example if you are to recognize English sentences or another language there are two available for that I have a question about training model you are using for the three series you named so Gensri Benton and Spen Spen's Theatre how many pages did you need before you could see the difference here actually of course in Gensri we only use if I remember 300 pages to train the model in Benton we use 800 pages or less in TSO we use here in this case we use 286 pages which in combination with the remaining pages practically nothing


I'm Chip East and I'm here with Edgar Vinson and David Lawrence. We're with the Alabama Cooperative Extension System and today we're going to discuss backpack sprayer calibration. There are several methods that can be used to calibrate handgun sprayers. In this example we will be using the 1 1 28th acre method. This method can be used to calibrate a backpack sprayer powered by a hand pump an ATV sprayer powered by an electric pump or a large sprayer powered by a tractor's PTO. First you will need to check and clean the sprayer to make sure it's working properly. Then measure 340 square feet and with only watering the tank spray the 340 square feet at the same speed and pressure as you would if you were applying pesticide. Keep a record of how long it takes to spray this area. You may be best to spray this area several times and get an average. Next, while keeping the pressure the same, collect water from the handgun into a measuring cup for the amount of time it took to spray the 340 square feet. The number of ounces collected is the gallons of water per acre the sprayer is applying. If you would like to apply more or less water per acre an applicator can speed up slow down change tips or change pressure. Whenever a change is made the applicator will need to recalibrate the sprayer to find out exactly how many gallons of water per acre is being applied. In this example it took 70 seconds to spray 340 square feet. The farmer collected water for 70 seconds into a container and that was found to be 28 ounces. Therefore the farmer was applying 28 gallons of water per acre. With a four gallon sprayer the farmer is covering 0.142 acres with every tank full. If a farmer wants to apply 16 ounces of a pesticide per acre and treating 0.142 acres with every four gallon tank the farmer should add 2.3 ounces of pesticide per four gallon tank. There are several different methods for calibrating a backpack sprayer or a handgun sprayer. This method today is the 128 acre method for this method we measure off 340 square feet and that can be done in different ways. In this example it's 18 and a half feet by 18 and a half feet. We have that marked off to spray that known area. Then we're going to collect spray for that amount of time. Every how many ounces of spray we collect and in this case we're just going to use water. Every how many ounces of water we collect in that amount of time is how many gallons we're putting out per acre and that's all we're trying to figure out is how many gallons of water we're trying to apply per acre. It took a minute and 10 seconds to cover this 340 square feet with the backpack sprayer so now we're going to collect water into a measuring cup for that amount of time for a minute and 10 seconds. Every how many ounces we collect is how many gallons of water per acre this backpack was applying. When we calibrated the sprayer we this was found it was applying 28 gallons of water per acre. We have a four gallon tank so I take four divided by 28 I get 0.142 so I'm spraying 0.142 acres every time we fill that tank up. If you're applying pesticide at a pipe per acre I would take 16 or 16 ounces in a pipe multiply 16 times 0.142 the amount of acres that is sprayed with each tank full the amount came out to be 2.28 so if I say 2.28 or 2.3 I put 2.3 ounces of a pesticide in this tank every time I fill the tank and I'll be applying to create them out. Air blast sprayers are commonly used in tree fruit production and vineyards. Matthew Price is going to show us how to calibrate them. Hi I'm Matthew Price the director here at the Chilt Research Extension Center and we're going to look at calibrating air blast sprayers and the first thing that you need to know is you need to know the speed that you're going to be traveling and you're going to need to know your row spacing that's going to determine how many minutes it takes for you to cover one acre. Now some things that you need to know is when it comes to speed the slower you go the better coverage that you're going to have in your orchard it gives it more time turning the leaves and drives the spray up into the trees. So a rule of thumb that we use is we're going to set it at two miles an hour is what we're going to be traveling and a constant of that and setting your speed on your tractor is two miles an hour is 44 feet and 15 seconds. So if you can mark off 44 feet and take a timer and select a gear and your rpms drive at 44 feet and 15 seconds you'll be set. Now the next thing you need to figure is your row spacing how many feet do you have to drive per acre let's say you have 20 foot rows okay so you want to take 43,560 that's how many square foot an acre and divide it by 20 you'll wind up with 2,178 feet that you're going to have to drive okay and then as we're going two miles an hour we'll be traveling 176 feet a minute. So it's going to take us 12.375 minutes to cover that one acre. Now after you have all that figured out and your tractors rpms and gears figured out then you're going to need to know how much water you're putting out per minute. Now there's two ways to do this and the one method we have set up right here with these tubes is we have tubes on each nozzle on this side of this sprayer. Now this has been precult yesterday and we figured out that we're putting out five gallons a minute and this is just two slits over the nozzles and we'll catch it in the bucket and then we measure it after a minute so we found out we're putting out five gallons a minute on this side and the other side is putting out five gallons a minute as well. So that's 10 gallons a minute so we want to multiply that times our 12.375 and that gives us 123.75 gallons per acre that we will be applying. Now the other method to find out what you have to have a water meter with is you can mark a spot on your tank and you can back it out and set your tractor on the desired rpms for your speed and run it for a minute that way with both uh booms going and after you run in a minute you just take your water meter over here and you run the water in it until your level comes back up to your mark and tells you how many gallons you put out in that minute. So there's two methods that you can use to figure out how much water your sprayer is putting out per minute. There are several methods that can be used to calibrate a booms sprayer. In this example we will be using the one 128th acre method. First you will need to check and clean the sprayer to make sure it's working properly. This includes cleaning the tips. Turn on the sprayer and collect water from every tip. Make sure they are applying an equal amount. Then measure the distance in inches between nozzles on the boom. Use this chart to determine the length of the calibration course. If the nozzles on the boom are spaced 18 inches apart the calibration course will be 227 feet. The length of the calibration course is determined by how many feet you will have to travel for one spray nozzle to cover 340 square feet. To determine the length of the calibration course for a nozzle spacing not on the chart simply divide 340 by the nozzle spacing expressed in feet. A 19 inch nozzle spacing is 1.58 feet. Divide 340 by 1.58 to get the calibration course of 215 feet. Once you determine the calibration course measure that distance and put some type of marker at each end. Then drive the calibration course and record how long it takes. Use the same gear and RPM that will be used when applying pesticides. While the sprayer is stationary and with only water in the tank collect water from one nozzle for the length of time it took to drive the calibration course. The tractor should be operating at the same RPM when collecting water as it was while driving the calibration course. Measure the volume of water caught in ounces. The number of ounces equals the gallons of water being applied per acre. Adjust the pressure, speed or nozzle size to achieve the desired volume per acre. If the speed is changed you will need to drive the calibration course again and repeat the process. When a change is made to the nozzles or pressure you will need to collect spray in a container to check the gallons per acre again. In this example nozzles are spaced 20 inches apart and needs a 204 foot long calibration course. While driving the calibration course in the same gear and at the same RPM that will be used while spraying we find that it takes an average of 26 seconds. With only water in the tank the farmer stops the tractor and sets the RPM the same as in the calibration course and turns on the sprayer. The farmer collects water from one nozzle for 26 seconds and the volume of water caught is found to be 16 ounces. Therefore the farmer is applying 16 gallons of water per acre. If the farmer is applying 16 gallons of water per acre and has a 150 gallon tank then he can spray 9.4 acres with one full tank. If the label recommends one quart of pesticide per acre then the farmer will add 9.4 quarts of pesticide to every full tank. When calibrating a boom sprayer we need to just put water in the tank and turn on the PTO and collect spray from every nozzle. They need to be within 10% of one another. Once you do that we need to measure the distance in inches between nozzles on the boom. These are found to be 20 inches apart. The calibration distance for the one 28th acre method is 204 feet for nozzle spaced 20 inches apart. So we measure off 204 feet, drive that distance at the same gear and RPM that you'll be spraying and time yourself. In this example that we were found to be doing 26 seconds is how long it took to drive that 204 feet. So with just water in the tank we collect spray from one nozzle on the boom for 26 seconds. That was found to be 16 ounces. So this at that speed at that RPM at that gear we found that we're putting out 16 gallons of water per acre. So if you're putting a quart of a product of pesticide per acre for every 16 gallons you put in that tank you put in a quart of pesticide.


We've been in contact with the National Weather Service to try to determine what type of storm event hit Beltrami County this morning. Obviously right here in the heart of Bemidji it's kind of rare to get this concentrated damage. Based on what we're seeing here is there's definitely some strong winds, exactly what type will still have to be determined. This is not consistent or look exactly the same as some of the other straight-line wind damage that we've had recently in the county so we'll be providing them with all the information that we can gather to try to determine whether this was a tornado event or a wind event. As you know we're very early into this so we're going to give them some preliminary information. If we can document enough they may not have to come out here but they may choose to do so. Right around dawn this morning between five and six o'clock is when the winds started moving into Beltrami County. There were no active tornado warnings or anything at that time. And the sirens did not go off? They did not. The information that we had of what was moving into the Bemidji area did not meet the criteria for the siren activation.


Welcome to the Knuckleheads of Liberty. Yeah, so this crazy stuff with the COVID, it's just, you know, beyond our leaders and everything else. You know, a big part of this is the media and social media as well, the craziness that's going on it. And we had a prime example of that just happened recently as well with Joe Rogan who just continues to, you know, knock the ratings down with his show, you know, just having massively more viewers than all of the cable news networks. I mean, possibly combined, I'm not sure, but in this particular case, he was interviewing just recently on his show, Dr. Robert Malone, who is a pioneer in developing these RNA vaccines that are the things that people are crediting with saving our lives from COVID right now. But the idea that he would be censored for saying anything negative about the dogmatic approach that's being taken by the government is just crazy. So he had said that he really thought, I've heard him on several different shows. I think he's been on Jimmy Dore, he's been on, I think, Tucker's show, and he's been on a bunch of shows, I'm pretty sure, but he's been skeptical about some of the direction that they're going with this vaccine. And one of the issues was the idea of this being a cure-all, you know, the idea that this would totally solve everything and that this wasn't going to spread. And he's been one of those people who's been sort of a skeptic in all of this of the government's approach.  And so when he said that, lots of people started looking up the term that he was using. And I think he called it mass information or mass formation psychosis. And he said it's kind of like society's been hypnotized. And so people started trying to look that up and droves on Google because Joe Rogan has such a large audience. And so Google decided to, I guess, sort of throttle this. They essentially pulled, I guess, they started to censor against the quote until they could get sources up that they thought were better. And then they came back saying that this was like some kind of right wing new term or something far right. So anyway, it's just an example of the sort of the thought police there coming in and directing us. What do you guys think of this? I mean, it's kind of scary stuff and it's not just coming from the government. That's what's so crazy about all this. Yeah, it's horrible. I was a little distracted by you had a picture of a bikini clad woman in that thing. I got a little distracted. Sorry about that. But the thing. So this is Google. Is this YouTube? Is that is that who wanted to throttle this or just I think it was Google in general throttling the searches for this mass information psychosis. And I think that YouTube might have pulled that show or whatever the clips from that show or something. They might have throttled that so that people couldn't find it if they were looking for it. I'm not a hundred percent sure of all of the details of it. But but there was a lot of I guess big tech censorship that came out to to keep the the I guess the CDC political narrative alive. Yes, you know, keep us from now. Everybody's looking at that picture. So I am assuming then that there's other sources where we can watch this interview if we wanted to. Well, he is on this. This show would have been on Spotify, I believe, is where his show currently resides. And that is free service so you can certainly go out and watch it there. And these clips might be popping up in other places as well, you know, places like rumble. And I think Joe Rogan just announced to he was opening up a getter account as well because of Twitter censoring him. So yeah, he's leaving. He's leaving Twitter and he's going together. Yeah, and I hope we'll go there too. OK, what's the name of it? Gather, getter, G E T T R. Getter, getter is a social media platform. I think it's akin to Twitter. I don't I've never used it, but I'm well, I get it. I already know what's going through Tim's mind. I just got to go there and get her. Yeah, I just want to. That's right. You know, I want to meet her and then I'll get her. I hope. But anyway, I'm just kidding. I'm just kidding. I have a girlfriend. OK, just just nonsense. I'm just I'm just being silly. I'm doing what I used to do to get in trouble in Catholic school. OK, I'm just doing the same stuff. So the yeah, as long as there's alternatives, you know, I think it's wrong of these private companies to flex their their muscle in the world of censorship, flex their censorship muscles.  I mean, won't they want to be known? Go down in history as this is a place where you're not going to get the truth.  You know, I I wish them luck. They're going to need it because they're going to go out of business. This keeps going. I mean, well, maybe not. I mean, that's that's a that's a far stretch. But I mean, you really have to do a lot of things wrong to do that. But Kodak did it. So, you know, if Kodak can do it, Google can do it. You know, but, but, you know, you're right, Tim, that as long as the alternatives, I guess we should not be concerned about this. My problem, I think we should be concerned. I'm sorry. I don't don't really want to say that. It's concerning, very concerning. OK. But I mean, the alternatives that at least are an alternative. I'm sorry. Go ahead, Leanne. Oh, sure. OK. But my problem, my big problem with all of this is not is is not so much that a private company may want to censor somebody on their platform. I I I am fine with private companies doing doing that kind of stuff. They should have the freedom to do that kind of thing in in an economy that is relatively free. The problem begins when the government getting on the act. And I am not sure that the government did not get in on this particular act. I don't know. I have no information on that. So I'm not going to spread that as fact. But we have had information in the past. We have had discussions in the past where the White House have been having identified problematic posts and acts in Facebook to take them down. So I don't know if some of that could have happened this time, too. If if they are admitting, you know, that they have done this a few times, God knows how many times they might have done it without our knowledge. So this is my problem. When the government starts to censor us not directly, but indirectly, they start axing those companies like Google and Facebook and Twitter and all of these people to take posts down. We had that happening here in California, where the where the the the Newsome administration was with Facebook trying to get rid of some of the political opponents through post removing some of their posts and that kind of stuff. So all these things to me are potentially problematic. But you're right. If it's a private company making their own private decisions, I have no problem with it. But when the government gets another act, we in some real, real crazy waters here that we better be very careful about. Well, speaking of mind spreading, I'm sorry. So, Leon, you don't mind spreading facts, but you'll spread a couple of rumors now and again, right? Just like the fact checkers, just like a fact check. Life, liberty and the pursuit of happiness always. Thank you for listening to the Knuckleheads of Liberty podcast. Find us on Facebook, Rumble, YouTube, your favorite podcast network and at knuckleheadsofliberty.com.


Hi! My name is Christina Ioboni and I'm a registered dietitian. Welcome to my kitchen. Today I'm using one of my favorite spring vegetables, asparagus, in an easy 3-ruby pasta recipe. This recipe is a spin on the viral baked tomato and feta pasta. But instead of using tomatoes, I'm using asparagus. And instead of using feta, I'm using a creamy, soft, urban garlic flavored cheese. This pasta is full of flavor and so easy to make. So let's get started. I washed and broke off the stem of a bunch of asparagus spears. Since the spears can be dry and tough at the bottom, you want to get rid of that part. You can either use a knife to cut about 1 inch off the bottom, or bend them at the bottom and the woody part will snap off. Next I cut the spears into about 1 inch long pieces. Place the asparagus in an 8 by 8 baking dish and drizzle with a little bit of olive oil and a pinch of salt. And give it a good mix. Next we're going to put 150 grams of cheese into the middle. If the asparagus looks a little bit crowded, don't worry. This is actually going to help prevent it from overcooking, because now we're going to bake this in a 400 degree oven for 20 to 25 minutes. While the asparagus is in the oven, prepare half a pound of pasta according to the package directions. Before draining the pasta, be sure to save some of that starchy pasta water, because we're going to use it later in the sauce. I like to save about 1 pound. I like using this Scooby-Doo pasta because I find the sauce sticks well to it, but you could also use bowtie pasta fuzili or penne. So I've just taken my asparagus and cheese out of the oven, and you can see how it has started to melt and the asparagus is bright green. I'm going to mix it up and add a bit of pasta water. I start with about half a cup and mix it to help make the sauce nice and creamy. I'm going to add my pasta in a good mix to combine everything. If it looks a little dry, you can always add more pasta water. So creamy. The best part, tasting. So good. I hope you give this recipe a try soon, because your whole family is going to love it. Yum.