Everybody forced here ripping 21 22 prism basketball choice five bucks number one Random team style. I'll show the results right here really quickly just at the remover a moment ago. Link is in chat Thanks for joining everybody and good luck. You can always find them on the site as well. Here we go Here we go. So again, we're getting two silvers five exclusive prisms in an auto There's all your parallels you can get really cool stuff in these here. We go here. We go 16 to go on the next one guys Let's get that next one filled up. We had to wait to fill this one a bit. So we're already a little behind See the heat now. All right our two silvers our magic RJ Hampton and Spurs rookie Joshua Primo next up. We'll have three Red green yellows are green. I don't know how what the order they call it, but Nets Kyrie Irving. These will be non numbered What exclusive Nets Patty Mills couple of Nets and magic Jalen Suggs We won't Nice Suggs there you go magic. Good start for you First auto is going to be a red choice Ricky auto blazers trend in Watford None of them are the red choice autos The scope design. I love scope as it is. But yeah, nice a red Steph Curry for the dubs six of 88. This is a good first box. Oh Wow really good first box actually Nice curry nice chef and I think it's new this year the red blue purple rookie Grizzly Xayah Williams for a 15 Big hard Grizzlies We'll get this one mag. I love scope There you go Grizzlies Yeah, if you yeah, if you just look at the bottom it kind of does the purple really looks like it Nice Xayah Williams. Yeah, it is kind of sick people. I like that more than the red green yellow So I'm glad it's numbered by do I like red green yellow? That's pretty sick really good first box had the Suggs had the curry That Xayah is awesome All right magic silver penny hardaway and pistons Jeremy grants They're called choice in this they've been out called scopes, but that's what the design is Clay Thompson for the dubs on the red green yellow blue green yellow. Sorry, Robert Williams the third Celtics and Pelican's rookie trainer for the third good to begin rookies on these two Solid TM three ego Pacers getting an auto here red choice sensational signatures rookie Isaiah Jackson Pacers again here red O'Shea Berset 45 of 88 and And blue which I believe is also new Mavericks Moses Brown. What was it a 39? 37 to 39 on that one nice color match, too God the blues will look so good with like bronze and and coal and sucks Or like a penny or a T-Mac box three Yeah, that's prison choice except we also have these in stock for personal game at Seven something so they're they're not cheap boxes They can hit pretty well Alright, we've got silver for the spurs Lonnie Walker the fourth and magic Terence Ross All right, blue yellow green Raptors pressure to Chua Pistons Josh Jackson Nets Cameron Thomas Rookie there we've got a rookie on red green yellow or blue green yellow every time now Wizards with a Montrez Harold green auto to eight. Oh My goodness look at that. Oh man Wow Yes, wow, here we go guys Nebula one-of-one warriors clay Thompson Ryan B There you go, man bought a ton of spots today. Congrats Ryan That is gorgeous big-time clay There's no way there's spots available the next break, right?  I had the had the red step to yeah, man One of the best parallels across any manufacturer any products love the Nebulas and another green Crazy box six of eight Darius Bayley for the thunder Two greens a green a green auto Another green a Nebula clay Crazy crazy crazy. This has been a great break five boxes bringing the heat. Oh My god, I was all right. Let's keep it going Go man choice brings the heat you guys brings the heat silver bulls DeMar DeRosin and silver thunder Darius Bayley Blue yellow green not numbered heat Victor all the depot piston Saban Lee and Pacers legend Jermaine O'Neill Pistons rookie red choice auto Luca Garza and the autos on red are not numbered. That's a nice color match Blazers red Damien Lillard. Oh, and that's this break is this break is off the rails you guys 1288 on the dame pretty color match Cavaliers red rookie Evan Mowbly You have got to be kidding me 43 of 88 Min-su K with the Cavaliers Geez, man. These boxes did marinate This is ridiculous what I mean This is getting wild that's the third Magikarp in four boxes of choice you guys That's silly that's silly We were waiting to fill this I Don't get it man Choice brings the heat especially especially prison choice especially prison choice All right piston silver Hamidou de yellow and Gary the glove for the sonics going to the Thunder the blue yellow greens Pacers TJ Warren Blazers Norman Powell and a jazz Rudy go bear the blue green yellow is honestly a jazz color match current current jazz uniform college Hornets rookie Otto Scottie Lewis red choice not numbered. Oh, that's a pretty color match blue rookie thunder tray, man 39 of 39 bookends This stuff is great man and a red for the Mavericks on the back is Reggie Bullock 74 of 88 I'll show you the three Magikarp's again guys. I don't plan on doing recaps only five boxes But the red Mowbly to 88 Holy cowcaps. Oh my god. There it is the Nebula one of one Clay Thompson and then the Grizzlies had a New this year. I'm pretty sure red blue purple rookie Zaire Williams to 15 Yeah, these are ridiculously nice. Thank you very much over getting that filled up. We got another one coming up next


Hi there, my friend and friends. In a recent video, I recommended that people who are just getting started in web development use VS Code as their editor. And that led to a lot of people asking me to make a video on how to get started with VS Code. So here we are. Now for this video, I'm not only assuming that you are new to VS Code, but I'm assuming you're relatively new to web development as well, because this is part of my beginner friendly content that comes out every Tuesday. So because of that, we're not going to be deep diving into the nitty gritty parts of VS Code. We're only going to be looking at the bits of it that are very relevant and useful for people who are just getting started with it. And of course, the very first thing you need to do is actually install VS Code. But there is a little bit of a gotcha here because we can get VS Code or you can get Visual Studio. And that's Visual Studio Code and Visual Studio. You do not want the purple logo, you want the blue logo. And again, it's a little bit confusing, but we want the code word at the end. So just do a Google search for VS Code, click in in there. And then you can download it. This is available for Windows as well as Mac OS and Linux. So you're good to go no matter what operating system you're on. Now, once you've downloaded it, you should see something that looks a little bit like this, or hopefully a lot like this. This is this like a fresh install of VS Code. And one thing right away that can be handy is if the font sizes or stuff are a bit small, a control plus can actually zoom in and make things bigger. So for the demo, I'm going to do that. And then I can just zoom back out, doesn't matter, but you should end up on a welcome screen like this one. The only thing is if you really are new is you won't have any recent projects. Now the very first thing that I want to talk about, and you'll notice here, it's saying you do not have an open folder. And this is really important that it's saying open folder, because you can open individual files as well. But there's a big difference between opening a file and opening a folder in VS Code. If I open an individual file, for example, in here, I have this 3d thumbnail thing that I built a while back. And maybe I want to work on that HTML document, like an open that file. And here we go, there's the file and I can work around in here. And over here, it's actually I have that file and I can see that it's there. But in most projects you work on, you might not get this in the very first few days. But most projects you're going to be working on, they're going to involve more than one file. And then say I had another page in this, or I have my CSS file that I want to go to, I want to work on my JavaScript, they all tend to live in the same place. And if I open all those individual files every time, it's a little bit annoying. Whereas I can use either the open folder right here, or you can do the file and open folder, or you can use the shortcut. And then what I can do is I can actually open the entire folder for this project. And the advantage with this is now I'm inside of this project. And now eventually, you're going to have extensions that might take advantage of all the different things that are in here, you'll actually be able to search through all the different things. But the really nice thing is, you can just go through and all the files you need for that individual project, they're all here. So you don't have to like go hunting and opening things every single time. But if you want to start using like an extension like live server or a few other things that just make you have some quality of life things going on, opening the folders going to make your life so much easier. So always any project you're doing, don't just save like the HTML file on the desktop, make a folder for it and then always open that folder in VS code. It's also good because if I need to make a new file, I just click new file and you're like about HTML, and it's already in the right spot. Right. So I'm not like making a new file then having to save that file. It's already there. It's already in the right place. Now one thing that's very important, I'm just going to bring this down because I think it's slightly off screen, where you can see I have these two different tabs for these two different files. And my about page is actually not in italics and the index is an italic. And this is just a little visual hint to say you open this file, but you didn't actually make any changes to it. So if I switch over to my JavaScript file here, it's going to stay italic, but it didn't keep the index opened. This is sort of like, oh, you're diving through different files. I'm not going to make a change here. So let's just say I go to my index and I make a change. Now it goes, Oh, this is an active file you actually want to be working on. You weren't just searching through things poking around. So as soon as I make a change that now, if I go to another one, it's going to open another tab for me. And then if I make a change to this one, which right now I'm just putting a space that's enough for it to recognize that I made a change. And then I can go over to another file. And you can see that they're all opening tabs across the top. And these two tabs have circles on them, which means that there's on save changes. And one thing that's interesting with VS code is sometimes you can close it. And it won't ask you to save your changes or anything. But the next time you open VS code, it's going to open with that exact place. But I'd always recommend saving your work as you're going. So one way you can do that is with a save all, which is also a control K and S. But just every now and then a save all and any file that had a change in it will get updated. Or you can just make changes with a control S. So instead of going to file and save every time you're going to be doing saves all the time, just you make a change control S make some changes control S if you're on a Mac, that would be a command S. And you just saving constantly, it's going to be your best friend. So just save constantly, and you won't lose any work and be very happy that you did it. There are ways of configuring the auto save as well. And the way you would do that is to go into your preferences and go into settings. And we're not going to deep dive the settings now. But just to know how the settings work, because there's a lot of settings in VS code. But there's this handy search settings at the top. So if I looked up auto save, it probably will come up. There we go. And then I can can set here the default is off, but I can choose a different type of auto save if I want to change how that behavior is working. Now I'm old school, I'm just used to saving my stuff constantly. So I leave mine off. But if that's something you'd want to configure, now you know how to get to it. Again, it's just file preferences, settings, and we'll look at a few other things that you might want to do in there a little bit later on. But for now back to here where we're looking at we have we have these different tabs. Another thing that could be really useful depends on the size of your monitor. But if you have a large enough monitor, what you can actually do, let's close down these two CSS files. And I'm going to right click on this one. And I can do open to the side. And look at that, I have multiple different ones open. So I have the two that I can work on at the same time, this can be so useful, you can even have like the same file open twice to and one at the top one at the bottom, I wouldn't really recommend that because then when you're saving, I find it gets confusing for me, but it is a possibility that you can do but I really do commonly work with split planes like this. So I would suggest at least trying it out. Also, if you can drag them around when they're up here. And if you do have multiple ones open here, I can right click on this one, and I can even do a split up split down split right split left. So if I want, I can put it on the bottom instead. If I don't want it on the bottom, I can split it to the right. And I get it over there. Now, because I already see now I have the same file open twice. So this one I can go down to the bottom and this one I can have at the top. Again, I don't really like working that way. And one reason I don't is because I often use this mini map. If you're very early on, you might not have to worry about this too much. But as projects get bigger, this mini map is sort of a zoomed out version and you can click on it to scroll quickly between different areas as well. And you can turn off that mini map in the settings if you don't like it. Personally, I used to hate it and then I got used to using it and now I kind of like it a lot. But in my demos usually see it off just because I don't like the visual clutter when I'm doing demos, but for normal work, I actually do keep it on most of the time. And again, just go to your settings like we looked at search for it. If you do want to turn it off, it's called the mini map. Now I already mentioned this, you might find the font size is small because I think this is the default zoom. And I'm used to doing demos where I need the font size is really big. And I've just gotten used to large font sizes. The problem is when you zoom in, it's zooming in everything. So it's zooming in on the sidebar over here. It's zooming in everything just gets bigger. The whole interface does. I might not want that I might want to keep everything the same way it was, but I want it, you know, I want it like this, but I want my font sizes to be bigger. So once again, let's go over to preferences and settings or you can use the shortcut control comma.  And my suggestion is learn the shortcuts. If you find yourself using any of the menus on a regular basis, I would really recommend going, oh, okay, it's the control comma, but don't go, I'm going to use it next time. Close the whole thing down and then use that shortcut because that's the only way you're actually going to start remembering it. And you'll forget it the time after that and the time after that and probably even the time after that. But by about the fifth, sixth time of using it, you're definitely going to start remembering what it was, but do make sure you keep on using it. So back here in the settings, the one thing I want to look at here is that we have the font size right there. So you can set this to whatever you want it to be. You can also change the font family right here. You'll notice the default we're in is the commonly used. So these are like the different things people often change at the beginning, you can change your line, I like just leaving it at line, but you know, you can play around with these and see what the differences are just to get an idea. But I personally, I like the line one just to show you if we go to block, I don't even have to close the settings, I can just go back to a file and see how my cursor is like a full square now. And if I go back to settings, let's change it to thin line. And then I go back and you can see it's already updated to a very thin line. And I'm going to go back to the default. And that's just what I'm used to. So you can play around with it, find one that you like. And again, you could even let's do it, split to the right, close this one down. And then I could put my cursor there. Let's go over here and change the cursor. Well, where's that? Right there cursor style. And let's make it block. And if I click back here, it's already blocked. And then I can try the block outline and see if I like that one better. And so you can play around with things. If I come to my font size here, and I make it bigger, as soon as I click out, you'll notice the font size got bigger. And then I can drop that back down to 14. And is there we go takes half a second and it updates. And of course, you can try different fonts and go through and I would encourage you to look at some of these basic settings. And if there's stuff you don't know what it is, don't worry about it for now. Don't be overwhelmed by it. Because again, there's a lot of settings. The one other one that you might want to change is your theme. And default themes actually not bad, but I like using a different theme personally. So to get into the themes and this is like the one personalization, I think everybody should make at least to like look at it, play around with it a little bit. There's so many themes and so many good ones out there. And interestingly, the themes are, let's go here. And we're just going to search for themes, but themes are an extension. And that's going to sort of open up another world of stuff. But you can see here is the dark modern. And here's like all these other themes that are here. So maybe you're somebody who actually likes having a light theme, well, we can switch over and it really hurts my eyes to even look at it. But I do know a few people who like light themes. So if you prefer that you can, but you can sort of poke around in some of these different ones if you want to go a little bit crazy, you can. But there's lots of different options in here. But you might be looking at it going, well, it's a pretty limited set at the moment. So if you want to know the type of person who loves this type of thing. And I know some people I am the type I've been using the same theme forever now. But I know some people who like changing it on a regular basis. So for that, what we're going to do is go on the side panel down on the side here, and you can see these different things. And so we have a search feature which is kind of handy and search for different things and actually do a find and replace their source control, which is like get stuff, you might not know what that is, don't worry about it for now. It's built into VS code, which will be handy when you get to that. If you don't know what it is, don't worry, same with the running debug here, eventually you might get into that. Don't worry about it for now.  And if you start using a language, like there's a framework right now called Astro, that doesn't come pre installed with VS code. But if you make a dot astro file, it's going to go, Oh, hey, we have an extension for that, you want to download it. So it's really smart, it will recommend things for you, which can be really handy. But you can also come and search for themes. And one theme, the one I use, usually is called Adam one dark, and you can see it right there at the top. So I'm going to click on that. It's right there. I can hit install on it.  And it actually gives me the choice at the top here. Do I want to keep it? Yes, I do. That's the theme I like. But of course, you know, you don't have to use that theme, just because I'm using it go and look for different themes, you can also just do a search like a Google search for different themes and find ones. There's probably a better thing than just searching for theme. But there's tons, you know, here, there's a whole bunch. So some of them will come with like lots of different options. Some of them might only be one. There's tons of themes out there. I'd really recommend looking for one finding one that you like, and they're really easy to change. So you might try one for a little while realize you don't like it, and then you can switch whenever you want. Now I didn't mention that one thing, this is for beginners. So one thing that you're really going to like with when you're in your HTML is that this comes with let's zoom back in. So it's a bit bigger for demo purposes. Also, my sidebar is opened. If I click here, it's going to close it. So we can close open and close it that way. I actually like having my sidebar on the on that side. So when I open and close it, it doesn't move things around. But I'll talk about that in a second. But before we worry about that, what's really cool of VS Code is that it comes with something called Emmett pre installed and Emmett is a shortcut for writing HTML and CSS. And so if I have an HTML file, I can do an exclamation point at the top and either hit return or tab and it comes in with all of this which is super handy. So I have that like boilerplate starter, but we can do a little bit more than that. I'm not going to deep dive it now but say I need an h1 I just do h1 hit tab and it does the opening closing. If I need a paragraph with a class, I just do p class name. And then it's going to do it for me. So it's a much faster way of writing things. You can even do like dot container. And in there I have div, we'll do div times three, something like that. Anyway, you can really speed up the way you write your HTML and CSS. If you're very, very new, it maybe you're like, I don't want to go that fast. That's too quick for me. So you know, you definitely don't have to use it. But it is really handy. And even just if you're just doing your h1 and you don't want to have to write like h1 and it will close it for you the default as soon as you open a tag will put the closing tag. But just having to do, you know, from you get used to I've gotten used to it. So just doing h1 tab and it's open close and my cursor is in the right spot. It's just so handy to be able to do that. And of course, when you make a new HTML file and do that, it's just wonderful. And the last thing I want to leave you with a little bit is one of them is moving the sidebar over. So if you do like that idea of this not like shoving your text back and forth, you can just right click anywhere on the sidebar and you can just do not move primary sidebar to the right and it moves it over to the side. And now you see when I open and close, this doesn't actually move around. I love that. So I'm so used to having this on the right, you can also just drag this bigger and smaller to if you need to the shortcut. Also, if you want to open and close it is command to be or on a PC to be control B. I don't know why it's letter B, but it works. But just clicking here obviously does the job. There's also not only can we move them to the two sides back and forth really easily. The other advantage you can actually turn off and on like if you don't want to see the source control one, I can click that and let's just put it back on the side so we can see it happen because I know my face was on it. So if I do source control off, it takes it away from here.  I would actually encourage leaving that there because you're going to start using it sooner than you think. But if there's ones you want to turn off and just remember maybe later on that you need to be able to turn it on that option is there. And I'm going to come here and I don't know if I closed it or not. But here what I'm going to do is this is all my open files. Actually, here's all the open files. And here's everything that's in that 3d thumbnail folder that I had opened. So one thing I can actually do here is I can come here and actually save everything. So a click save all and then I can close them all and it closes everything there. And what I'm actually going to do I don't do this very often, but I'm going to come in here and I'm going to go down to a close folder just so we're back at like nothing's open. We're back where we started because I want to go back to this welcome screen. And there's one thing on the welcome screen that I'd really recommend you check out is this get started with VS code. So if I click on that, it's going to, you know, choose the look you want. So it actually there we've already done that, but it will help you pick a theme. You can sync to other devices and a few other things. And then like it walks you through like different steps you can do rich support for your languages open your editor. If you go over to next section, there's this section right here, which is actually for an interactive playground that teaches you a lot of different things about VS code and it's really good. So if I come in here, it's opened it on the side so I can close this welcome down. So I have the editor playground and it has like it this is like it tells you what to do here. And then you can come down and use this code to practice what it's telling you to do. So I can add a cursor. It's cool in VS code, like you can see where my cursor is, I can do a control alt down and you can see I have two cursors now and now I have three cursors and that means you can actually write in multiple places at once. And then I can keep going and learn about IntelliSense and then about moving lines around because you can just push alt and then move lines with your up and down keys and stuff and you can duplicate lines and select full lines and there's all sorts of really cool things you can do. So you can just come through here and read about it. And it's like a little tutorial that walks you through some of the like medium advanced stuff that could be really handy. And with that, if you'd like a little bit more VS code content, I've done a couple of other videos, one of them looking at the essential extensions that I can't live without and another one looking at the shortcuts that I use every day. Those videos are all on a playlist that is right here for your viewing pleasure. And with that, I would like to thank my neighbors of awesome, Johnny, Tim, Simon, Michael, James and Andrew, as well as all my other patrons for their monthly support. And of course, until next time, don't forget to make your part of the internet just a little bit more awesome.


All right, first and foremost, let me pull this up. I see Matthew F, and once again, people ask your stuff in the Q and A, all right, just makes it way easier. You all see all the comments coming through. One Matthew F said, as an independent artist, what is an appropriate amount to invest in marketing versus, NPR for a single versus an EP project release? Would a budget of five to 10K be effective or should I have saved more? I want to open this up so I can see it too. I'm good, good, good. Yeah, I can see it. So as an independent, my bad brand, as an independent artist, what's the appropriate amount to invest in marketing PR for a single versus an EP? So usually, I'll answer that part of the question first. Usually, we're going to put double what we're spending into the EP on a single, I mean on a single, in an EP. So let's say, for example, if I'm spending $2,000 per single, when the EP comes, I'm going to spend 4,000. So usually, I'll double my single budget for the EP. Would a budget of five to 10K be effective? Yes, yes, any budget can be effective, but the thing about it is, and what I'm going to train you guys in this course, it's all about what the content is already doing. I don't spend money on things that aren't already working. Should I promo new singles, then drop the EP, yes, or drop the songs as singles? What's the best way to go about this? So I always drop the maximum amount of singles if possible, you know what I mean, when it comes to the EP. Seven-song EP, that means I can drop three singles because technically, the rules say you can't have more than 50% of the music out if you want to do a pre-order. You can't have more than 50% of the music out when you drop the pre-order. So that means I'm allowed three songs. So I'll drop three singles, pre-order EP. Like a lot of times people just drop stuff, right? The moment is, how do you make it memorable? What are the things that you do beyond just dropping, all right? So let's just say if I had a concert, all right, or a live virtual show or whatever, then I might add merch related to that show in that experience. Know what? Perfect example, Travis got the world. Good Lord, what's the name of the world he just did? Astro world, right? And he made it a moment. He could have just dropped the project named Astro world, all right, but he had all of these different pieces, right, under that theme. So think about moments as themes, all right? That's the easiest, simplest way, all right? And do multiple things under that umbrella related to it. And then of course you have to do the work to get that scene, but that's the easiest way without going to too much time. It sounds so crazy, but I'm talking about statistically, all right, this is why it's important. When I said earlier, stop looking for crazy unique things in all these crazy gyms because when I, from the back end, from the agency, when we talk about what works, sometimes it's not even something that just seems genius. It's like, yo, bro, this is just doing better. Doing covers still works, doing your own music, but acapella and letting people actually hear your voice, all right? Especially that verse is a lot of these produced, like, you know, people will be at the mic and then they'll produce it. Yes, that can work, but the best, best, best is literally like when people could just hear your voice, the numbers on those are crazy, especially on a platform like TikTok, especially if you put a mic or something that's signaling that it's live, a guitar. The stats are just there. If you haven't had one blow, then it's about maybe more timing or the right song, maybe the platform that you put it on, but I promise you, that's that simple. And then another good thing or another thing you can do that is a little bit more unique is taking popular songs and not just doing a cover, but doing an alternative perspective, like a guy did his song and then you do the girls' perspective, responding to what he said or vice versa. That's something that works very powerfully too, because now you're, you know, people know the regular thing and now you're responding. So it's more of a conversation in that. So that's another thing. Is there a distribution service like TuneCord, DistroKid for independent artists that you would recommend or prefer and why? So every distribution service is literally a preference. TuneCord versus DistroKid versus United Masters, they all provide the same service, but one of them pay style may be a little different. Like United Masters has where you can do a subscription versus where TuneCord you pay per release. So it's really about your preference and then also how they give you those analytics on the back ends. TuneCord dashboard looks different from DistroKid's dashboard. Which dashboard do you prefer? And so distribution at a self-service level is strictly based on preference. So, you know, I would advise you try them out, but I also would say to this, this to you is once you find one you like, I will move all of your music to there because you don't want three or four different distribution company paying you. You wanna have it all in one place for easy use. So definitely, you know, figure out which one you like the best and then put all of your music in that one home. So because we're in a streaming era, there's no such thing as re-release. Once you've distributed something and it's touched Spotify or Apple, there's a cold and that's always gonna live. Even if you take the song down, you know, wait three months, re-release it again, it's gonna show up the same, the streams it's still gonna be there. So there's no such thing as re-releasing in the streaming industry. But again, music that's already out, it's never old. It can be five years, you know, the song's been out. It can pop today because of the tools that we have at our disposal because of how we're marketing music. So do you think it's best for artists to stay in the penance once they build a fan base? What are the benefits of labels these days? So again, this is a preference thing.  Like Money Man is an independent artist, you know? And he's streaming, I wanna say about 30 million streams a week, right? So he could go into a major label and maybe get to the point where he's streaming 100 million, but he just gave up 80% of that money. So now he's making actually less than he would have been making if he would have just stayed independent. And so that's, it could be a preference. It's really about how large do you wanna be? Because here we go, he's making less from streaming, but now because he's a larger artist, he can charge more for a show. So it's all a preference. It's all about how you wanna handle your business. Do you wanna bootstrap it and do it yourself? Or do you wanna partner in a label that's gonna pay for everything? You know, it's really about business and how do you wanna conduct your business? So there is no right or wrong. There is no better or worse. You know, a major label artist has just as much opportunity as an independent artist. So either way, it's totally fine. Wow, what's up? It's Brand Man, Sean. And if you got value from this video, we got a ton of value to offer you in brandmannetwork.com. It's completely free. The link is in the description. If you wanna talk with us directly or some of the people in our community in between videos, so you can ask questions specific to you or hop on one of the live sessions that you see on the channel. When we're speaking with other artists, brandmannetwork.com is the place to go hop into our app. It's really dope and you get access to free courses as well, but it might not be free forever. So hurry up and get in there before I change my mind.


lecture is going to be about designing quantum algorithms, so kind of different topic from what we saw so far, but still it will be heavily connected to this adversary method that we discussed last time. So the focus of today's lecture is the following one. So at first I will kind of argue that the adversary better that we saw last time can be formulated as semi-definite program. This is kind of easy to see, and then by taking the dual of this SDP we will see that there exists an algorithm that will achieve the optimal value of that SDP, a quantum query algorithm that achieves the optimal value. And so in particular it would implies that the adversary method in its more general form is always optimal with respect to quantum query complexity. So this is quite a beautiful result regarding quantum query complexity. As far as I know there is no equivalent statement for randomized query complexity for instance. Okay so let's start with the SDP view point. So this is what we saw last time. We proved that the quantum query complexity was at least this adversary value that depends on the function f that we want to compute. And it was expressed as a maximization over all symmetric matrices gamma with real entries either can be positive or negative. And that satisfied this consistency constraints which is that the xy entry has to be equal to 0 if f of x is equal to f of y. Okay if you don't have to distinguish the two inputs just take a weight equal to 0 on those particular coordinates of the matrix. So my first claim is that this is actually an SDP so let's just go over it to try to kind of transform it to something that looks like more to an SDP. So first we can replace this maximization over all the spectral norm of the gamma i. So if you remember gamma i was the gamma matrix in which we only keep the entries for which xi is different from yi. Okay so equivalently we can have an additional constraint which is for all i the operator norm is at most one. Okay this is completely equivalent and similarly we could introduce an additional variable epsilon a real number non-negative real number and at the constraint that the spectral norm of gamma is at most epsilon. Okay so those two constraints can be written down in the following form using the order over positive semi-definite matrices. Okay and this is essential this is an SDP this is much easier maybe to see that this is indeed an SDP. So now that we know that this is an SDP let's try to look at it at the dual so strong duality is gonna hold so I'm not gonna do the proof of what is the dual I'm just gonna give you the result and we'll go over it. So the dual is written on the right it's gonna be a minimization over n matrices with complex entries so v1 up to vn that means there is one matrix for each possible query index. Okay and given those matrices we want to maximize over all the possible input x the summation of vxxi. Okay so we take a particular position on the diagonal and we sum up over all the n matrices and this is what we want to minimize. Okay so what are the constraints so first we have this first constraint which say that if we fix x and y so a particular position in those matrices so the dimension of the matrices is 2 to the n times 2 to the n so if we fix a particular position and if we take a summation over all the vi and just keeping the i for which xi is not equal to yi then it must be equal to 1 if and only if f of x is not equal to f of y. Okay and the matrices vi they have to be positive semi-definite. Okay so this is the dual again and it achieves exactly the same optimal value as the primal. So let's try to modify it again a little bit in a form which will be more convenient to manipulate later on because the goal at the end is to come up with an algorithm achieving the optimal value. So let's look at this positive semi-definite constraint and so what does it mean? It means that if we look at this inner product for all vector y it has to be non-negative it is equivalent and another equivalent formulation of positive semi-definiteness is to say that each matrix vi is PSD if and only if you can write it as a gram matrix. Okay so we have a bench of 2 to the n vectors of dimension 2 to the n and each entry xy is the inner product between the vector index by x and the vector index by y. Okay so using this equivalent statement we can have the following new formulation of the dual which is now instead of minimizing over PhD matrices what we do is we minimize over a collection of vectors of dimension n. Okay so those vectors denoted by w xi there is one for each possible input x and for each possible query index i. Okay and by using this gram matrix formulation we have the following thing so what we want now to optimize is this minimum of the max of the sum of the norm of all the sum of the squared norm of those vectors. Okay and the constraint that we have is if we take if we look at the sum of the inner product over all i for which x i is not equal to y i it has to be 1 if and only if f of x is not equal to f of y. Okay just by using the gram matrix viewpoint you can easily arrive at this formulation. Okay so the program on the right will be the program that we will start from in order to design a quantum algorithm achieving this optimal value. So let's move to the quantum algorithm and this is the main statement that we will prove. So we have this dual SDP and the theorem say that if you pick any feasible solution it doesn't have to be the best one if you take any feasible solution then there exists a way of converging it into a quantum query algorithm that computes f with success probability 2 third and by using a number of quantum queries which is equal to the value of that solution. Okay so in particular if you take an optimal solution then what you will get as a corollary is that qf is a constant factor equal to the adversary bound. So is there any question on this statement? Okay so let's go over the construction of this algorithm. So let me first give you what will be the high level idea, the type of technique that we will be using to design this algorithm and then we will instantiate those techniques. So the primitive that we will be using is the so-called angle detection algorithm. So this is something based on the quantum Fourier transform and phase estimation. So let's look first at a simple example. So imagine you are given as input an integer t it's going to be the number of quantum query that you are allowed to do and you have control access to a black box unitary that is either the identity or it is a rotation by an angle pi over t. Okay so black box access means that you can just apply this unitary t times but you don't have access to the internal machinery of how it is implemented. Okay and the goal is to decide in which case you are so either identity or rotation. So there is a very simple algorithm which consists of using two registers. On the first register you apply a Hadamard and then control on the value contained in this first register you apply ut times. Okay so if you have a zero you apply ut times on the second register you apply identity and if you have one you apply ut times. Okay at the end you again apply the Hadamard on the first register. So it's quite simple to see if you do the computation that if you was equal to the identity then at the end you would get the vector the all zero vector and if you was equal to the rotation you would observe a one in the first register. Okay so by t application of this unitary you can decide in which case you are. Okay so the idea is to kind of rotate when you use the rotation you rotate until you can perfectly distinguish between the initial state and the rotated state. So the way we will use this idea is as follows. So in our quantum algorithm this identity case in some sense will correspond to having f of x equal to 1. The rotation will correspond to having f of x equal to 0 and this number t will correspond to the value of the feasible solution. So the number of quantum queries that we have access to. Okay so in some sense we will have to come up with a unitary you that satisfies those two statements. So still this is a very simple like this is a simplification of what we will really do at the end. So let's look at a slightly more general scenario which again you want to distinguish between identity and rotation but now in the second case where you have a rotation the angle is not necessarily equal to pi over t. You just know that this is at least pi over t. Okay so it can be much lower than that just it is at least pi over t and again you want to distinguish between the two cases. So it's quite simple to generalize a previous approach for that what we can do is we can use quantum phase estimation with t steps of computation. Okay so if you play as input an eigenvector of the rotation and if you apply quantum phase estimation then if you have the identity nothing will happen. So the second register that contain the phase estimate will be unchanged and if you have if you do have the rotation then the second register will contain an estimate of the phi up to a shift of about 1 over t. Okay because you are running t steps of phase estimation and now because you have this promise that phi is at least pi over t then this phase estimate has to be non-zero. Okay so you can detect in which case you are even if the rotation angle is not exactly known at the beginning. So this will be closer to what will apply in our algorithm. Okay so this quantity is going to be non-zero so this is what we can detect between the two cases. Okay so now how do we construct this unitary U? So this is how U will be obtained. It will be based on the well-known Jordan's lemma. So U will be chosen as a product of two reflections for two particular projectors pi and delta that we will construct later on and Jordan's lemma tells us that any such operator can be blocked diagonalized in the following way. So you will have a block of plus minus identity and then you will have blocks of rotation by certain angles. Okay so in some sense this is the same situation as before except that you have blocks of identity and rotation. Okay and the algorithm at the end will kind of work in superposition over all those eigenspaces. Okay so when f of x is equal to 1 we will have a starting state which will be mostly in the identity subspace and when f of x will be equal to 0 we will have a starting state which will be in those blocks of rotation with sufficiently large rotation angle. Okay so it will be the same as before but then in all those blocks simultaneously. Yes yeah so here I'm just assuming that it is given as input. Okay now in the application we will know that we will have some vector that we will know how to construct and this vector will be supported over eigen vectors that satisfy the good property of being in the right subspaces. Okay so this will be given by the construction. Okay so what remains to do is to construct this unitary U and to analyze its eigenspaces starting from the dual SDP. Okay so I'm just giving you the dual SDP again and for starting the proof what we do is we take any feasible solution so it's a collection of vectors of size 2 to the n of dimension 2 to the n and we let t be the value of this feasible solution. Okay and the goal is to design a quantum algorithm that performs loosely t quantum queries for solving the problem for computing f of x. So first this is a Hilbert space over which the quantum algorithm will operate. So this is like the all the possible state of the quantum memory. It's going to be superposition over those basic states. So we will have a special state denoted with a star symbol and then we will have all those states in which you have IB so query index in some sense and boolean value B and then the last register will contain a vector w of size 2 to the n. Okay so the algorithm the state of the algorithm at any time of the computation will be a superposition over those particular basic states. So now we define two important objects for the proof. So those are two families of vectors indexed by x so indexed by all the possible inputs. So we have the vector tx plus and the vectors tx minus. These are not unit vectors but it's okay. So in the first case we have a superposition over the star the star symbol and then all the ix i and those state wx i which are provided by the quantum by the original SDP by the original feasible solution. Again for the tx minus it's quite similar except we have a minus. The amplitude in the middle is different so it's minus square root 3t and then the xi is replaced with 1 minus xi. Okay so before moving forward let me give you some properties about those about those vectors which will be useful for later on. So a first useful property is to look at the inner product between tx plus and ty minus for two possible for x and y. So we have the following claim which is if you look at this inner product so let's look at ti plus for any y and tx minus for any x. So this is going to be equal to 1 if only if f of x is equal to f of y. Okay so what it means so if f of x is equal to f of y then you have something like that. So the two vectors will be aligned so you will have tx minus and ty plus because they don't have the same size but it's okay. And if f of x is different from f of y that will be orthogonal. Okay so let's prove it it's very simple but it's gonna use the constraints provided by the SDP. Okay so the star state will give us so this is equal it will give us a 1 contribution so we will have 1 and then minus so the 1 over square root 3t and square root 3t will cancel out with each other so it will just remain a summation over all i. Okay so now you can observe that the inner product of ixi with i yi with minus with 1 minus yi will be none zero if and only if they differ on coordinate i. Okay so it will be a summation over all the indices for which xi is not equal to yi. Okay again it is because in the definition of t minus we took 1 minus xi in the second register. Okay so what remains is just the inner product of wxi with wyi. Okay now if you look at this quantity it's exactly something that appears in one of the constraints of our SDP and it must be 1 if and only if f of x is different from f of y. Okay so by using the constraint of the SDP this must be equal to 1 minus okay I'm just rewriting this equality you get the statement of the claim. Okay so let's move forward yes you could have taken what yeah so far it's not important it will be important later on okay it would be important because the quake complexity of the algorithm we will depend on the norm of those states and for instance the norm of the right state is rousality. Okay so the norm in some sense is encoding the quake complexity here it will encode some property about like how precise we have to grant quantum phase estimation. Okay so now let's define the projectors that will be used to apply this Jordan's lemma and this angle detection algorithm. The definition will use those vectors t plus and t minus so this is the definition. So first the projector so we have first a projector pi for each possible input x and it is defined as follows. It will project onto the state for which we have either a star or we have a consistency between i and the value contained in register on the second register. Okay so it's kind of like a consistency check so this projector depends on the input and if you want to implement this projection you have to do one or two queries to the input okay so it will cost you a constant number of quantum queries. The second projector delta is a projection over the span of all the t plus vectors but restricted to the input y for which f of y is equal to 1. Okay so the second projector does not depend on the input. Okay and now this is a product of reflection that we will be using in the algorithm so ux it is indexed by the input of the algorithm and it is a reflection through the projector delta followed by a reflection through the projector pi x. Okay so again it's important to notice that if you want to implement one application of ux you have to use two quantum queries. Okay so if you need to apply t times ux you will need to you will need to do order t quantum queries. Okay so we will do the analysis of this product of reflection but maybe before that let me give you some few more properties about the relation between those projects those projectors and the vector t plus and t minus. Okay so the first claim that I want to write is when f of x is equal to zero then the vector tx minus is in the kernel of delta. Okay so delta of tx minus is equal to zero. Okay and second statement if you project tx plus on to pi x you will get the star state. Okay so if I draw a picture it means that in some sense so let's imagine this is delta okay you should imagine it's in higher dimension but this is delta this is pi x. Okay then here you would have tx minus so tx minus is orthogonal to delta and if you look at the projection over pi x here you would recover the star state. Okay so the proof is immediate I'm not going to write it down it's just followed by just followed by the definition of tx minus. Okay so for the first point why is it in the kernel because delta is projection over the span of tx plus and we know by the first claim that when f of that in that case it will be orthogonal to all the vector in the span of delta. Okay on the second point this is just a simple calculation using the definition of pi x and the fact that the vector tx minus do not satisfy the consistency constraint so just the star state will remain in in the projection. Yes it's one minus xi it's like the complement of xi so xi is just a single bit so you take the complement. Okay so this is when f of x is equal to zero now let's look at the case when f of x is equal to one so if f of x is equal to one then we have that tx plus is a one eigenvector of ux. Okay so if you apply ux the product of the two reflection on tx plus it will be equal to tx plus so it's a one eigen vector. Okay so why I mean this is also simple to see but you can do the computation so why is it the case so first if you apply delta on tx plus so by definition delta project on to the span of all the tx plus for which f of x is equal to one. Okay so you are in the span of tx plus so this is equal to tx plus. Okay and similarly if you now project on to pi x plus pi x okay you can just look at the definition of pi x it will like if you apply tx plus it will just be the same as as output. Okay so keep those two properties in mind that will be very useful for later in the proof so this is now the main statement that we will show and once you have that this will essentially conclude the proof of the correctness of the algorithm. Okay so we will prove the following thing and this is all you need to apply those angle detection algorithm. So let's define a project of p theta that projects on to the eigen spaces of this ux with eigen value smaller than theta in absolute value. Okay so remember this Jordan's lemma you have blocks of identity and rotation so here we just project on to the eigen spaces for which the rotation angle is smaller than the value theta okay theta is any parameter and now we have two lemma that suffices to conclude the proof. The first lemma is when f of x is equal to one so if you remember I said that we will be close to the identity case so here it will be that the star state will be mostly supported over eigen spaces for which the rotation angle is zero. Projection according to p0 so it means this is like identity up to a small error term which has a square norm of at most one third. Okay so we can have a small failure probability but it's okay and now when f of x is equal to zero we have kind of the opposite because now the star state will be mostly supported up to some small error term over the eigen spaces for which the rotation angle is at least one over two t. Okay so we have like either a rotation angle zero or a rotation angle of at least one over two t. Okay so once you have such lemma what you can do is you can just take the star state as input you can run quantum phase estimation you measure the phase estimate if it is zero then with high probability you are in the first case so you output f of x equals zero and if the phase estimate is non-zero then you are in the second case and so you output one. Okay so coming back to the question that we had at the beginning about this eigen vector I mean the star state is playing the role of this eigen vector so it's like a superposition over eigen vectors supported over eigen spaces with a large rotation angle. Okay so let's do the proof of those two of those lemma and it will conclude the analysis of the algorithm. Okay so for the first lemma we what we want to do is we want to show that the error term has a small norm because this error term this is a distance that you are from the right subspace so we just want to prove that this error term is of small norm. Okay so by definition it is equal to the norm of identity minus projection onto identity eigen space applied on the star state. Okay so now we will use the definition of tx plus which is equal to the star state plus this plus this superposition so we can replace the star with tx plus minus summation over the ixiwxi. Okay and now observe that when f of x is equal to 1 we prove this statement so when f of x is equal to 1 we show that this was a one eigen vector of ux so equivalently it means like an equivalent statement is to say that if you apply p0 on tx plus you get tx plus. Okay this is exactly the same thing. Say that this is a one eigen vector. Okay so if I replace the star state with tx plus minus this summation the tx plus will vanish because of this claim. Okay so what will remain is just the summation that we have in the right hand side of the definition of tx plus so it will give us 1 over 3t then the norm of identity minus p0 and then the sum over ixiwxi. Okay so now I can just remove this identity minus pi0 by using contractivity and I can just keep the summation over all i so this is at most 1 over 3t and then a summation over all i of the norm of that and the norm of that is just the norm of wxi. Wxi you see like it's a definition of tx plus. Okay and now just by assumption at the beginning we pick a feasible solution of value t so this summation is at most t and so the whole term is at most one-third. Okay so it's not that we are at distance at most one-third from this pi0 eigen space. So this is for the first lemma. Now the second lemma is to prove that when f of x is instead equal to zero then we are far from such an eigen space. Let's prove the second lemma. So for the second lemma we will be using this previous claim and this lemma is going to be a bit more subtle. So we had this picture which is when f of x is equal to zero then the vector tx minus is orthogonal to the support of delta and its projection on pi x is equal to the star state. Okay so let's imagine that let's denote this by let's denote the angle between pi x and theta to be on delta to be theta over 2. I guess I'm just working in a single two-dimensional space but because of Jordan's lemma you could generalize it that to a block data generalization. So what can we say about what can we say about the length of the star state with respect to the length of tx minus given that the angle is theta over 2. This is just some simple trigonometric identity and what you can say is the following thing. You can say that the norm of the star state should not do it that way. Okay let's do it that way. So we can say that the norm of the star state is equal to sin theta over 2 times the norm of tx minus. Okay so this is sometimes called the effective spectral gap lemma. It gives you like a condition it gives you a statement about the length of a vector depending on the angle between two different projections. Okay so how do we use that in the proof? So again it suffices to bound the norm of the error term okay which in that case will be what we get when we project on to the eigen space with rotation angle at most 1 over 2t the star state. Okay so now the star state was equal to the projection of tx minus over pi x so this is equal to p 1 over 2t pi x tx minus. Okay and now we can use we can use this trigonometric identity to show that this is going to be at most the sin square of 1 over 2t let the factor 4 I think times the norm of tx minus square. Okay so again why do we have such a thing? We only care about the eigen space that corresponds to rotation of an angle at most 1 over 2t. So we have this picture over many different eigen spaces but each of which has an angle of one of at most 1 over 2t. So theta is at most 1 over 2t and now because of those properties we have this relationship between the length of the star state and the length of tx minus. Okay so this is mostly all we need to conclude the proof so let me maybe continue here so we just want to bound this last quantity so the sin square we will replace it with just the square of the inner quantity so it's going to give us 1 over 16t square. Okay and what is the length of tx minus? Well it's 1 coming from the star state plus 3t times a summation of the squared length of the wxi. Okay and again by using that we have a feasible solution of value t this is at most t. Okay and now it is easy to prove that this is at most 1 over 3, 1 over 3. Okay and this concludes the proof of how to derive a quantum query algorithm from the dual SDP. Is there any question on this construction? No so actually okay what we do is we look at the projection in practice there may be many two-dimensional space so we do analysis for the projection of each of those two states in each two-dimensional space. Okay so like you would have to project this into the corresponding two-dimensional space and same thing for the star state. Okay so they are supported over all the I mean over the entire Hilbert space and we do the analysis block by block of dimension two. Okay so if there is no other question I would like just to conclude on a few consequences of this construction so of course the next question is can we use this kind of construction to arrive at new quantum algorithm or is it just like something which is hard to apply? So there has been different attempts of kind of giving maybe a more simpler framework to work with using those ideas to design new quantum algorithm. One such equivalent formulation is the so-called quantum span program which gives you like a different way of designing optimal quantum query algorithm and so these are still quite complicated to use in practice but they have some very nice properties such as the ability to compose very easily so they were used for instance for finding quantum algorithm for formula evaluation and another extension of this framework that I would like to tell a few words about are called learning graphs. Okay so this is something which was invented by Alexander Beloff and this is based on this on the construction that we just show before extended to give you some more natural approach for designing quantum algorithm. So those learning graph what's nice about them is in some sense the feasibility condition of the SDP will turn into some flow condition over some network and this would be much simpler to reason about and indeed there has been some very nice quantum algorithm designed using this learning graph framework so for instance for triangle finding an order of graph containment problem and also for cady's thickness and so on so it's quite a fruitful way of thinking when you want to design quantum algorithms. Okay so we just try to define you what is this framework and we will see how it relates to the dual SDP construction that we just show before. Okay so what's the learning graph? So a learning graph is defined as being a subgraph of the power set graph over 1 to n. What does it mean? So n again this is a size of your input a number of indices that you can query and the power set is just a set over all the possible subsets of indices in which you have an edge if and only if one set is included to the next one and the size differ by one. Okay and the learning graph is a subset of this large power set graph so we can we just keep some edges we can decide which edges we want to keep we always have to start with the empty set but we don't have to take all edges so secondly we have to choose some non-negative weights on the edges so one weight for each edge okay and then there is this quantity called a one certificate we kind of already touched this quantity into one problem session so what is a one certificate? So this is something which is defined for all the input x that evaluates to that evaluate to one and one certificate is a subset of indices such that if you fix if you know the value of those indices then in some sense it determines the output of the function okay so let me write it properly so we say that a subset of indices is a one certificate for x okay so it depends on which x you pick so x has to evaluate to one if you have f of x equal f of y equal one for all y such that xs is equal to ys okay so if you take any other input y that agree that agrees with x on the indices containing s then it must evaluate to value one okay it kind of certifies that the output has to be equal to one okay and we have this condition in the definition of the learning graph which is the learning graph is correct if for each x there is at least one certificate contained in some node okay so for any x somewhere in the graph there has to be a one certificate okay that could be more than one but there has to be at least one okay next object and last one that we need for the definition we will look at flows over this directed graph so what we do is we take a unit flow so we inject a flow of value one in the empty in the vertex label by the empty set okay and this flow have the property that for each node what comes in has to come out okay and the only vertices for which something may not come out so the things they have to be one certificate okay so the only possible things of this flow must be one certificate okay and if the flow satisfy this property we say that it is a valid flow so of course you may have many possible valid flows over over this graph so now given all those definition this is what is the complexity of this computational model so the complexity is the square root of two quantities m0 and m1 m0 this is just the total weight of the graphs or summation over all the possible weights and the value f1 this is a maximization over all the possible input that satisfies f of x equal 1 of the best possible valid flow minimization over all the possible valid flow of this quantity so you take a summation over all the edges of the value of the flow on that edges square divided by the weight of this edge okay and you say that such a learning graph computes your function f with this complexity so it seems to be quite far from quantum computing and quantum algorithm but there is this nice theorem which tells you that actually the quantum quite complexity is always at most the square root of m0 and m1 okay so here it's not exactly equal as before there may be some large gap you may lose something using this different computational model but as I said for many problems of interest it turned out that it will give you some non-trivial quantum algorithm so I'm not going to prove this into detail it's not that complicated just going to give you a hint about the construction so the idea is to reduce to these dual sdp so for that we just have to come up with a feasible solution to the sdp whose value is the square root of m0 m1 okay so this is what's what's the feasible solution should be if you want to prove the statement so the construction depends on whether f of x is equal to 0 or 1 it's not very complicated to show that it does achieve the right optimal value and the crucial argument in the proof in showing that this is indeed a feasible solution is the following one so if f of x is not equal to f of y remember that this summation of inner products has to be equal to 1 this is one of this was one of the constraints of the dual sdp and now this constraint will be satisfied because if you do the computation you will see that this summation over inner product is exactly equal to the flow that goes through a particular cut of the graph one side of the cut correspond to a subset over which x of s is equal to y of x and the other side correspond to x of s being not equal to y of s okay and because you have a cut there is a flow of value 1 going through the cut so this summation over inner product will be equal to 1 so this is really the crucial property that you you can use to prove that this is indeed a feasible solution to the to the dual sdp and implying that qf is that more the square root of the value of is that more the value of this learning graph so maybe very quickly let me just give you one example of how to apply this framework for designing a quantum algorithm in case you want to solve the following problem which is the collision finding of this the decision version of the collision finding problem so here you have an input x of size n okay the input is made of is defined over a large alphabet not over binary numbers but you can generalize the framework to such such a case and you want to distinguish between two cases either it is a one-to-one input meaning it is a permutation each symbol will appear only once or it is a two-to-one input meaning each symbol appear exactly twice in the input okay so what learning graph can we use in that case well this is what we can do so we start with the empty set then we progressively add the integer one up to m to the one over three okay so we have a path of length closely n to the one-third and then we add all the remaining elements one by one in different subsets okay so this is gonna be the choice that we that we make now for the weight when we are in the initial path the weight will be pretty large m to the two-third and when we are in the last part of the learning graph the weight will all be equal to one okay so m zero the total summation over all weight is equal to loosely n now we have to define a flow okay so the flow has to be as has to be has to be defined for each possible input x for which the output has to be one so we want to output one when the input is two-to-one okay so meaning that each coordinate each value appears twice in the input so we want to define a flow with that gives us a small value so this is how we define the corresponding flow there are two cases either there is already either we already saw a same value twice in the initial path in which case we can just take a flow that has value one for the initial path and then value one for any of the last edges okay so let's just pick one for the top edge okay and this is indeed a correct flow because in that case a certificate is the position of two indices that are equal to each other and if we if we saw a collision among those first n to the one-third values then in particular we have a certificate contained in this subsets okay so now second case what if we didn't see a collision when we look at the value whose indices are between one and n to the one-third and in that case we use a different flow in which we have value one in the initial path and then we put a value one over n to the one-third for each subsequent edges that go to a collision okay and we know that there will exist n to the one-third such edges because for each of the n to the one-third initial value there will collide with some new index given by one of those edges okay and if you look at the value of given by this choice of flows you will get that m1 is loosely one over n to the one-third and so the complexity of the corresponding quantum algorithm is order n to the one-third okay so I mean we already knew quantum algorithm for solving collision finding based on Grover search but it just illustrates how to apply this framework to the collision problem and as I said it can be applied to much more complicated problem using some modification and generalization of learning graph okay I'm going to conclude the presentation thank you


Welcome back to Colorado Christian University and this month's edition of the RMAC Showcase. Kind of the first time I really, like, thought of death. I don't think anyone would disagree with the fact that the Rocky Mountain Athletic Conference is the best track and field conference in the country. And the athletes who participate in this conference are only made stronger because of that competition. But none are as strong as Anders Hansen, whose opponent is bigger than anything the conference ever could have thrown his way. Right off the gun, he just wanted to compete and he viewed himself as a contender and someone that could perform at a very high level. And at that time, we really needed that in our guys program. And he was just in prime shape, the best shape we've ever seen out of a freshman in our program. Tuesday night, and I walked out of my bathroom and my roommate was also my teammate. And I remember walking out of the bathroom and I was like, I'm sure that's like breaking out in this rash. It's kind of weird. I met up with my brother and his wife at the airport in California and we took an Uber to the hotel. And in the Uber, I was googling symptoms of a heart attack. There was just so much pressure on my heart. Didn't really know what was going on with that. Other than that, again, the rash is just still spreading. And so again, they sent me home. And so we were staying at my aunt and uncle's house in California. And I remember just waking up and just feeling so miserable. And so we went back to the hotel and my mom was like, Adam, you've got to keep my kid here. He's not right. And that's when I just started to get a ton of different doctors on my case. Again, a lot of different symptoms started to flare up now. I was borderline septic, going into the hospital too. But every day in the hospital, I just started to get worse and worse. It was really hard. And I actually found out he was sick from my dad just texting me, like, hey, Andrews is in the hospital. It sounds pretty serious. My eyes, I was basically a blind kid around the hospital. All the lights were off just covering my eyes. Didn't use my phone, no TV and stuff. So I just kept my eyes shut. They were just bloodshot red. My hearing started to go really bad in my ears from the mucosa. My hands and feet started peeling. My body just peeled like a snake. I actually didn't get to talk to him at all when he was in the hospital. I think he might have sent me one text or maybe, but mostly it was just like through his parents. We're on day eight and a rheumatologist comes into the room and she looks at me for a couple of minutes. She goes into the room more than five minutes, asks me two or three questions, leaves the room and comes back in a few minutes later and says, you have Kawasaki disease. It was really hard. But I think ultimately I'm just really thankful that he was in California with his family. It was really difficult but I knew he was in like the best hands possible and had great doctors out there and just being with his whole family was really good. His eyes were kind of foggy and he couldn't hear that well. So it was kind of scary to see him like that and just not really be able to recognize him. When he was sick it was just hard to not be able to like support him and like be there in person. But yeah, I think it's made our relationship just a lot stronger knowing that like no matter what happens like sickness or health like we're going to be there and take care of each other with whatever comes up in life. Glad to see Anders is doing well and wish both him and his wife the best in the future. Well, I mentioned the stiff competition around the conference. If you can be towards the top of the RMAC you can seriously take pride in that. Carly Schwartzkoff joins us for the first time as she sits down with one of the Cougar's top distance athletes. Mandy Middleton has no problem handling adversity from joining a program with no track to becoming CCU's top distance runner. A small school with room to grow was a perfect combination for Mandy Middleton as she was looking for colleges to attend. I loved the team. I loved CCU like as a small school one of the things that I knew that I didn't want to do was go like to a really large D1 and either get lost in the mix of athletes or it was really important to me that for my major I'm a biochem major. It was really important to me that I didn't have to go sit through a class of like 600 people for intro to chem. Another aspect she liked was the opportunity to be a building block for a new program as the Cougars had just announced a brand new track and field team. I think that that's something that I definitely would have still chosen either way. I would have much rather been part of a program that has a lot of room to go, grow than just a program that has a very high level of like awards and ceremonies. And she has helped grow the program. Something head-tracking cross-country coach John Pogue knows would have been much more difficult without the addition of Middleton. She's just an important personality for our program because she's so competitive. So when I came into the program there were some good runners around but very few had the competitive edge and instinct that Mandy's brought to our team. That drive helped Middleton stand out as she earned the right to represent CCU at last year's national cross-country meet. The first Cougar to make Nationals since 2013. I think with all athletes trying to perform at a high level you have to have a built-in sense of confidence and certainly as coaches we're trying to help kids ascend to that confidence during their time here but Mandy showed up with it. You know there is a belief in her and a backbone to her that is really, it would be hard to coach. She just showed up with it.  An autoimmune disease that causes all of someone's hair to fall out. It's really easy to pick me out of a crowd which is awesome, especially on a national level field like cross-country. It's very easy to stand up at the top and be like, ah, there's my daughter, there's my running, which is fun. But I think just representing CCU and what CCU stands for and the sportsmanship that we strive for and trying to love other people well even when we're competing against them I think, for me, that's something I'm much more proud of to be able to compete at a national level and be able to compete with CCU on my jersey then be up there as the only bold runner in the field. I've very frequently had a lot of people think I've had cancer or dying which is always hilarious when I'm on that race and like going to chemo and I'm like, no, no, no. I'm okay. She's more than okay as Middleton's name can be seen all over CCU's record books in both cross-country and track and field. With the RMAC Showcase, I'm Carly Schwartzkopf. Thank you Carly. The NCAA Outdoor National Championships take place May 23rd through the 25th. Well, that brings us to half-time on this edition of the RMAC Showcase when we come back, a volleyball star who is also mighty with a pen. Thank you.


Mahatma's acts are very simple, very, very simple, but precise and clearly pointed in one direction. I was at the Sabramati Ashram when we went through Amatabad.  I asked the people there, how many people walked with him? Because I've seen in movie, thousands of people walked with him. I had a doubt about that. Because I know if I walk, thousands of people will not walk with me.  They said seventy-two people walked with him.  I'm sure a whole lot of depressive people would have made jokes.  This is rubbish. But that fist full of salt melted a whole great empire into surrender. So your missed call. Do not underestimate the missed call. People are giving a missed call, you know these online warriors making a call and saying, where is the river not coming up? It does not come up like that. This is not an online river. This is the real thing we're talking about.  But if it's precise and focused to one direction, we can have our rivers flowing once again.