was the song he has written. Stab stab. You guys need to pull it together. How about paying an editor? I feel like it's never happened. I don't like zombies.  I avoid zombie at all costs. Hey guys it's Leana. I'm here today to talk about the best and the worst books that I've read so far in 2021. We're at the halfway point in the year, more or less. Pretty much exactly for when I'm filming this right now. More or less exactly for when it's going up. Hopefully if I edit in time. I figured now's a good time to check in and see what's been good what's been bad so far this year and therefore what are contenders for best and worst of the year overall when I do my end of year videos. So I narrated down I usually do 10 best and 10 worst end of the year so I did five best and five worst because we're halfway through the year. That seemed fair. Also I think I usually knew this because this seems like a thing that I would always think. I don't know that I've always specifically mentioned it as a rule for me. I don't pick rereads for either category. I mean well it would be really silly to have a reread in the worst category. I suppose now I think about it last year I totally could have because one of the worst books that I read was a reread because it had been a long time and I was rereading it and I was like dear god why did I ever like this. I suppose it's possible but yeah basically I don't do rereads because mainly for the reason that a lot of my favorite books are favorites and that's why I'm rereading them. So it would be like my whole best list would just be the books that I was rereading because that's why I was rereading them so they all have to be my first time through. All right so I figured we'd start with what did I figure. I went back and forth trying to figure out if I'd start with best or start with worst and I'm deciding right now because I don't remember what I decided. We're gonna start with worst and then we're gonna end on positive note. I think that's what I decided and I did rank them so they're they're not in no particular order. They are in a particular order. So worst books we're gonna do fifth worst first so the best of the worst to the worst of the worst and then we'll do the same thing with best books. We're gonna do the worst of the best and the best of the best. Okay enough explanations. I think you know what this video is. So the best of the worst or the least worst is deal with the devil by Kit Rocha. I still don't know how to say the other name. Yeah that's what that was the Blades and Blades and Blades book club pick for June and unfortunately Blades and Blades servers hasn't had a lot of good luck in 2021 with choosing books that all of us or even any of us like but as usual mine was the saltiest opinion. I hated deal with the devil. I am not entirely surprised by the fact that I hated deal with the devil. It's not like I went into it being like this is gonna be a new favorite. How could it let me down? When I picked it up I was like I hope I like this but I don't know because it's urban fantasy and it is rare. It is the exception. In fact I cannot think of any actual exception where I did like an urban fantasy. I don't want to say that's never happened but I feel like it's never happened. Wait unless then I always give the caveat of like well technically I guess Neil Gaiman writes urban fantasy because he's writing fantasies that take place in an urban environment. But when people talk about urban fantasy as a genre and the tropes that come with that I don't think Neil Gaiman is really what they have in mind. So yeah urban fantasy is not really something I gravitate towards and I would really never choose to pick it up. I really only ever read it because he'll make me read it. Anyway so um however however it was blurbed and compared to Orphan Black which is a show that I love. I actually need to catch up on that show. So I was like all right if it's like that I'm totally gonna be able to get behind that. It is nothing like Orphan Black. There is one single thing about it that is kind of like Orphan Black and that's why they mentioned it. But as usual whenever publishers are like it's like this for fans of this they're always wrong. So once again they were wrong. Orphan Black is excellent and this book was not. Even my co-hosts my fellow Blades and Bodice Rippers book club hosts I already said host well whatever. Yeah they they liked it better because they tend to like urban fantasy just as a genre. So even it's kind of like me with Grimdark where a lot of the time like because I like Grimdark fantasy even if it's not very good I enjoy the stab stab. I enjoy dark and and morally great characters so I'll be able to derive some enjoyment from a less good version of that thing. So for them I feel it's probably the same work. They like urban fantasy whereas I do not. So even though it's not like the best they've ever read it's it's a thing they generally like so they're like it's fine. So for me it was not fine and I hated it so much and I flowed through it as efficiently as I could so that I could be prepared for book club live show to discuss it and then never think about it again. Number Fuller uh fourth worst is Shadow of Night by Debra Harkness. This is the second book in the All Souls trilogy which is the Discovery of Witches series. I was actually really excited to pick up the second book. I didn't love the first book but based on how it ended and where I knew the second one would be going I was very hopeful that I would like it better that I would think that the first one is not great but the second one has the potential to be like actually kind of my jam and it was horrible. It was so so bad. I hated it so much. It was not better. It was not better. Everything that I disliked about Discovery Witches all of that got turned up to 11 so it was even worse than it was before because there were things in Discovery Witches that I was not loving. I was like so that stuff was just like front and center the forefront of the plot.  Can you just like have a normal day? Can you just have a normal conversation? Can you not be immediately aggressively possessive about somebody crossing the room and looking out a window and you're like how dare you look at a thing that isn't me. I'm losing you. You guys need to pull it together. The thing that I was excited about was the sort of the setting where I would be taking place and at first that kind of delivered for me but even that honestly really failed and shockingly because the author is a history professor and while I think that did help in in Discovery of Witches it actually I don't I mean in Shadow of Night mild spoilers for Discovery of Witches at the end of Discovery of Witches they're gonna they like jump in time so you know that in Shadow of Night they're gonna be literally in the Elizabethan era and so I was that's what I was excited about and it was just the fact that it drew attention to it to it drew attention to this itself which is something that I would have questioned anyway but then part of me would have been like well but we always kind of make this leap when we read fiction when we read historical fiction that they're gonna talk in a way that is comprehensible to us just like if you read about people in France but it's a book in English like I mean the assumption is that they're probably speaking French but it's written in English so you know like you just assume that it's kind of like being real-time transliterated kind of like this is meant to be French but even those in English so similarly the fact that they'd be speaking in a slightly more modern way so that you a modern reader can understand sure however when you have a present-day person like transported back in time this modern-day person would necessarily be confronted by people who look and sound and talk in a way that is almost unintelligible because of how different speech and vocabulary and language and everything were back then and so it's actually pointed out in the text how what's her face the main character whose name escapes me how she finds almost difficult to understand them and they find it very difficult to understand her and they there's all this big song and dance about explaining her way as some cousin who came from somewhere far away and that's why she sounds like she does because she's American that being said all of the dialogue was weirdly casual and modern and I was like you can't tell me that Christopher Marlowe speaks in a way that's hardly comprehensible to our modern-day person who's been transported to his time but then also have all of Kit Marlowe's dialogue sound like some guy that she went to university with like what so and it's just the relationship drama and the like weirdly like super accurate historical setting because she like nailed it as far as I can tell on the clothing and the customs and the food and the all of that stuff but the like how people are talking I was like I don't think so but I just I hated every second of it and I don't recommend to recommend the show it's not amazing but it's fun okay number three is from blood and ash by jennifer alarm and trout and this is another blaze and bodys and first look like I said not the best of luck in particular for me and there's been several that none of us have loved but I'm the one that usually is the one loathing they have a lengthy vlog of me reading from blood and ash so I discussed my feelings and my reaction at length in real time in that video so I don't want to say too much here because if you want like I think it's like half an hour 45 minutes so if you want my full thoughts that is there for you but suffice to say it was tropy and awful and the relationship was terrible and the actual writing like the the prose was was poorly constructed and grammatically incorrect and it was just all around horribly constructed it was a lot like shadow of night in terms of relationship being horrible the possessiveness and the the instillaviness of it and just the horrible cringy dialogue so it was kind of like shadow of night except shadow of night did have like at least there was clearly some knowledge of like a historical time period and of historical figures and how we could play with the actual timelines of real people to weave it into our witch and vampire love story even though I hated it I give it points for that because that does require some knowledge and effort from what an ash felt like no knowledge and no effort was put into it whatsoever and I hated it so much number two is a book actually like uh except for shadow of night for every book on my worst list is a book that I was obligated to read for some for one reason or another number two on my list is destiny's captive by Beverly Jenkins this is a book that Bethany chose for me to read when she and I chose each other's tbrs and uh again I have a vlog where I've logged reading the book she chose for my tbr so half of that vlog is devoted to destiny's captive because I hated it it's literally I think half the runtime of that vlog is me just like plowing through that and hating it again don't say too much here because I I talked about it at length already but suffice to say I already don't tend to gravitate towards romance they're unlike with urban fantasy there are some romances that I have liked historical romances so like I have enjoyed a lot of tessadere uh who Amanda introduced me to I love grace draven that's not historical romance it's fantasy romance but grace draven I'll read anything that woman writes I don't always love what she writes but I like most of it so I have there was the potential for me to like this I suppose it was historical romance with uh a ballsy heroine and some swashbuckling and piracy etc so I guess I can see why Bethany thought that I would potentially like it but the main character the main male character was so unlikable and I could not root for their romance because it opens with him blackmailing her into marrying him and then that just becomes like a cute running joke between them I just like as as a premise for their insta love connection turned blackmail marriage I was like no I could never grow to love somebody that thought it was okay to do this ever end of story and that's kind of the jumping off point for their relationship so it was doomed before it ever attempted to sale so there was there was many many many many things that I hated about it throughout thereafter but just as like from from the jump there was just no chance that I was gonna like this when that was how they came together I was like nope my number one worst book I hope I have the vlog up before this video goes up but that's a lot of fucking editing to do I stayed up until one in the morning last night reading this book and and therefore finishing the vlog in which I was reading it so I have a lot of footage at it and it is the worst book that I've read so far this year without question didn't have to think about it one of the worst books that I have ever read and that was Dreams of the Dying by Nicholas Liesau now this is self published so I feel I always say I would feel bad and I generally try not to go out of my way to shit on indie published or self published books or authors because they just they don't have a whole the entire machine of like Penguin Random House or Simon and Schuster behind them so I'm I'm like it feels like picking on a little guy however Dreams of the Dying in hard cover costs 40 dollars ah yeah you're gonna ask me to pay 40 dollars then I have paid for my right to complain about this because it was horrible and I even this wouldn't have saved it but at the very least again if I'm paying 40 dollars for this and clearly money was spent on artists for the cover design artists for all the maps artists for the b-series there's all this extra stuff in there that's why it costs 40 fucking dollars how about paying an editor because there were many many things in it that were not a matter of opinion they were wrong they were incorrect they were either grammatically incorrect or they were not the correct usage of a word or they were not the correct usage of an idiom where this this isn't a matter of debate this isn't a matter of taste this isn't a matter of anything like that this is a matter of this is literally wrong you needed to pay somebody to comb through this monstrosity and again I have so so much beef with all of it that again for me that would not have saved it but at the bare minimum for a book that costs this much I expect some polish and the the visually speaking it's very polished but clearly it's style over substance and that irritates me so much it's not dissimilar from films that rely on having a huge like star-studded cast amazing graphics a great soundtrack they don't have a story and this is not dissimilar so again there's clearly so much attention paid to the look of this thing and that's why I had to shell out 40 fucking dollars for this and the story and the writing and the prose was atrocious it was again one of the worst things that I have ever written at the very least I expect it to be not littered with so many errors where it's literally wrong but also the book was just non-stop soap boxing and info dumping when it wasn't soap boxing it was info dumping and it wasn't info dumping it was soap boxing and I it was so insufferable and so lacking in subtlety so lacking in elegance or nuance or complexity this this the philosophies that it was spewing at me were at the level of like a middle schooler who's just beginning to ask existential questions and the book purported to deal with with really difficult issues suicidal thoughts so trigger warning if you're thinking of picking this up which I obviously don't recommend but it deals with the main character is clearly dealing with some kind of trauma and mental illness and suicidal thoughts and there are other characters also dealing with these things but it's handled in such a like these characters don't feel like characters they feel like vehicles for the author to soap box and philosophize at us and the things he is soap boxing about and philosophizing about are just not worth 700 pages like the things that he's saying they are neither original nor deep nor complex but he's going on and on and on and on about it in poorly constructed English and using what should be characters who are making character decisions in an interesting plot to instead use them to spew these ideas at us at length but it was a horrible it was and I had so many like questions about that when it was philosophizing about these things that I was just like okay for one why does every woman in the story seem to be suicidal I mean more so than even the main character like that seems to be the female solution here is to just kill yourself I wanted to be if you've ever seen that video from like a long time ago um but there was there was a series of videos on youtube there were like a classic literature and how this could have been avoided if she'd had a sassy gay friend so it'll be like Romeo and Juliet, Othello, Hamlet, all these kind of scenes where something tragic happens and then this guy who made the videos would be the sassy gay friend to put a stop to this I might favor it by far as Romeo and Juliet and I bring this up because if you I'm sure you know but spoilers for Romeo and Juliet did the two of them kill themselves at the end um and so you know Juliet has found Romeo dead and she's about to kill herself and in comes a sassy gay friend and she's explaining that well with Romeo is dead uh you know what am I gonna do and uh this sassy gay friend goes so we kill ourselves kill ourselves that's what I wanted to say to the character to the female characters in dreams of the dying and be like so we kill ourselves kill ourselves there was the mystery the the main plot like the the the central question and tension of the plot was resolved at around page 500 maybe 550 leaving 150 to 200 pages of falling action which was really just the main in main character who was inseparable dealing with his own internal struggles and emotional issues and just more soap boxing and philosophizing and just there is literally no plot anymore because the plot has been resolved what plot there was now it's just that it's literally just that for 150 to 200 pages why but for why yeah so 0 to 10 do not recommend okay so let's end on a positive note the best books that I've read this year so much happier this part of the video will be way shorter because I always have less to say about books that I love but number five so the worst best is Deathless Divide by Justina Ireland this is the second book in the Dreadnation duology I do think Dreadnation the first book in the duology is slightly a teeny bit better and um Mara who I buddy read this with um she and I talked about it and we kind of agree that the pacing would have worked better if this had been split up a bit differently because there's a point in Deathless Divide where there's like a big time shift uh there's a big time jump and it's quite jarring so it seems it seemed to us that it would make more sense to have split this up a little more differently because having that happen in the middle of the book it seems like that would be a better place to just end a book so either make this a trilogy or move some of this into the first book or something but like that kind of made this feel like kind of two disconnected halves and so like the pacing was a little off for that but over I still gave it five stars and I still really loved it and I still think it's incredibly excellent and one of the best YA books that I've read in a long time I don't like zombies I hate zombies I avoid zombies at all costs but I heard such amazing things about these books that I did pick them up and I don't regret it and I think it's one of the best examples of alternate history fiction one of the best examples of what YA can do and should do because YA just because you're targeting a slightly younger audience does not mean you can't deal with complex and difficult social issues but it also in a way that is is approachable for that younger audience but isn't talking down to it isn't dumbing it down isn't sugarcoating it is still confronting these things in all of their horror but in a way that is appropriate for the audience that it's geared towards yeah this this duology is a master class in how to do YA make it real make it dark make it relevant make it interesting make it thought-provoking and still be YA. Number four I have girl in the tower which is the second book in the winter night trilogy actually finished reading the winter night trilogy earlier this year I think I read winter of the witch in May and I didn't like it as much as girl in the tower and barren the nightingale I read this year as a reread so girl in the tower I think is my favorite in the trilogy it is really really excellent the winter night trilogy in general is really really excellent it is a retelling of various it's more it's not a retelling of any particular Russian fairy tale it is a retelling of like Russian folkloric elements so there is a lot of just different recognizable pieces of Russian fairy tales Russian lore Russian myth Russianiness Russian history as well the main one of the main things that I love about the series the thing that makes me love it so so much is Vasya the main character she is one of the best main characters that I've ever read and she really really came into her own in girl in the tower and barren the nightingale she's a child for a large part of the book I mean she's still incredible but I feel like it's already kind of an arms length narration style partly due to the folklore style it's told kind of in this more archaic sounding prose that is more in keeping with the fairy tale style so that already is more arms length and then the fact that she has a child is even more kind of I feel like you're at a distance from her in bear the nightingale in girl in the tower again she really comes in her own the plot was the most exciting the development of all the characters the most exciting the return of her brother as a character who we did meet briefly in the first book and I remember regretting that he kind of left the the scene quite early in bear the nightingale and so he comes back into it in girl in the tower and it's it's so good it's so good number three is the hundred thousand kingdoms by nk jemisin after finishing and loving the broken earth trilogy I began the inheritance trilogy and this was actually thanks to my patrons who wanted to buddy read it I was originally intending on reading the dream blood duology next but they wanted to read hundred thousand kingdoms so that's what we read and I really really enjoyed that I immediately went out when I say went out I went to my computer to order the next two books in the inheritance trilogy I'm hoping to get to this pretty soon although they are not direct sequel so there's no immediate rush like it's not like I need to read them for forget what happened in the first one they're kind of connected and in the same world but not a direct sequel in any event nk jemisin continues to be a new favorite author of mine this was really different from the broken earth trilogy it was more fantasy e and and yet it was immediately apparent to me that there are certain things that nk jemisin likes to put in her stories and likes to play with and it was interesting having read broken earth which came after inheritance in terms of when she wrote it but I read it first so to me reading it in this order it seemed to me that hundred thousand kingdoms was doing things that I had seen in broken earth and I was like oh you're doing that thing again except broken earth was her doing it again so it's it was like seeing kind of the the roots or the sprouts of these some of these ideas that she really fully flushes out and really kind of runs with in broken earth kind of seeing her kind of like dipping her toes into some waters that she's curious about kind of exploring a bit uh so I kind I don't know if it is I don't I have no idea if it would be better to read this first and then broken earth or the way around but I certainly can recommend reading broken earth first and then this because it was really fascinating to kind of see the seedlings of these ideas and be like oh I see I see the beginnings of some of these ideas so in any event I loved it so much and if you want if you're worried about starting jemisin and her stuff being too difficult or too intimidating hundred thousand kingdoms reads more like a fantasy book uh it's still really inventive and unique because it's nk jemisin but it's more in caping with a more fantasy narrative style than broken earth is so it might be slightly more comfortable to pick up as your first jemisin possibly potentially number two second best is royal assassin by robin hob I also finished the farce trilogy this year um and once again I like the second book the best uh royal assassin chef's kiss knockout five out of five stars I would die for night eyes it's amazing I I really liked an assassin's apprentice and also assassin's quest I not it's not that I disliked them but royal assassin I think is it is the best of the trilogy I think it is the one that it is where all of the best things about the trilogy get the chance to shine so Fitz is at an age now he's not a child anymore um so he's a fully full-fledged adult so it's kind of easier to follow his story and kind of be with him he's a fully developed his relationship with night eyes so night eyes fully gets to be part of this story when night eyes is the best and buck keep is one of my favorite settings so you get to see lots of buck keep not only buck keep but lots of buck keep a lot of the political intrigue that's kind of begun to to be a thing in the first book really kind of takes off and becomes really messy and intriguing intriguing that is intriguing great great english lana anyway I just I think it's really really excellent a lot of all of my favorite things about the trilogy basically either happen or are the most best in that one the one thing that I think maybe shines a little more in the third one is the fool but the fool is amazing in all three books and the fool is always one of my favorite things in all of the books and there's lots of the fool in royal assassin as well so yeah 10 out of 10 loved it so much habis mcqueen and the number one so far this year is a surprise not not a huge surprise but I'm just surprised by how much I liked this that is empire of silence by christopher rockio um this had been sitting on my shelf for some time because I'd heard it recommended and praised in particular by people who are fans of name of the wind and whenever fans of name of the wind are like I like this too young girl is like what so I'd ordered a long time ago but I just hadn't got around to it because there wasn't any urgent reason to so I just hadn't yet and then alex alex neavis um hauled it and I was like I have that I've been meaning to read that let's read it so we buddy read it and now we're gonna buddy read the second and third books as well and both of us really really loved empire of silence so we talked about it for like two hours in the live show on my channel so if you want to watch the replay that's available and it's a debut it is such a strong debut he at one point uh he being alex said during the live show that we were trying to discuss it and be balanced and fair and professional book reviewers so in theory you're supposed to sort of talk about pros and cons and and he was like there's there's nothing that I would like I can't think of anything that I would say that I didn't like or that I would change and I was like yeah pretty much there's things about it that weren't maybe completely perfect but all around is the one of the best books that for sure that I've read this year and just generally that I've read like it is a new favorite and I'm hyping it to everybody all over the place it is somewhat similar to read rising in terms of the fact that this is a sort of it's a futuristic space opera that is heavily influenced by Rome Roman culture Roman names Roman social structure having kind of these like noble families that own things and are genetically different from poor people they are longer lived and larger and and stronger so in that sense it's a little bit reminiscent of red rising in terms of just at the setup but as a debut I will say emperor of silence is a far stronger debut than red rising the book is red rising the book is far from my favorite in that series and I think is it is a fairly weak debut like it's it's pretty good for a debut from an author who was like 23 when he wrote it you're like that being the case that's pretty solid standing next to empire of silence which is also a debut you're like well that empire of silence though like that's that's knockout stuff and I hear from everybody and that's what everyone was saying in the chat when we talked about it during the live show is that empire of silence is the weakest one just like with red rising only red rising I thought was kind of weak and I didn't think of fire of silence was weak at all in any way I cannot find a flaw and this is the weak one so I am so stoked to read howling dark next month with Alex so the discussion will be on his channel hopefully this video goes out before that discussion happens but I don't know I am a mess and editing takes a million years yeah empire of silence number one no question about it if you haven't read it read it if you haven't heard of it go look it up then order it then read it you will not regret it so yeah those are my best and worst so far in 2021 let me know in the comments down below if any of these books are on your best or worst lists if you agree or disagree with me about the ones that I've read that you have also read if I have inspired or discouraged you from picking any of them up whatever you want to let me know I post videos on saturdays other random times as well but nothing saturdays so I can subscribe join my patreon if you feel so inclined and I'll see you when I see you bye


Hello and welcome back to the craft box my name is springton today we're in episode 74 of the wizard 101 death walkthrough last episode if you haven't checked it out already We entered the majestic world of winter tusk, which is part of grizzleheim So yeah, that's cool. We started an hundred Rundle fraud fjord which is where we are now and we're gonna open up the front gates You tap on the gate a few times Something that sounds like Norse code a moment later. It opens. Oh my So yeah, basically we are now access to Hundo fraud or like all of it basically So yeah, let us hit on into the main building See what's in there, man? So we also found out that everything's kind of mean and really good here So that's not good Bonnier is frozen solid. You should tell Balder the bad news. Okay, let's go and do that then Yeah So yeah, everything's kind of like really good and we're like kind of really bad So I've got James here. He's probably gonna help us for the rest of this book just because I'm gonna get too frustrated So, yeah, let us hit on over to Balder You bring ill news Vanir alone could tell us what happened to her under fjord We must devise a way to thaw on your storm or without harming him. This is Raven magic We need a raven if I remember rightly an old crone named mourn shadow brew dwells within her under fjord Though she was wicked and unkind she may be able to help us if she has not been turned to ice Go and seek her out and see if she can be convinced to help us in this cold out Convince that means fought Yeah, it sure does doesn't it bring you up? Yes, it does lag Or nice Give me some debt or boy Okay, I didn't actually know if we could so I just took the guess that we could Um, okay, I have absolutely no idea how good this boss is gonna be Whoo, I'm kind of worried We're gonna use our Main dick. Hmm. We're gonna go in first find out She's probably way too good for us. Who's this? You're not frozen. No matter You'll join the others in their wintry doom Okay, then that's cool cool beans, bruh Yeet yeet yeet yeet yeet yeet yeet yeet Mean mean mean mean mean mean mean mean mean mean mean mean mean mean yeah, basically It's gonna do that bro. Yeah Yeah, man, yeah, I should yeah, you know what we're just gonna go in Yep, let us hit on in got some prisms, which is good. I got storm out, which will be good How much health does she have? 1,000.  Geez man.  You probably have huge damage This gonna hurt man It's gonna hurt my man's Luckily, I don't think they use any more sit shields anymore, which is fantastic Because sit shields are bad bad influences on people We'll do that and we will do that Basically, we're just gonna use all the blades and traps we have and then oh god 95 not too much.  Yeah boy He will definitely die, so that's always good. You know what we're gonna heal and just cause we can This is an aoe it is an earthquake of course it is Thanks game You would wouldn't you? Yeah, you would Welcome to earthquake zone. This is where this is the part in the game where myth mobs actually use goods spells And you can actually probably fail because of it. So yeah, thank you game That love you lots. Oh I crit though. That's always good.  That's good You're dead man. You're dead. Don't need that. Don't need that. You need that blade anyway That blade would come to mark What is it you want? Thawing the faint veneer He knows nothing, but if you must speak to him here is how to thaw him go to the geysers at the edge of the village and Collect some scalding water. Here's an urn. You can use Just pour it over veneer. He should fall in a matter of moments. It is magic ice Only geyser water will serve. Yeah, she has a quest for us. I don't know what it is Um, but my storm hasn't done it. So obviously not important. What is it in fact?  That's a good question actually Um Gives seven thousand. Yep, that gives a lot Oh, those are the frost goblins. Um, oh god. Where are we going? Over here into here geysers You collect the steaming geyser water in the urn worn gave you you're careful not to burn yourself Good. I don't want to burn myself That would be bad Notre Lund Um, yep, let's hit on back to Veneer who's in here Ba-ba-da-ba-da-ba-da-ba-da-ba-da-ba-da-ba-da-ba-da-ba-da-ba-da-ba-da-ba-da-ba-da Look at that You pour the steaming geyser water upon the frozen thing in a moment or so. He is free from the ice What has happened? I was in my hall ready to fight to the coven when I became quite cold I remember no more Now I am soaked and steaming my state lacks dignity But I am grateful to you for my freedom I don't recognize you, but you're clearly a wizard of some sort You freed me so I will trust you the one you must speak to is grandmother raven She is an old one older than even the spiral It is said she gave the eyes of time to the great tree at the heart of the spiral But that was long long ago. She is a loyal ally of my people I bid you check on her see how I fear that the coven has done her ill Grandmother raven is often near the giant tree behind this hall. Go and seek her out Cancel Okay, let's go and see grandmother raven She is fantastic and is hiding a secret Um, she also has some conspiracies around her and arc three Um, but you'll find that out later when we get over there Which is gonna be in a while and by a while. I mean a couple of months And by a couple of months I mean probably three or four Hello grandmother raven Greetings young wizard at long last we meet Wait, is that the narrator's voice? Oh my god, it is I have long watched you as you made your way through the spiral Perhaps you have felt my presence before I celebrated your victories and I hope that my council reached you in your journeys You find me at a disadvantage Though the ravens are all my children of a sort some of them are quite wicked The ravens of the coven are especially Untrustworthy they caught me unawares and trapped me in this cage If you would help an old grandmother talk to the three Wise sisters call the norns at the nearby well They can see into the past Across the world as it is and they know what is to come they can help you set me free I am the one who knows all that has happened to you before this day I am verdandi and there is nothing in the spiral that is hidden from my sight I am scald and I knew you were coming We know and tend the loom of fate Each living being is but a thread for us to weave into the tapestry of life As an outlander you are free from fate You are not of grizzleheim so your destiny is not part of this tapestry You alone can change the course of events and thwart the frightful fate that is to come To free grandmother raven you must do the impossible First fetch for us the feather of a white raven Skogul the pale is such a raven with feathers the color of the moon rather than the night dark sky Go to skogul's hut in rondelfjord and bed from her a single white feather Okay, let us head on to skogul Um, so yeah, we finally met who the narrator actually is. It's grandmother raven. What a surprise I mean, I've known that for a while, but what a surprise for those who didn't I feel sorry for you who are missing out um But yeah, she is fantastic Who's that outside if you're from the coven leave me alone If you've come to free me then welcome the door is frozen shut If you want to be of help fetch a kettle from the market and fill it with snow Melt the snow in the fire pit in the market and then bring the hot water back to pour over the ice on my door Um, sure Oop that was close That was close Where's the market down here? I assume over here. Okay, just here Lodgepot just out here. Hello lodgepot. You get a cooking pot and quickly fill it with snow Use the cauldron It's right there. I seize it I seize it I seize it here it is seize it The snow melts and boils quickly Skogul Skogul we pour the boiling water over the ice it melts away Let's go on can we go on yes we can okay good. Thank you Thanks game You're not from around here. Are you You have my gratitude for getting rid of the ice But i'm still plenty mad at what's been done If you'll go and teach a handful of those ravens a lesson any of them will do I'll be willing to listen So what are you waiting for get out there and thrash some of the ravens that ruined this nice village Okay, I'll be back when I've defeated some ravens Okay, I'm back I'll help you now that the ravens have paid for the trouble they brought to rondelfjord What can I do for you a feather an odd request? But if it's for a good cause wincing skogul pulls out a stray feather and hands it to you Use that in a spell against me and you'll wish you hadn't Okay, then Let's go talk to erd The norms Norms or norms norms. I think it is norms Go talk to them once more Oh This feather will serve its purpose But it's only a start We do not send you on idle errands the things we need are for a mighty spell to change the fate of a world The next impossible thing we need is a claw from a bear with no name In this world that is no small thing Vanir storm rower keeps a census of all who dwell here He knows everyone and may know if there is one with no name Vanir is in his hall and he will help you find this nameless bear When you have that bear's claw you can return Okay, let us go and do this. We also got to level 48 a little black bat came and sang to me Your name was mentioned I've a new and most powerful spell to teach you should you have the time to learn it? Um, so that's skier crow, which is fantastic Can't wait for that Um, but let us finish off this episode and then the next video you see today Which will be up in an hour if you're seeing this like as soon as it comes out Um, which probably you're not But in an hour you'll see the spell quiz video for that You seek a bear without a name. How odd Why would any bear not want to have a name to echo in glory? I keep a census of all those who live in this village read it and see if it helps Okay, just trolling Okay, that's cool census list Let's go and read the names You examine the census the list of names doesn't include leaf. We were standing outside of town Vice has a name you say so that's kind of weird You're dumb.      Is it safe to go back into town? What? No name? How could they take leaf off their census? I'll have to speak to vanir about that. What's that you'd like a claw How odd I was discharping my claws and the tip of one of them broke off It must be fate at work in that case. You should have it Okay, he went off to see vanir. That's cool Okay, okay. Let us go back to the urds To urd and what's her name and the other what's her name the gnomes Of a bear with no name you are clever to win such a prize Clever indeed great raven and a claw from a bear with no name Two of the three items we need are in hand The third item is perhaps the most difficult to obtain A tooth from a wolf who has never known battle Fate smiles upon you at the edge of this village is an herbalist called reagan wild leaf He may be of help. Okay Let's go and meet reagan Um, he is of help Spoilers Um Yeah, let's go and find him. He's kind of cool. He makes us do some cooking. I believe if I remember correctly, which probably don't to be honest um But yeah Oh, he's in this one. Hello Hello You aren't from here, did you come with the coven or are you here as a friend to the folk of herundle fuel We can use allies in this grave time I am an herbalist and I do what I can to heal the sick a tooth What a strange request and an odd coincidence one I cannot ignore when the ice first came. I bit a piece of it and broke a tooth I'll readily give it to you. But can you help me? I have an ache from the missing tooth and the herbs I need for the remedy are outside of town I'll need a sprig each of valerian and of amaranth They grow around the village and out. I'll also need a branch of moon wart Which the coven night wings may have taken gather those three herbs bring them to me And I'll look around and see if I can find that broken tooth Okay, so I'll be back once I have collected This whole shopping list of things Okay, I am back You're quite the gatherer those herbs will help ease the pain of this broken tooth and here this is for you Regan hands you a jagged piece of broken tooth that must have hurt coming out Okay, let us get on back to her once more And I think that is basically all that all the things that we had to get for her Um, I think that was the third and final pretty sure at least Um, so let us hit on back. Oh god. The lag is real. Geez We have the three that cannot be Now is the time to weave our greatest magic Claw and feather These are symbols of our people yet each comes from a source that cannot be You must bind them with the thread of your life and weave them into the tapestry that is grizzleheim's fate Take feather claw and tooth to the loom of fate Tie them to your thread. You will know it and return to us Okay This is a big thing One of the threads looks a little different from the others you get a sense that it represents you You tie the feather claw and tooth to the thread Strangely grizzleheim feels a little more like home to you Shush you in the background shush. Geez shush. Don't narrate everything. Geez You can now dispel the magic that binds grandmother raven within her cage. It should open to your touch Okay Let's do this So three from that cage now I can take on my true form Do not be afraid walk up the ramp so that I can see you eye to eye Um, okay, then We will show do that. Oh diamond nice Okay Grandmother raven. Hello Hello It has been centuries since I wore this shape. Oh to stretch these wings once more There is still much to do else the everwinter takes us all in its cold clawed grasp When the ice titan fought with his brothers the titans of fire and storm the world was threatened with ruin Bartleby sung the song that put them to sleep and bound together the shattered world and spun it into the spiral Four sons there are of the ice titan four giants of frost Austria vestry Sudri and Nordry are their names each frost giant rules a land near Rundlefjord And they have never been friendly to bear wolf or raven But the one they liked least was their father the ice titan himself While the father slumbers the sons run white The four ice giants each have a means to bind their father to sleep Four golden seals one to each I lay this task upon you to fetch back the golden seals The gate to austria's land will now open to you Go through the gate and speak to austria bargain for the seal then return with it. There is no other way Okay, so next episode we will head over into australand Um, so thank you for watching women's delivery like and subscribe and if you're very subscribed Press away little bells, you know exactly where I post another video and river craft outside the box


Welcome to today's session. My name is Maurizio Gianluca, I'm a PM at Microsoft, and today's session is titled Questions and Frameworks for your day-to-day as a PM. A little bit about me. I am from Venezuela, I was born and raised there. I got my bachelor's and master's in industrial engineering, and this picture that you see here, that trust me, I'm an engineer, was in my gown when I graduated, that's why I'm so fond of it. I've been a product manager at Microsoft for almost four years, and just a bit more about the background for this talk. When Product School reached out to me, I wasn't really sure what to talk about, but I had a manager that whenever I wasn't sure about a specific situation, he didn't give me an answer straight up. He always replied to me by asking me a follow-up question that would give me more clarity in the situation, or he would suggest a framework that I could use to get on block. When thinking what to talk about, I really like the idea of sharing some of those questions and frameworks that have helped me in my day-to-day as a PM. That's where the title for this session came from. To provide a little bit of a level-setting context, let's start with what the life of a PM looks like. Normally, we start with leading or being asked to lead a big initiative for the team. Once we understand that initiative, then we talk to the customers to understand what their pain points are. When we have a good understanding of their pain points, we write those thoughts down, normally in the form of a spec that really helps the team understand where to go. But as many of you know, that is not a one-on-one type of thing. It is a very iterative process that requires a lot of collaboration. But once everybody is clear on the direction from the spec, then you start to drive progress. You start the execution mode. Either at the end or throughout the process, you start to look back and see where the team is, so you get a chance to improve. This is a very simplified version of what life of a PM looks like. It is actually very common to have many projects going on at the same time. So you can be going through this cycle in parallel multiple times. It doesn't have to be in this specific order. Sometimes you'll talk to your customers and then you'll discover a big initiative to drive. But the steps are more or less correct, the order may change slightly. Again, these areas by company, by organization, by team, so follow this process, follow the questions and frameworks, and you'll succeed. So let's start. Leading a big initiative. This can take many shapes and sizes. We've seen this all over the place. It can be as simple or as complicated as improving customer retention by 50 percent, or a little bit more binary, like create a data quality program for the organization or launching a feature to improve customer satisfaction. Again, this depends by work, your function, your team, all of those. At this step, at the very beginning of a project, I like to ask myself a set of questions that help me get the right thinking in place. These questions are, what are the players in this phase? This really helps me list out all the people that I need to interact with, the people I need to convince, my allies, my not-so-alliance, all the folks that I'm going to interact with throughout this project. What are the next five moves? This helps me get started. It forces me to think beyond the next action, and whatever that first action is, once that it's done, at least I know, I have an idea of what to do next. It's okay if it is not exactly what you thought of, but it forces you to think beyond that first step, it forces you to think in that right direction. Last, what are the options, what are the risks? This is way too early to get it right, but that's okay. The point here is that it forces you to write down some of the paths that you can take, and what are the things that could happen in each of them? The idea is to identify some of the options that the team has. At this point, in the beginning of the initiative step, the framework I like to use is the pre-mortem. A pre-mortem is when the team imagines that the project has failed and you evaluate the reasons why. It may sound negative, but it really allows you to think through the reasons why the project failed, and I personally like to do it with these people. I'm going to be working the closest with, normally in a room of four to six people, since that allows me to see different points of use, not just mine. Once the group has a good understanding of the top reasons why the project might fail, we can take the right necessary steps to mitigate those risks. This is really important because before the party has even started, you at least have some understanding of what it is to watch out for. Perfect. You understand the initiative. Now, before jumping into any solution, you have to talk to your customers to understand the problem that you're trying to solve. Granted, in some cases, like I said before, you'll talk to your customers and then you'll derive the big initiative based on the feedback they gave you, that's okay. When talking to your customers, I like to ask myself this set of questions to get a better understanding of what I want them to do. Why should a user or customer use my product? You have to know the answer to this. Through the PM, if you cannot explain this and make it part of the product, then your users won't be able to tell either. You have to make this research apparent in the product itself. What do my customers want to achieve? This gives me a sense of the user's flow, the user flows that they will go through when using the product. This is very important because it sets up the next question, where they're struggling. If you understand the user flows, you can at least hypothesize as to where the flows that they will struggle the most. When you talk to your customers, you'll be able to see if they're struggling in the places where you thought they are or if you have to reshape your focus. The framework, it sounds simple, but it's very important. Research how to do customer interviews. This is super important because you'll do many of this throughout your PM career. The idea when doing this is to keep the questions open-ended. The top two questions I like to ask are, what is the most frustrating thing about using product X and what do you wish you could do with product X that you can do today? Those are the top two questions that I asked in my customer interview questions. Something to keep in mind is that when you talk to your customers, you want to understand their problems. You're not looking for them to tell you how to fix it. They can, aren't they? But you have to be careful. In many conversations, your customers would say, if I had X feature, they might probably will be solved. But you know the feature X makes no sense with the rest of the product that you're building. You want to understand what their problems are, not design a solution with them on the go. Again, the point of this is to understand their pain points, understand what they're struggling, so you can send the right product to solve their needs. Perfect. At this point, we understand the initiative and the customers. So what now? We write the spec. I was listening to an event the other day in product school and they were saying about the importance of writing in your career, in your PM career, and I truly believe that. That's why I emphasize writing to all of my peers. I think it really brings clarity to the team, but especially to yourself. Because through writing, you can make sure your idea is sound. You can get clarity in your thoughts, you can get clarity in the options that you have. So before writing the spec, I'd like to ask myself two simple questions. Whose feedback and bios do I need to get? This allows me to get a sense of all the people that will need to review and approve the spec before the deaf team starts to go. I want to be proactive about getting that feedback, and I want to develop relationships with those people. Because this is important, since we need to make sure that the team isn't the same page before we start the execution. Then the second one is, what is the takeaway that I want people to get? I asked myself these questions because I want to be intentional about the points I want to punch in the spec. For example, if everyone is super clear on the problem, then I want to spend more time focusing on the UX, for example. Still explain the problem, but I don't have to spend that many sections of the spec on that. Whereas if not, everyone is super clear on the problem, then I want to make sure I spend a lot of time backing up my claim to make sure everybody agrees on the need we're trying to solve. At this point, I'm going to do a plug to the products for the framework that I like to use is the template spec in the product book. I think this book is a fantastic book for PMs, especially those in early stage in their career. The template in that book is really helpful to get you started. One of the first things I did when I was reading it is I copy pasted the content and created a word doc called template, and that is the one that I start every project with. It really helps me get the right framework and I get a good idea of all the sections, all the things I need to think through when I create my spec. One of the things that I especially like is the PR FAQ sections. Those are very common in Amazon, but not so much in Microsoft. But reading this and using them has allowed me to think through the perception of the product and the kind of questions I want the users to ask before the product gets launched. Again, I want to be super clear about this. This is an iterative process. I cannot emphasize it enough. It is not a one-on-one thing. It is an iterative process. You will iterate a lot before and after the first review and throughout the duration of the project if you want to keep the project, the document correct, you should. So make sure to work with engineering, design, other PMs, all the people that you are dealing with in the project. You don't want to surprise too late in the game that changes the direction of the project. You want to make sure you're being proactive about getting that feedback. At this point, the spec is done and you move to the next step, driving progress and making sure the project is going as expected. Keep in mind, a lot of progress is driven through meetings, whether those are ship rooms, monthly product reviews or whatever other forum your organization uses to make sure everybody is rolling in the same direction. So what I'd like to ask myself in these forums is somewhat straightforward. What is the next action? And once I understand that, who has to do it, buy one, and what happens if they don't? Once I know that, I can make it clear to the team and we can all be on the same page as to who has the accountability to drive the progress, to do the next step. In those meetings where you want to drive progress, I recommend something very simple, but very effective, taking notes. Good note-taking is a very underrated skill. In fact, more often than not, if you're taking notes and you're projecting or leaving the whiteboard, you can leave the meeting in the direction you want. You almost control the room, so to speak. So something I like to do when I take notes and send them afterwards after the meeting is that I want to record the important aspects of what was set in the meeting. I want to be very intentional about bolding whatever decision the group took, so everybody is clear and it's recorded that we all agreed on it. I want to clearly call out the follow-ups, specifically what is and who has the next action. If you do this well, you're going to drive more progress for yourself and for the organization than you're speaking to people left and right. So it is very important. I know PMs sometimes get a bad rep for the key notes, but I cannot emphasize it enough. It's one of the most important skills that a PM can do. And almost as important as leading the meetings is making sure you're going in the right direction. So the questions I like to ask myself at this step is did I achieve what I wanted this week, this month, this quarter, whatever time period and evaluating it? And if not, why not? This forces me to be intentional about the deadlines for the team or even those that I set for myself. So it is important to understand whether you're hitting the right milestones that you have for your project. If not, you can question that. You can understand the reasons why not. And you can look back and see the reasons for the pre-modern and see if those match. The second one is, is this an issue that we're facing? Is this issue that we're facing a one-off? Or do we need to do something more concrete about it? And this helps me understand if we're overreacting to an issue or if we're facing or that we're facing or if we're, okay, it is important to not over-correct when a one-off things comes up. Because you have to keep calm. You have to understand how does over-reacting changes how the team spends resources. Another thing that this question helps you understand is if, for example, there's something more concrete, they need to go about it. Maybe there is a resource conversation that you need to have with your leadership team. Maybe you need to ask for more resources because something you didn't thought of came up. And that's okay. The important piece is to be intentional about this. And last, am I spending my time in the things that provide me the most value? And this is very tricky because PMs have to do a bit of everything to keep the organization moving. So the most valuable is very subjective. But at least be deliberate in asking the question and making sure you're spending time developing the skills that you want. This is super important to take the next steps for your PM career. The framework I like to use to keep me in check is the weekly review. I learned this from the book, Getting Things Done, from David Allen, which advocates for what is the next action framework. I actually took that from that book as well. And I love this weekly review format because it forces me to look at the list of initiatives and to do's that I have. And it allows me to make sure that I have a next action associated to it. And I understand that PMs are incredibly busy. Our calendars are probably one of the most chaotic for the whole organization. But try to leave 30 minutes a week to clean up your to-dos, your calendar, and see your list of initiatives. And make sure that you have the next step associated to each one of them. Once I do this, this really helps me understand the week in the right directions. I normally do it on Friday afternoons when the whole week is calming down. I like to do this for that Monday morning. I know exactly what things I need to do. And that's it, that completes the cycle. Like I said at the beginning, you're going to go through many of this at the same time. And when one is done, there are other initiatives that are still ongoing. So there's more work to do for sure. And there are more initiatives as well that can be picked up. So you'll go through this cycle or a version of the cycle many times. You can define what works for you and what really helps you define your PM career. That is it for the session for today. I want you to take away three things from today's session. The first one is ask yourself the right set of questions before starting an initiative, a project, or a meeting. That way you understand who are the players? What do you need to prepare? And what are the outcomes? What is the outcome that you want to get? This again sets you in the right framework and you can use all the questions that I said during the presentation to get the right thinking in place. The second one is frameworks are a great tool to get you started, you have to take it the rest of the way. They're tools, they're not the answers to everything. You can use them and you should use them, but you don't rely only on that to give you all the answers. And the last, don't dismiss the importance of note-taking. If you take notes, in many cases, you control them. I see many PMs not wanting to do this. I think this is one of the things that you should do as a product manager. I think really helps you understand the product, really helps you try progress in the right direction. So don't dismiss this skill. All right, perfect. Thank you so much for having me this session. This was questions and frameworks for you today as a PM. You can find me in LinkedIn at MauricioLuca and thank you so much everyone. Have a great rest of your day.


Oh my god, bro. I think we burned, bro. We burned.  I'll double the one beat. No, I'll check I'm trying I'm trying. I'm just running I'll get it now. No, that's Okay, I'll try.  Yeah double dot and then more burns Nice got the shield MCS King sheeps full sheep They're going me. Yeah, yeah, yeah, I'll stop the rest. I'll stop the match. Okay. I'm gonna purge major. I can he's gonna fit me Would you deep me? Silence, I'm just gonna line Majors clean Got you not getting next miss.  Yeah, I'll waste of my death. He just wants to drink. I think I have ps for next and crystals So I should be fine, but trans CS PS Yeah, I'm okay You got so lucky pretty straight shadow oh, I'm in I Get out of me. I couldn't get the field trying to dispel He's gonna kidding me Got it Yeah, by a rug open drug dance ps kidding But a second I got you I'm free.   Are you so dead? Oh, I'll do the favorite for a week. He would he would I dip you I'm going on your ship We have to send yard I'm sending the other one In this I wish you Sending again, maybe you can land the road. Yeah, I'm walking away. I'm gonna range him I have Trinket the next kidney Yeah, yeah, I'm in combat. I'm just staying range Yeah, I'm ranging I Did she be my team? Mine is a block you can do it. Yeah clone on me sitting Sitting but I will go up now Sapping me I can trinket need I think it's fine I've got the shield on myself. They can't get me. I mean it can but I should be okay Sapping me staying combat. Okay. I'm staying back my pet is not going Still in combat. Yeah. On me. I got the ferrule And take your eyes. Yeah. Yeah Rogues back on the other side. I think Rogues crossing got him out I'm moving away You know the opening of this mix is good Okay, miss my number off here Bizarre I'll shoot But I can't really the spelling for I got the problem. I'm going for a look. Yeah I'm changing gamma Brock I'll chip in again now. I'll push back this one.   I know you The other one is coming. Oh bash me getting sack fearing Okay, maybe Yeah, I'm getting I'm getting it wrong.


All right. Hello, everyone. It's great to be here at KubeCon and CloudNativeCon China 2021. Today, we're going to take a deep dive into open policy agents. And on matters, I work as a developer advocate at Styra, the creators of the open policy agent project. I have a pretty long background in software development, where I work mainly in identity systems. I have about three years now of experience working with OPA. And before I worked at Styra, I worked at another company where we integrated OPA in large production clusters, primarily for authorization. When I don't work with OPA, I'm interested in cooking, food, and football. So what's the problem are we trying to solve here? What's the challenge? I'd say it's this. It's really to manage policy in increasingly distributed, complex, and heterogeneous systems. We have, of course, applications and the programming languages and the application frameworks. We have our deployment targets and our infrastructure. We have our cloud providers and cloud environments. And we have data sources. Of course, there's way more than we can list on a single page like this. But really the challenge is to try and manage policy in this complex environment. And the goal is to unify policy enforcement because policy is already in all these places. Most of these deal with authorization to some extent or they deal with other types of policies, but they all do it in their own unique way. So the goal of OPA is to unify the way we can do that and unify policy enforcement across the whole stack. So that's really what OPA is. And OPA is an open source general purpose policy engine. And as of February this year, it's a graduated CNCF project. OPA offers a unified tool set and a unified framework for working with policy across the stack. OPA decouples policy from application logic. So sort of in the same way that a database decouples storage from your application and moves that into the database. You can think of OPA in the same way, but for policies. OPA separates policy decision, which is what OPA does from enforcement. So your application, so OPA makes the decisions, but it's still up to your applications to enforce them. Policies, they're written in a declarative language called REGO, which we will look into later. And since OPA is a general purpose policy engine, we have some use cases ranging from Kubernetes Admission Control, app authorization, infrastructure policies, data sources, build and deployment pipelines, and many, many more. So OPA as an open source project have more than 200 contributors. We have more than 50 integrations listed in our ecosystem pages. Almost 6,000 GitHub stars, 5,000 Slack users, and more than 100 million Docker image pulls. So it's a really popular way of dealing with policy. The ecosystem includes not just OPA, the core project, but also interesting projects such as Comtest for testing configuration files or basically files or static resources. You have Gatekeeper for Kubernetes Admission Control, VS Code and INIDI Editor plugins. So it's a large, vibrant ecosystem and a vibrant community. But of course it's not just a hobbyist project, but OPA is actually used in production at some of the largest enterprises and some of the largest organization in the world. And to sum it up what OPA is about, I kind of love this quote from Kelsey Hightower, saying, the open policy agent project is super dope. I finally have a framework that helps me translate written security policies into executable code for every layer of the stack. So I think that's pretty much what OPA is about. So how does it work then? The answer to the question can largely be answered in the policy decision model, which means that we have a service. And when we say service, that could basically be anything. It could be an application, a microservice. It could be a database, an API gateway like Kong or it could be a Linux PAM module. It doesn't really matter, but anything that services a request. So when a request comes into that service, rather than trying to decide should that be allowed or not, the service turns to OPA and asks a policy query. And OPA then based on the policy it has been provided and possibly data from the outside world then makes a policy decision and returns that to the service. So it's kind of like an oracle that you have next to you where you can ask, should we allow this? Should this or that? Is this or that doable or not? And OPA will answer. So that's the policy decision model. And since it works with just JSON, any input is just JSON and the output is also just JSON. So any service that can handle JSON can pretty much integrate with OPA. And that's one of the secrets behind the general whites. So like generally applicable. In terms of deployment, OPA runs as a lightweight self-contained server binary. It's ideally deployed as close to your service as possible. And that's also a reason why it's so lightweight. So rather than having like one OPA to service all of your applications, you deploy one OPA per application or even one OPA per replica of your application. And you want them as close to your service as possible. And this is normally to minimize latency since you're going to ask a lot of questions to OPA and you want OPA to be hosted as close to your service as possible. So this is normally on the same host running as a daemon or possibly as a sidecar container in Kubernetes. And most applications communicate with the OPA server through its REST API. So that's how you ask these policy queries. But if you have a Go application, you could also import OPA and use that as a Go library since OPA is also written in Go. There's an Envoy is still an integration as well. If you are using that. And finally, you can even compile your policies into WebAssembly. So you can run policy decisions anywhere where you can run WebAssembly. So policies, they are written in a declarative high-level language called Rego. And just as a normal policy or a real-world policy, a policy in OPA or Rego consists of any number of rules. That's basically what a policy is. When we evaluate a rule, it commonly returns a boolean value like true or false. Are we allowed or not? But it could also return any type available in JSON, like strings, lists, nested objects. A pretty common pattern is if you deny something, you might also want to return a reason and say, you can't do this because you don't have the admin rule, for example. So Rego includes over 150 built-in functions. And these are tailor-made to work for the purpose of policy evaluation. So things like JSON web tokens, which might carry user identities and roles, date and time, IP address ranges, math, et cetera. Policy testing is easy since OPA provides a unit test framework. So policy is code. So of course you should be able to test policy just as any other code. It's a well-documented project. The docs are great. I recommend checking them out. And there's also a playground available so you can test things without even running or having OPA on your local machine. And it's also a great way to kind of share snippets between friends or colleagues who are also working with Rego. So policy is one of the components required for a policy decision. But policy commonly needs data as well. And OPA offers several ways to provide policies with data. And one of them I think we already touched on, and that's as part of the input query. So when you ask OPA a question, it might also provide some data with that question. So you say, I have a user here trying to access this or that endpoint with these roles. Should that be allowed or not? OPA can then make a decision based on that. Again, you can also provide JSON web tokens. That's a very common way now of having ID tokens or access tokens which carry user identity or client identity. Since OPA exposes a REST API, you can also push data inside of OPA. So that data will be available for subsequent requests. There's also a bundle API which is kind of the opposite to pushing data, but rather having OPA periodically go to remote endpoints and pull data. Finally, there's an HTTP send function. It's a built-in function which allows you to kind of add policy evaluation time from inside your policy, go out and fetch data at that very instant. Okay, so OPA and Kubernetes. This is obviously KubeCon and CloudNativeCon, so how does OPA and Kubernetes fit in? And before we kind of approach OPA, we might want to remind ourselves how the Kubernetes API works and how a user interacts with the Kubernetes API. So a user might do something like KubeCDelaApply to deploy a resource, but before that resource is deployed or really persisted in the Kubernetes database, normally at CD, it first passes a series of modules. So first off, the user needs to authenticate. And after that, the request will pass authorization. Is the user allowed to deploy this resource? And after that, the request enters the mutating admission controller. Where we might modify the actual resource about to be deployed. And finally, the resource is validated by the validating admission controller. These modules are shainable, meaning you can have any number of authentication modules, authorization modules, or mutating or validating admission controllers. And of course, Kubernetes comes with a bunch of all these modules built in, such as the OpenID Connect module for authentication, RBAC, of course, for authorization, and a bunch of modules for doing admission control as well, both mutating ones and validating ones. But what's even more interesting, at least from an OPA perspective, is the option to use webhooks, meaning that rather than using one of these built-in modules, we can reach out to an external service and ask that for advice. And of course, reaching out to an external service for advice or a decision, that's what OPA does. So for both authorization, mutating, and validating admission controller, you can configure a webhook to reach out to OPA for a decision. Let's zoom in into one of these cases, which would be the validating admission controller. And why the validating one? Well, it's by far the most popular module to extend, or the most popular webhook to use. And the reason that is, it's because it allows us to build policy-based guardrails around our clusters, meaning what we can do and can't do. So some common policies that we can enforce include the use of only an internal Docker registry and other type of image constraints. We might not want to use the latest tag, but also always have a specific version, for example, requiring labels or annotations on resources. You might say that any resource deployed must belong to a team, and that must be clearly marked in a label or an annotation. It could be a call center, it could be a department, it could be many things. Ingress or host path uniqueness, that's another common thing you might want to enforce so that if you have an ingress deployed and that one is deployed to a specific host or path, you can't deploy another ingress resource to overwrite that or to conflict. So you check what ingresses are currently deployed and then you compare that to one that is about to be deployed. You might want to enforce TLS for services. You might want to add in some attributes, like host path volume mounts. You might want to put resource or limits on resource allocations, pod security policies, which are replaced now by things like OPPA and other validating admission controllers.  Maybe you don't want to allow deploys on Fridays only when people are on call and so on and so forth. Really anything. So validating admission controller, when we talk about like admission controllers, it's almost always the validating one we mean. The mutating one is certainly useful to some extent, but it doesn't really build these guard rails. That's what the validating admission controller does. It provides us a safety net around our Kubernetes clusters. So with that, let's look into what Rego policy offering and policy testing might look like and also how we could deploy OPPA and use Rego for Kubernetes validating admission control and use Rego policies to build these type of guard rails. Okay, so for the demo part here, we're going to do two things. We're going to look at some simple Rego policy offering and testing and we're going to take a look at an example of how we can use Rego rules to enforce our policy in a Kubernetes admission control scenario. First off, let's consider a scenario where we have a service that queries OPPA for a policy decision and in this case we want to know can the user access an endpoint or not. And the rules we're going to work with here is that anyone can access the paths here that are part of our data source. Remember that policies are both policy and their data. So if we have a path inside of our data source here called public paths and corresponding to the path provided in the input and at the request method is get we don't want anyone to write or modify these resources but anyone should be able to read public resources. But if the path is not in here, we're going to require the user to have the admin rule. So let's get started. I'm going to start here creating a policy file. I'm going to put it in a package. All policies have a package. It's sort of like a module or a namespace or what have you. So I'm just going to call this policy and you can name it whatever you want. And when it comes to naming, we're going to create our first rule and rules always have a name but the names don't have a meaning to OPA. We call them allow or deny, warn and so on. But it's really just a convention. The way rules work and rule evaluation works is if all the conditions inside of the body, the body is what we have inside of the curly bracket. So if all the conditions here are true like this, then the allow rule is true. So if you were to write this in another programming language, you might say something like if this and this. And after each line, you'd say and. So all the lines are evaluated in order and all of them need to be true in order for the allow rule to be true. And when I say it to be true, that's just the default. We could actually specify a return value like this. If we want to return a string, we could return a complex object or a list or whatever. But of course, we just don't want to compare constants here. What we want to do here is we want to use data from the input, specifically the request method and the request path. So let's start there. And to reference values from the input, you just say input. So input requests method is equal to get. So this is our first assertion. If this one is true, we're going to move on to the next line. If this is not true, allow is going to be not true. But not true in rego is by default undefined. So what we might want to do here is we might want to say that by default allow should return false and not just an empty response. And the next line, we want to see that the request path. And in this case, we can't just do a direct comparison because we have a lot of values or we have a few values here. So we have a few paths. And if one of these are equal to, to the way we reference here, that is just like what input, but instead we say data. So data, public paths. And again, if one of these is equal to the path in the input, we allow it. The way we iterate over these is, is like this. We add square brackets. And if we are interested in the index, we could, we could declare a variable for that. But in this case, we aren't a new though in OPA version 34 is that we can use future. Oh, sorry. We can import the in keyword keywords in which makes this a little nicer to the eye. Instead of iterating over these, we just want to check for membership. So we can say if the input request path is in data, public paths, then this should be allowed. So how would we test this now? We have an input object here. We're trying to make a get request to the public endpoint. Our rule doesn't check for the user, but it doesn't have to because we say anyone can access the public paths since it's in the list of allowed public paths. So one way we could test this now is by using OPA eval. I already prepared that some here. So we have OPA eval and we provide it the policy. We provide a data file. We provide the input and we query the data policy allow rule. And we can see that yes, indeed we are allowed. And if we change something here in the input, let's try and access the admin endpoint. And we query for that. We can see that OPA changed the decision to false. We're no longer allowed, which makes sense. However, querying manually like this isn't really ideal. OPA and rego is policy as code after all. So we want to use best practices known from any other language and code in the other context. So what we want to do here is we want to write a unit test. So I'm going to go ahead and I'm going to create a new file. I'm going to call it policy test of rego. You can put that in the same package. And unit tests are just regular rule. Their name just start with test. So I'm going to say deny or allow if public path. And the way test works, I'm not going to evaluate the allow rule from here. And the way it works is since I can't provide like the input file here, I'm going to have to mock it. The way I mock things here is I say with input as and then I can provide the input. So in this case, I had a request and the method was get one and the path public. So I think this should work. The allow rule here should evaluate to true given an input like this. So let's try it out. So rather than running opa eval, we can now run opa test. And we can see that indeed that actually works. So let's add a negative test as well. So we're going to say test and we're going to say that deny and we're not allowed if not public path. So if we change the path here now to admin or really anything which isn't listed in the public paths, we're going to have to change this to not allow. And we run the tests here again. We can see that now we have two passing tests. So that's great. We can start to build some confidence in our policy. And this is of course a very simple rule. So we have one more condition to take into consideration. We wanted an admin user to be able to access any path really. So the way we can do that is we simply add another rule. We call this allow as well. And the way it works, if you have many rules with the same name, opa is going to evaluate them. And if one of them is true, then the rule itself is true. So any of these conditions can be true and then the allow rule is true. So in this case, we had a user and the user had roles and we can iterate over them again. But since we have this new in construct, we can simply do this. If admin is in the list of user roles, allow should also be true and we can stop there. We don't really need to test the method, the path or anything because we say the admin should be able to access anything. But of course, we might want to add more conditions in the real scenario. Allow if admin. And I'm just going to say allow here with input as. And I'm going to copy this here. Just change. And we're going to add the user roles. And we're going to have the admin role here. And I'm actually going to change the method just for fun here to see that the admin can even delete the admin endpoint. It might be a bit too much. But anyway, it's a fun test. So let's see if that works. Yeah, the admin can do that. So that makes sense. So that would be some really simple rego policy with two rules. One to allow anyone to read from public paths and the admin to do pretty much anything. So if we hop over here to the Kubernetes folder and take a quick look at how rules might look like for Kubernetes admission control. It could be something like this. The input in this in this case is of course the admission review object. So the API server sends the resource about to be persisted in a CD to OPA and OPA reviews that and then makes a decision. And in this case, we named the rule deny and rather than returning just true, we return a string with a reason. If we choose to deny something, the user likely wants to know why. So in this case, we have a rule which says deny because you cannot create resources in the default namespace. So if you try and update or create anything in the default namespace, we're going to deny. If we try and deploy or to deploy a deployment and that does not have a team label. That's an example we used before. I'm sure. So if we don't have a team label present in a deployment, we're going to deny it as well. And here's another thing we could also just choose to warn. So in this case, if we try and deploy a deployment and the number of replicas specified here is less than two, then we can simply just send a warning. It's fine, but we recommend you to deploy with at least two replicas. So let's try that out and prepared here deployment of engine X, which it looks fine. We can try and deploy that now and we see what's happened. So I'm going to see the into that. And I'm going to say keep CDL apply resources engine X. So now the Kubernetes API server received that request and it forwarded that to OPA. And OPA, of course, we had two policy violations here. One of them is just a warning. So this wouldn't fail, but we would just print a warning. And that was the one we saw minimum of two replicas recommended, but one of them is an error. So this resource was actually not deployed because we require a team label to be present. On any resource. So let's see if we can fix that. We're going to say team, team OPA. And we might as well fix the warnings while we're at it. So I'm going to try and do that. So let's see if we now can apply it. Yeah, that worked. So this is what we mean when we say that we build guardrails. We add rules to... Oh, sorry. We add rules that determine what we want and what we want want to allow inside of our clusters. And using a policy engine like OPA, we can be exactly as specific and detailed as we want. So that's all very well. How do we get started? My suggestion, when you start looking into OPA and Rego, it's always to start small. Kind of like we did in the demo, start simple. Just add a couple of rules, a couple of tests, and go from there. Build confidence in your policy. And again, the OPA documentation is a fantastic resource. So make sure to use that. Get a feel for the basics and the built-ins and work your way from there. And another thing I think is a good idea is to kind of start where you stand. Like, look at the applications that you have close to you and that you have previous experience with and try and identify what policies are already present and whether we can extract some of those to OPA. Because once we can do that, you can start to delegate the responsibility for policy decisions to OPA. And again, you can start small. Maybe just take a single endpoint, a single user or something like that and start to, for that endpoint, you delegate the decision to OPA. So you deploy that and you build experience. And once we have something like that up and running, we can start to scale up. OPA offers a bunch of features for management such as like decision logging, the bundle servers for storing policies externally and so on. There's the Styra Academy, which is a great resource for learning rego. It's a free resource. And there's the Styra Das, which is a control plane for managing OPA at scale. And there's a free edition, which you can try out. Finally, I think you should join the OPA Slack community. There's over 5,000 OPA users and it's a great place to ask questions, discussions and anything that goes on in the OPA community. So with that, I say thank you and I'd be happy to answer your questions after. So thanks everyone.