Our rulers are not rational creatures, notes from the edge of the narrative matrix. We survived the nuclear horror of the Cold War, only to see our rulers turn around and start another one for no legitimate reason, this time against two nations simultaneously. And almost no one objected. The first Cold War was colored by a healthy fear of nuclear annihilation, by support for détente in mainstream political factions, and by an understanding that this was a situation we should ideally get ourselves out of as soon as possible. This new Cold War features none of these, and is against two nuclear powers instead of just one. Twice as many unpredictable moving parts, twice as many things that can go cataclysmically wrong, and this one's got a whole new dimension of danger in the race to put weapons in space. Our odds are not good. I probably won't feel such an urgent need to keep talking about this as much once I start seeing some real sustained acknowledgement in mainstream circles that there is a very, very dangerous game being played here, and heroic efforts need to be made to de-escalate it. But right now there just isn't. Everyone is asleep at the wheel. Nobody's noticing how dangerous this nuclear tightrope walk is getting. China is the same kind of country it was during the 2008 Olympics in Beijing. All that's changed is the level of power it has on the world stage, and therefore the threat level it poses to US planetary domination. China is building up its military might in correct anticipation of an eventual confrontation with the US Empire. The Empire's choices are now A, abandon the goal of indefinite unipolar hegemony and pursue détente, or B, orchestrate some kind of massive attack soon before China becomes too powerful to defeat. I will admit to being more rude to hysterical anti-China types than I am to most people.  They've seriously got the worst low info to high confidence ratio of any faction I've ever encountered. Many Bible verses have done lots of damage over the years, but among the most destructive has been the poor you will always have with you from Matthew 2611. It's been used often to argue that poverty cannot be eliminated, which at this point in our development is simply false. As Buckminster Fuller once said, It is now highly feasible to take care of everybody on earth at a higher standard of living than any have ever known. It no longer has to be you or me. Selfishness is unnecessary. War is obsolete. It is a matter of converting high technology from weaponry to livingry. Allowing poverty to continue is now a choice. It is not a choice being made by you or me or any ordinary person, but it is still a choice being made by the drivers of global capitalism. We could eliminate it, but we don't, and we accept this as normal because we're brainwashed. We could be living in a world where people collaborate with each other toward everyone's benefit, but instead we're waiting around to find out if we'll all die in a nuclear holocaust because some neocons convinced everyone in Washington that the US must maintain unipolar hegemony. People ask, how come you still write about the world like nothing's changed since COVID? Because as far as my line of commentary is concerned, nothing has. We're still hurtling toward Armageddon and dystopia just as I was describing before 2020. There are just new justifications and details behind some aspects of that trajectory. We're still headed for disaster unless the people rise up and use the power of their numbers to turn us away from the trajectory toward doom, and that's still not going to happen as long as people are being propagandized. This is all still the case just as it was in 2019. The emotions of the hot news story of the day often make it hard for people to clearly see the horrific nature of the status quo that has already been in place for a long time. The abuses of which have been far, far greater than the COVID-related ones. In terms of abusive systems held in place by propaganda and authoritarian force, the ones we had in place in 2019 dwarfed the measures we've put in place since by orders of magnitude. Many just didn't notice them because they've been conditioned to accept them as normal.  If someone was teleported here from an alternate Earth with a healthy society, they would never stop screaming. Leftists who spend a lot of energy conformity policing the online left are admitting that they're only in this for the egoic currency of social media reactions. There's no other reason to look at our world's problems and decide that that's the most useful expenditure of your energy.  You're not interested in fixing this thing. The most powerful people in our world pursue power for its own sake and do so with amoeba-like levels of wisdom and insight. Don't attribute any higher order of decision-making capability to them than you would to any random acquaintance in your life. If anything, attribute less. Most people are deeply unconscious and patterned. Ruling elites are no exception and in fact they are more unconscious. It's a common error to think of these people as rational actors. Really their minds are running on autopilot in response to conditioning put in place long ago. That's why you'll see them continuing policies which destroy the biosphere they depend on for survival or escalating military aggressions between nuclear powers. They are not making cool, rational decisions. They're acting out impulses within themselves that they don't understand. You'll hear people say, they wouldn't nuke themselves, it's irrational. Or if the climate situation was really that bad they'd have taken drastic action long ago. But this assumes you're dealing with rational minds and not what are essentially neurological computer programs. Really you're just looking at highly traumatized organisms mindlessly acting out patterns set in place much earlier in their lives to cope with distress and gain a feeling of safety and security. And virtually none of those patterns are useful for running the world in a sane way. Any analysis which holds that elites wouldn't do something simply because it's not rational is an analysis which emits the important fact that as Robert Heinlein put it, man is not a rational animal. He is a rationalizing animal. These people are not gods. They're barely even humans. You're far from the truth if you believe the official government runs things. You are closer to the truth if you believe unelected plutocrats and secretive agencies run things. You are standing in the truth if you see that the self is an illusion and no one ultimately runs things. It's not true that beauty is in the eye of the beholder. The absence of beauty is. Beauty is everywhere. It's the natural default state of perception. The inability to see beauty in something is the result of mental projections added on to that natural state by the beholder.


Hey what's up you guys, welcome to my channel. If you're new here, hi, hello, I'm Lydia. Today I want to go over a message that I got sent.  I'll put it on screen so you can see what I'm reading.    Let's be honest, you'd touch your kid and blame your autism. I would never touch your kid, ever.   Especially with you being so close to pedophiles.  Me and my mom are actually friends and she bought my sisters down to London so I could see them just saying.  I live in London because I studied yesterday in London. Big shock, I know. Grady, fat, greedy and fat. Well, I haven't eaten meals for the last two days. So I don't know how I'm greedy. In fact, I'm not. A weight of 54kg. The thing is no one actually knows the reason that me and my mom caught off contact with each other for the year. No one knows the reason behind that. So don't make assumptions and what you don't know.  Why would I never touch a kid? And why would I blame my autism? Autism has got nothing to do with anything.   But what are your thoughts on this? Let me know in the comments down below. So look out for this video and I'll see you guys on Friday. Peace.


Hey guys, welcome to the 30 Paintings in 30 Days project. If you choose to join me on the 30 Paintings in 30 Days journey, I hope that you do share and tag me and post like on social media and stuff, maybe film some videos, tag me in the description, something like that. I am kind of excited about the project. I do do daily drawing. I don't necessarily do daily painting, but making a daily practice out of something like this encourages you to get better at it, encourages you to work it into your daily routine or weekly routine. It also is a way to use up supplies. So if that's your goal, maybe you don't wanna do 30 paintings in 30 days, but you wanna do 30 collages in 30 days, that works too. So let me know, let's get to painting and I'll see you then. Hey guys, we are here for painting number 25. All right, so my little inspiration books I'm running low on them. I do have other pictures laying around and my People book, which is a bigger book, but I'm gonna try to find a photo here that inspires me. I thought I was actually out and I just found this one like literally as I was turning on the camera. So let me find a photo. Maybe we're gonna do some cherry blossoms. We have a couple of pages here right in front of cherry blossoms. So let me find something, I'll be right back. Okay, I found another poppy sort of shape that I really love, that I wanna try. So, and interesting colors. It has a really bright, brilliant pink color to the flower, which I don't exactly have here in the palette, but let's see what we can mix up. So the Shmiiki palette has a magenta, which is a great color.  Now these Shmiiki paints were dried in the pan. They're not tubes. So it takes a little bit to get them rehydrated. That's actually a pretty good match for the color in the inspiration photo. I like that and I might take some of it over here.  Now this palette does have a Chinese white, which is an opaque sort of more of a gouache-type color. So we're gonna take some of that and put it here with some of this magenta. And we're gonna of course start with the lighter color, add some paint, grab some water, move the paint around. Again, not a super huge fan of this paper because I don't, probably because I don't work with it enough and it really grabs the paint really quickly. And if you're working with paper that is gonna do that and you're doing client work or something you wanna hang on the wall, you probably wanna take some smaller pieces of it, like something in a journal or tear off some smaller chunks of it and do some of these little studies so you can really sort of get used to working with the paper before you do the actual big piece that's gonna hang on the wall. You can do some little tests and some studies. So I am taking the undiluted magenta and just starting to try to define some sort of petal-y shapes. I'm working with the paint now straight out of the pan that it's in and the paint that's on here is still wet. Again, this paper absorbs the paint really quickly so it's not spreading out as much as it normally would on some of the other papers that I work with but it is doing sort of what I want it to. Hate to say it but I think I might be getting a bit used to working with this paper. Okay, and we're gonna rinse our brush off. I'm gonna take some of that Chinese white and I'm gonna just dab it here in the photo. The tops of the petals are like being hit by the sun and they have this sort of really light pink almost a white reflection. So we're gonna add that, let that dry for a little bit. We're gonna go down below the flower and I'm going to use, I think I'm gonna use that olive green yellow that's in here that we used in the last painting to the stem. It has these seed pods in the photo that are sort of hanging down. We will make a couple of them again. I'm just using, do you see that? I'm just using the very tip of my flat brush. I haven't switched brushes yet. You really don't need a whole ton of paint brushes. You really can get away with a flat and a couple of rounds and really that's it. My three favorite brushes are these three in size. So, and I do love the Princeton brushes. These are a Skoda, but I have these two in Princeton also. So a half inch flat, a number four round and a number one round. You can do a lot with just these. Okay, so now we're gonna go and kind of want to add a little bit of purple to this flower. I don't know if that's a mistake or not, but I like using purple for an unexpected shadow color.  So think of using other cooler colors to suggest shadow other than black, like purple, like blue and other colors other than white to suggest highlight like yellow, like orange. I'm gonna add a little bit of yellow. We have a lemon yellow in this palette. So let's grab a little bit of that just like that. There you go. I didn't do any drawing that was super quick and super easy and that was a lot of fun. Of course you could keep going, but the point of these is to do little studies trying new paper, trying new paints, seeing how they blend and bleed and you'll see why I don't like this paper. So that's another reason for me to stop because this paper starts to really wrinkle and pill if I work at it anymore. So anyway, that being said, this is probably something I would do again on a bigger piece of paper. I do really like it. So that's painting number 25, on to the next. How is that for today's painting? I hope you enjoyed the process and if you want instruction on the painting, you need to be over in Patreon. They are gonna get the talking version here on YouTube. You're just gonna get the speed food through version, sorry. If you'd like to support the free content here on Facebook or in the, here on Facebook, holy cow. If you'd like to support the free content here on YouTube or over in the Facebook art groups, I certainly would appreciate that. You can of course join Patreon. We do have YouTube membership here for a small fee. And also I have an Etsy shop and I have PayPal tip jar and all that stuff. So check out the video description, relevant links will also be down there.  Do share your work with me. I would love to see what you're doing. That's it for now. See you later. Bye guys.


Hi everybody, Sean with JaspysCaseBreaks.com doing a personal break for Aiden of Pokemon TCG Ultra Ball Tens. We're going to be doing three of them for him. Good luck Aiden. I'm going to need Joe's help regarding the good stuff in here. I'm sure we're going to find something nice. I think every single one of them is this same coin. So there's different packs in here. You got Ancient Origins, Sun and Moon, Lost Thunder, and then Sun and Moon, Burning Shadows. We'll start with the Lost Thunder. I believe the cards with the star on the bottom are the better ones. Carbink, Blitzel, Onyx, Spinarak, Pop Leo, Tapu Lele, and it's a metallic card and it's got the star. So I think that's a good one. Wubuffet. That one's also got a star. I think that's a good one. You got an Energy card, Electro Power, Deli Bird, and Bay Leaf, Foil. So the Tapu is a foil. So I guess the back four cards are normal and it's the ones after that. Energy Kiwai, Rhydon, Lunatone, Venepede, Sneasel, Nevolpix, Horsie, Neubot, a Foil Bruxish, and then Lettion. Is that a good one? Claydoll? It's got two stars, I think, I don't know. Graydon Town, Whimsicott, Paint Roller, Wooper, Gumi, Beldom, Unown, Baltoi, and then Meowth, Foil. So Aiden, that was your first Ultra Ball, so let's take a look at this number two. Energy, Vespaclean, Heracross, Penser, Onyx, Loran, and Onyx, Morlull, Mari, Litwick, Chikorita, Ninjas, Foil, Victini, Semicir, Energy, Torrigan II, Charmeleon, Pansir, Magikarp, Mudbray, Alolan Rattata, Ponfour, Hoot Hoot, Foil, and Tengro. So this last pack is the third, is the good one. So Volcarona, Desandre, Trainer, Savely, Levelball, Wooper, Gumi, Malamar, Baltoi, Beldom, and Quagsire, Foil. So Aiden, that was Ultra Ball number two. Now Ultra Ball number three. Good luck. And the last one, Aiden. Good luck. Joe is correct. Energy, Trainer, Fairy Charm, Silcoon, Trainer, Fava, Fampy, Wyrmple, Mariani, Yamaz, Stunkisk, Trainer, Countergain, Foil, and Beautifly. Which one, the Beautifly? Energy, Trainer, Tormenting Spray, Charmeleon, Dusklops, Pansir, Charmander, Alolan Rattata, Porygon, Panpoor, Alolan Rattata, Foil, and Slowking. It's all good. Energy, Curlia, Ampharos, Spirit Link, Spinarak, Beldom, Wooper, Allgood, Golurk, Larvesta, Vespequeen, Hollow, and Regirock. Okay guys, we're back. And we've got one more thing for Aiden. A Pokemon TCG Collector Chest. So we did the three Ultra Balls. And now Aiden, you got this too. Yeah, it'll go. That and the Ultra Balls all go. So you have a nice tin here for you. And we're starting off with Score Bunny, Foil, Furry Swipes, Sobble, and your coin is right there. So here are the cards, Sobble, Grookey, and Score Bunny. And then the starters are all on that coin for you. So this one we've got Sword and Shield, two packs, and Cosmic Eclipse, Sun and Moon, Burning Shadows, and then Evolutions. We got some stickers for you. And then you got some pads to write for yourself. And then, oh, it's a binder for you for your cards. So you can see the pages in there. So you can keep your cards in there. So I'll keep this all in the binder for you, or in the holder. So you got Energy, Phera Thorn, Reboot, Loom Berry, Galarian Ziggazoon, Zagoon, Gossip Flower, Silicobra, Yamper, Krabby, Trainer, Pokemon Catcher, Foil, and then, oh, that's a good one. Full Art Foil. Even I know that. And that's a Snorlax V-Max. That's what I thought. That's a cool looking card. Very nice looking. Next pack for you, also from Sword and Shield. Energy, Hitmon Lee, Solizl, Metal Saucer, Krogunk, Galarian Mouth, Skor Bunny, Sinistee, Mark Toos, Skorupi, Paolo, and Drapeon. Cosmic Eclipse, next. Doing good so far, Aiden. Energy, Bilaba and Bryson Mann, Trainer, Toge Damaru, Great Catcher, Trapinch, Sphiel, Pesimian, Rowlett, Lilypuff, Trapinch, Foil, and Marshadow. Energy, Bodybuilding Dumbbells, Rhydon, Electric, Magikarp, Alolan Ratata, Wimpod, Toge Damaru, Sock, Lydian, Foil, and Slowking. And then last in this one, Evolutions. Sandshrew, Ponita, Magnemite, Pikachu, Mushoff, Magikarp, Foil, Raticate, Polly Whirl, Trainer, and Porygon. That's a very nice Pikachu you got there. And Aiden, we got one more for you. Another Ultra Ball. Good luck. You got another coin for yourself. Energy, Trainer, Mantine, Girafarig, Chinchao, Hoppet, Pikipek, Slugma, Popleo, Steelix Foil, and another full art, Blasephalon. Full art, Foil. Energy, Trainer, Rotom Decks, Super Scuba, Electabuzz, Meowth, Magikarp, Korogunk, Pikachu, Pansier, Pikachu, Hollow, Foil, even cooler, and Dustnore, Foil.  Good luck. It's been fun. Lots of Pikachu. Learned lots about Pokemon, and we found some really nice cards for you. Paint Roller, Porygon 2, Vaporeon, Meowth, Gumi, Beldom, Oddish, Inkay, Curlia, Foil, and Enti. So that was everything for you Aiden. Congrats. I'm Sean with jaspyscasebreaks.com and jaspys.com for personal breaks. And we'll see you next time. Thanks Aiden. Have a good day.


Hi, this is Chichu. Welcome to my channel. Now, what I want to do right now is Show you a package that I just arrived. It's a comic book by that I did my first comic book by in this new space that we're in and it was sort of a Bre-X by UK exit of the from the EU by because as soon as Bre exit Happened as soon as the vote if you've been following politics and stuff as soon as the vote happened where the UK 52% or something decided to leave the European Union However, form that's going to take what happened was the British pound dropped in value and I You know out of luck. I had been tracking this Item that was listed on eBay and as soon as the British pound dropped and it dropped dropped about 10% within two days So that basically meant there's a 10% discount on this purchase. So I contacted the guy and Asked them how much Combined shipping would be because there should be five comics here So, you know, I asked them how much combined shipping would be from the UK to come to here And it was fairly expensive. The combined shipping was going to be it ended up being a 20 pounds, right? but because the items were listed the comics were listed Basically half the price of the cheapest ones I could find on eBay Listed in Canada or the US and you know, if you do the conversion, it was actually Less than less than half like it was way cheaper than anything else I could buy I decided to buy these comics from the sky. Okay Now, this is the package It's really There should be five comics here, but it's squished and pretty tight So I'm hoping it's not squished too tightly and as you can see there's like oil sort of staining on the package and There was a little bit of complication with this package because you know, I asked the guy to send me the tracking information and he posted tracking information, but the tracking information wasn't Really working and then he contacted the post office and the post office Well, what he told me was the post office sent it to the wrong place And then they got it back and then he had to resend it or they had to resend it So this package is coming to me a week plus late It sounded like a song and dance But you know everything does happen. So I'm a little nervous opening this this baby up And I'll show you what the comics are Okay, so let's crack this open and it's got you know, it's a nice nice package other than the staining And I don't know where this thing's been, right? They sent it to the wrong place. So all I had to do is just tear the thing and then we need the exact knife So let's open the sky up and let me tell you what this was As I said the shipping was 20 pounds. Okay, and Each one of these comics, there's five of them here. They cost me eight pounds each and We're here. We're five here ready Legends of the Geomancer number one Right, and we've done a reading for this, right? Actually, we did reading for all the full set of this because this is the valiant comic that valiant, you know stated that they're not going to reprint and it was Exclusive and one out of 25 and people were chasing this baby And I ended up getting I already have this we already did the reading for this right number one to four And I rarely do readings for all all the books For story arc because you know, it's It's mainly my readings are sort of teasers and samples But since this one valiant says they're not going to reprint and it was an important comic the story the information being presented Um, so I did the reading for the whole thing. Should we look at the rest and they look like they're great condition Um, they were listed as near mint um and bagged and boarded uh Send in cardboard and only one of them is not uh bagged and boarded. So let's take a look at all You know All five comics. So the first one Oh, this one's definitely not near mint Um Well, as you can tell the first one is legend of the geomancer number one and the other four So I bought five copies of legends of the geomancer number one Um, this one's a really good beautiful copies except for this one. This one. That's not uh in a bag and board Um, it's got a little bit of a it's got a little bit of a nick there Like a little I'm guessing this is the one maybe you read Or took a look at a crazy tape on here. Yo, he read this one I think it's uh, he had good good rating on it. It was low. You know, he was into the hundreds. He wasn't into the thousands his ranking and it was all a hundred percent so Looks like you know, he was legit The stuff went to the wrong place This one's not near mint though. This one It is near mint This is because I guess it's got the thing in there though. So this would be, you know, a nine Instead of a 9.4 or 9.2, but these other ones look fantastic. I'm with the board There's the other four Nice I had to do it. So basically this came out to each one was The total for this it came out to In us it came out to about 80 dollars us So 80 divided by five is 15 right So it came out to about 15 dollars us each including shipping. So 80 dollars us including shipping It came out to 60 pounds total so 15 dollars each for legends of the geomancer number one These things peaked in price right off the bat when the first came out They were going for 40 or 50 bucks and then they came down to around You know, I was able to get a couple of them for Before this I ended up getting for around 20 18 dollars. They really came down really You know, not fast, but they came down and boom. They've done a bounce back up again at a price And right now the cheapest you can get it for is around 35 bucks on ebay. So this was You know, goodbye very goodbye, and this is beautiful condition. Look at this guy our badges The cloudy day today. It's actually a beautiful day to just sit back and read comic books Hopefully it rains if it does that. I'm definitely grabbing the trade paper back and reading it I actually picked up The monstrous trade paper back came out last week last wednesday And I've read all the monstrous as you know, I'm picking up monstrous from rich comics and I've read the whole story arc, but you know, it came out and It collects the first five issues and it came out in over five month period So I might sit down and read all of monstrous again the trade paper back This is a beautiful copy Definitely I create this higher than near mint. This is a mint copy Beautiful copy and the rest look to be the same But just because There's a little bit of complication with this. I am gonna open all off While I've opened two, but I'm gonna I'm gonna go through all of them Page by page make sure they're all legit and then I can go back and leave a comment for the guy And I'm gonna let him know about This fifth one That was Not an award With the ding Maybe he'll do a partial refund, which would be even better But I'm not gonna leave even if he doesn't I'm not gonna leave him a bad comment because I'm happy to have these for 15 bucks a pop I thought I'd share that with you. So this is officially my first Ebay buy I've been buying from a comic book store here. So it's not my first comic book buy at the slogan new location But it's first package comic book package does come to me at this first location And there's five copies of the legend of the jeweler number one. Uh, fantastic And if valiant sticks by their word, uh This is gonna be a you know sought after book because it is important. It gives you the Um, you know, you can read the whole story from one to four in the videos But it's basically the origin of any padda the name any padda, which is gillag Armstrong and ivar, right? The any padda clan, which is sort of the merger between um any which was the first geomancer and padda which was sort of Um started off being her this is spoilers by the way So if you haven't read these you don't want to hear this but Padda was basically her protector to a certain degree sort of warrior that helped her out. So she wouldn't get sacrificed and We find out that they have a falling out and Annie becomes The earth makes her the first geomancer and turns gillad into The fist and the steel I believe I always messed that up But anyway the the protector of the geomancer and padda ends up becoming From everyone's conjecture if one's assuming padda is the one that becomes the immortal enemy That's always seeking out the The geomancers to kill them and that's what we found out in book of death Um, well not the book of death and the valiant From one to four when the valiant came out and these guys came out after the valiant, right? So in the valiant mini series, there was four issues. We found out there's something called Yeah, I believe it's the immortal enemy that throughout history has always Try to find the geomancers and kill them and gillad has always failed and he ends up getting all the valiant superheroes together to Fight the immortal Eternal enemy or mortal enemy and you know, they can't beat them and he ends up killing K K or K Bad name, so ends up killing The geomancer the bloodshot have been had fallen in love with or them, you know that fondness of each other so After a year after that, we found out that padda is actually most likely the immortal enemy The pretty cool story are because I mean amazing universe that they're creating. Okay Um, just thought I shared that with you. Um, very happy to get these very very happy to get these Definitely these guys are gonna go in the box and I'm gonna Um, you know flip through them make sure they're all good Okay That's it for now. I'll let you know what else I ended up in not getting any packages that I end up getting I'm not going to be buying anything for for a while Because we're in summer and I need to get into doing some mathematics and stuff like this and I'm sort of strapped out with with this buy and doing the move and stuff like this. So my Uh, funds for buying comic books Has just been reduced to my pull list and every random comic off the shelf when I see them. Okay Uh, that's it for now. I'll see you guys in the next video


Went to Bodies, Bodies, Bodies the other night, and it sucked, sucked, sucked. From the most inconsistent film studio on the planet, 824, comes another slasher flick.  The film stars every Hollywood actress's favorite and no man's, Pete Davidson.  Which is actually just a game of Among Us. This is a live-action Among Us film. The rules of the game are simple. Each person gets a card, one says you're the killer, the others run away, not knowing who the killer is.  Otherwise, lights back off, continue the game. It's literally Among Us!  Because as I stated, this is a college group of kids that all talk this way. They say stuff like, you're toxic, and I need to process this, and you're gaslighting me, and about a dozen or so other terms you will find on Twitter or on a college campus. Although to be honest, these terms are a bit outdated already.  So obviously the ladies that wrote the screenplay aren't quite up with the terminology. And they also really can't stand this new generation. Because at the end of the day, bodies, bodies, bodies is all about owning the teens.  Now I'm not saying that doesn't happen, although I don't think age is a requirement for the ignorance. However, it's miserable to watch. I don't want to watch a movie like that, where 70% of the time, one or two girls is wandering through a darkened hallway with glow sticks and a phone to light their way. The movie just comes off as desperately trying to be edgy. The film starts with a 30 second extended close-up of two girls kissing. How original! I hate to break it to you film, Netflix has one of those movies every single week on the platform. Again, it's just not very entertaining, and by the time the whole thing winds down, I'm just left thinking, alright, well, wish I would have had that hour and a half back. It also doesn't help that the tone is kind of confusing. It's clearly supposed to be tongue-in-cheek, making fun of these kids and the scenario they're in, but everybody's playing things very straight. And at times it can kind of come off like the actors are just not very good at what they're doing, but they're playing a character that's in a film that's supposed to be kind of poking fun of themselves while they're high and drunk and on ecstasy. Like, there's so many layers to play. It's no wonder the actors may be struggled with the material. Complaining aside, what did it do right for me? Has a great score. Love the music. Kept me kind of engaged when it was just another scene of them wandering the halls or in a kitchen crawling around on the floor. And the visuals, even though they're dark, are very crisp. The night scenes are all fully ensconced in black. There's no artifacts, there's no snow everywhere like there was in the last film I watched. And I will always give a movie props for trying to be different, telling a unique story, taking some chances, even if the risks I thought were very played out. But maybe you saw it and have a different take. I'd love to hear it in the comments below. Make sure to subscribe if you haven't. I post tons of movie and TV show related content here each and every week. It'd be great to keep growing the channel. I'm a one-man operation after all. Now if you excuse me, I have to head on to Twitter and see who Pete Davidson's dating this week.  And question if we truly are in a simulation and Pete cracked the code. Thanks again for watching the video. And since I am so in touch with the youth of today, I should let you know I'm on TikTok. It's at Adam Does Movies, so you can follow me there. I post a ton of mainly poster reaction videos. People seem to be liking those. It's a good time. If that doesn't make me cool, then maybe this will. I'm also on Twitch Gaming. Yeah, Adam Does Movies on Twitch as well. I'm everywhere. I'm everywhere the kids are.


Waterfowl hunt we're here at Guggen Ranch, baby. They're a little cold down there Give me three words of wisdom right now smack the quack Love it. Let's go Just made it to the blind go. I think it's like an eight-acre lake We've got about an hour till shooting light. Just killed my first wood duck the other day There's some other species out here that I've never never killed before Looking to get some meat Metal duck lion, we probably should have brought a pot pain eater inside of. Y'all it's 26 degrees right now I got Lunkers TV sitting next to me. This is his first type of waterfowl hunting He is going to take the first shot It's a corv engineer lake, but it's a restricted access This is for Guggen Ranch Every anyone that wants to come out to the Guggen Ranch and hunt ducks We're about to see the sunrise and hopefully they'll see a bunch of birds Come in the wind is directly at our back, which is perfect for a lot of reasons Number one in everyone's mind is that it's blocking the wind chill right now And then number two the ducks are going to come in right at our face They're gonna fly in to the wind. So we've got the deeks out. We're looking pretty covered up We're gonna get everything wrapped up keep our fingers warm in our trigger finger ready, baby. I Love hunting a rob It's fun We got Steven over there Steven over there originally from Florida Recently hired a channel six news aka Lunkers TV Ryan's right there. He's he's ready He's got one finger ready good thing about duck hunting you do it with friends Devon duck hunt you do it friends. It's fun Let's have some fun watch Time to load up. He's got some hypersonic steel.  Be sure to go check out Steven's shot Lunkers Channel six news channel Coffee Forgot to mention there's there's also guides out here. It's been over there. He's hot Before we get to blast First down God I had the shot on that dude on that deer that deer right there Okay Rob got his first bird, you know as soon as they started flying we got all kinds of bird. Yeah till Wiggins I don't I don't even know what we got down out here It's crazy. That was a ton ton of action. That was fun Did you see Mallard? There's a lot of smaller ducks out there the winds kind of shipped in on us so they're flying to the other side of the pond but We still got ducks on the pond right now. I think Ben's gonna get up try to spook him up See if they'll come back this direction, but we still got plenty of shells Rob you having fun? This is good. Oh, yeah, Rob's having fun. So Blair We understand why you like this. We got you Okay Right, but you've got to stand up I got blew my own air out as well My toes are going numb as well. Oh, here's two other going the wrong way though Are they turned Ryan give them a little? Cumsy daisy What do you mean? Let them They're gonna land out there. They land up with a dead one. No, there's one live one out there This is impossible for me I Think we only need a few more for our limit, but we're gonna go ahead and get the the dogs out Start picking them up. They were cupping up. Can hear those wings. It's awesome There's more species sitting right here than I've ever seen at one time So I'm excited to get them all gathered up and see what all we got out here I did fall out of the blind a couple times and I think we blew Rob's ear drum out with my turkey gun Apologize for that.   There was a red head in there That was a mega group there boys Did you get me trying to pull the trigger with this thing right here I Tickle this trigger I should have sent up the magnum on those. I stepped completely out of the blind Oh, I'm ready Your Sims duck mittens at Bass Pro Shops. Yeah now in rust color The special it's a special thing walk watching dogs do what they like to do There's ice around the edge of the water. They're just like, let me get in there. Let me put some feathers in my face I love it. I'll do this all for you owner. I love you.  I'm good. Thank you so much I love dogs If you like cats, I'm sorry dogs are so good Cat won't retrieve your dog.  We're getting some little straggler groups coming in Why the dogs are out doing their deal? But uh, I think it's time For some breakfast some eggs some deer sausage Just landed coming this way. I'll throw a magnum at him. I'll throw a magnum. Does he need one? I think he needs a magnum. Where are the dogs? Over here All right, here we go. I'm probably gonna plug my ears on this, huh? I'm gonna walk out there. Okay The old tetanus special He excited to get up Oh, is that him? He got up. Yeah Come on back boy. Come on back boy. Oh come on See them and turn Oh boy, here we go. There it is. There it is. Wait for it. Wait for it. Wait for it. Some on that. Yeah, give me some on that Oh, yeah, what's that whidgin? That's a pretty duck man pretty whidgin. Oh my god. Look at all these ducks y'all Redheads we got it's like a couple of teal. That is cool Ringnecks Rob with his first duck What's that? Is that going up in the the new crib you think? Picture time group picture time Mm-hmm Back from the hunt birds getting clean getting put into socks to be on some mounts. It's a beautiful thing It's a beautiful thing and it's time to make some breakfast y'all. I loved here camp Actually, you can't just call this deer camp. This is googan ranch camp Because we've got duck hunting turkey hunting Deer hunting obviously my favorite thing about just coming out to camp is camaraderie with your buds Cooking good old food right now y'all it's about 8 30 8 45 and we're about to have breakfast And we've already almost killed a limit of ducks. We're one shy. That's a pretty dang good day in the outdoors Venice and breakfast sausage Eggs, we're going to fuel ourselves and then guess what y'all it's freezing cold These deer are going to be moving around pretty much all day I'll do a medium churn your butter Churn your butter shoot some ducks come home churn your butter put your meat in there Have a good breakfast and then go out and do a deer hunt. That's a pretty dang good good situation Channel six news is over here Getting ready for the nightly report I don't know who's is meat. Who's meat this is? Yes, that's from they're making this in holster That's from our local corn processor I mean like I don't mind mustard on like a corn dog or I'm about to go do some scout like we're going to be seeing some stuff because it's still very very cold Movements going to be active arms. There's access to your in here. Yeah, I think we saw them I've seen them over here a little after one time. They're like that thick stuff. Hey, you know why that is Why is it where they're from the lions? We might have been so you some turkeys some quail We even have a chance of turkey. It's actually a a window of turkey season right now. So We're actually at a feeder right now that Uh one of the people that came out to the Guggen ranch killed a 10-point recently Ryan's got the blind right now. It's really really easy We're gonna move it.  We're gonna see both guys. Here's some goblin Maybe see some other other deer as well. So I like this plan and Rob's gonna be sitting somewhere else We want it over there somewhere so the sun will be kind of behind you You don't want the sun in your eyes I'm gonna set up right here because we just looked at the trail cams and there's Tons of turkey. I've talked about groups of 30 40 plus. There's some deer that we can look at So I'm feeling good feeling good about it.  Y'all here at the ranch. We've got 1,000 pound corn feeders. They're really nice.  I'm also gonna set out Some estrus some deer estrus That's uh, that's urine for all you uh Lame and folk out there But I hope you guys enjoyed watching today's video with the duck hunting just out here at Guggen Ranch My first video out here go ahead and hit the thumbs up for that and if you guys want to come out here I'll leave a link down below where you can check out What it's about We're gonna be doing a few more videos out here this week where you guys can stay tuned Subscribe right here. Stay tuned. So you can see the action that's come Rob's filming out here as well Stephen and he's got videos going up on his channel as well But just an awesome morning, man. Awesome. I love it out here. I love fun season I love deer camp. I just love it, man It's time to get all our cameras ready get set up at the blind And I'll see you guys right there on the next video. God bless you Hope you're having a good day in the outdoors and I'll see you there


The chairman of the local organizing committee is there, Carl Thundur, and also members of the local organizing committee. So as we see here, Honorable Ababuna Mamba, the cabinet secretary, Youth Affairs, Arts, and you can also see the CEO, Safar Raleigh Lelewetut, Tinius Kimati. Alright, so the dignitaries arriving, also expecting the engineer to be amongst the delegation. Also expecting the governor, Sakajah Johnson. Alright, so the governor Sakajah Johnson has arrived. You can see the cabinet secretary for Youth Affairs, the arts and sports, Ababuna Mamba. The CEO of KCB Police. All the items, all stage already, I can see the Terakasi Akrobat. And of course, a kind reminder for all the groups that are going to be performing the entertainment items, do keep it close by after we have done our introductory.


Welcome everyone. This week's edition of TCS Plus. We've saved the best for last. We have Julia Chujoy speaking today. Julia is an expert in combinatorial optimization, approximation algorithms, and hardness of approximation. Before I tell you more about Julia, let me quickly go around the table just to introduce the groups. So we have Clemore Canons joining us from Stanford. Hello, Clemore. We have Irfan joining from India. Irfan, thanks for joining. We have Max Hopkins from UCSD. We have Shavasrao from NYU, a few floors above me. We have Ziyan Tan from University of Chicago. And I think it's Thomas, is it Thomas Videk? You're graying it today. I'm not sure. It might be Thomas Videk from Kotec. And, oh yeah, it is. And we have the group from Toronto, then by Kiksa. And I think we have one more group, Yijun from University of Michigan. Okay, hello and welcome everyone. I also should thank my co-organizers, Gautam Kamat, Clemore Canon, Thomas Videk, and India Day. Before going on, let me quickly introduce our speaker today. So Julia graduated in 2004 from the Technion under the supervision of Sethi Naor. She did post-docs, MIT, and University of Pennsylvania, UPAN, and Institute for Atlanta Study. She's currently a full professor at the Teota Technological Institute at Chicago and also part-time with the University of Chicago. She has a base paper award at Fox 2012, as well as a Sloan Research Fellowship and an NSF Career Award. And I think today she'll be telling us about the paper from stock 2018, named almost polynomial hardness for notes in joint path in grades. So welcome Julia. Yeah, thanks Aded. So thanks everybody for joining and thanks to the organizers for inviting me. I'm actually speaking right now from Israel where I'm doing my sabbatical. So it's pretty late in the evening here. So I'm going to talk about almost polynomial hardness for notes in path in grades. Yeah, so I don't know how it goes. If you don't hear well, maybe interrupt me. So this is joint work with David Kim and Rachid Nima, but both of them are students. David just graduated. So this is the problem I'll be talking about today. It's called no-digene path or NDP. So we have a graph, undirected graph. We have pairs of its vertices, S1, T1, S2, T2 through SKTK. We call them demand pairs. These are pairs of vertices that want to talk to each other, which we want to route. Now, what does it mean to route a pair? We need to find a path connecting this demand pair. For example, this red path here routes the S1, T1 demand pair. And this green path routes S3, T3 demand pair. But the path that I'm choosing for routing, they have to be disjoint in their edges and their vertices. So if I wanted to route another pair, I could not because they have to be disjoint. So I routed two demand pairs, and this means the solution value is two, which I want to be as big as possible. So what do we know about this problem? So remember, K is the number of the demand pairs. When we think of K as a constant, then there is efficient algorithm for solving this problem based on the Robertson and Simu's graph-minor series. They improve the running time of the algorithm looks like something like this. So f of K is a really large function of K. We actually don't know what it is. But in general, when K can be part of the problem input, the problem is NP-hard. So if K is like log N, square root N, and so on, the problem is NP-hard. So the next natural thing to ask is what about approximation algorithms for this problem? So let me show you the best and pretty much the only approximation algorithm we have for this problem. It's a really simple greedy algorithm where I'm going to iterate. In every duration, I'll take a path of minimum length that connects any demand pair, add this path to the solution, and delete all vertices that land this path from the graph, and repeat, and keep going like this. So a simple greedy algorithm just route and show this path every time. And it's not hard to show, although I won't go into this, that this gives you a square root N approximation. And until recently, even if your graph is planar, and even if your graph is a grid, we didn't have better approximation. So because I'll be talking a lot about no-diging path in grids, let me just show you what this problem looks like. So you just have root N by root N grid. And the sources and destinations listed anywhere in this grid. And so we want to route these demand pairs. For example, this can be a possible routing. Maybe you're going to say it, but is it easy to see why this is tight in grids? Say it again? Is it easy to see an example where it's tight in grids? Where it's what? The square root N is a tight bound. For this algorithm, yes. Actually, I'll need to think about this. Actually, I'm not sure. It should be. So this is where things stood around 2015. So we only had a square root N approximation algorithm, and nothing better, even for planar graphs and even for grids. And on the negative side, there was roughly square root log N harness approximation and nothing for planar graphs, nothing for grids. So at this point, it was kind of clear what should be the plan, and this is the plan that I had. I wanted first to get a polylog N approximation for this problem on grid graphs. I was very confident that this should be possible because grid graphs are so simple, and I actually don't know of any problem that's hard to approximate on grid graphs. And I was then hoping to extend it to planar graphs because there is a strong intuition that the most difficult case for planar graphs is grids. And after that, I wanted to look into general graphs, and here I was not sure what's going to happen. So with this plan in mind, we started working on approximation algorithms, and at the beginning, things really went according to the plan. We got a little bit better algorithm for grids, and a little bit better algorithm for planar graphs. This is a little improvement so that don't go into them, and also some special case of grids. But then things stopped going according to the plan. So first, we got 2 to the square root log N hardness approximation for sub-graphs of grids. So grids was holes where all sources sit on the boundary of the grid. And lastly, the result I'm going to talk about today is almost polynomial hardness for grid graphs. So specifically, what I mean by that, it actually depends which complexity assumption you're willing to assume. So you can get this 2 to the log to the 1 minus epsilon hardness approximation using this pretty standard complexity assumption that in human language means that unless every problem in NP has randomized quasi polynomial time algorithms, if you're willing to assume something a little bit weaker than randomized ETH, then you get n to the 1 over log log N squared hardness, and you can get things in between. So this is the formal statement of these 2 complexity assumptions. So this is what I'll be talking about today. But before I go into the proof, I want to just mention a few other related problems so that you get a whole picture. And the first natural question is edgy gene paths. It's really like a sister problem of no-digene paths. It's exactly the same, but now the routing should be on paths that are disjoint in edges, and they may share vertices. And it pretty much behaves like no-digene paths, the same up or the same lower bounds. But on grids, it's easy to solve. You get a constant approximation. However, if you look at this graph, it's called the wall graph. Then edgy gene path involves behaves like no-digene path in grids. And in fact, all the results that we have for no-digene path in grids carry over to edgy gene path in walls, including the result I'll be talking about today. And lastly, you may wonder what happens if we allow a little bit of congestion. So we allow paths to share edges or vertices to some limited extent. So this has been studied a lot. There's a really long history starting from the random adjoining technique of Ragovan and Thompson. So what we know today is that if you allow up to two paths to share a vertex or an edge, you can get a polylocale approximation, which means that routing with no congestion is dramatically different from routing with just congestion too. So from now on, I'm going to talk about no-digene path in grid graphs, the hardness approximation result. And so my goal, I will not try to show you the technical details in the math. I want to convey the main conceptual ideas. So we'll start with the first main conceptual idea. And I'm going to define an intermediate problem. It's a graph partitioning problem. So in this talk, I'm going to call it a weird graph partitioning problem, or WGP. It is weird. So in the paper, it has a more formal name, but I'll stick with this one. So I'm going then to show that no-digene path is at least as hard as this partitioning problem. And then I'll prove the hardness of this partitioning problem. In fact, it's going to be a little bit different. It's not exactly this plan. But for now, let's stick with this plan. So let me now go to this graph partitioning problem. And before I define it, I want to mention the kind of motivation why we did it. So we were actually trying to solve no-digene path in grids, try to come up with an algorithm, because it looked like an easy problem. And we were looking at some special case, and we worked and worked and worked. And we realized that what we are trying to solve is actually this graph partitioning problem. And when you look at this graph partitioning problem, it actually looks hard, unlike the no-digene path in grids. It looks easy. And this was our first idea that the problem may be difficult, and that this partitioning problem maybe is the key to look at. Yeah, I'm kind of, is everybody there? We are here. Okay, okay. I just think kind of look frozen on my screen. Okay. It's just a little weird. Okay. So let me now define this problem. So the input is a bipartite graph and two parameters P and L. So this is the bipartite graph. And what I want to do is I want to break it into P pieces. Every piece is a vertex-induced sub-graph. So I want to partition it into P vertex-induced sub-graphs. I'm going to call them pieces throughout this talk because there's going to be other clusters that they want to, I don't want to confuse between them. So what's the intuition? So intuitively, I want to make sure that as many edges as possible stay inside the pieces. But then we can get a solution where every edge belongs to one piece, like the whole graph sits in one piece and nothing else sits in the other pieces. And that's not what I want. So to get around this, I use this parameter L. And I'm saying that I will count the first L edges from every piece, everything else I'm going to ignore. So L is the limit on how many edges per piece you're allowed. So in other words, once you broke your graph into pieces, you have to delete edges from every piece. For example, these red edges are going to be deleted so that in every piece at most L edges stay. And then you want to maximize the total number of edges that remain in the pieces. And that's the weird graph partitioning problem. So in the next few slides, I want to relate this problem to some other problems that you are maybe more familiar with to give you a kind of intuitive feel of this problem. Just to make sure I understand, is it the same as taking the sum over the minimum between EI and L? What's the point of taking a subset? Maybe I'm missing something. Yeah, no, no, it's the same. You just count the first L edges. Yeah, it's the minimum between exactly. Yeah, there is no point. So I don't have to think of EI. No, it's maybe more convenient. So when you do the reduction to the origin path, it maybe helps you to delete those extra edges. So you don't count them. But otherwise, yeah, it's the same. Yeah, so now I want to connect it to some other problems. And the first problem is balance cut. And this is really how I think about this problem. So the difference is that in the balance cut, you want to partition into two pieces. And here you have P pieces. And the second difference is that in balance cut, you want to minimize the number of edges that get cut. And here we want to maximize the number of surviving edges. But otherwise, this L, this limit on how many edges per piece I'm allowed, so I can use it to enforce the fact that it's going to be a balance partition. And in fact, this is how I'm going to use it. And the second connection is to another problem called densest case subgraph. And it's this connection that made us think that this is a difficult problem. So to remind you, in densest case subgraph, you have a graph G, you have an integer K, you want to choose a subgraph of G on K vertices, and you want to maximize the number of edges that stay inside the subgraph. And this is a very notoriously difficult problem. So it has only polynomial approximation, algorithm with a polynomial approximation factor. But it was incredibly difficult to prove any hardness approximation for it. In fact, even APX hardness is a very difficult proof. And only recently, there was this breakthrough result of Manoranxi that proved almost polynomial hardness for this problem using ETH. So why I think about this problem like densest case subgraph? Well, intuitively, I want to break my graph into many dense pieces and not one. And maybe that's not very convincing. But when you try to prove hardness of this problem, you kind of run into the same issues as you do with densest case subgraph. Okay, so this is the problem we'll focus on. And now the plan has now two parts. We want to prove that nodige and path and grits is at least as hard as this partitioning problem. And then they want to prove hardness of this graph partitioning problem. Again, I'm going to tweak this plan a little bit later. But for now, that's the plan. And let's start with the first part, nodige and path is at least as hard as this graph partitioning problem. So I'm taking an instance of this graph partitioning problem. I'm going to put it on the side like this. And now I want to reduce it to nodige and path and grits. So I'm just going to put a really big grid here. That's my graph. And now I need to put the demand pairs. So what I'm going to do is that every edge of G will become a demand pair. And the endpoints of these demand pairs, they have to be disjoint because I need to route on disjoint paths. So yeah, so that's how we need to define it. So now I just need to tell you, well, where I put the sources and the destinations. So I'm going to choose two rows, one where the sources will sit, one the destination will sit. They have to be far from each other and far from the grid boundary. And now for every vertex of this graph G, I'm going to choose a contiguous area in the source row or the destination row that's going to kind of simulate this vertex. I'm going to call it a block. So here you have this block is the green vertex, this block is the red vertex and so on. And these blocks, they have to be far from each other and far from the grid boundary. And now we're ready to define the demand pairs. And that's just the natural thing. We just go edge by edge. For example, I take this red edge. I'm going to put a source destination pair like this. This red edge, source destination pair like this and so on. This finishes all edges that are incident to the green vertex. There is like little subtle point here, how we define the distances here between the sources. And we need to choose them carefully. So if the distances are too long, then you can actually route everything. So there are known results that show that in a grid, if the sources are far from each other, then you can route all demand pairs. But if the distances are too short, then there are some things that we need to route in our reduction and maybe we will not be able to route. So we need to choose them just right. And I don't want to show you the numbers. That's the intuition. So this is the reduction. Every edge becomes a source destination pair. And the claim is that this reduction preserves the solution value up to polylogan factors. If this is true, then no-digent pass and grid is at least as hard as this graph partitioning problem up to polylogan factors. Because whenever we have an algorithm for no-digent pass, we can use this algorithm to solve the partitioning problem. So let me show you why. In fact, I'm going to show you mostly one direction. So let's assume that I can route many of the demand pairs. And now I want to show you that there is a good solution for this partitioning problem. So maybe this is the routing. So first of all, I'm going to take edges in this graph G that I didn't route. And I'm just going to throw them out. For example, this red edge was not routed. I'm going to delete it. And so I get a large subgraph for my original graph. And next, I want to show that this large graph, it can be drawn in the plane with very few crossings. And I'm going to show it using this routing. So let me first show you how and then we'll see why this is useful for us. So how I'm going to draw, it's just really natural here. I can just take every block and contract it and get a drawing of this graph. But you have to be careful. So for example, if I take this green block, I'm going to choose one of these two vertices to serve as the green vertex, for instance, this vertex. And then I need to contract the other vertex into it. So I'll do it by extending this edge and I introduce the crossing. And I'm just going to go and do it for every one of the blocks like this. And in the end, I'll get some drawing of this graph G prime. So the claim is that this drawing has very few crossings. So why very few crossings? Because when do we introduce crossing? I introduce a crossing like when we did this here in this green block, when there is some path going through a block. But because the sources that we choose, they're relatively close to each other, it's not going to happen so much, you will not get so many paths that can go through blocks. And so relatively, I'm not saying it's very small number, but relatively it's going to be a small number of crossings. So what we did so far, we took a large subgraph of this graph partitioning problem, and I found a drawing of it with few crossings. How does it help me? So as you probably know, if you take a planar graph, a planar graph has very small balance cut. And the graph that you can do with few crossings behaves very much like a planar graph. It also has very small balance cuts. So by repeatedly computing balance cuts in this graph, I can break it into pieces and get a good solution. And I will lose very few edges. So that's how we prove one direction for the other direction. I'm just going to say very high level idea. So here we assume that we have a good solution for the graph partitioning problem. Maybe this is the solution. So the intuition is that this solution breaks the routing problem into small pieces. And these small pieces, we can route them independently. They don't influence each other because the distances between the blocks are really big. But the pieces are so small that they're small relatively to the distances between the sources and the destinations. And this is why I can route the pairs in each piece. So this is very high level. I don't want to go into this one because it's technical and I want to focus on the second part, which I think is more interesting. So in the second part, I want to prove hardness of this weird graph partitioning problem. Okay. So my starting point is a tiny bit unusual. I'm going to start with three coloring problem, three coloring five. So in this problem, I have a five regular graph that may look like this. And the three coloring of this graph, as usual, is an assignment of one or three colors, red, blue, or green to each one of its vertices, for example, like this. And now we say that an edge is happy if both endpoints have different colors, like this edge is happy. And otherwise, it's unhappy like this edge. So now given this five regular graph G, I'm going to say it's a yes instance if there is a coloring where every edge is happy. And I'm going to say it's a no instance if in every coloring there is some significant fraction of the edges that are not happy, let's say 1%. And from PCP theorem, we know it's hard to tell whichever it is. So far, this is standard stuff. But the reason that we start from three coloring and not something else is that we can get an extra property that's going to be really useful for us. What is this extra property? So assume that we are in the yes instance case, and we have this perfect coloring where every edge is happy. And now we have three colors. So there are six possible permutations of these colors. So I can take this coloring and apply each one of the six permutations to this coloring, and I'll get six different colorings, all of them legal colorings. And if I take any edge of this graph, for example, this edge, every edge has exactly six legal colorings, colorings where both endpoints get different colors. And each one of these colorings will appear in each one of these solutions. So every solution has a different legal coloring of this edge. And this happens for all edges. And now if I take any vertex, vertex has three possible colors, then every color will appear in exactly two of these solutions. So this useful property will be helpful for us. We call it the bonus property of three coloring, and we are not the first ones to realize this and use this in our reduction. Actually, the idea was stolen from this paper of Phi Get All. So let me now tell you what are the next steps. So I'm starting from three coloring problem instance, and I'm going to reduce it to an instance of constraint satisfaction problem. And this is going to be really standard step. It uses standard to prove a protocol and parallel repetition. And then from the constraint satisfaction problem, we get to the graph partition problem instance. So let me now describe the first step. And because it's really standard, I'm just going to show you kind of the end result. I'm not going to go through the two protocol and the parallel repetition. So now I'm starting with this three coloring five instance, this graph. And on top of this, I have R, which is the number of repetitions. So if you're not familiar with this, it's basically a parameter that I am free to choose. For example, I'll probably choose it to be like polylog N. So the bigger this parameter, the bigger the hardness gap I'm going to get, but also the size of this constraint satisfaction problem is going to grow with R. So I want to be careful about it. But now given this graph and given R, I'm going to build an instance of constraint satisfaction problem. So I need to define variables and constraints. And there's going to be two kind of variables, variables on the left kind of represent the edges of my graph variables on the right kind of represent the vertices specifically. So every vertex on the left is associated with a sequence of our edges of my graph. And in fact, every sequence of our edges in my graph is going to have a variable. And I'm allowing repetition. So it's possible the same edge appears twice in the sequence. And so because of this, the number of these variables is M to the R, where M is the number of edges in this graph. Now what's an assignment to this variable? An assignment is simply a legal coloring of these R edges. So every edge has to be colored so that the endpoints get different colors. And I don't care about consistency across different coordinates, different edges. For example, it's possible that these two are the same vertex and they get different colors and that's fine. And it's possible that these two are the same edge and they get different colors and that's fine. So these are variables on the left. And so we have exactly six to the R possible assignments per variable because there are six colorings per edge and there are edges. So now what about variables on the right? It's the same thing only with vertices. So for every sequence of our vertices, there's going to be a variable there. And again, we allow repetitions. And the assignment to this variable is again a three coloring of these vertices like this. And again, we don't check consistency across different coordinates. It's possible that these two vertices are the same and get different colors. And so the number of possible assignments for every variable on the right is exactly the same as three to the R. So these are the variables and now I need to define the constraints. So I take this pair of variables. I need to decide if I'm putting a constraint between them or not. So the rule is that for every I, VI has to be an endpoint of EI. And that's how I decide if I put a constraint or not. So V1 has to be an endpoint of E1. So maybe it's this vertex. I don't know what's happening with the mouse. Okay. And V2 has to be endpoint of E2 and so on. So if each one of them holds, I'm going to put a constraint. And one is the constraint satisfied. So here are assignments for these two variables. So what needs to happen is that for every I, VI has exactly the same color on the right and on the left. So V1 is blue here and blue here. V2 is green here and green here and so on. Again, I don't check consistency across different coordinates. So it's possible that V1 is also this red vertex here. I really don't care. Okay. So this is the CSP instance that's based on our graph. What are its properties? So if G is a yes instance, if it's three colorable, then there is a solution to the CSP instance satisfying all constraints, I'm going to call it a perfect solution. And if it's a no instance, if you cannot make many edges happy, then any solution will satisfy only a tiny fraction of the constraints. And this tiny fraction is 1 over 2 to the omega of r, where r is the number of repetitions. And we know it's NP-hard to distinguish between the two. So again, so far, this is really standard stuff. But now we get this bonus property because we started from three colorings. So let me tell you what is this bonus property. So if the graph G is a yes instance, we said the constraint satisfaction problem has a perfect solution. But in fact, it's going to have not one perfect solution. It's going to have six to the r perfect solutions that have some useful properties. And namely, if I look at the variable on the left, remember assignment to this variable is a coloring of these edges. So there are six to the r possible assignments. Let me write them here like this. Every assignment is going to appear in exactly one solution. And this will happen for every variable on the left. And if I take a variable on the right, so it has three to the r possible assignments, the colorings of these vertices, every assignment is going to appear in exactly two to the r of these solutions. And the reason we get this extra bonus property is because of this property of three coloring that we had that you can take any solution, you can take the six permutations of the colors and get six solutions. So we actually apply these permutations to each one of the coordinates. And that's how we get it. So this finishes this part. What I want to do now, I want to forget about this. And I'm going to pretend that I start from the CSP instance and get a reduction to the graph partitioning problem instance. So to do this, I'm just going to very quickly summarize again, what is the CSP instance so that we can have a clean starting point. So this is my CSP instance. And now I'm going just to say that it's a yes instance if there is an assignment to the variable satisfying all constraints. I'm going to say it's a no instance if any assignment to the variable satisfies only this tiny fraction of constraints. And I know it's hard to distinguish between the two. And on top of this, I have the bonus property, which is the following. If we are in the yes instance case, we have six to the r perfect solutions that satisfy all constraints, such that for every variable on the left, each of its assignments appears in exactly one solution. For every variable on the right, each of its assignment appears in exactly two to the r solutions. So this gives us the starting point. And now I want to show the second part of the reduction, which is more interesting how we go from constraint satisfaction to the graph partition problem. So I'm going to build two graphs for this constraint satisfaction problem. And the first graph is what we saw, the constraint graph. So there is a vertex for every variable, there is an edge for every constraint, it's standard. The second graph is going to be called assignment graph. And it is this graph that will be the input to the graph partitioning problem. So now for every variable, I'm going to put for every variable on the left, I'm going to put the vertex for each one of its assignments. So it has six to the r assignments, there's going to be six to the r vertices, each of them represents a different assignment to this vertex, to this variable. Now if I took a take a variable on the right, I would like to do the same thing, but I'm actually going to do something a tiny bit different. So for every assignment to this variable, I'm going to put two to the r vertices representing this assignment. So we have three to the r possible assignments to do the r copies of each assignment. So six to the r vertices again, same thing. And I'm going to go and do this for each one of my variables. So these clusters of vertices representing the same variable, I'm going to call them clouds again to distinguish them from other different kinds of clusters that we have. So every variable gets a cloud. And now I need to define the edges. So let's assume that there is a constraint between these two variables. So now I need to define edges between these two clouds. And the rule is going to be the natural rule. I'm going to put an edge here if and only if these two assignments satisfy that constraint. So maybe if I take all edges that correspond to that constraint, I'll get a bunch of edges like that. And maybe this is my whole assignment graph. So this is really almost like the standard assignment graph. The only difference is that for variables on the right, I'm going to put several copies of every assignment to make this even. Okay, so this is the assignment graph. And now I'm going to use this assignment graph as an input to the graph partition problem. And again, remember that every cloud has exactly the same number of vertices, six to the r. So I want to break this graph, this assignment graph into exactly six to the r pieces. And the limit, how many edges per piece I'm going to be allowed to count is at most is exactly the number of constraints that we had. So to make this maybe clearer, let's look what happens in the yes instance, because I think this will make things clear. So in the yes instance, we said we have not one perfect solution, we have six to the r perfect solutions. And every cloud, it will have exactly one assignment in each one of these solutions. So because of this, these solutions, they basically partition my vertices, I can break my graph into six to the r pieces using the six to the r solutions. For example, if I take the first solution, I want to define the piece corresponding to it. So for every variable, I'm going to put the assignment that exactly appears in that solution. And in this way, I'm going to take exactly one vertex from every cloud. And now I'm just going to take all the edges that connect these vertices and what's going to happen that because every constraint is satisfied, I'm going to collect exactly one edge per constraint. So the number of edges here is going to be exactly the number of constraints. So the first solution defines this piece, but then I take all six to the r solutions and they will define six to the r pieces. So in the yes instance, we get six to the r pieces. The number of edges in every piece is exactly the number of constraints. And I'm going to put this limit on how many edges per piece I'm allowed to be exactly that. And so this is going to be the total solution value six to the r times the number of constraints. So now the question, okay, what happens in no instance? And in no instance, remember, we have the same P and L, same number of pieces, the same limit on the number of edges. And what I want to show is that the solution value is low in no instance. So let's look at the no instance. And one thing I would really love to happen is to get an ideal solution that behaves like the solution that we had for yes instance. So every piece I wanted to take one vertex from every cloud. If a no instance does this, I'm really happy because now every piece defines an assignment to the constraint satisfaction problem. And because it's a no case, you cannot satisfy many constraints. So there's going to be very few edges in every piece, and you'll get the solution whose value is very low. So if no case did that, that would be perfect. Unfortunately, I have absolutely no control over what no case does. And it can do something totally different. For example, what would be a completely extreme different thing to do? Instead of taking one vertex per cloud into each piece, we'll do the opposite. Every cloud will sit in one piece. So every piece will either contain the whole cloud or nothing from it. So in fact, let's focus on these two extreme solutions. So the first extreme solution is what I call the ideal solution, what they want to happen is where in every piece, you have a single solution to happen is where in every piece, every cloud gives it exactly one vertex. And I'm going to call it economical honest solution. And the second extreme solution is I'm going to call it economical cheating solution is the opposite where every cloud belongs to exactly one piece. So it's completely containing a piece. And it turns out that it's okay to only analyze these two cases. Because if you take any solution, you can do a little bit of massaging to it. And it's kind of common in this hardness approximation proofs to make it look like one of these two kinds of solutions. So as long as we know how to handle these two kinds of solutions, we will be able to handle any solution. And honest solutions, we know how to handle they're really good for us cheating solutions, we don't know. Okay. So now I'm going to take a few slides to talk about a little technical issue that has a little technical solution. And so if you're not interested in technical details, you can tune out for these few slides. But it's kind of important because so this problem that I showed, you run into it also when you try to prove hardness of dense escape sub graph. And the way we solve it here, you cannot solve it like that in dense escape sub graph, which is why unfortunately, what we do does not seem to help with dense escape sub graph. So let me tell you what is this little technical issue and how we solve it. So I'm going to look at the now instance case and the cheating solution. And I'm going to zoom in on one of these pieces. And it looks like this. So every cloud either is completely contained in this piece or is out of this piece completely. And remember, every cloud represents a variable. So maybe this is x i and maybe this is y j. And maybe there was a constraint between them. So now what would happen in the yes case? So in the yes case, in each one of these two clouds, so each vertex will go to a different piece here and each vertex will go to a different piece here. So in the yes case, I'm going to simply get a matching here. That's all I can collect for this constraint. But in the no case, because both of these clouds sit here, I can take all of the edges connecting them. And that's a lot. That's a lot more than the matching. And this feels like really kind of bad because you kind of encourage to cheat. So it may be like always better for you to take the cheating solution. And in a sense, you get unfair advantage to the cheating solution because I don't really intend you to take more than the matching and you end up taking a lot more. So in this case, we can actually fix it a little bit by cheating. So if we go back to our Hardness Approximation Scheme, I don't really care about this weird graph partitioning problem. I only care about this because it helps me prove hardness of Nodeshine path in grids. So I can change it and, you know, I can add belt and whistles to it to make it harder in any way I like as long as the reduction to this Nodeshine path in grids still still works. So what I'm going to do, I'm just going to tweak it manually on purpose to make sure that this kind of thing cannot happen, that you will not be able to connect more than a matching from a constraint. So specifically how I tweak it is not super important, but let me for complete and show it. So this is the definition of the graph partitioning problem, the same definition we saw before. And now I'm adding a little bit extra to it. So for every vertex in the input, I take all the edges that are incident to it and I partition them into bundles. And this partition into bundles is given to me as part of the problem input. And now I require that in the end, you're not allowed to take more than one edge per bundle. So even if this vertex and all its neighbors end up in the same piece, you're simply, I will not count these edges for the solution. Only one edge per bundle can be counted towards the solution. So in this way, I make this problem a little bit harder, but the reduction to no decision pass still, still works. And thanks to this, we can now make sure that in every constraint, you will not collect more than a matching from this constraint. So how for every vertex, I'm going to take all edges that connected to the same cloud, and I'm going to declare that this is a bundle. And because of this, you're only allowed to take one edge per bundle. And in the end, you cannot take more than a matching. So far, what it actually did, it kind of leveled the playing field. Yeah, this thing is destructive. So it leveled the playing field because it basically what it does, it ensures that the cheating solution cannot collect more than a matching per constraint. But we still need to show that in the no case, the solution cost is small. And in fact, we have no idea how to do this, we really don't know how to do this. And even after all this work, we don't know how to do this. Julia? Yes. So can you explain now the difficulty? I thought, so did you manage to force exactly one vertex from each cloud or not yet? No, no. So right now with this, oh no, no, no. So the problem is you can have a cheating solution. This cheating solution indeed for every constraint, it will only collect a matching no more than this. But I don't know, I cannot turn this cheating solution into an assignment to the constraint satisfaction problem. So I don't really know how to prove that the value of a cheating solution has to be small. I mean, the way you prove it, you need to somehow connect it to the constraint satisfaction problem to show that you have an assignment to the constraint satisfaction problem. But when you do this, when you put these clouds, you know, the whole cloud goes to a one piece, we just cannot relate it to a solution to the constraint satisfaction problem. Okay. Yeah, I just don't very clearly see what, you know, what it is that you can prove about the no solutions. Yeah, so that's what's going to be next, right? Okay. Yeah. So so far we didn't do anything. We actually really didn't do anything. So this ends the technical issue. And if you tuned out now is a good time to come back because now comes like what I think is the main idea and that I'm most excited about it of our reduction is we're going to use cook reductions and not car productions. So let's see what we were trying to do so far. So so far we were trying to do a standard car production. I started from a CSP instance. I built an instance of the graph partitioning problem. And then I proved that if CSP instance is a yes instance, then the graph partitioning problem has a solution of large value. And I wanted to prove that if CSP is a no instance, then every solution of the partition problem has a low value, but I don't know how to do it. So we're stuck here. So instead of going to do something different, I'm going to use cook reductions. So first of all, I'm going to assume for contradiction that there is an alpha approximation algorithm for the graph partitioning problem. Then I'm going to start with a CSP instance. And I'm going to build not one, but many graph partitioning instances. If the CSP is a yes instance, then each one of these graph partitioning instances will have a solution of a high value. It's not going to be the same value. It's going to be some value that we know about. It's some prescribed value. But if CSP is a no instance, then one of these instances will have a solution whose value is too low compared to what we expect. And we can run our alpha approximation algorithm on each one of these instances to distinguish between the yes and the no case. So this is very high level, but okay, one more thing I want to say here before we go to more details. So on top of this, this reduction has to be sequential. So to build the second graph partitioning instance, I need to use a solution that the approximation algorithm returned for this instance. And the next instance is built using the solution, the approximation algorithm returned for this instance and so on. So it has to be a sequential reduction. So now let's see in more detail. So as I said, we're going to assume for contradiction that there is an alpha approximation algorithm for the graph partitioning problem. And I'm going to use this algorithm to distinguish yes and no instances of the constraints of this section problem. So you're assuming an approximation algorithm for the series version, right? You actually get the partition? Yes. Does it mean that you don't know how to prove hardness for the decision version? No. You mean you don't? I don't know. So not just for WGP, but also for the node disjoint path? Yeah, I just think about it in this way. Yeah, I actually need the partition itself. Like if you just give it a value, it's not going to help me. Yeah. Or the routing in the case of node disjoint path? Yeah, absolutely. Yeah. Okay. So we started with our constrained graph as we did before. We built a salmon graph as we did before. It becomes input to this graph partitioning problem. And we applied the approximation algorithm on this graph partitioning problem and we got some solution. And I'm always going to assume that this is either economical, honest, economical cheating solution because any solution can be turned into a solution that looks like one of these. So now there are three cases. First, if the solution value is too low, I know for sure it's a no instance, I stop and I'm happy. If the solution value is sufficiently high and I get an honest solution, I know it's a yes instance because every piece defines a good assignment to the constraint satisfaction problem and I'm happy. I'm done. But the third option is that the solution value is high and it's a cheating solution and I have no idea if it's a yes instance or a no instance. So I'm going to do something different here. So let's look at this cheating solution and remember every cloud is completely contained in one of the pieces. And you remember that every cloud here, it represents one of these variables here. So this cheating solution, you can think about this as if it is partitioning the constraint graph into many pieces, which are small. And it retains many of the edges because the solution value is high. There are many edges that sit inside these pieces. So I can simply look at the solution and the solution gives me immediately a partition of the constraint graph like this into a large number of pieces. And overall, I delete only a small number of constraints. And each one of these pieces is much smaller. So what happened here? So essentially, I did not make the problem much easier. I have deleted some of the constraints. These pieces, they became much smaller, but I can continue and apply the same reduction to each one of these pieces. So now I'm going to think of each one of these pieces as a separate constraint satisfaction problem. And for each one of them separately, I'm going to build an assignment graph. For each one of them separately, I'm going to apply the approximation algorithm and so on. So let's see how this algorithm is going to work. So I'm starting with the whole constraint graph. And then there are two things that can happen. Either I will correctly determine that it's a yes instance or a no instance. Or I don't know, but I can cut it into much smaller pieces and retain many of the constraints. And now I'm going to go and do the same thing to each one of the pieces. So I will reduce each one of the pieces separately to the graph partitioning problem and apply the approximation algorithm to each one of the pieces separately. Now, if I get even one piece in which the solution value is too low and too low is compared to the number of constraints in that piece, if that happens, I know for sure it's a no instance, I can stop and that's it. But if this doesn't happen, then every piece will have a solution whose value is high. If the solution is an honest solution, for example, for one of these pieces, then I know I can satisfy many of the constraints in this piece. So I don't need to keep cutting it and this piece becomes inactive. So maybe these are these two purple pieces. But other pieces in which the solution is cheating, I'm just going to again cut it using this cheating solution. And I will keep going like that until I stop. So what happens in the end? So if at any point throughout this algorithm, I had a cluster, any one of these clusters in which the solution value was too low, I know for sure it's a no instance and I stopped and that's it. That's it. So let's assume that this never happened. What happens then, you cannot cut forever, right? And every time when you cut, you get much smaller pieces and you delete only a small fraction of the constraints. So when this algorithm ends, each one of the current clusters has to be an inactive cluster. And an active cluster means that inside this cluster, I can satisfy a very large fraction of the constraints. But because of the way I was cutting, so in the end, each one of them is inactive. Because of the way I was cutting many of the constraints, they still sit inside these clusters. And so overall, I can satisfy many of the constraints. And I know it's a yes instance. And that's it. So to summarize here, the main ideas that come from this reduction, the first idea is to introduce an intermediate problem, this weird rough partitioning problem. The second kind of observation is that I can tweak it in any way that's convenient for me to suit my reduction as long as I can still show that knowledge and path is at least as difficult as this problem. And lastly, we use cook reductions and not carp reductions. So let me say a few words about these cook reductions and carp reductions or multi-shot versus single-shot reductions. So I was always curious because to me, it looked like the multi-shot reductions should be much more powerful and should be used a lot more. But in fact, practically every reduction that we know of, like single-shot is enough. In fact, this is the only exception that I know of. So it is possible that in this case, too, there exists a single-shot reduction. And we just didn't find it or we weren't able to prove that this reduction works. So it's possible that it's a bug and not a feature. But on the other hand, we did manage to prove hardness using this multi-shot reduction. And we don't know how to do it using a single-shot reduction. So at least in this sense, we can say that multi-shot reductions are more powerful. Okay. So to conclude, we showed almost polynomial hardness of no-digent path in grid graphs. And you can get various tradeoffs between the hardness factors and the complexity assumptions. And to me, the main remaining open problem in this area is congestion minimization. This is where you want to route all the manned pairs. You want to minimize the congestion. So currently, the best approximation algorithm gives you log n over log log n approximation. And we don't have anything better even for planar graphs. The best hardness is omega log log n, but nothing for planar graphs. And in fact, even the integrity gap of the natural LP, we don't know where is the right bound. It's basically between these two. And that's all. Thank you. Thank you, Julia. This is time for questions. It just was very clear. Let me start while everyone is setting up for questions. So I think if I understood correctly that the problem you're trying to deal with is that potentially the constraint graph is maybe not an expander or something. Yeah, exactly. Actually, if I could prove that it's an expander, it would solve the problem and you would get a single-shot reduction. Yes, absolutely. Is that the issue that shows up in the densest case of hardness proofs? So in densest case of graph, you will have this additional issue that in the no case, you can collect all these extra edges. And that you cannot really solve there because you cannot tweak the problem. Yeah, so I don't think that if you only had the expansion, that would help. That would be sufficient. But I was actually suspicious that the graph is an expander. You need very, very strong expansion, and I just could not prove it. I just didn't know how to. So instead, you just got it. I guess the question is, so you're kind of using the Oracle to provide you with that partition. Is there any hope that you can do the partition yourself? I mean, there are lots of algorithms for partitioning graphs into mildly connected components. Did you look into that? So you just want me to take the constraint graph and cut it? You're probably right. If I just keep cutting the constraint graph until I get expanders, then I will not get cheating solutions because cheating solution means it's not an expander. So you just need to check that it's kind of a weird problem in the terms of, you need to preserve a huge fraction. The number of edges you remove. Yeah, you need to be careful. Yeah, it's a good question. Maybe that would work. More questions? Okay, I guess it was all very clear. Give them one more chance. If you don't ask questions, we won't let you in again next time. Okay, so I don't see any more questions. So thanks again, Julius. And we'll probably resume in the spring. So everyone is welcome to stay here. I'm going to take us offline.