Good morning. Happy Saturday. Well, I guess it's Sunday for some people like Benjamin He's here. He is here. He is here. It's his alarm to remember to come see us every morning Sunday morning Sunday morning for him Saturday morning for us So we have a special guest today You probably if you watched you he was on Wednesday, but we had he wanted to come on Saturday and hang out with us Louis Kessler our current week challenge kissed But but we can't tell him anything because he's been from week entry for the week.  Well, that's about it His band is he's not allowed to know what's going on with his challenge until Wednesday. So you can't know anything so also, but also if Which maybe you guys know I've been seeing he's been giving Twitter hints With how to find stuff on Twitter. I've been seeing those So, let's see who's here John tiner. He's you're an island. Hi Ireland. Aren't you John England? No Ireland. Yes. What I said, I said Ireland Oh in England Other people, I don't know. I guess we'll find out. Okay. So we have Janine Lynette Kathy Now we have Mags chatting in the chat Tommy David Well, where's David David David wasn't no, I'm not gonna guess wrong. I'm just gonna David's the one in England and John is in Ireland. That's what I was thinking, but I didn't want to say it incorrectly And I'm just gonna blurt it out So we have Kathy Nava and Kathy Weisman and then we have Thomas Hillary who is also in England Betsy your mama, okay your mama Mm-hmm, Steven some as a way. I just like saying his name. I know But today's today's people who were involved.  I Know I saw I saw the names. It'll be a fun day. It'll be a fun day. Um, Chris Chris is here Did I miss anybody? No, I don't think I did Well, then John just confirming that yes, he's in Ireland and David is in London Well, then we have Charles Platt from old Hillary's and Wales and we have Charles Platt from Macon, Georgia Stevens in Washington Benjamin was like your mama We're gonna start doing your mama jokes that was that what's gonna happen your mama so fun There we go. I Had to try and clean to say really fast You have Sharon from Alabama and Pipp look Pipp is here Hey, Pipp. He's from North Carolina just across the border from upstate, South Carolina. Oh He left me to my own devices Thomas he's Perhaps ever so slightly cruel, but oh well really Thomas. This is gonna be an interesting Well, I think everybody also gets kicked out of me trying to pronounce stuff so Yo mama so friendly we missed her when she ain't here when she isn't here that was a good one Ben Okay Yes, guess what what there's a question of the week is there You know, there's a question of the week There's a question of the week, you know what it is. What is it? Please in lightness I'm gonna do it. I'm gonna go to the gdg post first. So Chris was like, that's the nicest your mama joke ever. It is Let me blow it up there so Do you have any inventors in your tree that we didn't have a lot of answers this week for that? However There were some good answers like Janet Gunn Give you five guesses as to what she her whatever He invented gun stuff Diode But the best thing is a I gotta figure out how I did this One of her ancestors invented this thing The coffee cup Yeah, you had make sure just want to jump right on that done in Do you think they flew it around this hanger it just stayed there. I wonder if they went outside with it. I Bet they did Sarah Is that flying? No, it's in a museum or something looks like it's a flying device that yes. Yes It's a copter come on we need that Um, there's the wiki page about it the wiki data page or whatever There were a couple more and massive st. Orange can you zoom in a little bit to the I I'm zoomed into like a hundred and oh, no, I'm not what happened to that How about that there we go Numbers oh patent numbers lots of patent numbers from Brian Lamar Which got PIP quite PIP quite excited Because these are all about cotton gins or cotton picking machines And if you're from the south like PIP night, you know what picking cotton like it's like it's like walking through a briar patch with Razor cuts on your fingers and sticking your fingers in in Alcohol every three seconds. It's not a fun thing.  Did he have to cotton? Okay. No, this is the next one Yeah, and there there was another one. He has a whole bunch. So I did I did several then Samantha Thompson has Grandfather's cousin John Edgar Keiston held patents for an electric electron multiplier and signaling system, which is our turn signals But that's not it yet Electron multiplier that sounds really kind of signal on in the car and you turn right and left I was I wanted a lot from multipliers. I think so But that somebody said I think about your what we'll see it in a minute.  Okay, then Beautiful somebody posted a beautiful picture of a patent. So here we go process of coating iron or steel articles It's a beautiful beautiful piece of paper with a big beautiful seal and a little ribbon and that's from who else Thomas Karneline Let's see This guy he did an invention for the improvements of mechanisms of water closets and from what I can figure out It's a toilet seat Okay Let's see. That's the most important invention so far. Yeah. Oh this one right here Actually, this one right here from William Mormon screen protectors. Now this Patent was to cover the screens of those fish finding little Gizmos that you on boats for fishermen. So they're out in the water and it pours rain and they couldn't see their screens because They got all messed up. So the screen protector protect protected them from that Grandfather Ernst first sling was granted 10 poutons one of them was for the invention of the Anechoic chamber and I'll show you what that looks like. Let me find it. There you go soundproofing. Oh That's scary movie Yeah, it does it does it does it's a way to dampen sound So it won't get outside of where you are. Let's go on down the right brothers We know what they invented old story old news Um Pip says my grandfather was not an inventor not in the formal way But he could make diver things that needed fixing sometimes making these work better than in their original forms Fun, I'm married to a MacGyver Pip so I know where you're coming from and then my Cousin of my third great grandfather invented or discovered Quaternions Lewis, you're a mathematician. You know what that is never heard of it in my life. There you go.  Yeah, well, you would think but it looks like there's a lot more than just for there on to the Facebook page and Do you have inventors in your tree question of the week? My dad invented the in infinitely variable position drive Transmission he tried to sell it to a bicycle and car manufacturers and almost had it sold Lots of time as a kid spent at old man Paxton's machine shop for me She says that her dad got beat Somebody else beat her to beat beat him to it and that happens a lot Can I can I share Benjamin's joke really quick? Yeah, he says two wrongs don't make a right, but two rights to make an airplane The Gatling's a bannies neck in Hertford County, North Carolina Richard Jordan Gatling Gatling gun and his brother James Henry Gatling Gatling arrow plane Were inventors their father Jordan Gatling and my fourth great-grandfather were brothers pretty cool. Yes Let's see My grandfather had a patent for the first turn signals. There we go. And then he invented play-doh What what other more important thing can you invent than something to keep your children busy? Play-doh Play-doh, and I love this Cornelia Swarth Swarth what? Waffles. The waffle iron. I love waffles We're probably the electric one. I bet the waffle irons were or old Fast-acting use yeast we use in bread machines. That's from Christine Searle Pie maker he invented and were related to the Von Trapp families don't really know what that has to do with pie making but He was an inventor inventor of the torpedo His name was Robert Whitehead. I'm assuming To bias Phillips my maternal grandfather invented and patented the Phillips foot protectors for firemen and Here's another cool patent. I always thought it was a silly idea, but the pattern and and I these are On the G to G post. These are the same things. So I'm gonna open this one up. Let's see what it is What silly thing there is coming up. I usually have these open already It's a disc it's for a bicycle break But they're both for a bicycle break. So I don't really understand why There's something odd about these this posting So that's about it There was one up here with the turn signal people people were posting yeah I think about you every time I turn on my turn signal. How cool is that? So that was the question of the week Hey question of the week, do you have any inventors in your tree Lewis? I was going to mention and someone said hula hoops Lynette said hula hoops here and I wrote in a comment back that my uncle brought hula hoops to to Canada he was the first one he was in I think he was in the States at the time and he brought them to Canada and he would have been rich if he would have marketed them but He didn't start distributing them and someone else did instead and so he wasn't rich and neither am I So close it's so close yet so far away Yeah, right right if there are people watching only eight likes Why are people liking it come on good on it? Okay, I need to remind you every time Okay, so now we'll do these Profiles of the week that will be fun. Okay So, how's your French Lewis fresh pretty good Uh Our profiles are the theme around them are the French Revolution and For best deal day So our main Connection person is Maximilian de Robes Pierre look I didn't do too bad No comment Why is it why are you being oh she has M&M's in her mouth? That's why Pretty well actually Yeah, so Maximilian rose de rose Pierre Born 1758 in France obviously I think everybody's gonna be born France in this section, so maybe I won't even say it but So part of the French Revolution.  Oh mine because you're looking you're 48 from them Oh really everybody in the chat posts on what your Closest is and of course David Smith is losing his head over the fact that he is Closest connected to Mary and Tuna Check me out mags. I'm Kessler 2015 So So the rose spare was very active in the political and also in the French Revolution he Yeah, Rose fair was elected as the head of Paris allegations the new National Convention when people rose up against King Louis the Louie Louie Louie the Hold on I'm blanking with my Roman numerals Yes And then he was elected to the Committee of Public Safety on in 1793 and Then in September the revolutionary government Institute of what is called the reign of terror 300,000 suspected enemies of a revolution were arrested 17,000 executed the course of 11 months And then the execution of Robespierre rest and death in 1794 so Here's a very well written biography. So go read it. So we actually have revolutionaries and counter revolutionaries on this list. So We have and Louie germaine the stall Fudge They what this day? Oh Also born in France in She was a French novelist a supporter of their French Revolution She became critical early 1791 in a favor and was in favor of the establishment of the constitutional monarchy She had to seek refuge in Switzerland on several occasions and after the coup of 18 Brumaire she became a strong opponent of Napoleon Bonaparte and was exiled from Paris and later from France And she had a long-term relationship with Benjamin Constance And her for her novels her most notable works are Delfine Corrine and Did the limb I'm gonna try that that other one So lamangne There you go That's and Louise And looks like her Husband was from Whatever that is so What we understand is that there's some alien influence in your genes Sarah Why is one of my mom's saying unless they're from Mars. I have no connections. Oh Your mama's Martian It makes a lot of sense Okay, next we have Cloud Joseph Roget Delisle Roger Delisle Roger Delisle I'm working on it. Oh, okay. Look the first parts in French, which for now I'm gonna try That would be I would read it, but I have no idea what I'm saying you might make some people angry if you did it So Let's see He was close to the supporters of the parliamentary monarchy and he was imprisoned under the reign of terror But escaped the guillotine He was also the son of I'm not even gonna say their names, but his father was a lawyer and his eternal uncle and godfather Was a priest and doctor of the Sorbonne Yeah, so he escaped the reign of terror and apparently he resigned from the army And under the restoration he wrote royalist him called Viva Le Roy who failed to seduce Louis the 8th 18th And at the end of his life, he wasn't a precarious situation. He had to sell his father's inheritance and has Even been in prison for debt Even though Roy is long lived the king Uh-huh, so it didn't seduce the king Good thing we have somebody who kind of knows well, I guess that makes sense now that I look at it, you know the words Okay, so and if you know French you can read The French portion of it So next we have Francois killerman I'm in just Francois French wall Christopher killer man Christoph Christoph Good thing I have you two here today So he was a military commander who became marshal of France None in part for his decisive and timely victory in the battle of Valmy Um About his godparents merci Jonathan and then Yeah, he married Marie barb barbie barbie barbie in 1769 And he was a who's our who's our captain in the confluence regiment at the time of his marriage um And then apparently the father of the bride was then counselor to the king So I guess he's a counter revolutionary Just by am I correct in this assessment? Thank you All right, my mms are keeping me too busy to pay attention to that one Well, I would just have revolutionaries and counter revolutionaries. I'm assuming he's a counter revolutionary from fall So if I am incorrect, please tell me but That one didn't say much on his biography What I was born in Spain Juan Maria Agnes Zia, Teresa telly Born in 1773 in Spain, Madrid Spanish born noble woman On Sun holder and social figure in the French Revolution Um Teresa used her influence to help as many early targets of the reign of terrors. She could earning the nickname Notre Dame de bon secours She's credited with helping trigger the fall of robespierre and the end of the reign of terror She later became one of the most famous women in Paris and eventually married the prince of chimé Chimé Chimé Very cool apparently After she was divorced. She took refuge in the in bordeaux with her family and she was arrested there and imprisoned at the chateau du hall Maybe Um, she was sent to trial which meant almost Certain execution, but she smuggled a note to saying that she was dying because her lover was a coward And soon afterd was one of the chief organizers of the fall of robespierre Very cool, and then there's also some in french And she died in 1835 in the age of 61. Okay next We have George's Danton George Sometimes I try too hard So born in 1759 He was a leading figure in the early stages of the front for evolution and he was the first president of the committee of public safety The advocates of the revolutionary terror accused him of finality and leniency towards the Penalty and you're still planning You're so And his friends executed I think he goes to the same barber as george washington. Yes. Yes. It's probably the same dentist You can't see his teeth though on this photo at least His hair is kind of like really sticking out to one side in that photo It's a wig I know It's the leaves on backwards or crooked or yes something's going on Really he was a lawyer and Also, we have a part his his um Biographies also in french and he was sent to the guillotine on april 5th 1794 Next we have victor We did this one before No, we didn't The second game. Yes Well not today I think we did didn't we did we? Yeah, try it No why Mags, please chime in I'm taking my head. No, we haven't done him before no We've done a sea with a sedilla under it that little thing is a sedilla Under the sea Oh, it's françois françois Oh victor françois did that earlier. I think we did this profiles for I was like no, we have it We did one with uh with somebody with france wine it that was it. Yes so this one Only has a little bit of biography in french so I I don't know I guess we'll have to do a quick search on him You're gonna work Did How do you say his last name? Broccoli Broccoli Yeah Broccoli So he was a french peer statesman and diplomat and he was a third Duke of broccoli and served as president of the council during the july monarchy Um John tiner has taken up for you sarah. Oh, thank you. What is he saying? He's correcting lewis Oh But we did do françois before That is correct Hey france any françois Come on head sarah Okay, I was just looking on Thank you pd about him I'm causing as much trouble as mags today I know mags just had been having M&M's in her mouth the whole time. So she Um, yeah, I guess somebody needs to work on his profile so we can Know more about him. Yeah Okay, we'll go on the next person So next we have han's oxel von Person good. That was beautiful Um I'm assuming that is switzerland maybe in my world sweden anybody Look at this. Look at the sweden project. Okay. There we go. I should just Look at the screens, darah So do you see who commented? Who comments? I can't see It's made it Thank you Because Because mags is not being a very good co-host Okay, so he was And he was in the aristocracy of sweden and closer royal court He received education suitable for international career in military and diplomatic capacities His volume is diary was written in french, but he also spoke english german and italian Um He spent time at the royal french court for trades and for periods of time he acted as a secret liaison with the king of sweden Ooh, he's a spy Uh He participated in the international political events of the time until november 1799 He was killed by a lynch mob on june 20th 1810 while participating in the funeral of precision wow The crown prince fell off his horse and died. I know I was reading that I skipped a interesting part so so when Charles august the prince of sweden fell off his horse and died from a stroke rumours were spread that he had been poisoned by the gustavians And he was an axle was known as a gustavian so Do you have any gustavian ethnicity in your dna? Not I don't think so anybody does anybody have any gustavian dna. Yeah Where would we find that? I don't know. Maybe maybe a gustavian dna test Mags you have to be an expert Louis is just as much as an expert in dna as I am and he's throwing weird stuff out. That's all I'm saying Okay, so then we have We need more ethnicities. Yeah Or maybe not. So then we have marie and charlotte Corday considering that the french aren't allowed to test Oh, yes, you're right. We probably wouldn't have any gustavian Oh, so Known as charlotte corday She was a figure of the french revolution known to having murdered gene paul marat Jean Jean Jean paul marat Jean Jean paul joined 1768 and Lynette that's a good question. Um, they don't allow testing because of paternity tests um, the french have a different idea about, um Liaisons and um They just don't want to have that issue. So they have not approved it I think that recently that they did approve being allowed to test and then I think new legislation was up That's very very smoky situation as far as dna testing There you go. There you go so she was also So she was put on trial before the revolutionary tribunal. I guess for the The murder and and yeah, she was arrested Um, because she stabbed him And then she was sentenced to executed by guillotine on july 17 1793 Next on our list We have we have two left So marie The gouge Degouge I'm just gonna throw my guesses out there and you guys fix me. Okay born in 1748 She was a french playwright and political activist and she wrote the declaration of rights of women and of female citizens in 1791 In which she challenged the practice of male authority and the notion of male male female inequality And she was executed by guillotine during the reign of terror and let's see And that was the most important part Oh, look, so in her play and she had a play in 1785 called some more it's I'm not even gonna try to do that Which was a direct attack on the code nor and aims to draw attention to the fate of black slaves in the french colonies And I guess this is a quote from her. Woman has the right to mount the scaffold. She must equally have the right to mount the rostrum yep and And finally the last one. Is that the last one? Oh, no, we have one more. Thank you And then Oh, yes, and a lot of people were saying that they were the closest relationship to Marie Antoinette Marie Antoinette, you are 19 degrees from Marie Antoinette Oh Is that I guess? No, like that's me. That's me. Oh you are let's see Get a finder 22 and Lewis Is 27 so I'm closest to the three of us to Marie I think everybody pretty much knows about Marie Antoinette um Now if you like to watch oak island the show One of the one of the wild and crazy theories is that Marie Antoinette's jewels are buried on oak island. Just saying And apparently she also played the harp Just a fact It doesn't actually say like I don't know You know She didn't know she was married at the Palace of Versailles That's very interesting or had a ceremonial wedding And And then another Yep, doesn't really Talk about and I guess lessons though Marie Antoinette was well liked and her initial appearance was considered a succession to a relationship with those opposed to alliance with Austria So That was our last one You did pretty good. Thank you. I thought so. It wasn't a horrible. It wasn't horrible. I don't think Could have been worse So now Let me close all these tabs we will We didn't get to do this last week because We ran out of time But we can do it The photos of the week My favorite my favorite. I like the photos a week And this this week's themes was hats. So should be should be a fun Fun one. I was gonna comment on Marie Antoinette's hat and those those oh, yeah on her profile She does she does she's wearing a hat on there Okay, so we will I'll just check and see what people are saying real quick So what's the technical difference between a fascinator and a hat? Somebody somebody tell me what the difference between a fascinator and a hat is A fascinator It's the hats that the royal the Brits wear these days the royals the fascinating fascinator hat There you go Let me get myself one I'm just kidding. Okay What if we will see a picture of a fascinator that kind of looks like That looks like a fascinator. Yeah, that's what I was gonna say. I look like a fascinator It's fascinating Okay, okay hire them didn't They're wearing some hat. Let this guy got a bow tie and an intense mustache intense must Very like very angled Oh, that's funny. Ben Ben Malzworth has a good answer to that When you see someone's hat and the only thing you can think polite enough to say is that's fascinating I Think Ben just in the middle of the night. He just I don't know because he's normally have these Ben's putting on all cylinders tonight Mm-hmm I like that hat. Mm-hmm It's a pretty photo That's a cute one deeter Deeter. It's actually a deeter Deeter's not cute. Look at cute little deeter Isn't he adorable? Move your cursor off his eyeball. Sorry What is he holding?  Yes. That's what I was thinking Be careful careful deeter. Okay um Oh, man, that's a big hat. That is a large hat That is a very large hat I wonder if it's just like she's got a cake in it Or if it's just like mostly empty like hollow There's a cake up in there. There's got to be a cake in there That's the only reason to have that big of a hat is there has to be a cake Or another hat hidden inside. Oh, this is thomas Thomas uploaded this one Thomas is there a cake in there? Please tell me there's a cake Chris Ferriolo says that's not a hat. That's a UFO It's not flying though. It's not flying It's a Oh Says that deeter is holding a sack full of candy for the first day of school Oh, good answer very wrong. We were we were so wrong But you really I wasn't commenting on it Did you have more M&M's in your mouth? Is that why maybe A cat in her hat So we have an easter bonnet There's eggs on the top I want to say that that might be a greek. Is that a greek orthodox? Is that what's the name? It just says easter. It says it's in england catering england Um, okay. Yeah. Oh look at this Those are some hats Not big enough for cake, but they kind of look decorated like cakes flowers on them Hers looks bigger Maybe it's just the looks like the mama. So maybe she's had longer time to To work on her I can't imagine writing a bicycle in a dress that's all i'm gonna say how they do it. I don't know but I would especially a white dress It would get all gunked up with georgia oil and So the first thing I thought of when I saw this Is little bow peep Oh, yeah with a little She's out doing her shepherding. Mm-hmm That's cute. You have to have in a white dress It's a wedding picture It is a wedding picture the bride in the middle Mm-hmm in australia And ben says three men three wives That's a pretty nice picture. Mm-hmm. That's a dinky hat compared to what we've been seeing Only the women are wearing hats too Okay, what's wrong with the guy's eyes in the middle or in my scene maybe he's possessed He closed his eyes I guess maybe It's also kind of a pixelated like a Yeah, I like that photo Mm-hmm No thinking about that too much. I hope he's not possessed. I hope that's just I think we need to go away from this picture. Yes Oh my gosh, look it's a horse It is a horse. It's a pony In a Yeah That's like more of a pony And it's definitely a pony About six hands. They're so cute Oh, ben mohle's worth. What did he say? You know, it's does he need to be put on time now. No, no, they often took photos with deceased relatives Wait, what did he say something about them took photos with deceased relatives stop at benjamin I know that but stop it. Okay I have a picture of my great great grandmother that almost looks like this picture She's on the same hat. I thought you were going to go into the Wait, what ben was saying? No, no, no Yeah, that's I always like stop and you'll mama you'll mama saying Yeah Okay, she kind of looks like she's going to the beach Yeah Like a tropical photo No marching band hat Nice And what instrument is this? I know Betsy Betsy probably knows she does a flugelhorn Betsy Betsy She was in I know she was she does preschool stuff. Oh, no, it's an e-flat alto horn Oh, what an e-flat alto horn It's a tuba for someone who doesn't want to carry a tuba. There you go And billy was like is that a Oh, that was you know, what's really going to surprise you is that I have played one of those when I played in the orchestra This and you didn't know what it was Well at first I thought he had his hands on the on the valves his left hand and then I realized His hands were on the valves on top and so I recognize Yeah Cool this also Just from the top part. He looks like the crocodile hunter But he's the he's the grass hunter. He's getting that. Yes Well in that lawn Oh my goodness gracious I've seen those hats like at ski resorts And they have they have those that they actually slip over the top of your ski helmet My mother used to knit hats like that That we'd wear in the winter. Mm-hmm. You did wear them. Yeah, keep our heads warm underneath our parka It's cold here in Winnipeg We don't need those hats here in florida Dukes Look that kid looks like he has a Almost looks like a camera but I can't say for sure. You know what it looks like it looks like an entertainment unit It does It's a miniaturized version, but they all they all are wearing beanie hats It does actually look like I don't know. It looks like there's little candles right there. It's a piece of furniture Maybe from a dollhouse But I don't know Look, it's from florida I know those same people those hats the the beanie hats they're wearing were very popular in that time And if you remember watching the little rascals Who was it that always wore the little beanie hat? What was the kid's name? Somebody remember that I don't know who's Mom should have had a girl as the title of this photo Because this is a little boy I have pictures that my grandfather in dresses when he was a very small child. Yeah, I think that was the fashion then Nice The colon oh david upload Name that That's a drum. Yeah Spanky lannette jester wins the m&m pro day Why she named the kid in little rascals. Oh Uh-oh there was a last photo. What beware Refresh the page Ben just added a photo On the g2g post. Oh, okay Uh-oh spaghettios. I'm trying to think of some scary sounds to make There's a banjo with a straw hat Oh, look at that Then well, that's another one. We didn't see what is going on that photo. Look at his hat I think they're wearing the women's hats. Uh-huh. So cute Um, hillary's upset you mr. Mom Well, she's not upset. She's just stating you missed my mom Okay, we're just gonna scroll scroll scroll Until you see ones that we haven't seen or we see bends. There's one look hillary uploaded. Oh her mom See we just hadn't gotten to her yet, hillary All right next one. Look there we go this one. I've been uploaded look at that top hat molsworth and molsworth We hadn't had any top hats yet. Thank you so much for sharing that with us. Thank you Yeah, skipping our hat to you I haven't had I'm not gonna wear it Okay, well that that's all our photos of the week guys Now Lewis Lewis Is going to tell us all about We'll give you a little update on the week tree challenge and i think this is a sham though Because Lewis can't tell us anything about he's just gonna he's gonna introduce the week tree challenge He's gonna tell us what it's about Yeah, but you can't tell you don't know anything, right?  All right So the wiki tree challenge has been taking place every week on wiki tree since the beginning of the year It's in this big year of accuracy That the wiki tree Is going forward with and each week wiki tree gets a guest star on on wednesday Who adds their tree onto wiki tree and for the whole week all the wiki tree years go at it And they see how much they can improve that person's tree and add to the tree Create new profiles better profiles all sourced and all accurate information At the end of the week They do the big reveal and they let the the guest know how well they did on his tree And who won the wiki tree challenge that week How's that that was good very good So that's the wiki tree challenge and this week we're doing lewis so I have to hold on I have So we we only have it's been it's been a tough week and lewis knows that you know That it was going to be a tough week for us because The his brick walls are challenging Um, and they're not they're not many records available for the to break them down um We actually have one bounty point so far So we did find one. Okay, wonderful So what is going? I don't want to look. I don't want to look. That's not that's not you. That's not you. Oh, oh, okay Yeah, just to for those of you you probably saw we were posting about it everywhere. We have broken down from last who was not john's week, but um The week before Yes, the week before we broke down our fifth five hundredth brick wall so We were probably way past that now, but It's kind of exciting We're a little bit over half the year 500 brick walls broken chris thinks we can reach a thousand chris f chris thinks we can reach a thousand by the end of the year. Let's see it depends on our wiki tree years and our You know, I guess the guests that we have depending on how challenging their brick walls are If we told you this the answer to your question then which is how many broken down walls this week prediction We would have to kill you Well, he wants a prediction. How many do we think? Oh, I want to say 800 This week. Yeah Go for it Go for it I I I made a big discovery this week Uh, I I've been posting all my little hints up to you guys and I discovered that that my uh, fathers, uh My father's stepfather's first wife Had two death certificates Oh And I thought they were the same for the longest period of time and when I went to post it I noticed it had her place of death on it Oh I never knew that before that was one of my big big big Question marks. So I was so excited. So I'm I'm already very happy Can you imagine you see how excited Lewis is everybody? Can you imagine that the poor man's been having to sit on his hands all week? He has really not been allowed to be around wiki tree because he wants to be so I've always been sitting on his hands I've been I've been trying I've been trying to do other things. I still haven't cleaned my desk. Maybe I'll get my desk cleaned by the Yeah, there you go. You have a few days to get your desk cleaned to prepare for Wednesday Couple of projects a couple and then if there's anybody here who wants to try to help on Lewis's week Hilary points out it depends on whose trees everyone is working on It depends on that on how many brick walls get get broken down and as I understand from the nuances I'm getting is that your tree has been very hard Lewis so I've had a lot of trouble with it Yeah, and then if there's anybody here who wants to try and help us with Lewis's trees so we can Jump in jump in so the man can stop sitting on his hands Well, he still has to sit on his hands Bite my nails So nervous Yeah, so Lewis and everybody else will have to wait until Wednesday for the big reveal So we show him what we found the brick walls Just what we've added to wiki tree nuclear relatives ancestors all the goodies maybe some fun We always find some fun news newspaper stories and stuff so You'll have to find out on Wednesday. I believe it should be at 8 p.m On next when next on Wednesday 8 p.m. Eastern time and and then next weekend is Connectathon So we won't have a guest star next week So basically Wednesday will just be wrapping up Lewis and that's it There won't be one of these next week. No, we'll be more than one of these. There'll be like 20 000 of these all weekend. Yes, so Starting 8 a.m. Eastern time on Friday to Monday 8 a.m. Eastern time We will be 72 hours of connecting And I will be here mags will be here sometime. She's gonna be at the Her lake her not like house her um cottage It depends on if I have connectivity or not. It's out in the middle of nowhere Yay So I'll be here most of the time Mindy will be here a1 julie Whoever else I know pip was on one time. We have we've had chris on Katie we've had on Any if anybody wants to come on to one of these connected fun chats, please let me know we have more than one Benjamin if you want to come on for one Yeah They're like in the middle of the night so you could like hang out with a lash. Yeah people lash company And anybody you know, we will have all of you on it'll be great. So sleep well ben go back to bed And thank you very much for allowing me to be on today Of course It was a fun time it was it is it still is for the next Minute yeah, and if you still have not registered for the connectathon you can until Wednesday, I believe yes, and you can join the cornbread catchers because it's the best the best team Oh, this is perfect. My husband calls the updates on the clean-a-thon a gigalathon Mm-hmm. It's it's true. You know, he's not wrong. Patricia. He's not wrong. Uh-oh. It's literally the most Unproductive well, they're not unproductive, but they're the most off-topic Yeah, they're fine And When we first started doing them aon and julie and I basically were doing all of them every hour We were doing them like every two hours For the entire time and it truly was Slap happy in the middle of the night sometimes but that's what happens literally We're all so insane that We lose our heads It was there that we discovered Blueberry pie always every single one blue food gets mentioned. I even ate a blueberry pie during one Not yesterday. Yeah, I think I did too. I think I had a blueberry pie once. Yeah Yeah, I think Oh Pip is pointing out that his poor wife is a wiki tree widow during thongs I just don't say that she was a wiki tree widow wearing a thong I don't think pip leaves his desk during the thongs.  He doesn't he wears the same kill for saying He will any light he has to light on on the floor and roll himself into it Oh madame blueberry that is mags Although there are fresh blueberry Bushes at the cottage and it's time for blueberry So I'll try and go pick some fresh blueberries while I'm out about and then mail me one, please You may email you a single blueberry. No pie from the wilds of canada It's just one just one blueberry Okay Oh, he has a new Douglas kill to show off. So I guess we'll see it next week. We'll see it next week So I guess until Wednesday and until next weekend We will see wall


Let's jump into an example. Humanity has just dispatched its first spaceship on its way to Jupiter to examine a mysterious alien monolith, while the ship is somewhere between Jupiter and the Sun. The ship's computer notices that the accelerometer measures zero acceleration. Given that the engines were turned off, how far was the ship from Jupiter? Let's unpack this question. We know that the engines were turned off, which means any force on the ship is solely the result of the gravitational field from Jupiter and the Sun, assuming that the other planets are really far away. And since there's no acceleration at all, the total field strength is zero. This means we're looking for the point between the Sun and Jupiter where Jupiter's gravitational field is equal strength but opposite direction to the Sun's gravitational field. This is actually pretty similar to finding the point where the two gravitational forces are equal, but without the need to worry about the mass of the spaceship. Now on a line between the Sun and Jupiter, the fields are already pointing directly away from one another, so we just need to concern ourselves with the field strength. As we've discussed, the field strength of an object is equal to the universal constant of gravitation multiplied by the mass divided by the distance squared. So let's set the field strength of the Sun equal to the field strength of Jupiter. Now RS and RJ are the distance from the spaceship to the Sun and to Jupiter respectively. To find RJ, which is what the question has asked for, we can use the distance from Jupiter to the Sun to remove RS. Substituting this in, we find the following. We can then rearrange this equation to find RJ. Firstly, we divide both sides by big G, then we rearrange to put the radiuses on one side and the masses on the other, and then we take the square root of both sides. Next, we divide the left-hand side by the distance to Jupiter and move the one to the other side. Finally, we rearrange our equations that we have an expression for the distance to Jupiter. If we substitute in our values, we find that using the positive root of our equation, the distance from Jupiter is 2.446 times 10 to the 7 km. Using the negative root in our equation, we find that the distance from Jupiter is equal to minus 2.602 times 10 to the 7 km. And there we have it. There are two answers because there are two points where the strength of Jupiter's gravitational field is the same as the Sun's, one on each side of Jupiter. Since we're only interested in the solution, where the fields point in opposite directions, and where the spaceship is travelling between the Sun and Jupiter, then we know that we need to select our first answer, where our distance from Jupiter is equal to 2.446 times 10 to the 7 km.


Earth's mightiest heroes, the Avengers, go up against a few grease monkeys in the most lopsided movie feuds episode to date. Don Toretto's Fast and Furious crew might not pack the sheer brute strength of the Hulk Buster, but they have plenty of muscle, especially in their cars. My favorite YouTuber, Jonathan Paul is back for a fourth time to see how many consecutive episodes in movie feuds he can lose. This time, it's not just about being fast. It's Avengers Age of Ultron vs. Furious 7. The seventh entry in the Fast and Furious franchise is loaded with a multicultural group of talent, including Vin Diesel, Paul Walker, Dwayne Johnson, Michelle Rodriguez, Jordana Brewster, Tyrese Gibson, Chris Ludacris Bridges, Kurt Russell, and Jason Statham as an unstoppable bad guy. We have a Hulk. We have a Rock. Specifically, the Rock. We have a The Rock?  Dwayne Johnson is an impressive specimen, but names don't get much bigger than the Marvel lineup. I'm talking Iron Man. Hulk. Thor. Captain America. They're all there. They're all better than ever. Even the second-stringed characters pop up from time to time to keep things interesting, War Machine, Nick Fury, and then et cetera. Then there's the newcomers, Quicksilver and my new crushed Scarlet Witch, played by Elizabeth Olsen. If that woman came even 20 feet from this mine, she'd have a restraining order on me faster than Vin Diesel can say family. She's the Olsen sister we always deserved. Seriously, though, the Fast Cast, as I like to call them, is as tight of a group of players as you'll ever see. They're endearing, authentic, and entertaining characters you can hang out a backyard barbecue with. And the beautiful send-off to Paul Walker had me in tears. Tell me, Adam, did you even cry when f***ing died during the Avengers? Of course not. He was dumb. But let's talk villains. Loki's been in a string of Marvel movies and he's kind of a favorite go-to bad guy. But Ultron is just as menacing. Being able to shut down computers in a matter of seconds and swap bodies faster than the Hennessy Venom GT make him a dangerous adversary. You just Googled fast car, didn't you? Yeah, that's exactly what I did. Emmy winner James Bader was a fun villain, no question. But is he Jason Statham? Not even close. You don't know his character name, do you? Uh, Ian? Or Owen? Or Declan or something? It doesn't matter, okay? Ultron barely receives any origin explanation. One minute he's a pile of metal and jopeto shop and the next he has a shiny new body 11 feet tall. Owen gets perhaps the best introduction of a villain in modern cinema, slow motion walking through a ruined hospital that he destroyed moments earlier. He's a chilling nemesis. Are there plot holes? Yes. Is there some lame acting? Of course. Are there cliched moments? Absolutely. Let's stop talking about Fast and Furious 7 though and get back to Avengers 2. Hey, low blow, Pac-Yow. Age of Ultron ups the stakes in all departments. We have a bigger risk in the form of artificial intelligence. We have struggles not just physically but mentally, internally. Then we have the subtle calls to the Faves 3 movies. Right. Because watching an advertisement for an entirely different film that's still three years away is how I love to be entertained. And let's not forget that bizarre relationship between Johansson and Rufalo, not since the notebook or Titanic has there been such a beautifully told love story. Being sarcastic, by the way. All the good ones were taken. Thor is giving Natalie Portman the hammer of Odin. Iron Man's lost in Pepper Potts Daisy Dukes, Hawkeye Knocked Up Belma, and Captain America's 140 year old virgin. Not to mention Nick Fury, who I'm sure would love the opportunity to get with Scar Joe. He'd probably give his right eye. But at that point, it seems pretty foolish. Because he'd be blind. Because he's blind. Story is just a means to an end. Hell, the writers came and got the titles right for these movies. But the 134 minute narrative brings our car racing heroes from the twisty roads of Eastern Europe to the beaches of the United Arab Emirates. As a mysterious government agent tasks them with retrieving an all-seeing eye computer program. Even in the extenuating circumstances of the film's troubled production, which was pieced together from the limited material Walker had shot before he died, the fact that the story is even remotely cohesive is downright impressive. John, if you're having a hard time keeping up before, you might want to just pack up and call it a day. The Avengers has an overwhelming amount of action and effects. Hell, the Hulkbuster sequence versus the Hulk has maybe more VFX shots than in the entire Fast and the Furious franchise. There are so many cool moments from the 20 minute opening battle where we get our hero shot of the team leaping in. To the smaller scenes where we have Tony Stark outside of his suit having to fend off robots with some of his team, then there's Quicksilver. Although not as good as the X-Men interpretation, he still has a lot of fun moments. And then there's that final fight that is a sight to behold. No shame in bowing out now, John. I fear if you continue, you're not going to gain any friends. That's my secret, Captain. I don't have friends. I have family. If Fast and Furious has shown me anything, it's that nothing is stronger than just that. Not a souped up flip car or an exploding can of Nos or even an impossibly long airport runway. They may not have a giant green monster, but they do have Vin Diesel, who is also apparently capable of leveling a parking garage with his foot. Diesel Smash! What really matters for these films is the action, and that's where Furious 7 delivers in spades. An insane stunt that sees Diesel and Walker flying a supercar between three adjacent Abu Dhabi skyscrapers is as amazing as it is unrealistic. Earlier, a skydiving car chase along a Colorado mountaintop is a well-edited sequence with nail-biting thrills. In addition to the great score from Brian Tyler, the movie ends with the haunting Wiz Khalifa and Charlie Puth original See You Again, which is not only a beautiful tribute to Walker, it also knocked the powerhouse pop song Uptown Funk off the top billboard slot. And it got over 200 million views on YouTube inside of a month.  Because Marvel couldn't retain Alan Sylvester yet composer, and had to use two separate people to continue his work. The Avengers theme song may not be the most exciting one out there, but it holds its own. Brian Tyler does the majority of the legwork, but he does get a little bit of help from Danny Elfman. They remixed the original Avengers score and tied it in with a lot of the other MCU theme songs like Iron Man and Thor. It has a great universal feeling and makes it seem like one big happy family, which I know you're a fan of, John.   The plot is a bit scattershot. The characters aren't always utilized correctly, but the impressive stunt work and touching tribute to Walker make this a must-see for all fans of the series. Going above and beyond the scope and believability of previous films, Furious 7 provides fantastic excitement that pointedly eulogizes one of its own. And the public agrees, Adam, Furious 7 is about to cross the $1.5 billion dollar mark at the box office, which we'll put it ahead of, you guessed it, the Avengers. If you would have told me even five years ago that I'd be defending Avengers vs. a Fast and the Furious movie, I would have laughed in your face and then continued strangling that homeless man in the park. It was a dark time in my life. I still think Fast and the Furious is a laughable franchise that's gotten far bigger than it has any right to be. But not everyone's into talking raccoons and magic hammers. That said, I'm willing to part with my Michelle Rodriguez signed wife beater if Avengers doesn't decimate Fast and the Furious in this feud. John, why don't you go ahead and do your plug-in thing? When I'm not arguing with Mr. Minnesota over here, you can find me at youtube.com slash feud nation. Seriously, I feel like I have a residency on this show. My real channels are Jogwheel, where I read funny spam emails and review movies and John, where I play video games and rant about current events. Subscribe if you feel like it. It doesn't seem to matter anyway. Two films enter, one film will leave. It's up to you to determine which one's truly superior. Leave a comment, like the video and vote for the victor. If you like my little show and want it to continue, please show your support on Patreon. Just a simple dollar would increase this show's longevity until the day I died. Most likely at the hands of the homeless man's son, who's been plotting his revenge for years. Should have killed him when I had the chance.  More than just reviews. This is Movie Feuds. It's like he's actively trying to make this show worse.


Nigerian women have been urged to brace up, arise and be exceptional in all they do by finding their purpose in life and art and value to themselves. This advice was given by the women of inestimable value foundation during its conference and their student graduation ceremony, which held in conjunction with crime and justice, leadership and peace. Speaking during their conference, human rights activists Yemi Siransum Kuti who spoke on their theme, arise and be exceptional, said, women are gifts and are called to serve while nurturing those around them, ransom Kuti urge them to teach their children, especially sons, to be human first and respect women. The CEO of the foundation, Blessed Asia, who spoke on finding women, said women are good at what they do and urge them to be their best at all times. Professor Kandy, dreams of the Lagos State University, challenged the graduates to be great ambassadors of the country. He spoke alongside others. You begin to find that your life is pushing you in a certain direction and let me tell everybody, it's not a tea party, it's not a paradise, it's not a wonderful place where there will be no challenges, everything just will be fine, hunky-dory, there are many obstacles along the way because life is a problem-solving exercise. We are here to be co-creators with the Almighty. The Almighty cannot come and do all the stuff we do. The Almighty needs our eyes, our hands, our feet, our heart, our brains, so we have to use it. I'm going to be a professor and it will take me 10 years to be there and it's something like that that's what's happening. I want to challenge you today that it's possible for you to do it. Whatever you can conceive is what you can achieve. Whatever you can think about is what you can do. Doing it is a problem of thinking it and thinking it is a problem of seeing it. If you can see it, you can think it. If you can think it, you can do it. And if you make an attempt, you are going to support it as you will.  And when you are outside here as a career woman and they are proud of you, you can see that one of the challenges you are facing to this time, they are busy. Yes. This is the thing we have now. People are so busy that they don't have time for their hope. As a woman, do you satisfy your husband as well? As a mother, do you satisfy your children? Gender-based violence is a fight for all. It's not a fight for one person. Gender-based violence is something we should have found out. It's not something we should support. It's not something we should even condone. It's not something we should keep quiet when it is happening in our environment. When there is a case of child abuse, when there is a case of rape, when there is a case of domestic violence, it is our duty. It is my duty. It is your duty as a Nigerian citizen all over the world. It is our duty to speak up so that together we can put an end to gender-based violence.


But when you're here this week, you're going to experience quite a bit.  It's going to make you uncomfortable. But that's a good thing. So you see how the complexity of these ideas and the Air Force have held people back. It's not written policy, but it's a procession. Good evening. I'm excited to be here. There's something I must say if you even get into my life, whatever you want to hear from me, let's put it that way, is that being in this space really triggers back the memory of July 2nd of 1964 when the Civil Rights Act was passed. Because by that time, I was like 14 years old, and it had already come to the freedom of the group training with the members of SNCC. So we learned how to integrate. And as soon as that signature was on that piece of paper, the ink is not dry yet without testing the waters.


So, before lunch we saw some interesting talks on axioms and compilers and APLs and stuff like that. Let us get to the ground a bit and talk about some stuff on the JVM, seemingly much more boring platform so to speak. Myself Debashish Ghosh, I work for LightBend and I have been attending this conference functional almost every year except one year I guess and I enjoy speaking here. So, thanks for inviting me once again. The subject of my talk is managing effects in domain models. When we are building domain models which are not that trivial it is not only composition of some pure functions there are other things to take care of. For example, I O we need to interact with the databases we need to interact with the file system we need to write to sockets and things like that. The question is how do we take care of that in a purely functional world? We want to have all the goodness of functional programming as part of our model and yet we need to address the effects, address the side effects that will come in our way while implementing the domain model. So, this talk gives you a few options, discusses a few design paradigms on the JVM using a statically type programming language I will use Scala for this. Just to show off friends how many of you were there in the in my earlier talk in the tutorial for the JVM for Scala quite a few and some of the slides in this talk will be a repetition from the earlier one, but I will skip through them fast because they first of all they speak about basic things which have already been discussed many times in this conference so far because I have quite a few slides to discuss and I will keep them for the last ones. So, as I was talking we all talk about the goodness of functional programming, programming with pure values immutability, how functions are just like mathematics and things like that equational reasoning, but how do we handle this stuff which are not not so good means which are not so pure not so referentially transparent. For example, file IO, database reads and things like that we call them side effects. How do we manage side effects so that they can be good inhabitants to the algebra of our domain model. How many of you were there in Tony's talk yesterday when he talked about parametricity quite a few. So, one of the central themes of purity in functional programming is this concept called referential transparency. I will not go into the details of it just to mention that an an expression is said to be referentially transparent when you can replace the expression by its value within the program and and we do not have any other impact as part of the program the program remains the same. So, referential transparency is one of the values which will which will be core to the discussion today and the basic idea is how to use side effects how to transform side effects into values which are referentially transparent. This is a simple example of a referentially transparent expression we have this val str we create a tuple using str and instead of str we use its value and the values remain the same. So, it is a purely referentially transparent expression. Now, what about this there is an iterator right which has a shared mutable state and the moment we substitute a we the value the call to the function the values change the results change and that is because of the underlying shared mutable state which is there as part of the iterator. So, this is an example of an expression which is not referentially transparent. So, referential transparency enables local reasoning what exactly do you mean by this because when we are doing when we have multiple sub expressions and each each individual expression if it does not have any dependency on any external services or amongst each other then we can reason about each of these expressions individually. So, that is what we mean by local reasoning. So, if each expression depends only upon the input and the output without any without any interaction with the external world in that case we can reason about those expressions locally. So, that is local reasoning and if we have referentially transparent expression then we can then we have local reasoning and local reasoning leads to function composition. We can compose functions when they are referentially transparent because side effects do not compose this takes us to this concept of side effects which is something which breaks referentially which breaks referential transparency. So, an expression can either be referentially transparent or it is a side effect there is no in between side effects do not compose they are not modular and here are some of the examples shared mutable state database writes reading from standard input these are all concepts you are familiar with. The problem is side effects are ubiquitous side effects you will encounter in almost all parts of the application unless it is a very trivial application you cannot avoid side effects. Now, the question is how do we deal with side effects in functional programming they break modularity right. Hence, we need to handle them somehow within the realms of our type system we are using a statically type language we have the power of the type system. So, we want to use the power of our type system so that we can still work with the pure values till the time we have to interact with the runtime system. So, we have to have to handle side effects such that they remain pure values till the time we submit our program to the runtime system. Fp is all about pure expressions that is why functional programming is often called expression oriented programming as opposed to statements and actions in imperative programming which tend to mutate things. So, one way to handle actions and statements is to differ their execution we need to be lazy we will not execute the action at that point in time what we will do is we will lift all actions into a containers you can think of it as a container as a container sort of thing where we prepare the recipe of how the execution will take place. Instead of executing the whole thing we are still preparing a value right by accumulating stuff within a container that we are we are preparing the recipe of how to do the execution later in the stage of the program. So, this is one option we can handle. So, and as long as we have an unevaluated action it is still a value. So, we are still in the land of referential transparency and it is this value that we are calling an effect. Here is an example we have a bunch of functions all of these are pure and we can compose them together to build a larger function in the as we can see here we can compose these functions to build a larger abstraction. We could do this because these functions are referentially transparent and the types also align we cannot compose just any two functions the types have to align the type algebras have to align and here the types align and because of that we are able to compose the functions and build a larger function. The challenge is to do the same thing with the same semantics of algebraic compositionality in the presence of side effects. How far can we go? How far can we stretch this paradigm of compositionality in the presence of side effects and one of the tools in our toolbox is the type system the types. Now, as we saw earlier also types are algebraic and one of the things which we can do with anything algebraic is composition. So, we can compose functions when the algebra of the types align. Here is an example of a function which is side effect. It computes the salary of an employee for a specific month and as part of it it does a look up for from the database it reads information related to employee and then it computes the salary. So, it is a side effective function that is not what we want. We would rather have it this way we divide the entire execution into two parts. Step one is building up of the recipe of how to execute and step two is the actual execution. Step one is completely referentially transparent. Step one builds the steps, builds the recipe of how I should compute the salary taking input from the database and in step two when I do an unsafe run sync I actually submit it to the runtime system and then the execution takes place. So, till the time we are at the end of step one we are still in the land of values we are referentially transparent. So, we can compose this recipe with some other recipe for example say we have some other recipe for computing tax. We can compose these two recipes together to build a larger recipe which we could not do if we had executed the function earlier and got the value of the salary. So, this way by doing it in two steps by being lazy with the execution what we are achieving is we are achieving compositionality. So, this is the intuition as part of the first step we create a description of the computation and in the next step we submit it to the runtime for execution. Step one is referentially transparent step two is not. So, here if you notice what we did is we put the recipe into a container like thing called IO think of it as a container the container contains the recipe and we call such structures IO a type constructor because it is a valid type it is a concrete type when we supply an argument to the type. So, abstract side effects into type constructors that is what we were doing and these type constructors are what we are calling the effects. We have a large number of effects these are not all these are some of them IO reads from the reads from the external sources either is the effect of disjunctionality option is the effect of partiality we can have value or not have value that we can we can abstract into the effect of partiality. For state management we have the state thing and if you look closely into each of them they have a common shape it is the f a where a is the value a is the answer that the effect computes a is the value that we get ultimately for example, there we had IO salary.  Yeah the execution the execution needs to be deferred till the time we need to compose till that time we need to compose values. Now the f which you saw f is an opaque type we have not yet associated any denotation to this effect to this f type which we will do later in this talk primarily I will focus on the IO effect which is related to interacting with the with external systems and IO is possibly one of the most common effects that we need to handle when we when we are implementing a domain model. So, let us have some let us take a look at some code this is an algebra of one of the artifacts of a domain model an account repository the purpose of this algebra is to it gives you the contract to fetch stuff from the database or write read and write basically interact with the database it gives you an abstraction this repository term comes from domain driven design concepts and account repository is one of those repositories. Now, I have these methods called query and store the return type is IO, IO option account IO account. So, it is effectful right. So, these functions we call them effectful, but effectful, but monomorphic those of you who were with in in Tony's talk yesterday must have seen this that it violates parametricity whether to use IO as the effect type or something else is a decision which the end user should take and here we have taken the decision on behalf of the user. So, let us turn into turn that into parametric type we are now parameterizing the effect type as part of the contract of the algebra. So, now account repository is parameterized on the effect type which is a type constructor m and now the functions return the effect type as m we will see how this helps us, but before that a few notes on parametricity as we saw earlier when we makes make an abstraction parametric it is more generalized. So, it is less constrained. So, it has a lesser number of implementations. So, it is easier to reason about lesser number of possible implementations because it is more generalized. If you have a if you have a contract with type m you really do not know what m is. So, you cannot really write much as part of the implementation, polymorphic because we can vary m we can we can choose various values of m. So, it is parametric polymorphism and theorems for free as we saw earlier also in earlier talks that if you make your contract parametric you can deduce a number of theorems just by the look of the types which your functions take. There is this paper is a great read theorems for free by Phil Weidler. Here is an example suppose you need to write a function which the purpose the implementation of the function deals with folding some stuff. So, a common usage which we which we tend to do is pass it as a list pass the argument as a list, but if instead of list we pass we pass a foldable foldable makes lesser number of assumptions foldable is a much more generalized data structure than list it has a much more generalized contract. So, the number of possible implementations using a foldable will be much less than what you would have with list so, if only if the only only stuff that you are doing is folding over folding over a collection or folding some stuff in that case it makes sense to pass foldable as the argument type rather than list back to our account repository. Now, this is the contract for an implementation of that algebra note that this is also parametric on m, but here what we have done is we have we are still generic on m, but I have constrained the genericity to include the restriction that m needs to have a monad. I would I would like to handle error through the class monad error through the type monad error which implies that m is a monad this is from this is from cats library. So, note that the implementation 2 is implementation 2 does not depend on the specific type of m implementation is also generic and the immediate benefit which we will we will have is we can now implement we can now instantiate account repository using various types of effect types with IO or with monixival task. So, here we have this polymorphic effect of m since we did not commit to an initial implementation. So, because of that we can use various types of concrete effects in order to instantiate the various various types of repository implementations. Any question till till now local reasoning local reasoning local reasoning is a general concept which can be applied at various level suppose you have a complicated function and this function computes computes two different things by calling two different functions. So, if these functions are referentially transparent then it is easier to understand those functions by considering them reasoning about them locally. You can just consider function 1 and you can analyze that it does not depend on function 2 or it depends on any external sources. So, since it is by referential transparency we mean that it it only takes some input and gives some output it does not depend the output only depends on the input which you give to the function local means the local scope the local scope of the function yeah local scope of the function yes. Composibility is possible, but polymorphism you lose by making things parametric upfront you are leaving some of the decisions to be made by the user which actually should be made by the user. So, here are some takeaways we have a parametric and effectful algebra and an implementation parametric algebra with effectful functions, referentially transparent implementation where effect is constrained to a monad can be used polymorphically with multiple specialization of the effect type IO and task we saw and these types of design tend to be modular they can be tested in isolation because they are pure values referentially transparent and things like that and since it depends on some specific algebra for example, the algebra of monad the implementation depends on the algebra of monad you can during testing you can you can pass on a very simple version of the monad to test for example, in some cases if your function takes a monad you can pass the identity monad for testing whereas in production it will be a it can be a different kind of a monad. So, it is unit testable because it is modular. So, we saw one artifact in one artifact of our domain model repository, but usually artifacts do not stand in isolation they have to be composed right they have to be for example, repositories need to be passed on to the services domain services. So, now we will see how repositories can be passed on effectful passed on in an effectful way to a domain service. So, that the effect remains the same the service will also be effectful right if the and the repository is also effectful. So, in that case we need to we can pass the repository to a domain service using the same effect and there also we will use the power of the type system. So, this we call the composition of effects we will compose the algebras of the repository and the and the domain service and this composition will be through types. So, the next step will be to design a domain service that composes with the account repository algebra which means the same effect is propagated down from the repository to the service module. Just a refresher this is how function composition works f a to b g b to c and we can have we can compose this to get a to c and we have the identity functions and if yeah now compare this with this diagram which is basically the same only thing is that the functions are effectful. So, instead of a to b we have a to f b and b to f c and now we need one and then function this is not plane composition. So, plane function composition will not work here because we have the effect and those pure functions what they do is they take pure values and lift into the context of the effect there is one class called Klysely. Klysely basically wraps a function application it takes it it takes a function it takes a to f b and gives us a wrapper and Klysely actually implements an effectful and then by which you can implement function composition over effect full function. Now, this implementation is not complete, but as you can see that here we have let us try to guess the implementation here I have the run which takes an a and gives me an f b and I need to implement and then which takes a b to f c and I have the run there. So, what I can do I can prepare a Klysely my intention is to prepare a to f c which is Klysely f ac. So, I can prepare a Klysely which takes an a and on that a I can invoke run. So, that will give me an f b right. So, now I have an f b and an argument and and then has an argument b to f c. So, now I have f b and b to f c and I need to get f c any idea how how how I can get there any familiarity flat map we can constrain f to be a monide and if we invoke flat map on that it will give me the desired type algebra. So, this is the simple implementation of effectful function composition in a statically type setting where just by aligning types and constraining some algebras to some specific effect types. Here we have constrained f to the effect type of a monide I can implement effectful composition effectful function composition inverse not only not only f b I I have a to f b and also I have this b to f c. So, if you look at the signature function signature of a flat map you will see that the types align beautifully to give you f c having an f b and an a and a and a b to f c I can reach f c. Klysely also gives us a monide. So, that Klysely you can compose using for comprehension and in monads. So, now let us look at our domain service algebra domain service needs to have a repository and. So, the domain the algebra of the domain service states that it takes a bunch of arguments it takes an account repository and gives us an effectful account right. The first thing to note is that we have the same effect types and since we specified m in both the places this means the type system will enforce me to pass the same effect type when I am instantiating the account service and when I am instantiating the account repository. So, this is ensured by the type system and the return type is nothing but a Klysely. Now, the good part is even with the implementation of a service I have not yet committed to any specific effect type it is still m it is still parameterized on m with the additional constraint that m needs to be a monad and because m is a monad I have monad error I want to do error handling using monad error which makes me think of m as a monad I can use flat map which again comes from the monad and I can use raise error which again comes from monad error. So, besides the constraint that I have imposed on the effect type I am not using any other concrete information regarding the type of the effect because I do not have any. So, this entire thing is from cats effect IO cats effect. So, is this part clear that the implementation is also parametric in the effect type and we have not yet committed to any implementation and most most important of all we are still in the value land all these API's all these methods return Klysely which is a value because we have not yet executed anything. So, what our model achieves it is a parametric and effectful algebra of the service that composes with the effect of the repository and implementation that uses the constraints of the algebra of the effect type and it is still independent of any concrete effect type as I was telling you. Monadic with Klysely errors for effectful function composition we used Klysely for composition and service methods composed through flat map because Klysely gives us a monad. So, it is not related to any concrete type it is not once again a repetition of what I told earlier and Klysely lifts your computation into an effect. So, this is an example of a sample program that uses the account service. Now, there are several things to note here this is the final program which we have written. So, here we need to give a concrete instance of the effect I am using Katz effect IO here. Now, using this for comprehension this looks like an imperative program right do this first open credit debit in sequence right it looks like an imperative program, but in reality it is imperative only to the extent that it creates the recipe when you when you run this when you run this for comprehension it will not execute anything it still is creating the recipe and any guess what the type of rest will be Klysely and Klysely takes a repository like in our case Klysely takes an account repository and the moment we supply that repository Klysely gives me back remember Klysely f a c a to f c. So, a was repository when I substituted a with account repository I get back f c and f in my case is IO. So, the result of this will be an IO which is still a value by the way we have not yet executed the program. So, we are we have written the entire program we have instantiated everything and still we are getting a value which is referentially transparent. Now, this single step unsafe run sync this is the side effective part, but this is when we submit the program to the run time system till that time I have the value and in fact when I have this IO I can composite with other IO as well by getting some larger values I may I may want to compose this IO this account IO with some other component which aligns with the type algebra to gives me a more meaningful abstraction more bigger abstraction larger abstraction. So, what does this computation look like? So, IO as an abstraction it has not yet been realized it is still a value and hence referentially transparent as I was telling. And this is a very important paradigm of design which I try to follow it separates the execution of the computation from the specification. This is not true for future scala future future is eager by default, but this laziness of evaluation is what gives us the power of composition. So, if there is one thing you would like to take away from this talk it is this separation of the two concerns separation of the execution from the recipe IO is a monad and hence it allows composition through flat map. Now IO lets you do some other things also IO lets you defer the choice of execution strategy. Once you have instantiated your IO now typically how we want to run the program whether we run to whether we want to run it parallely or sequentially concurrently we take we tend to take this decision up front, but with IO we have not yet committed to any specific runtime strategy execution strategy that you can do you can either run it using unsafe run sync in which case it will run the encapsulated effect as an sequential impure side effect or you can choose to run it asynchronously and this decision you are taking at this point in time when you have built the complete abstraction you have. So, the abstraction is also independent of the strategy of execution you can do unsafe run a sync or even you can compile it to a future scala future. So, effects are algebraic IO is an algebra modules compose when algebras compose. So, here we have composed the two modules the repository and the services we have composed the two and come up with a larger abstraction how am I doing with the time how much 11 minutes. So, effectful designs are referentially transparent till you submit to the runtime system ok I need to go a bit fast, but domain services are not alone right we can have multiple domain services which may need to be composed together. So, we have seen account service, but in reality we may need to we may have say we can have some other service which does reporting reporting service and your final program may need to use both these services right. So, in that case if you adhere to the algebra of the effect which we stated earlier in that case you can actually mix all the services you can compose all the services here balance by account this function comes from the second service. So, all of them since all of them honour the compositionality of a monad in that case we can mix and match all of them and we can design a larger service a larger program to execute. And once again another side effect of this polymorphism thing is that this entire program is written in written using cat's effect I o if I want to switch to monix eval task I just need to change I o to task the entire program remains same. So, what we have done so far is we have defined the algebra with parametric effect type we have implement implemented with constraints of effect type being monadic or applicative it could be applicative also we can compose with other algebras. So, long as they honour the type constraints the type algebras and do the specialization as late in life cycle as possible. Now the next few slides we will talk about slightly advanced stuff this was the signature of our account service open method right we return the closely M was our effect type, but it may so happen that in case of M you can have a much complicated effect type which is a stack of monad transformers a monad transformer stack. Because the effect types all of the effect types may not be same in that in which case you may need to build a monad transformer stack. Now monad transformers are not performant on the JVM they do lots of heap allocations because of which performance can degrade. There is this excellent blog post by John Degas where he explains the various issues with transformer stacks deeply nested transformer stacks. The question is can we do better the answer is yes type classes instead of using the monad transformer stack for each of the monad if we can have a type class then instead of using the stack we can use the smaller grain type classes and have the same kind of effect without getting into that big stack. So there is a library monad transformer library which it is there in CATS it is there in Scala Z also. So this library gives us these type classes. So we can use these type classes instead of using monad transformer stacks and we can supply hand rolled instances of the type classes. So this will have a remarkable effect on the response. There will not be as many heap allocations as with the transformer stacks and using MTL is one of the recommended ways to develop such applications on the JVM these days. There will be some changes in the code for example applicative ask applicative ask is the type class corresponding to the reader monad or the Clisely. So here we have got gotten rid of the Clisely thing we are using a specialized type class application ask applicative ask and using the ask method of applicative task applicative ask we can query for the repo the account repository. This is a simplified version of applicative ask. It gives you this ask method and if you look at these two algebras you should see a similarity the effect type is parameterized in both the cases. In this case in account service it is M and in applicative ask it is F. So the effect type is parameterized for the user to instantiate. So this type of design we call the tagless final. There are lots of papers on tagless final approach and how it how it leads to better composition of composition of algebras. So you can take a look at those but yeah tagless final and MTL these two are the potent combinations for developing effect based generic applications at least in Scala on the JVM. So any question till now I am almost done. So here at the final take away parametricity is a virtue try to use it as much as you can. Type constructors for modeling effects compose with values. Once again I reiterate separation between the specification of an abstraction which is pure and the execution by the runtime system and use these above to wear the domain artifacts. The algebras need to align and so on. Thread effects to domain behaviors using the selected denotation. Here the example was using monads you can use some other as well. Avoid monad transformers if you are on the JVM. Use type classes for smaller brain effects. Roll out hand rolled instances of type classes. It may seem daunting but once you are into it you will see that it is not at all difficult. Those type classes like applicative ask are really simple to instantiate. So provide your hand rolled instances of those type classes so that the JVM does not have to do much to fetch the proper instance. No it is not monad transformers. It is just the instantiation of the type class. The instance of type class for your specific data type. For example in our case we are injecting the repository. So applicative ask we need to implement an instance of applicative ask for account repository. It is actually 5-6 lines of code. It is not much. In case you are interested in this repo I have a complete working implementation of this same example using all the options which we discussed. Monomorphic IO, MTL and Tagless Final. So all of these implementations are there so you can take a look at it. It is actually running code. Actually the main confusion with MTL is the name. Monad transformer it is part of the name but it does not have any name. The name is possibly because of some historical reasons. Yes, stacking all of them together leads to lots of heap allocations and things like that. So you can get rid of that using MTL. And last of all be lawful. If you are in George Wilson's talk yesterday then he discussed about the laws. So for all of these type classes which you write, write your own laws. So in that case you can verify those laws as well. And I would like to end with this quotation from Rob Norris. In one of the conferences he mentioned this effects and side effects are not the same thing. Effects are good. Side effects are bugs. That is a very strong statement. Their lexical similarity is really unfortunate because people often conflict the two ideas. And in fact Rob Norris has a couple of videos that he put to you on effectful design. So watch them. They are always recommended. And in case you are interested more in this on this subject I have written a book which came out a couple of years back. So this also discusses some of these things. Indian edition, I don't think so. I am not sure. Yeah, I don't think it's available. A lot of functional constructs. Actually if the language supports functions as first class artifacts, first class citizens then you can go to a lot of extent implementing these things. But I prefer always typed language. So unless it's strongly typed I am not very sure. Language provides for manipulating types in addition to, you know. Yeah, if it has a decent type system in that case I think it's flexible enough. And at least two of the languages, Kala and Haskell I have implemented similar stuff in both of them. So you talked about separating the recipe from the cooking. Where you extract the recipe into a value. So now when you get to testing the recipe, I mean here's where difficulty with intuition because I can't, I have a recipe in memory but I can't run a search statement to see if the recipe is correct. I have to actually run it through a monad to kind of see if the recipe is working correctly. Yeah, actually that's what I was trying to say that if you have the recipe since it's a value you can always test it in isolation. For example, you have a monad. Replace it with ID, identity monad. Right, right. But what I meant was unlike the typical types with value and here when I say value I mean simple types like ints and strings. I can just run a search statements. But one of the difficulty that comes up here is you can no longer just do assert equality checks. You actually have to run it through a... Yeah, you can do asserts but you need to replace those effects, replace those effect types by simpler ones. Simpler ones. Okay. Thank you. I think we've run a lot of time so. Okay, so let's get around. So in case you have any further questions.


Pikeville Elementary's 8th annual art fair concluded Monday after a weekend of visits from parents and students. Monday, Mountaintop spoke with art teacher Paula Pugh about the show. I always wanted to display the children's art because that gives it more value when you have an exhibit where they can all come through and see from kindergarten all the way through sixth grade and also a lot for their families and friends to be able to come and see what we've been doing. Due to COVID-19 restrictions, the annual show was canceled for the last two years. However, Pugh says the turnout was successful for the show's return. Fourth grade student Ryland Barney talks about his experience with the fair. I say I did about 30 pieces and each one was unique and some of them were based on other paintings that other people did and it's just, I thought it was very fun to just draw and paint them. We are Pikeville Medical Center and we are an amazing place to work. Healthcare heroes of all types work here. All who deserve great rewards. So while our heroes are working hard to take care of our patients and visitors, we are taking care of them with top-tier benefits, higher pay rates, and great sign-on bonuses. So join our team today. So what are you waiting for? Apply today! With the goal of learning about art and its many styles, Pugh selected pieces based on his specific criteria. Pugh mentions some of the styles students learned. They learn a lot about just the basic skills, procedures, techniques, how to use your paintbrush correctly and how to create things like collage and how they use their lines to create shapes that eventually create their subject or their artwork. It all goes back to that. And while students were excited to share pieces with one another, Pugh says she's excited to give students the fair experience. It's a great experience for them. It gives credibility to their artwork, to the program and it increases their value, I guess. I always tell them that they can frame it when they take it home and have it in their house to display. For Mountain Top News, I'm Joel Hodgell.