Welcome to the Fan Duel. Hurry up. I am Sean Guasa Machia. We are talking PGA golf as the Florida swing continues. It's in Orlando at Bay Hill Golf Course. The Arnold Palmer Invitational. We are joined now by Jim Sanas of Fan Duel who will give us his six DFS plays for this weekend. Jim, welcome back to the show. Thank you, Sean. I appreciate it. It should be a pretty fun event for this weekend. We got Rory McElroy in the field and I think the ideal approach for this week is to go with a balanced lineup after Rory. Which will definitely slant the way we view these picks forward today. But I think that Rory's kind of the key talking piece. So excited to break him down. How are you doing today, Sean? Doing well there, Jim. Looking forward to the Arnold Palmer Invitational with Rory back in play this weekend. And you mentioned it, world's number one golfer playing some of the best golf of his career. Six straight top five finishes. He's now going back to Bay Hill where he won in 2018 and he's your number one DFS play for this weekend. Sean, we talked about this last time Rory was in a field but my philosophy right now for DFS is keep using Rory McElroy until it stops working and like you said, it hasn't stopped working yet. Six straight top fives for Rory McElroy. The last time he was outside the top five was in September. It is no longer September. It has been a long time since we saw Rory McElroy not just like fail but like not be an elite level DFS play and he's also great statistically for this course because he ranks 34th or better in all four of my key stats. He is a tremendous approach player as you know and the one concern you could have with McElroy in general is putting because he's occasionally not as great there but this is Bermuda putting surface this weekend and that is actually McElroy's best surface from a putting perspective. So even the one potential negative he could have at other courses is not a negative for him at Bay Hill not just that win. It's also had a couple other top six finishes in the past three trips here to Bay Hill. So he's going to be very popular this week. I guarantee you McElroy will probably be about 45% of rosters and tournaments but my goal is to be overweight on that because I think that he is just a rock solid play with tremendous upside. His cutouts are better because this is a bit of a smaller field this weekend too. So I see no real reason to pivot off of Rory. I think that he does dictate Connie Orlan up here because he is super expensive. We don't want to go to top heavy but I am willing to make that sacrifice for sure and lock in Rory McElroy as often as I can at $12,200. Yeah, the way Rory is playing right now, Jim, you mentioned it, he's a no-brainer there. Six top five finishes for Rory playing some of the best golf of his already, what would you say, Hall of Fame career? So that's saying a lot there. Next up you have Tony Finau. Now he already has three top ten finishes on the PGA Tour this year. You have him next as your DFS play. Yeah, a big reason I made it Tony Finau for this weekend is because it goes back to what we were discussing before where after Rory McElroy I kind of want to go a bit balanced and Tony Finau is pretty cheap. He is $10,700 and that's really attractive for a golfer who has as good as Tony Finau. I'm looking at good driver rate this week and Finau because he is such a long hitter. He's not the most accurate guy but his distance allows him to great out well there. He has awesome on approach and around the green. Now with Finau you are getting a negative because he is not a great putter on Bermuda. It is actually his worst surface. So there are definitely some negatives with Tony Finau but he's so good else where the hope for me is that he can make up for it and he's been doing that for quite a bit now because Finau ever since like the end of the summer last year has been ripping things up. So I want to go a bit more balanced. Finau is a bit of a price reduction from guys like Hideki Matsuyama and also like Xander Shafly who are in the mid 11,000s. Jumping down to Finau gives you a lot more flexibility to have a more balanced build and he's not sacrificing upside when you do that because he has shown recently he has the ability to win just needs to finish things out now and lock down that win for sure.  Get myself a bit of a more balanced build while still using Rory Mackler. I think that Finau is just a really good way to get access to a great golfer and not a top tier salary. Tony Finau put him in your lineup as Jim just said. All right, the next guy Tony Finau was the second guy on your list. Now you have T-Roll Hatton. Finish tied for six at the Honda Classic Jim. Just five shots off of Patrick Reed's 18 under par. So playing well at least last week he played very well. You have him as your next play on the DFS list this weekend. Yeah, we zeroed in on T-Roll Hatton for the WGC Mexico as well and that paid off and the one risk we had with Hatton at that event was rust because he had not played in a long time his wrist been banged up. So he'd been sitting out for a bit and the one concern you could have had about Hatton was that wrist but he really did answer all those questions we had because like you mentioned, he was awesome at the WGC Mexico and he's also really well rounded which is what I want to look for in tougher fields. And I do think that the Arnold Palmer does qualify as being such Hatton is 10th in good drive rate over the past 50 rounds according to Fantasy National. He is 40th in approach and he's also ninth around the green. So well rounded there but he's also a pretty solid putter on Bermuda. So no big holes in the game Hatton as a win and three top fives in his past five events that does include time before the that wrist surgery. So going back a little bit further than you would like but he again, he showed no rust at the WGC Mexico gaining 10.6 strokes T to green. I also like Matthew Fitzpatrick. He's just a bit more expensive than T-Roll Hatton. I think that Young Hunt on and Mark Leishman are also really fun plays but Hatton is only $9,900 pretty good for a balanced build as well. So if I can't quite get to guys like Fitzpatrick, like on or Leishman, I think that Hatton is a really good consolation play at $9,900. At $9,900 you just mentioned it with Hatton there as a play. How about 9,200? You have JT Poston there tied for 35th at the Honda Classic three over par last week. What do you like about Poston at this price at $9,200 this week? Yeah, I think for $9,200 you're getting a lot of consistency out of JT Poston which is not something you're going to find all that often down in this tier but it also comes with a little bit of upside. You look at Poston in six events since the new year. He has made five cuts. It's like a tremendous number or anything but it's good and he's finished in the top 40 all five times. That is the consistency but he also has to pat the upside because over his past 15 events he does have five top 20s. He doesn't win in there too. It was at the Barbasol which was a secondary event so not like a rousing endorsement but hey, you know, it still counts as a win for sure. That's good for Poston. I like guys with safety who at least have a path upside. You know, they're not all that likely to get there. I just want guys who are going to make the cut Poston seems pretty likely to do that well round statistically 33rd in good drive rate 30th in approach in this field and 57th around the green and he is a plus putter on Bermuda grading out his 18th there the past 100 rounds according to Fantasy Nationals. So it's not the flashiest profile by any means, but I think it is one that should get through the cuts and be around on Sunday. I like that a lot. So JT Poston, not the flashiest play but one who does make a lot of sense once you're trying to say some salary. Next up Carlos Ortiz 87 hundred a little bit further down there. Jim last played at the WGC championships tied for 16th two weeks ago there. So played considerably well for this price at $8,700. What is it about Carlos that you like for this week at that price? Yeah, I think it's first worth mentioning the negatives in Ortiz because there's really only one he's not a great putter on Bermuda at least not as good as he is on other surfaces. So that is a slight negative. This is not his best putting service but he can make up for that in other areas especially when he's so cheap in $8,700. The irons are really good with Ortiz. He is 25th in approach to past 50 rounds according to Fantasy National. He is also 13th around the green and those are both really good numbers. Now Ortiz is pretty long off a tee and that's definitely a good thing. It's not something I'm emphasizing for this week but it does help and that leads into be a good player and good drive rate. He is 57th there. The distance is good for the longer holes too. So he checks a lot of boxes. Ortiz also does have familiarity with this course. He finished 29th here last year. He also enters this event with three straight finishes of 26th or better and you don't find that very often for $8,700. That event at the WGC of Mexico is against a very tough field. So we know he can hang with these big boys out here as well. So I kind of think Ortiz is just the most well rounded and the best golfer you can find below $9,000 even when you account for the fact this is not his best putting surface. So to me Ortiz is a really good value play. Even if you go balanced after McElroy you do need to find some value and I think that Ortiz is the ideal guy here $8,700 and I think that he's someone I'll be building around quite a bit for this weekend. Rounding out your DFS plays for this week's Arnold Palmer Invitational, Sebastian Munoz at $8,600 a little bit lower than Carlos Ortiz. He last played the WGC in Mexico City as well. He finished tied for 14th place. So seems like a very smart play here at that price at $8,600 Sebastian Munoz. Yeah, Munoz kind of goes back to what we were discussing before with GT Post and where we want to try to find well rounded golfers. We have good odds making the cut. I think that's kind of the main appeal here of Sebastian Munoz because he does well everywhere we want him to. He's 24th and approached the past 50 rounds per Fantasy National. He's also passable, I would say. He ranks 58th in good drive rate. He's also 49th around the green. So no major negatives in the profile for Munoz but the thing he adds that Ortiz does not is that Munoz is a good putter on Bermuda. He is 27th there over the past 100 rounds. So he does have a bit more missed cut to his profile than Ortiz has and maybe a bit more riskier with Munoz than with Ortiz. But I'm pretty comfortable locking in both these guys as value plays letting me live in that really good mid range in the high 9000s and low 10000s a bit more often than I would otherwise. I think that Bob Colley and Maverick McNeill are also worth mentioning in this range. They're both $8,800 if you want to diversify go there. But I think that with Ortiz and with Munoz you get guys who check a lot of boxes provide a good amount of safety but also have a path to upside. I think that that makes them the two ideal value places of this event. Munoz is also someone I feel comfortable locking even though he does have a little bit of risk there with the potential miss a cut. There you have it. The top DFS plays for Jim Sonis this week and at the Arnold Palmer invitation should be a lot of fun when 18 of the top 30 golfers are in action. It all starts on Thursday. Jim Sonis, fan duel. Thank you for the time. Always a pleasure, man. Thank you, Sean. Appreciate it. Hopefully things go well for this weekend. We'll talk to you again next week. Thank you. Don't go anywhere. We are joined next by Davis Manic dailyRiddle.com for his best bets at the Arnold Palmer Invitational coming right back. Welcome back. We are joined now by Davis Manic from dailyRiddle.com to talk about his six best bets for this week's Arnold Palmer Invitational. What's up, Davis? You know, very excited about the Arnold Palmer Invitational. One of my favorite golfers, favorite courses, super long, super difficult golf course and it actually is always a really good event to watch on TV as well. So pretty, pretty excited for it. Yeah, and 18 of the top 30 golfers are in action this weekend. So should be a lot of fun to watch as well. And the guy who's back, worlds number one, Rory McElroy. No surprise, you have him as your top play here at five and a half to one to win this tournament. Yeah, so I do not bet guys at the very top of the market all that often, but over at dailyRiddle.com we have Rory McElroy, you know, kind of with an estimated win percentage at this golf tournament of, you know, somewhere around 15%. So even at five and a half to one, Rory is so much better than every other golfer in this field that we still think that it's a really solid number. Next up, Bryson DeChambeau. He's at 18 to one, playing very well this year. Already a couple of wins on the tour. He's your second golfer on your list for best bets this week. Bryson DeChambeau at 18 to one. So right now there's a pretty interesting thing happening with Bryson, which is that, you know, sites like Daily Roto and Datagolf that do projections for golf are accumulating new data on Bryson and, you know, the betting markets are doing the same thing as well. And it's hard to really give out great prices on a guy who's in the middle of changing his game. And the biggest thing that Bryson has changed year over year is he has added a ton of distance off of the tee. You know, he is hitting the ball as far as Dustin Johnson, as far as Rory McElroy and some of these drives. And that's not fully priced into his odds quite yet. And, you know, just, just like, I think he is clearly better than Tommy Fleetwood. I think he's easily in the conversation with the Deku Matsuyama, some of these other elite players. And, you know, I still think we are getting good prices on Bryson to win golf tournaments. How about a little further down the list now? A little bit of 50 to one. Billy Herschel last time tied for 42nd at the Honda Classic was five over 50 to one. Though you like those odds for Billy Herschel this week. Yeah, we're getting, you know, another pretty useful number for Billy Herschel who is just kind of the quintessential above average tour player. He's going to win every few years, especially when his putter gets hot. He does, you know, gain more strokes than the average PGH work offer when putting on Bermuda grass. You know, I think the mid range at this tournament is pretty hard to bet because so much of the win equity is at the top. But this number on Billy Herschel, you know, pretty equitable for the better. A little bit further down there. You have 90 to one. Scotty Scheffler a couple of weeks ago played the WGC championship in Mexico City. Did not play the Honda Classic, but he's back in action this week. What do you like about Scotty Scheffler at 90 to one?  Not so for Scheffler who has great distance off of the tee. You know, has really good game approaching the greens. Both stats that we think are super important this week at the at the Arnold Palmer Invitational. So, you know, I just think Scheffler is a really good course fit and you know, at 90 to 100 to one, he's probably underpriced by, you know, five to eight percent. Next up 60 to one. So you're going a little bit down the list here. Abraham answer as he played was the Mexico City WGC championships and he played well tied for 12, nine under for the tournament. 60 to one answer is your next golfer up there for your best bet. Yeah. Answer is our best, best bet of the week, right? He is our of this six pack of bets. He is pretty clearly our favorite.  Answer really good off the tee, really good approaching the greens and has actually been an above average putter on the tour this year. You know, he probably is closer to, you know, a top 30 player on tour than these odds are giving him credit for. So answer is my number one favorite bet of the week. And next on your list, you have to have a long shot and you're going with Harry Higgs at 150 to one to win this tournament this weekend. Yeah. We always have to have a long shot. Of course, you know, there's no way we can go into any sort of week without a, without a long shot. Higgs is going to be our guy in this tournament. The other guy who gained strokes off the tee, gained strokes approaching the green, not great with the utter, but at 150 to one, you don't have to be great at everything, right? You just have to be good at a couple of things. Best of luck with your best bats this weekend. Davis Matic from dailyrattle.com. Hey, thanks for having me guys. Hope that we, uh, that we come back in with some winners next week. Thank you, Davis for Davis Matic and Jim Sanis. I'm Sean Guassamakia for your fan duel. Hurry up.


All right, so today I am with Val Nelson and we're going to be talking about how Sensitives and introverts can be more fulfilled and On purpose successful in their business and their career Val. Thanks for being here. Yeah. Thanks for doing this We did this months before and it's fun to chat with you like this. Yes. Yes So let me share your bio just real briefly and then we'll we'll get into the conversation Val Nelson is a career and business coach for introverts with big hearts She is an introvert and a highly sensitive person herself And she has used those as strengths in creating and maintaining her full-time self-sustaining business for 11 years now She enjoys helping others create what works for them as well. So Val one of the things that You talk about that thing that's quite interesting is that our strengths are often Invisible to us and especially our biggest strengths. So Tell us more about that. Why are why are our strengths not obvious to us to most to many of us in life? well, let me first answer it's like knowing your strengths is a critical piece of Knowing how to find your best flow and happiness and success in your business So that's the background But the problem is most people don't know what their strengths are or they're so busy putting themselves down for certain things that they Have lost sight of turning to their strengths instead of focusing on weaknesses That's kind of an old-school thing. Like what are your weaknesses? They ask in interviews. It's crazy It's not even useful And often the thing we think is our biggest weakness is actually one of our strengths So it's useful in that sense. It might be a clue for something to look for and Part of why what I've discovered in myself and in my clients and I see this over and over We can't see our own strengths because it comes so easily to us that we think everyone can do it We think it's silly like of course that that means nothing. That's not valuable. Anyone can do that So that's how it comes out. But it turns out that thing we think is so easy is something. We're just masterful at it for reasons, you know, maybe experience it may be natural talent probably some of each and So we miss it and often the thing that we're best at seems to be the one we miss the most So I find it fascinating. It is is very interesting. Yes. It's obvious to us. It's natural So what's the night? What's an example? I don't know if you want to give an example of from yourself or One of these strengths that you've noticed in clients To kind of help people to start spot those things within themselves Well, I'll just take I'll take introversion because actually that's a strength. Yeah And a lot of times people are so busy thinking. Oh, that's there's something wrong with that And if there's the messages, even if they've read about it, they've heard all the positive messaging about introversion They still start saying negative things about it And they think oh, I'm you know, I just hate public speaking or I hate networking and I'm no good at those things I'm not going to be good at self-employment. They come with all these assumptions. They're actually myths And it turns out Introversion is a strength. I mean, it's really when you study what it is It's about deep thinking Thinking before speaking Often it means deep we're good at deeply listening Um, if you think about it, those are really helpful and I've just listed a few there's really quite a few Those are really helpful things for career and business We really can we're the people in the meeting that are like really paying attention to all that's going on and we say Like when people finally give us room to talk We have a lot to say and we've picked up on you know, like we often have taken all those ideas and can synthesize them into something new that's fresh and unique and That's what an entrepreneur needs to do is come up with something new and present it in new ways. So It's a strength Yeah, that's really great. That's and how how can how do you help clients discover Their best strength so that they can use it Use it while in their work Oh, I would say Probably two things primarily that we do One is I have an uncanny ability. I can't help it. This is a strength I didn't know until I started working. I'm an uncanny ability to see other people's strengths Especially the ones they can't see like I can I almost like my brain is sort of tuned to that channel like I keep Asking questions until I find like they're amazing strengths and then I can help reflect it back to them and help them believe in it too So one is just the instrument of me that can kind of read and draw that out But I also use some tools. I like the gallop strength finder tool No tool is perfect. It's just kind of a beginning place to help us find some new words I also like the Myers-Briggs type indicator, which is one of the main ways people know if they're an introvert extrovert or ambivert in the middle Um, and it also has some other things that it looks at So both of these can give us some words and begin to get us in the ballpark of of what your unique superpowers are Yeah, that's really good. So, um, you know, you focus on the work area for for clients lives and um, you know, we many of us have grown up with this idea That to be valuable work has to be really tough and difficult Um But you have a different way of thinking about that like valuable work Yeah, so that's a perfect segue from the strengths conversation too because this the same ability inability to see our strengths Leads to us minimizing our strengths minimizing that and we think oh, I can't charge money for that That's not something I should do my career around because it's too easy. That's not really valuable So what happens is people start a business doing something that's a little harder for them Instead of the thing that comes so easy Because they think well, that's the hard thing. That's what I can charge for. That's the real thing Because we have this false idea that work has to be hard And I can't charge for things that are easy It doesn't make sense our easiest thing the thing that comes the most Easily to us is the thing we're best at the thing. We're going to actually contribute the most value Um, and it should feel flowing and easy. It should feel fun. It should be joyful That's when you know you're in that best place um So I see it happen all the time with people in their career clarity process and in their process of trying to develop a business is this They're having trouble aligning ease with with actually charging for it That's a really good point. Yeah, it's it. Yeah. Yeah, I mean it makes so much sense now that you say it um so How can we if we can go a little bit more into this charging area because that is That's a sticking point for a lot of people. Yeah, especially compassionate heart-based people This comes so easily to me It feels bad for me to charge for it So how do we I see that there's something about The money thing and the pricing thing that I find so fascinating and I love talking about it because it's about self-worth It's about that inner. It's a really it's an inner thing And it's not about what will the market bear. That's like kind of an old school way of thinking about money. I think pricing It's more about like what do you feel what feels right Your instincts your experience you have a you have a sense, but we How I help people with pricing for instance, if they're self-employed and they're trying to come up with their You know where they're going to charge for a month of services or something Is to kind of do some guessing before looking at what other people are doing just kind of feel your way and then go a little more We're naturally bringing in this not valuing. We have a little bit of that So we have to go with a little more and we also need to go step by step if we can't believe in it We can't sell it So we have to try something You know like just just offer it for free to test it and then try a little bit more and then try a little bit more and then see It like I said, it's a very internal thing You know, you need to raise your prices when you get to a place of wait a minute. They're getting a really good deal here This isn't fair You want to have a sense of fair exchange Everyone feels good when there's a fair exchange Yes. Yes, that's really and um So so we've talked about introversion. We've talked about how the strengths Help us to contribute value To our clients in our work now, let's talk a little bit about marketing because well How can people discover our work without us doing the you know being out there and of course, that's one of the things that introverts and sensitives don't necessarily love doing as a natural way of being so Tell us about that. I mean Is there hope for sensitives? In the marketing realm in being able to well sell their services. Yeah Uh, great question. Um I would actually not phrase it in the way that I actually think we can be great at it and very natural at it but there's uh Some myths about what it is We think marketing is this kind of inauthentic or push kind of or like really being out there Like how do I get myself out there more? Um, and I think it doesn't have to look like that um For instance, most of my business besides word of mouth comes from google And I do a lot of behind the scenes stuff to make sure that my website shows up in google So they're doing all the work for me You know a lot of it so Well, that is to me as an introvert dream is um I put some things out between blogging and information on my website and my listing in google And you know and I get reviews online So I do have to do things like asking for reviews and take time to to write and put that out there But those are all introvert friendly methods actually So we just have to find our way If we think that marketing looks like this certain thing that we think of as extrovert type things Then we're not looking big enough. We need to just maybe look over here. Oh, these are introvert friendly marketing methods So that's what I help people do is find the way that works for them Everybody's different. There's not like the introvert formula and extrovert formula. There's what are your strengths? Do those things for your marketing? Yes, absolutely. That's what you get at writing Blogging and things like that are going to be good. Right. Yeah makes sense makes sense and um so the other thing about um, you know kind of building a business and and You know success is a lot of times people have thought of it as a Kind of uh, oh, you got to pull yourself stuff by the bootstraps. You got to do it You know and if you're it's going to succeed you're going to do it yourself So this lone wolf idea is something that you you talk about and how Maybe there's a Better way of doing a different way way that could work and this is especially interesting because With as introverts, you know introverts are more likely to want to Well, you know, there's more energy spent when when we're with other people So it's like yeah the lone wolf. It might be a natural, you know, but talk about that part Yeah, thank you. This is one of my favorite topics In fact, I'll I'll back up and say I sort of think of four cornerstones of Clarifying and living your best use of you One is your natural flow like finding those strengths that come naturally to you The second one is your true callings like listening to your heart knowing what it's really saying the third one is co-creating so I really believe that That doing things by ourselves really don't doesn't work It's either draining or it won't actually work which either way it doesn't work in the long run, right if you get burned out And you know, I've done tried to do lots of things by myself, but when you really look at it There's someone behind the scenes, you know, there's the bookkeeper There's the person that helped me set up my website. You have a team even if you're not realizing it Somewhere there's no way you've done it all on your own But actually noticing it and inviting it in more can help things go much more smoothly And it doesn't have to be that you have to hire a team. I'm a solo partner I have a virtual assistant. I have a web person graphic design person But I have a lot of colleagues that I spend time with, you know, look, we're doing this.  She and I have done events together For video recordings and lots of other people I even co-create with my clients. So I have some groups that I read and I I asked them, you know, like, hey, let's get together and talk about what we're going to do with the group You know, like I'll have, you know, one person meet with me before the next meeting and plan it together And they might do a piece so they get to highlight their strengths. So we're And they love it like when I said, hey, let's start doing this. They're like, yes It wasn't like I had to talk them into it. It was like people want to be included. They want to have more of a say So co-creation can look at It's like so many things. It could be a surveying your audience before you figure out what your messaging is going to be You're you're so good at that. You're really you like you let people design the courses by asking them all kinds of things No, it's I loved your so I'm sorry the the pillars you know Want to hear the fourth one? Yes. Yes, that'd be great.  Oh, I can do that You know, it's suddenly really different than the feeling of the words marketing networking sales Yeah, I like that so heart-to-heart connecting. It's a pillar And you have a you have this in the shape of a graphic right like a like a mandala Um that you kind of helped your clients to to work with do you have and have a picture of that? I don't I didn't ask you in advance, but I Or uh, is there somewhere that show it but it's you know, what's funny? It's so It's kind of um intricate and beautiful and we will get lost in this design. Yeah, okay.  It's almost like a little game board Yeah, that's really cool. And um, do you have so you have a kind of an online course where people can do that? I have it. I did it live and I still need to convert it to something that people can do later Yeah, yeah, so people should get on my email list if you're interested in sure. Yeah, yeah And I have it do have a course that I'm hoping to launch in the fall Um, that's going to be about like how do you clarify? How do you choose your career? How do you find the best use of you especially now? This is a crazy time A lot of us need to switch, you know, what we're doing So it feels really timely to be able to offer something accessible and more affordable in a course kind of way To help people find that clarity The last thing I want to just briefly talk about is your your perspective on perfectionism and kind of getting it right the first time Which does keep a lot of us back. Um, but what's your Yeah, thank you for asking so For some reason actually introverts are more prone to perfectionism and I know I've certainly got a big case of it myself Um, and I think it has to do with how the deep thinking that goes on in the brain that there's a lot more time For thing for snags to come up and fears like oh my god But this and oh my god But that because we're connecting all the dots all in there, you know If we're taking that much time to think there's a lot more time for dots to connect Oh, what are they going to think and whatever So it's like I got to get it right. I got to connect all the dots before I can show anybody and that's pretty much impossible So we can really get stuck, but it's not impossible. I've I've gotten a lot of help from taking georgia's classes Um to just go just Go with the imperfect to see what happens and that's another version of co-creating actually It's you see what happens.  You're always revising you're never done So therefore it's never perfect and that's okay So I've had luckily someone when I first was starting my business It was not going yet and I was just interviewing lots of people like how would you do this and how can you help me and do You need someone And the sky who had a successful business said to me I must have said something like I'm really having trouble moving forward or hitting publish or something and he goes look Perfectionism will kill your business and I went Because I knew I was such a perfectionist and Something about that kind of scared me into action. It was like no, I'm determined to have this work I am going to hit publish as fast as I can And so that has helped me and I feel like your courses have helped me with that too. Just hit publish. Just see what happens Keep going Did that answer your question? Totally. It's great. It's great to hear your Your take on that. Yes All right. Well, you know, let's wrap up and I'm sure there are some who are watching listening who are curious Well, how do clients work with you? Um, you know, we've already heard that you have some online courses online experiences And so, you know, if people want to go to your website and join the email list They'll be able to hear about it. And also it's probably nice to watch how you do your marketing Um, you know, because then people can see how it can be done in a more Um, sensitive way in a more way that's that's a better fit for those of us who don't like the loud More salesy ways of doing it. So I would encourage people to go check out your website and and and watch how you do your marketing But yeah, I do have a lot of positive feedback about the way I've written about my services on my website They feel like literally when they get on the phone with me They often say well, I just felt so understood already. Can we just start like They barely have any questions sometimes. It's you know, because I really do I just Go into a very empathetic place like what does it feel like the moment someone is looking for a career business coach? They're probably really struggling. Let me just talk about that So yeah, that's what it can be like Um, and it feels good. I don't feel I don't I never say I hate marketing I love putting words out there to support people. That's how I see it Um, so yeah valmelson.com. They can go there. They can sign up for my newsletter to find out about the next events They can learn about Individual and group coaching and I do I'm really committed to anti racism and Inclusion and so I talk about some of that on my website. That's one of my biggest passions is um Social justice stuff and so my clients are also really interested in impact social impact piece And so we can get into it all Nice nice wonderful Val, thank you so much for the work that you do and uh the way that you do it Thank you. You too. You've helped me a lot. Yeah, thanks for being being a light for for so many people. So Um, yeah, I hope you all will check out valmelson.com is the main link If there's any other links, I'm sure we'll include it below Um, Val, you're also of course on facebook and where else can people find you online besides your website? Those are the main places i'm active um But I do have an instagram account mostly just for fun. I don't use it for marketing really got it. Yeah, good Keep it keeping it simple. I love it. I do a lot of people find you via google. So that's i'm very anti overwhelm Yes, yes Yeah, well wonderful, um Great. Well, I hope you all will follow up with val and um, thanks again val for being part of this interview Thank you very much george


Let me reassure you that this is the last pitch of the closing ceremony. So Director General Al Mesmer, Chairman Al Ramsey, Secretary General Bogdan Martin, Excellencies, Distinguished Guests, Dear Friends, it is my pleasure to address you at the conclusion of this World Radio Communication Conference 2023. This conference had around 3,900 delegates from 163 member states and 141 sector members establishing an all-time high. In addition, almost 5,500 users accessed the webcast sessions made available online, expanding the reach of this conference to all ITUR members who could not be with us. I am sure that those present in Dubai feel very fortunate to have experienced the hospitality and solidarity of the United Arab Emirates. Now, as WRC 23 comes to an end, we can reflect on what a great journey this was. It was a path of challenges, of resilience, and of achievements. Looking back, we can see that the agenda of WRC 23 was not an easy one. Moreover, our journey from Sharem Sheikh to Dubai was fraught with obstacles and challenges that no one could have foreseen, with the COVID-19 pandemic starting roughly one month after the close of the WRC 19. We had to endure more than two years of remote meetings to try to advance our work. The CPM text, with its many views and options, reflected these challenges. And yet, you have not let our common difficulties divide us. You have explored alternatives and have not feared to work and negotiate, even on the weekends and late hours. Were the results perfect? Maybe not, as there was a need to compromise. Was the process perfect? Surely not, and we should work on improving it. But at the beginning of this WRC, the success of the conference was laid in your capable hands and your placed energy and devotion in the discussions that took place during the last four weeks. Your efforts now allow us to rejoice in the accomplishments of this memorable conference that found solutions for all agenda items, some of which had already been discussed in previous conferences, such as Agenda Items 1.1, 1.3 and 1.8, as well as Document 550. A lot was achieved during the last four weeks. Let me highlight a few of the WRC 23 outcomes. On broadband connectivity, WRC 23 allocated additional frequency bands to the mobile service on a primary basis and identified several mid-range bands for AMT, which will contribute not only to AMT 2020 or 5G, but also to the development of future AMT 2030 or 6G. WRC 23 identified frequency bands for the use by high-altitude platform stations as AMT-based stations, so-called HIPPs, and established regulations for their operations. This identification offers now means of providing mobile broadband connectivity to underserved communities in rural and remote areas with minimal infrastructure and using the same frequencies and devices as AMT networks. Broadband communication was also extended to the sea and to the air, and regulatory provisions and interference management mechanisms were put in place to allow earth stations in motion on aircraft and vessels to communicate with both GSO and non-GSO space stations. The future of terrestrial broadcasting was also considered by this WRC as it reviewed the spectrum use and spectrum needs of existing services in the UHF frequency band. This turned out to be the most difficult discussion of this conference, but WRC 23 found the balance that allowed for the use of AMT in different parts of the 600 MHz band while fully protecting the broadcasting service. On the aeronautical services front, the conference allocated VHS spectrum to the aeronautical mobile satellite service and determined conditions to protect the existing usual. This decision enables to relay the ground-to-pilot communication via non-GSO satellite systems and allows aircrafts to be in touch with air traffic controllers everywhere, especially in oceanic and remote areas. Regarding scientific agenda items, WRC 23 worked on two fronts, the collection and the transmission of scientific data. The establishment of additional allocations to the earth exploration satellite services will provide unique information on the physical properties of the earth and the atmosphere and broadband communication downlinks will enable the transmission of future scientific data at high transmission speeds. As for space services, WRC 23 adopted regulatory actions for the provision of inter-satellite links. This will allow data to be made available in near real time, enhancing the availability and value of instrument data for low latency applications such as weather forecasting at disaster risk reduction. WRC 23 also approved a new resolution on tolerances for certain orbital characteristics of space stations deployed as part of the non-GSO satellite systems in the fixed satellite broadcasting satellite or mobile satellite service and improved procedures to obtain and protect national planned resources. And as I already mentioned during this conference, I am especially proud of the final steps for the successful implementation of resolution 559. After years of extensive work, WRC 23 confirmed that 41 administrations now have a much better opportunity to provide satellite broadcast services to their populations. I very much appreciate all your efforts to solve these difficult issues and achieve compromises and I congratulate you on all these achievements. I am also very grateful for the solution proposed by WRC 23 to address the difficulties or inconsistencies raised by the VR and their agenda item 9.2 in the application of the radio regulations. WRC 23 has paved the way for the technological advancements of terrestrial and space services that will make a real impact on the social, economic and environmental development of all nations for generations to come. Dear colleagues, as you know, the world we live in is changing rapidly. The technological advancements as well as the needs of administrations will continue to evolve. Thus, the periodic review of the radio regulations will ensure the international framework towards managing radio frequency spectrum and associated orbital resources is up to date with this ever-changing world. The various items on the WRC 27 agenda and WRC 31 preliminary agenda reflect this situation. Remarkably, the interest in developing further topics discussed at this conference, such as IMT, ESIMs and Earth Exploration Satellite Services, remains, and we will see them again in the next conferences. The promises and interest in securing frequencies for space and science service is also evident, given the number of related agenda items on the forthcoming conferences. New agenda items have been approved for the protection of radio astronomy, as well as for the equitable access to the QV frequency bands. Frequency bands will also be studied towards potential new allocations for the use of space weather sensors, which would facilitate the prediction of space weather events and their impacts on services critical to the economy, safety and security of the population. And finally, new mobile satellite services will be studied for the development of satellite-based Internet of Things and to complement terrestrial IMT network coverage with direct connectivity from space to IMT user equipment. Ladies and gentlemen, each one of you has played a vital role in the success of this WRC, and I have much to be thankful for. Let me start by thanking you, Mr. Chairman, for taking us on this huge responsibility with tranquility and good humor. If the plenary seemed to be smooth, it was because the discussions in your office were tough. Thank you for your commitment and for guiding the proceedings of this conference in such an efficient and pleasant manner. I thank the WRC vice-chairs and chairs of the committee's working groups, sub-working groups, drafting groups and ad hoc groups for working until the very end to bring the best outcomes to the plenary. I thank the chairman of the informal group, the heads of the regional groups and the heads of delegations for your dedication and long hours of negotiation. I thank the ITU staff in general, the BR colleagues in particular, and the RRB members for going the extra mile to support and assist all delegates in whatever way possible. I thank our host country for their hospitality, which was beyond compare. You provided us with the best conference venue and facilities ever. Your organization, patience, understanding and generosity were simply fantastic. And last but not least, I thank you all for, I mean, all you distinguished delegates, for investing yourselves and bringing the 2023 World Radio Communication Conference to a successful conclusion. For those of you returning home, I wish you all a safe trick back and a peaceful and joyful holiday season. Dear friends, this is my last WRC as director. It has been an honor and a big pleasure to serve you and the entire ITU community during these past years. I hope that this community will continue to grow and will continue to endure with the principles of communication, contribution, commitment, compromise that has marked the ITU community for the past decades. I thank you very much.


all right welcome to today's advent of code I've been told it's a hard one today let's see how it goes I'm not gonna be too long though I might listen she had to work on let me just throw it out to them live streaming some some advent of code in has gone for the next hour come and say hi not too hard okay twitch.tv slash Trello boom been tweeted all right let's see what today's challenge is extended polymerization you got a little pressure that this test that's starting to put strain on your submarine the submarine has polymerization equipment that will produce subterritorial marine forces submarine okay the nearby volcanically active case the submarine manual contains instructions for finding the optimal polymer formula it offers a polymer template and a list of pair insertion rules your puzzle input you just need to work out what polymer will result out of reading the pair insertion process for example you copy paste this first is the polymer template this is starting point of the process following section defends the pair insertion rules we're like able to be maybe to see means that when they've been a be immediately adjacent element C should be inserted between them these insertions all happen simultaneously okay so I'm gonna goes to see and see goes to be hello sello hey little Annie we have my cookie a third pair matches the role CB do H okay this pair so love second element one pair is the first another next pair so I'll consider at the same time okay hmm so I think the trick here is that like the element and see it's inserted between them right so the only new pairs that we will have to consider are then between the two right we don't like we don't have to like make the string read the whole string make the string again and again right we can just kind of compute the pairs every time okay let's do this let's actually look at the how the puzzle input looks okay yeah she's a bunch of rules okay this is from yesterday now let's do like their day 14 CD day 14 make code day 14 dot HS code period I think yeah it starts anyone okay open it up new file day 14 dot HS come on my good new file day 14 dot HS there we go module main where is this tiny okay mainstream hello read input file path so we want so what we what do we want so we have the polymer base that's gonna be a string we want a pair of string and I'm gonna have it be a map of char to map of char char right so to apply this rule I'm going to look up the first one then look up the second one and then select the one that next and then create a pair okay let's do it like this import qualified data dot map map import data dot map map read input equals and so let's first just take the lines okay where it's gonna be the template and then no an empty line and then a rules equals lines of input so it's gonna be IO so it's gonna be do a so it's gonna be FP input so let's just like this template underscore rules read file FP okay so then we have a list of rules okay so so make rule map so make rule map takes in a rule and the rules are going to be these are all two characters and then blah blah blah and then a third character so we're just gonna parse it real quick we say a C1 C2 underscore underscore underscore okay so now we're at the 1 2 3 4 4 underscores C3 and then the rest equals map from list map dot it's gonna be map single ton of a C1 map dot single ton C2 C3 okay so let rule maps equals map make rule map a map takes a string alright so this is actually lines over this now I'm gonna do a how do I union them Google map merge merge we're gonna merge the maps merge map data dot map okay how do we merge them merge this is always like oh like why wouldn't I merge merge with key an unsafe general combining function okay and union with key okay so key and an A to NNA and a union function okay so let's say these are gonna be a return template comma rule maps and it doesn't like this because it's going to return a map jar map now what is the type of rule maps it's a yeah okay so union with a union with a union with a combining function yeah okay so union with comb map so I guess it's just union with a union right it's map dot union map dot union with oh okay I think it's like a unions with yes map dot unions with like this now let's read the read input a example print ding is of course extremely brittle but it's okay well you're not gonna be changing it open file example right we forgot to do the example okay so we get a B so let's go once I have B here B okay in B should be BN goes to okay so BB goes to N yeah okay BH goes to H okay so we got the rules now uh so we so we also do here um two pairs takes a string and returns a char comma pairs two pairs a a b r equals a comma b two pairs b r two pairs if I don't have a pair I just like this now from pairs let's say gonna be a char comma char to string for from pairs uh if I have the last pair I want to say the from pairs empty is equals empty okay from pairs of the last pair is gonna be a it's gonna be a comma b all right now from pairs a comma b r equals a concatenated with from pairs r and I need the around here okay so do uh template comma rules print a dollar two pairs template and what's uh what's what do I know like this all right now main is in IO that's true let's print the pairs and then NC and CB now okay we say uh apply rule let's just say type rules equals map char map char char now apply rules it's gonna be rule apply rule it's gonna be a rules a and a pair char char and it's going to return a list of a a char comma char now apply rule uh rules a a comma b so I'm gonna do like this I'm gonna do just a just a a f so that's the a first I'm gonna say a rules map a a comma just b so if we apply the rule and we find it rule so a f map b equals a so let me define two new pairs it's gonna be a I don't know so just a and this is a new new one it's gonna be a comma n and n comma b okay otherwise we don't replace the pair right a comma b okay so now let's say print two pairs now let's print a a map apply rule a so let's say concat map apply rule like this you run it okay so and then let's make that into a home pairs so we get NC nb chb NC nb chb okay so we got the first one correct we're almost there was a first one okay so I'm gonna run it for uh 10 steps let's say apply rules equals concat map apply rule uh rule okay there's a list of charts list of charts okay so um n steps zero pairs equal pairs n steps uh n pairs equal apply rules uh rules okay I hit the other rules here as well rules apply rules a rules to pairs and then n steps n minus one on the rest and it doesn't really like this because dune dune dune all right because it needs the rules so now let's say uh instead of saying this let's say uh n steps 10 a rules two pairs template let's run this get a super long string so we're supposed to taking the quantity of the most common element and subtracting the quantity of the least common element okay so uh task one equals a template rules equals a where after is equal to n steps 10 rules two pairs template so a from pairs and we do a map length over a group over sort over after and we need to import it at least for these two okay a task one so let's call this on print task one template rules okay at one seven four nine two nine eight one six one eight six five one seven four nine one six okay so we take the most common so the biggest max uh so this is the lens so we take a min l equals a minimum length max l equals maximum length and we return max l minus min l one of five eight eight we get which is the correct one now let's run it on the input i don't know if this will be faster now but i think the map lookup method i don't know it's not too bad right now we didn't change it to uh 2621 in 35 milliseconds it's not too bad all right we got the first one in a 21 minutes it's not too bad okay part two four steps okay let's just say uh task one goes rule yeah it's gonna be bad no i think we can probably use the fact that we um like you know if i if i take each of the pairs right and i compute that for 40 steps i can uh because like so each pair right just does it's itself so like it'll never interfere with the other pairs so let's look at the uh first pair in the input vn okay so what i'm saying is uh i can actually just put it again there okay let's just say i had just vn how slow would that be okay that's also pretty bad but you see what i'm saying right if i know the uh solution for a given subsystem a substring i can kind of look it up okay let's uh let's try and do that okay it's not even cancelling yeah damn it okay we'll see how much time i can spend on this today hey i'm gonna give myself 35 more minutes so i'm gonna stream for an hour but then i really have to get back to my list yes okay so what i'm gonna do is i'm gonna kind of cash it right so let's say i do here 40 and then we do this and we do like that so this is just for the first one for 10 so you get what you get what i mean right so i'm gonna i'm gonna compute like 10 steps at a time okay so i'm gonna say that um this is gonna be task 40 so task two prime you can take in the same things right let's just uh copy paste the whole thing actually task two prime okay so i have the list of pairs okay we're gonna kind of uh we're gonna we're gonna memoize it this is how we solo solve any everything so the memo map will take in a map of a char comma char and return uh it's gonna be memo of char comma char to a list of char comma char okay okay uh that way we kind of only compute each one once okay so it's gonna be a task two v2 let's see and it's gonna be task two prime it's gonna take in the memo map it's gonna take in the current end how is it gonna work let's say just just keep the task two rolling right um meanwhile i think it's gonna be very expensive right like to make it print out what level it's on currently right it's always evaluating i'll take like this right it's just still be an insert i'm like not controlling the evaluation very well oh thanks for the follow arrow bounce about something like this i can like see how far we come yeah it's like growing very exponentially right okay so what i'm gonna do here is i'm going to say okay so i'm gonna say um 10 steps equals two pairs equals two pairs template 10 steps equals map 10 steps killed okay it doesn't even it runs out of memory okay that's not good uh okay but that system doesn't die that's good okay so 10 steps 10 rules to the uh so p let's do yeah okay let's just do it the simple way map p end steps 10 rules and let's take away this one so i do 10 steps uh on the for each of the pairs you know stop just doing task not task sort after right okay so this one is good well okay so this is for kind of each of the pairs after 10 steps so we are gonna say that this one is map out from list dollar map p comma so this one will be so it computes for each of them for your 10 steps now let's see uh can we somehow yeah i mean we can we should be able to like for this bb here and this bb we don't need to recompute it so i'm gonna say actually uh from pairs here so you see what i mean so this is like that for bb right this is a string that bb produces in 10 steps now 20 steps it's going to be um okay i think we have to so for each of them we look up in the 10 steps one so for to do 20 steps we go uh well let's actually do here first this is just a just map from pairs over the pairs 10 step pairs then 10 steps is equal to add up from list a zip a pairs 10 step pairs okay but for 20 step i want to take all the steps in the okay that's gonna be a lot of steps right now we also don't want to recompute let's say okay but let's let's do it naively first okay we're just gonna go do concat a 10 step it's going to be stand tap pairs uh actually what what what what do we have b concats then concat map uh so it's just going to be concat 10 step pairs this is going to be a list of steps 20 steps 20 steps is going to be um map uh steps map concat map does this work it's going to be a lot of characters let's just see if it um oh map oh no given key is not an element in the map okay yeah so we see a pair that we haven't seen before you get what i mean right um of course it's not going to be there because i haven't done it for all of them okay so what are the rules again rules are map char so if i run all the rules for 10 steps can i say and rule pairs is equal to map dot okay it's going to be a list of a's uh so for all of these map k to i look up the key in the map and this is going to be a rule pair so this is going to be a map of char char zip repeat k these are the rule pairs rule pairs so 10 step pairs i will run for i run these on the rule pairs and step pairs okay so now i have it for all of them so this is going to be 20 steps it's going to be concat map 10 steps 20 steps it's going to be concat map so what do i now print let's see uh let's just see the length i don't want to print it out how can it not be an element in the given map uh because it i should set like this okay now i'm not sure if this is be gonna be okay so 10 steps 20 step pairs okay now 20 steps right so what so this is uh gonna be so 10 steps uh so i concat it to 10 step pairs okay so 10 step pairs that's the pairs for each of the rules so i have for each of the rules if i run them 10 steps yes that's this okay 10 steps for each of the rules if i run them 10 steps okay so to find for each of the rules if i run them 20 steps so 20 steps equals a map map with key let's just map dot map okay so for the h so i'm gonna map over 10 steps and i'm going to map a 20 steps i'm going to so this is going to be the a p and i'm gonna say 10 steps map p concat right so concat map this is gonna be like this concat map like this gonna be like this gonna be 20 steps 40 steps front pairs map dot values this is probably not gonna work right lms okay i'll probably just run out of memory yeah i'm skipping a bunch of steps but i'm still i'm still computing it right yeah it's probably probably won't finish no i don't want to hint i'm gonna give this 10 more minutes and then i'm out i mean i know that we need to do some more memorization but i don't feel like do do do do see how much this is using but it's not using that much memory which is uh interesting i think it's also because i'm keeping all the strings around i mean that well that's the thing right you say i'm gonna need a lot more ram but like my my memory is not going up maybe it's just frozen we're not even computing the the answer right we're just computing the length of the string let's see we can think about this okay let's actually cancel it let's run it on the example it's it okay let's go for a more classic memoized version okay so for the uh task v3 i mean it's just it's just gonna be a very long stick i'm i'm not gonna compute the string right so um let's see let's just do something like this we have the pairs of the templates okay so uh if i have the memo let me just uh let me just compute like the the number of each letter right i don't i don't need to know the actual so okay uh task 2 prime if i'm if i'm at the sito's level okay i'm at the end of a computation and i have a a and a b i have a map from list a one b b one uh but everyone at all of them are counted twice okay we'll deal with that we'll deal with that later we just um okay so if we're at the and we do like this so task 2 prime uh memo case and just r memo p that is like a what does this pair how much how many how many of each letter does this pair contribute is that the right way to think about it now okay so at the zero's level this one is actually a p uh is a map dot rules a case okay just uh see a rules map dot p equals a map dot singleton c comma one c one otherwise map dot empty so uh okay otherwise so otherwise i i look up the memoization of a p comma n okay if i find it then uh no so i have the okay i have a pair let me see okay so then we check the uh p at a comma p a case just see if i look it up in the rules map p okay so if this pair is not in the rules nothing then it's equal to map dot empty map dot empty comma memo map dot insert i think it's memo map dot insert i think what is it is it a p zero memo what's that map insert insert okay so it's key value yeah okay okay so then we see set the p as zero in the map and it stops here okay if if we have a just see here then we get um rules of map p equals okay let's do it the other way around okay let's say just here otherwise we don't have to do another look up because we know it's not there okay where okay so if you're in this case here um if we look it up then we uh we simply do so okay it's actually gonna be a another so we do it a bit far further okay a just our rules now this is gonna be memo map a comma c comma n minus one just uh r2 so this is gonna be m1 uh m prime and then m2 m prime prime memo map b comma c comma n minus one now so here i'm gonna look up in m prime so if i find all these then the result is a map on union m1 m2 comma m prime prime map dot insert a p and uh well no this is yeah it should be n right okay so here i actually want to insert sorry i need to insert something here okay map insert a p a so the key is gonna be p comma n and then i insert okay so i'd say comma m u is the map dot union of m1 m2 i insert i so i return m u and i insert p n and the value is m u into m prime prime okay otherwise so if i if i don't this is if i find all of them okay let's go back to the way here we turn it before p because yeah it's gonna be this so if i can't find it in the rules and just like this otherwise this one says that the result is map dot empty is it though and i insert a p comma n mr res is map dot empty i just do it to kind of have it the same i insert the mr here now this one has of course has to return a mr is map dot single term same one this is gonna be mr uh so it's gonna be memo and we say map dot insert p comma zero mr memo otherwise map dot empty map dot insert p comma zero um map dot empty memo okay so if i um okay so if i find both of them i don't care about this actually because this one so this one hasn't changed right so i find both of them in the memo then the result is a m u and then p n and m u and then in the memo okay then we have again this one let's say we just find the first one but not the second one and this is equal to um we can have a big where m calc because i'll then oh no okay this one becomes a then we calc the calculate so mc a m prime prime is a task to prime n minus one m prime b comma c n minus one and then we do the u it's always the same result right and the last one is for when we now we have two more this one is for when we don't find the so this one knows for when we find the second one but so this is going to be ac and it's going to be c b c c b this is going to be when we find a c b but not a c okay uh and then we compute it again and then the final case when we find neither it's going to be uh but maybe we find it after we compute it damn it okay this is not a good way to write the memoization function okay okay we have the base case so we write the uh let's write it like this case a memo uh map just uh m r m prime okay we find it in the memo the p zero we can't find it in this p zero then we say just see let me do a list again and we're not gonna we're not gonna reuse it like that we're just gonna and we just say no okay this is gonna be m r map dot singleton we're only gonna cast results right we're not gonna be caching we would like caching memoizations which was a bit um uh we're not we're just gonna be say m r comma map dot insert p comma zero m r memo otherwise yeah it's gonna be this one otherwise it's just the empty map now task two prime um n memo p case just res so if you already know this one memo map p p comma n equals res okay we don't know this one then we have to say we don't know this one and then we say just see just see uh equal uh to see where m one equals task two prime so this one will it will check the memos right this is gonna be a m r comma m prime task two um n minus one memo is it p add a comma b memo a m a comma c oh yeah okay we have to do like this m r m prime task two prime n minus one memo a comma c m r two m prime prime task two prime n minus one m prime c comma b equals a map dot union a m r m r two comma map dot insert and what was the key p comma n a and then the result yeah so and we're going to install result that into in the result was a m one m two m r is the map dot union of m one m two and then this one is just m r and map dot insert and we use another insert into m prime prime okay a let's say undefined here now this one doesn't work because i look up the memo here and then i look up the res in memo okay let's just define the type so task two prime it takes in an int it takes in a map map and it takes in a char comma char now what is the result here this is the what are we looking at we look up a char comma char and an int and we return a a map dot map char int i think that's what we try to do now let's see here all right and we don't return char char yeah okay and we return a map char int and a type um memo map yeah okay here i have to return the memo again and same here memo so this one will be um let's just start it off with the 10 right task two prime 10 map dot empty okay let's actually fold our this folder or is it fold l which is it so it's pretty much i use it i think it's supposed to be fold r fold l and it doesn't want this a okay what is that before though so we take a b yeah the memo and the list and an a and return a b so take a memo so yeah take an int take a memo and a char all right let's uh let's just do it or um okay let's just just define our loop then i mean it is a kind of a fold but not quite exactly so a compute for the empty list we return cm we return cm compute memo p p s it's equal to um let's just map this and initially map it over the pair just to see what it does for the example exactly task two v three task two v three uh template rules yeah what does apply rule do uh so if i get a uh something from applying the rules uh otherwise i don't get anything from it so this one is also the same so here we get a p one p two apply a rule a rules p and then this one becomes p one this one becomes p two and then we have otherwise because we didn't have that if it doesn't actually match a rule uh then it's just um map dot empty map dot insert p comma n map dot empty memo no this is map not singleton c right so i just need to say c here okay so it's very fast for a 10 at least what is it doing now because we yeah we mapped it over the directors let me see do do do do do do do do do do do do do do do do do do do do do okay so i only right so now it just goes all the way to the bottom but it never um it never actually adds the two characters right this should be map union with so map fst map dot unions with plus okay here we're getting the letters pretty quick what does it do for the put quite fast right what about 40 i mean it would be faster if we kind of saved in between but uh this is nothing bad so let's uh write then we have the um jars equals i take the lm's and then i'll take the min c equals a mini moon jars max equals maximum jars max c minus min c so for the example we get this number i'm forgetting something i think i have to do p at comma c and then i add the two then i do unions with m1 m2 and map dot singleton c1 so i have to add the intermediate characters as well let's see we're getting the wrong number but i feel like we're we're on to something right so what does it give us for 10 so for 10 on the example and wasn't it right before then we got 1749 and 161 so there are someone some of them we are counting twice something like that maybe it's just like this maybe we should end here under one we're quite close to the right one right i mean these are not like they're not an order of magnitude off they're just some of them some we are uh all right because it's i do with it for the pairs unions for each other pairs but let's just do it for one let's see if i do it once i want to give b4 c2 okay because we added uh b n c and b c h b let's see okay so let's call this run so for each of the pairs and let's do let's see so we have the run f f s d run let's see what the result is we don't want the memoizes so n and after one gives a b1 and c1 okay what is this after zero okay this is so it gives c1 and this one gives b1 and this one gives h1 okay now for uh that one was correct uh okay but it's not counting kind of the initial letters right what if i do the yeah okay so so this one becomes n c n okay and now n c n become uh n c becomes b and c n becomes c so so n n right this n n becomes n c n becomes n b c c n so this c there should be two c's here and i think it's because i'm not uh including the and that's the like that's a b a c b map dot from list a sip a b c repeat one this looks more promising so then the n n becomes it becomes n b c c n right which is and yeah okay this one is looks correct so let's see the jars let's see run jars here so this is after one round now after 10 rounds on the example we get uh no let's see what if this is after nine rounds i think this one may be one after one round what should i see okay after then of course i should insert one here always what happens if i put zero here yeah it's the same right so some of these will be repeated right what if i just add the a c and i kind of trust that the other one will be added at the other one and so n c two b's so two so there's two n's oh that's my one b damn it eccb so after one step there are two n's two b's two c's here saying three c's okay i think i should just add the c here and here i should add the b one add so i add the new one here and this one becomes map unions with one and two that dot single single ton c one this is after one step after two steps b five c three h one b five c three h so if i and if i add the ones in the original template let's see here but if we're like two n's off here that should be fine we should be one b off we should be one b off yes we're one b off and here and there's no h yeah okay so okay so we do we do we add the okay so we okay a temple count that's a group that's a classic map x comma length x underscore l two l comma x now okay yeah it's like this l add x underscore two length two x comma length l to the template of the group sort so we have one of them temple count and then we say map dot union with plus char's temple count what's wrong with this one oh right map dot from this temple count okay now we have the right count for the first one um now let's see we've got 1588 yes and then for the input we're supposed to get the same answer two six two one nice okay now let's check for the example for 40 two one eight eight one eight nine six nine two three five two nine nice so we should be good all right let's copy this all right we did day 14 the combinatorial explosion almost got us but we ended up with 300 milliseconds yeah i don't know what i started off with there like with a just like yeah let's i don't know it was weird like if it's in like we just check if it's in the memoization right and if it's there then we just return the memo okay memoization helping us from exponential blow up yet again we getting these base cases was a bit tricky though so we added we i always counted the character we added uh but the problem was that um that we uh the problem for the longest time was that we never counted the initial ones okay cool cool cool cool cool i will delete this one because it was garbysha this one is a ax exponential blow up let's see get status get add day 14 dot it just input okay did commit am day 14 did push okay we did day 14 um it was just a classic you know memo map return like check if you've computed it before then return it if you haven't do the computation make sure you get the base case right then return the result and insert it into the memoization so you don't have to check it again otherwise so if it's not a rule it ends up there we could have actually done like this uh let's see now yeah and then this case was a bit tricky right we had to make sure to count the letter always that we were adding and um we add the letters we sum up the two answers we've gotten so far and then we cash it and that was the trick right we were always kind of computing the same thing again and again but this way it worked out oh otherwise yeah otherwise we also we have to know when to stop right if we get a okay so it worked out thank you for tuning in what is a what is this is just a pattern match so uh yeah this is just a pattern match so uh so guards right they can be like you can have equalities or you can have a pattern match and it's in this kind of pattern monad right so you can run it and if it if it doesn't match the pattern then it just fails and it goes to the next case um yeah i don't know it's just guard syntax pattern matches in guards right i don't know if it has a special name it's no i mean there's no language extension or anything going on here it's just just standard that's cool nine eight point two okay so another key thing here is this right you take the memo okay you pass it to the first one right and then you have to use the new one with this one right otherwise these two are gonna spawn two trees right so if i say memo here it's not gonna finish okay so very important when you memoize don't forget to actually use the memoization although yeah i can't even cancel it so that's the thing right this is the key one right we so and this means we kind of only ever computed once because if we computed it before we look it so both recursive calls you have to yeah you have to update the memo and then use it and there is a name for this pattern somewhere right i don't know is how you memoize in Haskell and then yeah make sure you use the latest one this is also an issue right you can't i mean okay this one is not as bad i think because i think you end up computing most of it in the left hand side anyway okay it is pretty bad actually so also make sure you you return the latest one it's a bit funny right like how tiny changes to the code can make huge computational difference when you're dealing with the exponential blow up otherwise so we we do so this is basically like we apply the rule and if we get the result because it's a it's gonna be empty okay it's not gonna be empty but it's going to be it's not gonna be it's not gonna have two elements and then we don't we're not adding anything and then we can just say that for this case we are in adding nothing i think my 10 20 steps was kind of cool it was like the but it was just i think yeah it was too much too much data going on all right thanks again for tuning in and i have to see about tomorrow maybe i'll be here at seven but i have my listening thesis going for printing on thursday morning so i have to finish it tonight and tomorrow so we'll see about tomorrow but maybe yeah but at least it's been fun today and yeah just follow my twitter around this time because you know i might be going to norway and i'm going to iceland for christmas and all that so yeah we might be a bit the schedule might be not as regular but check my twitter it's probably gonna be an announcement there and yeah well thanks for joining in so far it's been a lot of fun for these last 15 days right just doing some memoization making it work having fun all right catch you all uh next time whenever that may be probably tomorrow but we'll have to see how stressed i am all right bye