This 2019 Ram 3500 Megacab Short Box Laramie is stock number 12144Z. We're here at Summit Automotive in Fond du Lac, Wisconsin. You're new and used heavy-duty truck and Ram headquarters. This 2019 Ram 3500 has the high output 6.7 liter Cummins diesel. It's paired up with the Eisen heavy-duty 6-speed automatic transmission. This truck has been fully-safetyed and inspected by our service shop. It has a fresh oil and filter change. All the fluids have been checked and topped off. And this truck is 100% ready to go. Diamond Black Metallic is the color we shoot all of our videos in 1080p, 60 frames per second. So if you have HD capabilities on your computer, tablet, smartphone, or television, turn them on right now because it is definitely your best way to check out the quality and condition of the truck before seeing it in person. And if you like the video and want to subscribe to our YouTube channel, and the lower right-hand part of the screen is a subscribe button, click that, and then click the bell notifications and you'll get updates on the videos we do each and every day of our amazing new and used inventory here at Summit Auto. This one comes with the Believe, which gives you the painted black 20-inch alloy rims. It has the Firestone Transforce LT28560R20 tires. These tires have right around half the tread left on them. Front fender is in pretty nice condition. You get those fender flares with the Laramie package, LED headlamps, LED running lights, and LED fog lamps. Front bumper is in excellent condition. I didn't see any major dents or dings on there. Those have the front bumper parking sensors. The hood is in really nice condition as well. No major dents or dings on there. Passenger side front fender looks really good. And the passenger side rim, no scuffs or scrapes on there. Diamond black's got a lot of metal flake to it. You get the sunlight on it and it really sparkles. But then when it's not in direct light, it doesn't look like it has any metal flake at all, which is pretty cool. Down this side of the truck, take note of how clean that body is, how reflective and mirror-like that paint is. We take these HD videos so if you are far away or even if you're close by, just can't make the trip down but you're still interested in purchasing the truck. You can see the truck, hear the truck, and have confidence in the vehicle that you're looking at before you even get here. So when you do get here, there's no surprises and you can make a smart and informed buying decision from your own home or wherever you may be watching this video or looking at our ad. Very clean down that side. I didn't see any dents or dings. This back rim is in excellent shape. The back tires look like they have probably about 70 to 80% of the tread left. Framing underbodies in very nice condition. This one does have the auto-leveling air-ride suspension. So when you get a heavy load on there, it'll actually push this up and it'll tell that to pump up those airbags so that it comes back to a level setting. Framing underbody is in excellent shape, has all the remaining factory exhaust, and lower rockers all look really good on this truck. Coming around to the back of the vehicle, notice you do get the LED tail lamps. The rear bumper is in excellent shape. It does have the backup parking sensors. Of course, it's got the full towing package, which includes the receiver hitch four pin and seven pin wiring. The tailgate is in excellent shape. Notice you get the blacked out 4x4 RAM and Laramie logos. It does have the power drop down tailgate, spray and bed liner, fifth wheel and gooseneck prep package. It has the seven pin wiring, the LED bed lighting that you can now turn on with the button. They started that in 18. That's really nice. You get all those cargo lamps, and it does have the cargo cam, which we'll check out in just a little bit here. Tailgate shuts nice and solidly, and as you go down the driver's side just as clean as that passenger side, no dents or dings on the box. And for full disclosure, this back rim is in excellent condition as well. Down the rest of the side of the truck looks really good. It does have the entering go system. It has the 360 camera part of the mirrors there. Blind spot monitoring, directional signals, heated mirrors, LED side lights. These mirrors fold out, and they power fold in as well.  There are no rips or tears on the seats. You get the gray piping on the side. Both these seats are heated in cooled power and driver's side lumbar. Factory all-weather floor mats, auto headlamps, and power pedals. Power windows, power locks, power mirrors. You get the nice suede inserts on the door that kind of diamond-plated looking trim, memory driver seat. These mirrors do power fold in. I always like showing both sides so that you know that both sides are working properly. And then it has a new feature, kind of new. You can control the blind spot mirror. If you look at the outer most mirror there on the left, it's actually controlled with the buttons now.  We'll hop inside, check out the miles and the radio and everything that the interior has to offer on this truck. You can see that this one has 15,485 miles. You do get a digital speedometer, a compass display, turbo pressure. That's your water temp, oil temp. You can change those corners to read whatever you want. It's completely configurable. It has the heated leather-wrapped steering wheel, cruise controls on the right as well as your gear selector, Bluetooth and information center controls on the left. It has the audio controls on the back, push-button four-wheel drive, push-button start. It comes with the 8.4C radio, AM-FMN Sirius XM radio capabilities. Obviously the factory navigation system. You can do your heated and cooled seat buttons here. You can also check out your surround view camera, which is pretty sweet. You can do a wide view of the back, a wide view of the front, a narrow view of the front. Check out your cargo cam. You can check out the back. You can zoom in over your hitch so you get hooked up to your boat camper trailer the first time every time. And you have your side trailer assistant cameras. You can actually change which side you want to focus on, which is pretty cool. And then this one also comes with the projection manager. You can project your cell phone to the screen via Android Auto or Apple CarPlay. We actually did a demo on Android Auto if you want to check that out. It's in the upper right-hand part of the screen. You also have the Harman Kardon premium sound system. Down here you have your more tactile audio and climate controls, factory brake controller. That's for your alternate trailer height. And that's part of that rear airbag suspension. You can actually program two different trailers on here. Factory exhaust brake, tow haul, front and rear parking sensors, has a CD player, two USBs, two USB-Cs, and an aux jack. And down here is a 115 volt 400 watt plug-in. You also have the RAM charger right here, where you can wirelessly charge your cell phones. Here's your keyless entry, remote start, power drop-down tailgate. And that's in really nice shape. Pass and recite format and seat are in excellent condition. No rips or tears on there. The truck smells very clean inside. It's never been smoked in. And the headliner is in excellent condition. You do get map lights up there, SOS and assist buttons, power sliding rear window button. You can put your power tailgate down. It does have the home link buttons for your garage door security systems and lighting systems. And we'll take a quick look at the back seats, and then we'll start it up and take a look under the hood. Back seats are just as clean as the front seats. No rips or tears back here. It does have the latch child safety system for any child car seats you may want to put back here. The power sliding rear window with the built-in rear defrost. And these seats are in excellent condition. They are heated as well on the outboard side. So this seat and the passenger side outside seat are heated. They're your heated seat buttons, two USBs, two USB Cs, and then a 115 volt 400 watt plug-in. These seats fold down two different ways. So the first way is the whole backrest goes down like so. And what's nice is that you got a nice low load floor. Plus if you put both sides down, you have a nice flat place. If you even wanted to take a nap back here or if you got pets, they've got a nice flat place to lay. And then you get storage back here as well. And you get a little bit of storage space right there. Now these seats also go down a different way. They go down like so, which is nice. Now you have a higher load floor and you do get kind of a contained area back here for storage so stuff's not going to slide around on you. Very nice system. Get the all-weather floor mat back here as well. Child safety locks on the back doors. And the bottoms of the doors all look really good. We'll start it up and take a quick look under the hood. Starts right up. No check engine lights or anything like that. I would personally like to thank you for checking out the video today. And hopefully from this HD video you'll be able to tell just how clean this truck is all the way around inside. Now under the hood we have the 6.7 liter high output Cummins diesel. This truck has been fully safety and inspected by our service shop as a fresh oil and filter change. All the fluids have been checked and topped off. And this truck is 100% ready to go. There's your emissions sticker right there. I would highly recommend this truck from a quality and condition standpoint. You can see those LED headlamps and fog lamps and running lamps. Really bright. And to see more pictures of this truck or one of our other 450 new and used cars, trucks, SCVs, minivans, Wranglers, halftones, three quarter tons, one tons. You name it, we got it. Go to that website right there www.summitauto.com. Full pictures and descriptions of every single vehicle from two locations all at summitauto.com. And if you'd like to check out more HD videos you can go to youtube.com slash summit auto. Remember to like, subscribe, share and click those bell notifications to get updates on the videos we do each and every day here at Summit Auto. In fact in a second we'll see a link to subscribe to our YouTube channel in the upper left. Link to more Ram 3500 truck videos like this one in the upper right. Link to this vehicle on our website in the lower left. And a link to one of our latest YouTube videos in the lower right. Click those, check us out. And we're super excited to help you with this Ultra Clean 2019 Ram 3500 Mega Cab Short Box and Diamond Black Metallic. Thanks again for checking out the video. And we look forward to helping you with this truck. Sweet.


Yeah, you almost kicked me in the office. I got skills I don't have any skills or skills. Please follow us on Instagram and Twitter Juicy Goddard So juicy and made myself laugh. She's not happy about the juice. I don't sound like Bill Clinton. I think of it It does not sound like Bill Clinton. I did a little bit. Oh, you did not have sex relations with that woman But I did But today we're back to do a trailer called Finding Family. Oh, is she next to Nemo? Yes, it's with Arjun Kapoor and Depega Got a very musical name Guys we're on very different Channel wavelength We did yeah, here we go. I believe it's an English Let's box our days. It's always there Somewhere and sometimes you just have to find it 15 minutes before my husband I It's definitely out. It's already come out. It's definitely out like a peekoo one style film. Yeah, very different relationships, obviously I know you're gonna say go ahead Exactly. Yeah, the premise is very much like letters to Juliet a very beautiful If you haven't seen letters to Juliet, it's a And it's two love stories simultaneous, but the primary beautiful one is a similar thing. It's about this Man and woman who find each other when they were in their 20s Life went on their significant others are no longer in their lives And it's a road trip and the thing is if this is the man who was your true love of your life You at least should go find him and What if you guys could possibly get back together? It's a it's great. It's great in 14 Okay, a man embarked on a road trip to find his lost love. Yeah, I want to see it that line And him we've seen two of his films so far, right Yeah, Wednesday and Wednesday, and then he was in Deborah, right knocked out Deborah That was our first exposure to him. We were like, oh, here's a great actor. Yeah, you could tell one scene and here's a great actor It's very different. No, the bitterness from you is enough for today But In those he had a very Gravitous yes in terms of his performance. This is right. He's very like almost like vulnerable And he wasn't and meek not say the character wasn't vulnerable He wasn't vulnerable in those films, but his character wasn't right that style, right? and so this looks very similar to like I'm a type of John in Pico except for obviously much right now Because we were used to Big B in his gravitas and his weight and his power and in that film He's yeah, he's just a crotchety old guy I still I still need to go back and watch leaving extraordinary gentlemen because I saw that when it came out Yeah, and I didn't have you said into who he was.  Yeah, you didn't realize this. Did you know see here's this is what's beautiful about that I'm sorry. What okay? Here's what's beautiful about our journey with India India was calling to us before we even knew India was calling to us Remember how much we were impacted by life of pie. Yeah, and how I wanted to take you guys. Yeah, just spoke volumes to us same thing Big B is in great Gatsby. Yeah, I haven't seen either of those Which one you haven't seen Gatsby or life apart which great Gatsby the one with the caprio. Okay, the newest yeah He's an a-scene They're both really good life of pie is way before Look who's in this I'm sure it's a small part, but Ranveer Singh is apparently in this at Gabbo. Wait a minute. No, it says he's the body double for Big B by I'm sure it's a small body double because I didn't see a minute. Did you not at all? But it must be a cameo kind of a thing. I love it. That's great That was fun to find out the director is homie say it. I can't say that. Yeah, homie Adajanaya, he directed cocktail which had a few member has no pika in it. Yes And then so many finding Cyrus has been recommended being Finding Fanny added to the list proper English is What what Fanny?  Are you sure you should go to the doctor and have a check All God's children What is he say all God's children? He did.  It's your body So that's why I thought this was like butt stuff or something Fighting your rear end. No, wait, seriously. Did you not know that Fanny is a common name? No, really? Well, it's not common like yeah, not today rewind two generations a couple generations 50s in the 60s where family would be a very common female Cool This is really good though really cute funny is his eyes were so spaced out It's only 102 minutes. Very short. Wow Zippy zippy zippy zippy I don't know if you know that joke yet It's all right.  Let's let us know how it was if it's worth a watch because it looks really good I put it on the list because of the those people in there We'll watch it at one point. We want to delve in more into what's his face? the Neurazin Neurazin in shock. This is our Nassarin and Nassarin shot We want to delve more into him. Yes.  No, you don't


Now, listen and repeat at a slightly faster pace. Where are you from? I am from. Now, let's do this one more time at a fast pace. Where are you from? I'm from. Where are you from? I'm from.


but i don't have a great answer for you here um the the closest i can get to is you could imagine that you have a field on events and spans that say user like user equals true and then you have a a filter that will um like in release mode that filter is set to um only allow through events that have the user field set to true and in debug mode it just passes through all events and so that way you can explicitly annotate like this event is user facing this event is user facing um and if you're in debug build then those attributes or those fields are just ignored but in a release build only those ones are emitted and so those are the only ones that users will ever see that that's my best guess for for how i did accomplish something like that okay so let's end then on the sort of list of interesting subscribers or things to use we've already talked about the format subscriber we've talked about registry which is a subscriber it just doesn't do anything um there are a bunch of others that you should be aware of so one of them is uh tracing logs so this is the one that provides compatibility with the log crate so it makes it so that every event you emit from tracing um actually produces a tracing log event sorry this is the one that goes the other way around this is the one where dependencies use logs so they use the log macros to log things um the tracing log allows those events to also be picked up by uh as tracing events by tracing subscribers there's one that's also the inverse uh that i can't immediately find now um tracing a pender is a subscriber the writes to file it supports both uh uh blocking writes the while the events go on and non block is using like a ring buffer type thing um there's also tracing open telemetry which supports writing out to open telemetry traces there's tracing timing which is one i wrote that basically produces histograms of the time spent between each two events uh within each span so like it can tell you you know across all uh hdp requests this is the time distribution of things spent in uh you know like let's say you have a part that's handling an hdp connection which is parsing the headers tracing timing is going to take the time between the start of the span and the finished parsing headers event and give you a histogram of how long how much time it took to execute that bit of code across all spans or across all hdp connections and it'll do the same between the parse headers event and whatever the next event is like uh you know the check authorization token right and i'll show you a histogram of that time and then the same for for every inter event region so that can be really helpful for trying to nail down where your performance problems or where your performance budget is going tracing honeycomb outputs to honeycomb by oh we talked a little bit about the sort of axom and actix web type integrations that automatically annotate spans and events for uh actix web and and axom applications um there's uh there's one more right there's sentry tracing of course uh and then there's this one which is the thing i was looking for earlier or tracing cloud watch which sends to cloud watch um but tracing forest uh no that's not the one i was thinking of i'm trying to find david's tree logger but now i cannot for the life of me find it oh is it is it is it just tracing tree why is that not in this list that's what i want to know ah so tracing tree is a subscriber that also just prints the console but it actually prints you like a tree like output showing you the the the sequence the sort of nested set of spans that you're in when a given event is uh is output and so it's it's a neat way to get a more structured look at the output it's probably not what you would use for like ongoing logging output but it can be really nice and i think i think that is all the things i wanted to talk about when it comes to tracing um are there any sort of questions at the end here of anything that's still unclear you're not sure how you do in tracing uh or any parts of the sort of pieces that um that you're curious about how fit together how does the tree react to multi-threading go find out you mean tracing tree right in that case i genuinely don't know i think you would have to you would have to go test it out i think it prints the tree for each event independently um and i think it probably takes a lock on the output but i'm not sure okay it doesn't look like there are any questions at the end here so i think i think that's it i think we did tracing finally it's been requested so many times and finally now we're through it well i hope this was useful i hope you found it interesting and i'll see you in a later video


Okay, fishing freaks project woodsman wall is Underway you check out right here. I have marked studs Actually got one board attached down there But that's just to see if the nails will hold compressors out tools all tools are out There was a fishing freak at the Home Depot, you know SG just got back from there We've got plenty of this wood. It's pretty cool. You know most people I see that do these wooden walls They do them in like different kinds of wood. So a lot of people actually just they use pallets literally This stuff right here that stuff right there with Things are shipped on so you can break them apart you can cut them up and You can make your walls out of that. It's a cool. Look, but here's the problem with that at our house Look at this right here the whole house is Like ship lap I mean we got just plethora's of all that and then if we go inside and we look at the floor Let's wait for that white balance to get normal floor is actually the same kind of look That's not real wood. It's plastic It's vinyl actually and some people even use this on walls But what we're doing is going for that log cabin look the tree house look essentially It's the same kind of wood that's on the outside. It's cedar. It's stained cedar. So it's gonna look really cool And we're gonna put shelving on it. We're gonna put our fishes on it. Maybe even a few furry animals I don't know stuff like this lures Maybe some stuff that you guys have sent in that fits the whole Woodsman kind of deal if you guys get my drift So if any of y'all are like interested in the actual building of it and how it goes down because I've been doing a ton of research I'll be posting that on the other channel the lake life channel That'll be linked below where you guys can follow that so me and OSG you're gonna be working on a lot of stuff like this But if you're just a fan of the fishing channel, I'm going to basically just give you guys short updates on it Eventually, we're gonna be filming right here. It's gonna be all set up. We're gonna have a nice table right here That's gonna be another thing. We're gonna work on I'm in full woodsman mode guys like wood crafting everything I'm getting tools. I'm building workbench. It's all going down This room is gonna be a special place. It already is. I just want my hands to be involved in it Just get it going build it smell the cedar feel the warmth of the wood So I'm gonna gonna work on this guys and then I've got a pack and take off for Minnesota I just came back from there from fishing up in Canada Basically around the Minnesota same type of deal 100 degrees here fishing is tough looks like we're heading up north So we literally left from there from my little basket to Just one of the most impressive Places I've ever been in my life. This is a residence right here this Guggen week. All right guys, and we are staying Up in Minnesota this week and doing some filming the crews here John's in there and Lunkers is over there flares here, and we're all getting ready I'm just kind of hanging out right now But I am getting so inspired. I just hit a tour of this place, you know me and Stephanie have been trying to come up with different inspirational things for for the tree house like the wood and Our trees and everything just look at this guy's look Like that's where we're staying come with me down here like this is all just one place Keeps going on look at this beautiful wood. I wouldn't normally you know if I didn't have a wooden house I wouldn't normally notice this but this man. It's just so beautiful just outstanding man Just getting that awesome lake house vibe up in Minnesota, man. That lake life is real beautiful calm evening on the lake right now That is too cool. Well, you guys have seen all of the red hot recipes that I've done That actually came from the guy that lives here. That's Colton. That's Winston's camera guy This cabin right here is like is it original? It was originally on the property eventually bulldoze Hey, John, so this cabin was Redone exactly like it. It was originally supposed to be this is what really gave me inspiration for the treehouse Of course, you know me and Stephanie are Loaded or anything like just to kind of get examples. I want to try to mimic this I love these kind of lights. You know what I'm talking about like that lodge look Of course the inside Like the smell in here, I wish you guys could smell it It just smells like cedar and all sorts of awesome Great woods from the wilderness Okay, we are gonna exit right there from a beautiful sunset in Minnesota I wanted to show you guys a little bit more up there from Guggenweek But something I figured out is I'm not very good at Multi-tasking I've actually figured out that in the last couple years of my life. It's always hard for me to vlog What's going on at Guggenweek? So anyways you can go and check that out. I have a mosquito abiding me right now I have mosquitoes living in my garage. I haven't pinpointed exactly where they're coming from But I'm gonna figure this out one of many house problems. I got so much inspiration Had such a good time and Colton such a down-to-earth dude great great outdoorsman, but just super down-to-earth great guy Big shout out to Colton for letting us stay there at that just awesome place But what it did was it gave me great inspiration and I have come back to the tree house With OSG and I've been working like a chipmunk to get get a little bit of that into this house And that's what I wanted to show you guys. I know OSG's been working on stuff Let's go check in with her and see what she's got going on Hey, honey You're going to town in here. I'm going to town. Oh, yeah, we don't want to get a copyright strike here Wow, it smells like paint fumes in here. Yeah, I've been taking breaks So I've been doing a little bit out of time, so I'm not in here for like hours at the time I was just telling the fish and freaks.  This is Little emery's nursery guys. She got this bed painted. Actually, I think her mom painted this bed Give a shout out to OSG's mom For getting that awesome thing done and um, actually funny story on the bed. Got these cool things I destroyed the bed. Your mom bought the bed I tried to take the paint off of it because it wasn't the color that we wanted And then I destroyed it. That's right. Let's go to a flash of that moment Because you were just sitting there in the sweltering 98 degree texas heat just a paint brush on the ground It wasn't looking so hot. Anyway, you got frustrated had to pass it off to the moms Moments OSG had a moment It's okay frustration. We all have those she kind of just forcibly said that Hey, I'm gonna paint the nursery another color. I'm just like what what's wrong with the current color, honey like what it It's not that big of a difference It's like tan and Light tan It's actually gray. Okay. So my reasoning actually gray came in town. Let me reason my way through this With the pink curtains and the tan walls. It makes the entire room look pink Because this tan that they chose has like a pink underground undertone to it. I disagree It makes everything look pink. I think it's the light. It's that light. What is so I'm kind of bright natural light All you do you gotta do is change the light bulb. No, not paint the whole room I'm trying to lighten things up here. Well, I want to know if there's no reason. Do they like the new color? Okay, we can battle this Fish and freaks if you have girlfriends wives chime in together right now. Let us know What's the easier decision change the light bulb? No, that's fish and freaks. I know you're on my side No, we're looking at pink colors. I like others. Well, let's change the question then. What do you think is better? Leaving the natural color that was in this house That's throughout the whole house and it matches everything woodsman like and outdoorsy or change it a couple of shades down She doesn't have to be living in a cabin. She she can have her own girly room She's gonna be a cabin dweller. I know it Speaking of cabin dwelling I gotta show you what i've been working on now coltons house the wood old kentucky barns and And they didn't have a bowling alley and a boat dock and a movie theater and all that fun stuff But you know what? I didn't see is a fish wall guys a fish wall I've been working on this so hard. This is what we got going on Look behind me. Look at it. Look at it. So when we started this video, there was only a couple boards up I came back got to work like a chipmunk and now look at it y'all Oh Man the beauty and this is what it's all about right here y'all If you guys have like really cool wooden signs or cool fish stuff You want to send in or actually there's already some stuff that has been sent in It's probably going to go up on this wall or I got to continue it over here I want to turn this whole area Into just fish land fishbill Cabin like with that cabin feel Mine looks good. Minnesota had some great awesome inspiring stuff for lake life This wall and everything but I want to hear from you guys If you see any kind of visions that would make this wall awesome One of my one of my friends brought up Maybe making some like natural driftwood branches or something that goes up and putting fish on I mean I'm talking like whole fish theme whatever comes to mind to you. Let me know in the comments I've actually really enjoyed Working on this wood project and I'm probably going to do some more do some tables some desks But you can follow along at the lake life family channel. I'll have it linked down below That's me and osg's family channel a lot of you have been going over there and watching so thank you And today is 4th of july so if you guys are going to get out on the water Go get crazy have fun. Make sure to be careful and don't blow up your fingers You need them for setting the hook and that's all I got for you guys today Thanks for coming along for this cabin edition of lfg fishing tv and I'll see you back here soon Maybe with the wall on the next one


The Ukrainian army advanced two kilometers in the direction of Burdiansk. The armed forces of Ukraine are attacking in the direction of Burdiansk. They have advanced two kilometers. This was reported in the press service of the Defense Forces of the Tavria direction. The military says that the Defense Forces continue to knock out the enemy from their positions and move forward in the Burdiansk direction. The maximum advance into the depth of defense of the Russians by two kilometers was recorded. It is noted that the enemy is putting up fierce resistance, but Ukrainian soldiers continue to push through his defenses and destroy the potential of the invaders. In the Torrida direction, over the past day, the loss of Russian invaders in killed and wounded amounted to almost three companies. Brigadier General Alexander Tarnavsky, commander of the Tavria Operational Strategic Group of Forces, said on his Telegram channel that the rocket and artillery units completed 1,283 fire missions during the day. According to him, over the past 24 hours, the loss of the enemy in killed and wounded amounted to almost three companies, 36 pieces of enemy military equipment were destroyed. In particular, two tanks, nine armored cars, two D-30 cannons, four BM-21 grad units, three Supercam UAVs, Landsat UAVs, Orlan-10 UAVs, two 2A36 Giesent B cannons, the 2S-5 Giesent S cannon, the Pantsir S anti-aircraft missile system, the 9K330 Torr anti-aircraft missile system, two 2S-3 Akatsir self-propelled artillery mounts, an electronic warfare station and automotive equipment, the commander said. Also, as Tarnavsky informed, two enemy ammunition depots and one command post were destroyed.


Respected viewers, brothers and sisters in Islam as-salamu alaikum warahmatullahi wabarakatuh Welcome to another show live from Karbala where we discussed over the past few episodes orphans in the Quran and humility in the Quran as well as human life in the Holy Quran For the respected viewers who didn't get the chance to actually see the previous episodes can go on to our YouTube channel at Mohsen TV3 and check out the uploads and as well as the episodes but today let's welcome Sayed Hussain Qazmini once again our dear guests, Salamu alaykum Sayyidina, how are you? Alhamdulillah, hope you are well insha'Allah, Alhamdulillah, so tonight Sayyidina insha'Allah we will discuss respect to parents in the Holy Quran, we always see Allah SWT within the Holy Quran and he always instructs children to be respectful to parents and we don't see that with the parents mentioned by Allah SWT to respect the children so if you can emphasize on that insha'Allah Bismillah ar-Rahman ar-Raheem, Alhamdulillah ar-Rahman ar-Rahman ar-Rahim, Alhamdulillah ar-Rahman ar-Rahman ar-Rahman Alhamdulillah ar-Rahman ar-Rahman Alhamdulillah ar-Rahman ar-Rahman We see that Allah SWT mentions parents, your parents, your parents or your parents at least seven times, at least, perhaps even more but in the context of how children should treat their parents, at least seven verses there might be other verses that talk about inheritance for example and so on, general laws and these verses, these seven verses are always emphasizing on how children should treat parents goodness to parents, kindness to parents, forgiveness to parents, so on and so forth but we never see the Quran reminding parents to take care of their children never, never, except there is one verse, I believe in Surah An-Nisa And this is only regarding inheritance, that Allah is giving the laws of inheritance to parents that a man shall receive double the amount of a female this verse is not instructing parents how to treat their children all the other verses, it's instructing children how to treat their parents the reason, my dear brother and my dear viewers simply is that parents don't need a reminder parents don't need instructions as how to treat their children a father or a mother never needs someone to tell them listen, feed your child don't sleep tonight if your son or daughter is hungry make sure that they get an education, make sure that they are well fed, well clothed, so on and so forth never, because Allah SWT has put it in their system biologically, parents are biologically engineered to take care of their children there's a gene, we human beings have a gene and I'm sure that you've come across this when you studied biology I remember when I studied biology back in college, I remember I studied this that there's a gene in us in every human being called fight or flight gene when a human being is in danger or is in a very difficult situation he has genes that tell him either fight it, fight that situation or flight, flee, run away how did they discover this gene? scientists discovered this gene from a mother that was crossing the road with a baby stroller the baby's in the stroller, she's crossing the street and all of a sudden a car passes by doesn't notice the mom and the child, takes a break but isn't the car comes very close the mother all of a sudden picked up the car this is not Hollywood, this is not fiction, this is not a fairy tale or a hadith mentioned in Sahih Al-Bukhari no, this is a true story that happened I believe in the United States of America they discovered that we human beings have genes in us that in difficult situations these genes either give us the capability of fleeing, running away or fighting this mother had the genes, had the energy to pick up a car, not to save her life if she was alone she would have probably ran across the street but she picked up the car because of the child because of the child, we're biologically engineered to take care of our children but children are now biologically engineered to take care of their parents in fact, most children end up forgetting their parents they forget about their parents, they forget about their duties towards their parents when they grow up, when they have families of their own they have children of their own, children are in school, they get married the children get married, they have children of their own, they're busy with their lives most of the times they'll end up neglecting their parents we've heard so many stories, especially in the West especially in the West of children neglecting their parents or putting them in old age homes putting them in nurseries, nursing homes for the elderly in the United States of America, wherever you go you see nursing homes for the elderly there's a lot there's a lot, why? because this son or daughter is too busy with work they're too busy with their own families they're now willing to take care of this aging father and mother these two parents that spend the best years of their life taking care of this child get this child now, he's too busy with his own life in that situation, because they took care of their children that child that neglected them and in the end this is how they pay them back I remember when we used to live in the United States of America we had a neighbor he was a heart surgeon and he became old, him and his wife became old his wife passed away and he stayed by himself and then he got Alzheimer's he was diagnosed with Alzheimer's disease and he was by himself one day I saw his son had come all the way from Arizona we were in California Arizona by car it's at least 10 to 12 hours away he came and he was taking his father I was very surprised that this man is going to take his father with him into his house and take care of him so I asked him that you're taking your father I told him you're taking your father he said yes, I'm taking him to Arizona with me I told him you know what?  I didn't say I'm going to bring him to my house I'm just going to put him in a nursing house with the elderly close to my house I said well, there you go that's how it is in the West that this father, I was thinking to myself that this father ever think of putting his child at a nursery get rid of his son and just go and visit him once a week or once every two weeks in the United States of America and Europe most children and what I mean by children is sons and daughters they might be 40 or 50 years old but they're still children compared to their parents most of them, they rarely ask about their parents probably just on Christmas Christmas is the only time in which they ask about their parents or in the West they came up with Father's Day and Mother's Day because mothers and fathers are so neglected that they had to dedicate an entire day out of the year for mothers and fathers I gave a lecture once on Mother's Day a couple of years back in the lecture I said listen, in Islam every day is Mother's Day every day is Father's Day we don't dedicate one day out of the year for our mothers and fathers every day is Mother's Day and Father's Day thus Islam, the Quran comes and emphasizes emphasizes on parents because Allah knows that children when they grow up they'll be busy with their own lives and they'll neglect their parents that's the need of a reminder not once, not twice, at least seven times at least seven reminders that you need to take care of your parents that's significant because not only taking care and respecting your parents Allah SWT states in the Quran and kindness to your parents this verse is unique because it teaches us that in the same chapter as well inshallah you will discuss it but even non-Muslim parents Allah SWT or parents that are actually Muslim but they tell their children not to obey Allah SWT and take care of them and respect them so if you can emphasize and how should we be kind to our parents we have several verses that mention ihsan ihsan is kindness and one verse وَقَضَ رَبْكَ اللَّا تَعْبُدُوا اللَّئِيَهُ وَبِلْ وَالَدَيْنِ and another verse وَالْصْطِينَ الْإِنْسَانَ بِوَالِدَيْهِ اِحْسَانَ and a third verse وَعْبُدُ اللَّهُ وَلَاتُ شْرْكُوبِهِ وَبِلْ وَالَدَيْنِ اِحْسَانَ اِحْسَانَ means kindness kindness is more than just respect respect is for example not saying anything harsh not shouting but it doesn't necessarily mean being kind you could respect someone without being kind to them you could obey someone the Quran doesn't just say obey your parents but I could say just obey your parents no more than that more than respect and obedience kindness because kindness entails respect you can't be kind to someone without respect you have to respect them you can't be kind to your parents without obeying them you can't be disobedient and at the same time you want to be kind kindness entails respect entails obedience entails all these good qualities kindness spending on them in fact in fact in Islam spending on parents is wajib it's mandatory it's mandatory it's mandatory to spend on your parents when you have money and your parents don't have money they can't make an income you don't say well let them go get income benefits or welfare or social security from country to country it varies no you go spend you spend if your parents need money you have to it's a must Allah SWT will hold you accountable I've seen some that nag that whine why do I have to spend on my mother I've given her so much it's enough did your mother say enough when she was raising you and the thing is that she buried you in her stomach in her room for almost nine months did your father say it's enough I have to go to work from early in the morning to late in the evening to bring you food to make money for you and your brothers and sisters until you became 18-20 for 20 years we've seen that a lot if you spend a couple of dollars on your parents you have to say it's enough let my other brothers spend on them they fight they run away from responsibility towards parents that's a shame parents they fight over the child who takes care of them who sleeps next to the child but when it comes time for children to take care of their parents they run away from the responsibility let my brother do this let my sister do this if it's an aging mother she needs someone to sleep next to her give her her medicine take her to the doctor the children they flee to others this is a shame the Quran says kindness to parents thus it's a financial obligation to spend my parents spend time with them sometimes parents don't need anything other than your company your company they just want someone especially at an old age when they're by themselves they need someone to go and sit with them or at least listen if you don't want to speak, listen especially the elderly they have a lot to say they have old stories they have a lot of experience there's so much to learn from the elderly and old people because they're full of wisdom they're full of experiences they're full of stories they've seen civilizations fall dictators and presidents and dynasties there's so much to learn from our parents and that's significant as well but going back to the first episode when we discussed orphans you brought up a very significant point about how parents are the only people who want the best for their children to benefit their children when they grow up they tend to forget that but how can we be thankful to our parents thanking our parents Allah SWT states in the Qur'an I thank you I thank you and your parents thank me and thank your parents as well thus we sometimes forget this to say thank you to our parents to thank them you know it's two words it's two words but in Arabic it's one shukr in Arabic it's one in English it's two in maybe other languages it's only one in Urdu it's shukria in Farsi they say merci it's one word but this word has a major impact on every human when you do a good deed when you do something good when someone tells you shukr you feel appreciated you feel respected you feel that your work didn't go unrecognized well what about parents that do so much for us that do so much for us don't they deserve a thank you don't they deserve a thank you I remember once I came late from college I was stuck in traffic 15 30 minutes late my mother was so panicked she was so worried they were about to call the police say with my mother and I'm sure all of my dear viewers they have a similar experience there is nothing like the heart of a mother nothing like the heart of a mother she worries so much do we thank her do we thank our parents for their dedicated work for their hard work now we're sitting here in between these two shrines our dear viewers are watching this blessed channel in the name of Imam Hussain the who should we thank after Allah our parents if it wasn't for our parents we wouldn't be here we wouldn't be in Karabata we wouldn't be lovers of Imam Hussain we wouldn't be fasting in the month of Ramadan who taught us these things we were taught by our parents if our parents never fasted we wouldn't have fasted either we wouldn't have prayed either thanks to our parents that they taught us these things you see that is why Allah swt emphasizes on parents after worship after worship right after worshiping him kindness to parents that's how important it is Allah could have said he could have mentioned prayers fasting no parents emphasize on parents pray to Allah worship Allah do not take partners with Allah immediately after Allah parents that's how significant they are and when we say thank thank parents thanking doesn't necessarily need to be with words thanking could be with actions when you're there for your parents when you serve them at times of need and now it's even easier just a text message text message ask about your parents if you live in a distant city call text message send a small message there's so much you could do for your parents that's how you thank them it's not just by words by actions as well when talking about kindness under that umbrella falls humbleness being humble to parents when someone in the previous episode humility in the Quran this happened to me as well to many of the youth when our parents say something to us sometimes when they repeat it we get frustrated with how much they repeat something Allah says the smallest word two letters in Arabic when they say something the Quran says it don't even say that when it comes to humbleness to what extent should we be humble to our parents Allah says in the Quran and we mentioned this yesterday Allah says lower your wings in humility for your parents Dhul Dhul is more than humility Dhul is really lowering yourself lowering yourself is not required it's not even a good quality humility is a good quality being humble showing humility yes but not too much lowering except when it comes to parents lower yourself we have a good quality it is a good deed that we should all perform and that is to embrace the hands of our parents some people find it shameful some find it shameful some some children some sons and daughters they call their parents by their first names something very normal to call your parents Dave, John, Mary they call them by their first first names and their parents allow them to do so because they want to be friends with their sons and daughters this is shameful be humble, show humility to your parents embrace their hands embrace their feet if they allow you to yeah we'll touch upon that in the Quran says don't say don't say don't say that's the least thing that we do for example some parents tell their children take out the trash if you really don't feel like doing it you sigh you get frustrated you don't say anything else all you do is say don't even say Imam al-Sadiq in a hadith he says if the word smaller than that Allah would have mentioned it because that's the least thing that children could say towards their parents is of the Quran refrains them if there was something even smaller than that word the Quran would have mentioned it it's haram you can't say of you can't say of to your parents to this point don't yell at them don't raise your voice at your parents rather say good words I see a lot of children they shout at their parents they shout they raise their voice at their fathers at their mothers they yell at them they give their parents a hard time as if they're the boss at home they really hurt their parents they avoid eating just so that the parents will get worried and as children sometimes if you wanted to hurt our parents we wouldn't eat because when you don't eat your parents start worrying this is wrong you do this when you're 3 or 4 or 5 years old not when you're 15 not when you're 20 you don't go on a hunger strike don't raise your voice it has an effect those who are kind to their parents will have an effect on them those who are bad with their parents will also have an effect on them and with their children someone says if you're good with your parents your children will be good with you if you're bad with your parents your children will be bad with you Allah SWT even says whoever does a good deed whoever does a good deed even the smallest deed he will he'll see it he'll see it how about respecting our parents Prophet Yusuf A.S when he became an emperor and the king of Aziz al-Mas the emperor of Egypt his father came his brothers they came into his court when he saw his father he was about to stand for his father he hesitated for a moment he's a king now he shouldn't rise so quickly for a moment he hesitated and then he stood Jibril came to him he told him open your hands he took out a light a light he said this is the light of prophecy he's no longer a prophet? no, he's a prophet but the prophethood that was supposed to be in his lineage he got taken out where did it go? in his brother Lawi Lawi is the one in Surah Yusuf he said Lawi when he went to Egypt long story he refused to go back to Canaan the land of Palestine they told him why he said because my father said go back to Egypt and bring your brother Benjamin so I will not move until my father gives me permission Allah rewards him Allah rewards him for this statement he made the prophethood in his generation this is a big deal this is a big deal it's also important to add on to your statement there Allah says in the same chapter praying for parents is very significant as well verse is also great because as they raised me I pray for Allah may have mercy on them just like they raised me in my childhood so praying for parents Sayyidina this is a very important issue that sons and daughters pray for their parents whether their parents are alive or after they die especially once they're dead once they're dead one of the good things that a believer leaves behind is a son or daughter that prays for him this is comforting for all parents that when they die they think that this son or daughter will pray for me, send me good deeds send me salawat they will give charity on my behalf there is a hadith that says when the son of Adam meaning humans when they die their relationship with this life ends except with three things Sadaqatun Jariah of this person who died for example built an orphanage a mosque and people continue to benefit from it the reward keeps on coming to to he kept a piece of knowledge he took a theory lectures knowledge he kept knowledge for people to continue benefiting from or a righteous son or daughter that will continue praying for his father and son and another hadith that a good son and daughter bar a son and daughter that is good to his parents that is good to their life but once they die if he forgets to pray for them he will be considered disobedient to his parents because he forgot about them when they died he forgot to pray for them while on the other hand if a son or daughter that were disobedient while their parents were alive now that they died he prays for them he asks Allah to forgive them Allah will make him important to pray for our parents this should be part of our everyday dua in Salat after Salat, before Salat during Salat Al-Layn and say may Allah bless them bless them, have mercy on them the same way that they had mercy on me when they raised me as a child to offer parents how about non-muslims when it comes to non-muslim parents you see that either a mother or a father or both how should be should the sons or daughters respect or be kind to their parents the Quran addresses this the Quran tells us that if you have non-muslim parents if they tell you not to be Muslim if they tell you not to believe in Allah SWT you don't obey them obey your parents and good things and the good things even in the neutral things that are not wajib and not haram obey your parents, be kind to them accept, there's one exception if they tell you to disobey Allah if they tell you not to believe in Allah not to be a Muslim no, you don't obey them but at the same time you're still kind to them still show kindness to them be kind there's a verse that says don't obey them a companion to them in a good manner in a good way it means continue being kind to them in fact I became a Muslim and my mother I apologize my mother is still not a Muslim what should I do should I leave the house should I speak to her should I ignore her he said you know what were you kind to her before becoming a Muslim he said yes from today I want you to start being more kind more respect be more polite if you used to serve her even more now that you're a Muslim show her that this is coming from your Islam Islam is teaching you this Islam is teaching you to be kind to your parents this is a form of da'wah this is a form of da'wah when children show kindness to their parents now that they've accepted Islam parents will see that their children have changed they will come towards Islam they will come towards Islam I'll share with you a story couple of years ago I went to Australia I went to the city of Perth and there was an Islamic center there founded by a Muslim sister a lady she had established an Islamic center all by herself by Allah I was very very impressed and I was very proud of her anyhow she's originally half Iranian half Filipino if I remember correctly her mother is from the Philippines and who's still a Christian I believe she was a Catholic the mother told me her mother who was a Christian she told me she said when my daughter became Muslim she changed she became a better daughter she was good with me she became even better and I know this is because of Islam I know because this is of Islam I told her okay then you should become a Muslim in that case she said yes one day one day this is very beautiful you show your parents this is a form of Dawah parents will become they'll become Muslim because of this this year in Muhammad I was in Canada in the city of Edmonton a young man at the age of 17 had converted to Islam he came and he told me what a struggle it is how difficult it is and his parents now know that he's a Muslim and how difficult it is to try to deal with them but he was saying that I was I'm being as respectful as possible to my parents more than I was when I was following another religion I told them good keep it up the more you see pressure from them the more you show them kindness the more they try to boycott you or hurt you because you've converted another religion show more kindness this will have an effect later on in a couple of years they will realize that this is your Islam that's pushing you to be kind this will draw them near to Islam definitely and you mentioned mothers I mean when it comes to parents treating father it's different from treating the mother because a mother has that it's different from the father he's a bit aggressive when he talks when he deals with the child Allah swt peace be upon them they emphasize on mothers Luqman, peace be upon him or I think it was during the era of Saad Iqra not Luqman when a scholar asked for the students to bring sand from heaven no one brought anything the next day but a student brought sand he was shocked he's like where is this from it's from beneath the feet of my mother so mothers have a significant place the Quran tells us this again the Quran emphasizes on parents but more specifically mothers let's see the Quran says and we reminded man of his parents immediately mentions his mother that his mother carried him one on one one means with difficulty over difficulty difficulty and more difficulty and and we remind him to thank me thank Allah and thank your parents Allah mentions both parents but an emphasis on mothers and another verse again we reminded man of kindness to his parents to be kind to his parents his mother his mother carried him Quran means with anguish it means that sometimes she's fed up but she still carries him and when she gave birth with anguish she gave birth Islam emphasizes on mothers and really when we compare mothers and fathers we see that mothers go through so much hardship to raise their children first of all they're the ones that are pregnant not fathers pregnancy is difficult anyone who's married and has a wife knows realizes how difficult it is for a mother to go through pregnancy there's pain there's lack of sleep there's disorder and personality and sleep for nine months she has to deal with this pregnancy and then labor the pain of labor the pain after labor the lack of sleep the sleepless nights with a child who gets up in the middle of the night that wants to be breastfed the man turns around and he keeps on snoring he continues in his deep sleep and he snores but it's his wife it's the poor mother that has to get up and breastfeed she's the one that worries and then I came to Hajj it was in Mecca he said I carried my mother during Tawaf on my shoulders I carried her she couldn't walk so I carried her have I done justice have I returned the favor to her he said if you carry her around the Kaaba and in between Safa and Marwa and you do this 70 times you have in return the favor it's one of the strokes when she feels during labor one of the pains I have in return the favor of one of these strokes of pain I haven't done anything I haven't done anything another man comes to Rasulullah sallallahu alaihi wa sallam told me Rasulullah I've been aging mother and I've been aging father and I could only take care of one who should I take care of your mother your mother and emphasizes on the mother take care of your mother because mothers they go through a lot of difficulties a lot of hardship they don't just have when they become old it's not just about physical difficulty it's not just physical weakness it's also emotional they need someone to speak to to be there for them as Islam emphasizes on this and I don't think there's any other religion in the world other than Islam that emphasizes on parents on mothers and on fathers the way that the Quran emphasizes on parents and I just remembered a significant story a very touching story as well there was one scholar of course he came to Ziyara to pilgrimage to one of the shrines and hoping to see Imam Al-Hajja Al-Mahdi so there's specific traits and characteristics of the Imam so when they came when he came into the shrine waited for the Imam the Imam came but he couldn't get up to say salam to the Imam he saw the Imam going to a person to a young man who's not even dressed that well he said salam to him and left he got he was shocked he came again and saw the same action the next day so he he was saddened by this so the next day and he went to that person to that young man and asked him he asked the bomb they showed his house he went to him he saw him taking care of two paralyzed parents his dad was paralyzed his mother was paralyzed he cleaned after them he changed their clothes he did everything goes to him because he showed respect and kindness to his parents we came to a conclusion of the episode if you have anything to add on Sayyidina we ask Allah SWT to forgive our parents to have mercy upon them to elevate their status in this life and then in the next for all the troubles that they have spent raising us and making us followers of Ahlul Bayt and lovers of Amir al-Mu'mineen Rasulullah and the children of Imam Hussein Insha'Allah we learn from the lessons of Ahlul Bayt and the Quran so respected viewers brothers and sisters in Islam I would like to thank you for watching and insha'Allah this is the end of this episode and if you can log on to our social networking sites to discuss and ask any questions you would like from Sayyid al-Hussein al-Qazmini As-salamu alaikum As-salamu alaikum


Thank you for joining us. We have Tony Morris here. He's here to talk about types and property tests for software residency. And Tony, for those of you who don't know, is coming to us from Australia. He is a flight instructor, pilot and UKG slingsome has to code as well. He does a lot of other things, but I think I'm going to leave Tony to talk about everything and take it away Tony. All righty. Thanks for that introduction. Hello everybody. So as was mentioned, I live in Brisbane, Australia on the east coast of Australia. It's dark outside right now. I'm missing India, that's for sure. I've been there a couple of times. I love it every time I go there, but unfortunately I couldn't make it this year. So hopefully next year I'll be able to come and visit you guys. So what I'm going to be talking about today or tonight, it's tonight here, is types and property tests. And my goal is just to introduce the idea and give it just a basic introduction. I'm watching the, I think it's called discuss or chat or something, yeah discuss. I'm just watching that. If you have any questions, please feel free to type those in. And if it's quick and easy to answer the question, I will. And if not, I'll address it at the end. So let's get started. I can't really see my audience. I hope you are ready for an introductory level talk in terms of just a different way to determine whether or not your software is working as you desire it to be working. And some of the tools that I use in my software engineering role to make those decisions. So let's get started. By the way, I work for a company called Simple Machines. They're based in Sydney, which is, you know, that way south of Brisbane. And it's a great, great team that I work on with a bunch of really skilled programmers.  We do not functional programming. We do all kinds of programming around, usually around data processing or something similar. So that's Simple Machines. So a little bit about, it's a question that I get quite often, which is, you know, why do you care about functional programming? Why? How did you get into it? And so on. So I'll just give you a bit of an introduction to that question, which is, you know, when 20 years ago or so, I was, I used to work at IBM and I was working on the JDK for IBM. So IBM produces a JDK. And I was also working on the IBM WebSphere application server. So I was writing a lot of Java. That's what I was doing all day long, every day, writing Java, writing Java and so on. And if you ever tried to write Java, you'll probably run into all the things that happen, the null pointer exception, scrolling past your screen and all that sort of stuff. And I simply just thought to myself, surely there's a better way to do software engineering than this. You know, I've only been out of university for a couple of years. And whenever I think there's a better way to do something, my next immediate thought is someone smarter than me has figured out how to do it. What is it? Where should I look? So that principle has worked well for me in my career, just find the smarter people and figure out what they've been doing. They've figured it out. The problem with that is, of course, you've got to, it's not always as easy as just saying who is the smart people. That's everybody, right? So it's quite a battle to figure that out. But so I was searching for quite a while, and I finally found out that there is, in fact, a better way to do software engineering than I was doing at the time. It even has a name, and it's called functional programming. And I didn't know that 20 years ago, or at least that's when I learned it 20 years ago. That's how you do software engineering without all of these problems that I kept running into when I was working. I actually used to work in L3 support on the JDK itself. And if you've ever worked on a support role for large corporate software, you might be able to sympathize with a bit of the pain that I was going through and some of the questions that I asked of myself and my career at the time as well. There's got to be a better way to do software engineering than what I was doing. Turns out that there is, it's called functional programming. So that's what I learned 20 years ago. I've not yet found a reason for that to be incorrect. I still believe it to be true. So one problem, and especially recently in recent years, the meaning of functional programming is not always immediately available if you really wanted to know, if you wanted to sort of dive in the hole yourself and figure it out. It has a very concrete meaning. It's very trivial. It doesn't take long to explain what it means. And also to understand what it means. But there are very far reaching consequences. So what I'm going to do is I'm going to tell you what functional programming actually means. And then we'll look at a few of the consequences and one of those has to do with types of tests. So let's talk about what it means. So what I've got here is just a computer program. It's written in, it doesn't matter what programming language. Hopefully you can read that syntax. And what that little wiggle procedure does there is it updates some counters off somewhere and then it does something with two integers and returns a value. But importantly, that arbitrary code there, that could stand for a million lines of code or a billion doesn't matter. It's just any amount of code. And then you come across just one line of code there that uses the wiggle procedure. And if you have a look at that one line of code, you'll see that there is a repeated expression within that little procedure there. So that is to say, with the arguments as well, that expression is repeated exactly.  So in this case, it's been assigned the value R. And then we've replaced that expression with the value. And there's a question that we can now ask about this program. And the question that we might ask is, did the program just change? So I'll just go back again just so you can see that. So when I factor out this, sorry, when I factor out this expression, did the program just change? So the answer to that question is, yes, it did. It did change. And it changed because of this counter equals counter plus one. It used to update the counter only once and now, sorry, twice and now it only updates once. And so the counter will have a different value after this change to the program. And when I say, and just to clarify what I mean when I say a program changes, that is to say it's inputs and its outputs have changed. So for its given inputs, so if I ran this program with some inputs, I should see a result. And then if I change the program and give it the same inputs, I should see the same result. But in this case, I will see a different result because the program has changed. And so let's look at a different example now. And what this little function does, called Pipple, is it takes in two integers and it adds them together and multiplies them by two and then returns that value. And again, there's, you know, it could be a thousand, could be a million lines of code or whatever. And then you come across just this one line of code and you see a repeated expression again. So there's the repeated expression. And you might ask the question, well, can I factor that out? I'm going to assign it a value.  And we asked the same question. This time, did the program just change? Now, in this case, it's the same program. So I'll just go back just so that you can have a look. If I were to, I don't know, you can see my cursor yet. So if I were to factor out this expression here and assign it, assign it a value, then and then replace that expression with the value, the program remains unchanged. It's the same program. So for the given inputs, the same outputs. So it's the same program. Now, what is functional programming, right? So you've seen an example where changing that expression alters the program. And you've seen an example where it doesn't change the program. Functional programming is the idea that we can always do that. Okay, so for any given sub expression in a program, we can always replace expressions with a value without affecting the program. That is simply the meaning for functional programming. But this has some pretty far reaching consequences. So one of those consequences is, for example, if you wanted to add up the numbers in a list, all right?  I will never break it. I will do functional programming. But the problem is, is some of your tools for doing even simple things like adding up the numbers in a list are no longer available. Consider, for example, this little bit of code here. So this is how you might consider adding up the numbers in a list. So you set the value r to zero, you look through the list, you add each list element to the variable r, and then you return r. And that will add up all the numbers in the list. I agree that it does. However, notice that you've violated the principle. You are not functional programming anymore. Because if I can replace expressions with values at all times, then I could, for example, replace r with zero. Oops, sorry, I keep clicking accidentally. If I replace r with zero throughout this entire program, then this little procedure here will always return zero. And so that will change the program. Obviously, it will always return zero. So that's, this is not how you sum the numbers in a list once you've committed to the principle of functional programming. But there's another way to look at this problem, that the problem being summing the numbers in a list, how to add them up. So let's look at that other way, just another way of thinking about the problem of adding up the numbers in a list. And I want to encourage this idea of just looking at the problem in a completely different way. And if you were to do that, if you were to look at problems in different ways altogether, then I think it would help in introducing yourself to functional programming and the different tools that it has to solve problems. So I'm just going to put it to you that this is the definition of the summing of a list, which is if the list is empty, then it's zero. Otherwise, take the first element and add it to the sum of the rest of the list. That's a pretty straightforward definition for adding up the numbers in a list. But you'll see that it's a recursive definition. And by that I mean, we're trying to define this term here, this term being the sum of a list. And in the definition, we've had to reference summing a list. So in defining the sum of a list, we've talked about summing a list. So we have what's called a recursive definition here for adding up the numbers in a list, which, if you've not done much functional programming before, it can be an unfamiliar way to look at problem solving. So all I really have to recommend there is just practice and practice. And it does become quite natural and easy. In the same way that the loop, if you can remember back to the days that you learned how a loop works, and you would have clumsily tried to figure out how does this loop work and so on. And eventually you would have found it quite easy and natural. And the same is true for recursive definitions. You just need to practice and eventually it all starts to make sense. So consider, for example, this list here, the list being 65971 and 3. The definition of the sum of this list is 6 plus the sum of the rest of the list, which is equal to and so on. We keep calling sum all the way down until we get the sum of the empty list, which is 0. And we'll end up with 94. So no loops were involved in solving this problem. And we didn't violate the principle of functional programming. And if you're not sure that we violated the principle of functional programming, here's the actual source code written in the programming language called Haskell, which I'm going to be using throughout this presentation. I'll use a bit of Haskell and a bit of Java. I hope that's okay. But this is the actual source code. And it basically says the sum of the empty list here is 0. And the sum of the first element followed by the rest is the first element plus the sum of the rest. And you can see that recursion going on here. On the left side of equals is the definition. And on the right side of equals is the solution. But the solution appears on both the left and the right hand side of the equal sign. And therefore it's recursive. Okay. So that's just functional programming. And like I said, I should be able to replace all the expressions with their value in this code and I can. And in fact, that's true of all Haskell source code. Haskell enforces the principle. And it won't allow you to violate it, even if you try what you want to. So there are other consequences. Not just, you know, just trivial examples of different problem solving methods. But what the one that I'm hoping to talk about today is the ability to efficiently and effectively ensure our software is correct. Now, I'm not using these terms lightly. So I wanted to I want to increase, at least increase my confidence that my software is correct. So I want to be effective. And I want to do it quickly. I want to be able to not take a long time to do it. I want to be able to do it. I just want to write a short amount of code and have a reliable result in my software being correct. I'll give you a contrast. Now, who has one of these software systems and I'm not really saying, you know, put your hand up. I have seen these software systems. Maybe you've got one at your office through the week. Now, usually what happens is the tests take a few hours to run. All right. You know, an hour, maybe two, something like that.  But, you know, you distract yourself with the coffee. And on your way back, you know, you get an email that comes on your phone and it says, build failed.  Well, because of some silly reason, it couldn't find the comp file or whatever the silly reason is. And so you fix the build and then the test finally they passed. But that took you all day. And now you're on your third coffee. And so you put it into production, right? The test pass. Let's do it. And it falls over anyway.  It didn't really give you an assurance that your software is working. But it's working on your machine. And so what you do now is you just go back to step one on the next day, go to the coffee shop and so on. And I would call this a very inefficient and very ineffective system of testing that your software works. It's inefficient because it takes two hours to run.  And it's ineffective because the software doesn't work anyway, even when the test pass. So I just want to make it clear that because we are functional programming, we can use the types to determine the behavior of our software. And we can use this idea of automated testing, which I'm going to talk about to make up for where types have left gaps. So all the examples that I show you from here on, I just want you to remember that we are functional programming. And that's why I can make the claims that I'm going to make about some of these examples. So there's another sort of little footnote to this. Some programming languages have escape hatches from the types. For example, null or throwing exceptions or casting types, just saying, you know, this type A, you just make it into a B, or type casing and just say, well, is this value of this type? Does it have this type? Or does it have some other type? And also non-termination, which is basically a function that just runs forever. So these are what we'll call escape hatches. And there's a paper called Fast and Loose Reasoning is Morally Correct. That's the name of the paper. And this is sort of the introduction to the paper. And it says, functional programmers reason about programmers as if they were written in a total language. Now, a total language is one that does not have those escape hatches. They simply don't exist in those languages. But they, and then expecting the results to carry over to non-total languages. So for example, Java Haskell is a non-total language. And so what this paper does is it says, when you reason about your programs, you can ignore these escape hatches, right? So things like this, they simply don't exist. Now, of course, they do exist. So what this paper is all about is reasoning about our programs as if they didn't exist. So from here on in, we've got two states in the ground. One of them is we are functional programming. And the other one is we are reasoning as if we're in a total language. So we can ignore the escape hatches. Okay, so consider this program here is written in, I guess, Java. It looks like Java. It takes a Boolean and it returns a Boolean. And I'm pretty keen if anyone has an answer to this question to hear from you, how many possible programs can be written that satisfy this type? And by that I mean, how many different things can be written here so that the type is satisfied? And remember that program equivalence, so two programs are equal, if given an input, we get the same, given a set of inputs, we get the same output. So by that, I mean, you know, if we write a loop that counts up to a thousand and then return a value, that's the same as if it didn't do the loop at all, because it's not an observable difference. So how many possible programs exist that have this type, assuming we are functional programming and assuming we are doing fast and loose reasoning. So it's going to terminate, it's not going to use an escape hatch. Does anyone know the answer? I'm going to have a quick sit while I wait for answers. Oops. Yeah, I'm watching the discussions. We've had one guess of two. It's a good guess. Any other guesses or only guesses are fine.  That's okay. Any other guesses? Or not guesses? Any other answers? Come on. Don't be shy. I'll tell you, I'll just put an answer in. Here you go. I'm going to say 99. 99 is not correct. All right. Note four to five. Somewhere, so four and a half. Four to five. Okay. We're going to look at the answer to that question a bit later on. Well, I'll tell you what, I'll tell you what we'll do is I'll tell you the answer and then I'll tell you how to calculate the answer. So the answer in this case is four. There are four possible programs with that type. And if you are unsure, there's actually a way to calculate it. And it's quite quick and easy to do. So later on, I'm going to try and show you how to calculate it. So the answer is four. If you've got a pen and paper in front of you, maybe you can try and try and figure them all out. You'll end up four. And I assure you, you're not going to be able to find a fifth one. If you do, it'll just be the same as one of the other four. But if we have a look at this sort of type here, it takes a string and returns a string. There's quite a large number of programs with that type. So it's not four in this case. The answer is a large. I haven't calculated. It's very, very large. It depends on the size of string, which is in the JVN specification somewhere, the maximum size of a string. And I've forgotten what it is. But let's have a look at this type here. Now, does anyone have any idea or any suggestions about how many values have this type? How many programs that I possibly write that takes generic A and returns a generic A? How many possible programs exist? I'm really keen to hear any answers to this one. Any suggestions? So remember, we are functional programming and we must terminate. We can't use an escape hatch. The answer in this case is one. There is only one program with this type. And you can probably work out what it is. It's simply returned this argument here. And there are no other programs with that type. Or in other words, the type told us the program. Given that type, we can actually work out the program. And we did that because we used what's called a polymorphic value or a generic. Because we used a polymorphic value, it wasn't given a Boolean return a Boolean. It wasn't given a string return a string. We used a polymorphic value. And so by doing so, we've restricted the possible functions with that type to be one. And I've actually written a proof of that. And it's later on in these slides. There's a link in these slides to that proof that it is equal to one. But we have actually obtained total knowledge of the function just given the type. And the idea of using types to work that out is called parametricity. If you type that into a search engine or something like that, if you wanted to look it up, I'm using parametricity to determine that there's only one function with that type. And the paper, if you want to read all about it, it's called our theorems for free by Philip Wadler. And basically what this paper says is write down the definition of a polymorphic function. So that is just anything using generics. And tell me it's type, but be careful not to let me see the definition of the function. And Phil will tell you a theorem that the function satisfied. And the paper explains how to do that. It's quite simple to do with a little bit of practice. So I'll give you an example. So what this is referring to is something called free theorems or theorems for free. So I'll give you an example of a free theorem. If we have a look at this type, there is no polymorphism in this type. And if we said what is a free theorem about this type, and there's really nothing I could tell you, other than it's not a function that takes, it doesn't like add 10 to its argument because it's not an integer argument. It's a list of string and it returns a list of strings. But we already know that by looking at the type. We don't gain any extra information by looking at the type because it's not polymorphic. So it's, yeah, it's just simply not polymorphic. But let's have a look at this type. And I want you to convince yourself that my theorem that I've constructed here is a true statement. There's nothing any programmer can do and can possibly write as a function with that type that violates my theorem. My theorem holds no matter what is written within that function body. And I can determine that theorem by looking only at the type. So I looked at the type and I said, well, it takes a generic list of t and returns a generic list of t. And immediately I can conclude that every element in the result appears in the input list. So this is an example of a free theorem. And I can calculate that free theorem. But just intuitively, I just want you to feel it and just say, well, yeah, that must be true. If you disagree, you know, feel free to write a question. That's okay. So any every function that is of that type must satisfy that theorem. So that's an example of a free theorem. So we but the thing is, is we have some information about this, this function, but we don't have total information. We don't know exactly what it does. All we know is that the theorem satisfies. So what I'm going to do now is because I've used types up to a point that there's a gap and the gap is it's if we still don't know that completely what the function does just by looking at the type, I'm going to write what's called an automated test. And what and so if we have a look at so this is an example of a test that's written in Haskell, that's really only because it fits on the slide. You can write this in Java. But I'll just talk you through what this code is doing. And this is called a property or a property test. And what it says is, for all characters, alpha characters, call those X, then if I put that X, so just one character, if I put that into an into a list, so a single element list, and then I call my function, then it just returns the same list. So given a single element list, it remains unchanged if I call this function. This still doesn't tell me everything about the function. It tells me a little bit more. But knowing that this test passes is not enough to determine what that function does in its entirety. So I'm going to write yet another test. So here's the second test. And what this test does is it generates two lists X and Y. So given two lists of characters X and Y. And what this says is if I if I append X and Y, so I just join them together X and Y, and then I call my function, then this is the same as calling my function with Y and calling my function with X and then appending those two things. Does anyone know what this function does? Anyone? Because that is total information. I now know what that function does. So if anyone has any idea about what that function does, I'll be keen to hear from you. I'll give you an example of what it doesn't do. It doesn't simply return the X. All right. If it just returned X, then this test would fail. You can see here that append X and Y. This is for all lists X and Y.  If this function simply returned X, then this test would fail. And I want you to sort of think about how this test is running. It's generating hundreds and thousands of lists X and Y and making sure that this test passes. All right. So it doesn't just return the argument. And this idea is called property-based testing. Someone has just proposed that this reverses the list. And that is the correct answer. It does reverse the list and it must reverse the list. And that's the only function that is going to pass these tests. No other function will pass the tests. And this is an example of now we have total information about the function. It must reverse the list. So yeah, good on you. It does reverse the list. So let's talk about what we just did there. So just going back to this test, actually, this test is not exhaustive. It does not punch in every single possible list. It just puts in thousands of lists by default across a random distribution. But you can configure it if you wanted to change it. The way that it distributes the generation of lists. But it doesn't exhaust all of it. So if we just talk about what we just did, types provide what's called a proof of a proposition. So for example, the argument is a list of polymorphic tea. It's a very trivial proposition like we kind of already knew that. That's what the types are doing. They're providing a proof. Polymorphic types provide additional theorems. So for example, we've got a free theorem about that type because it was polymorphic. And what tests do is they they they attempt to negatively prove the proposition, and then hopefully fail. That means that the test pass. And that is actually the only difference between types and tests. And I just wanted to emphasize that because I've heard lately, you know, commentary that types and tests have nothing to do with each other. That's completely incorrect. Types and tests are incredibly closely related. The only difference being the kind of information they're providing. So types are providing a proof and tests are providing a failed negative proof. That's actually the only difference between types and tests. So this type here, like I said earlier, has only one possible answer. And it's an example of once inhabitants. That is to say, there's only one program with this type. And there's no tests that we could possibly write for this type, because they're all going to be redundant. We've proven it all the way to totality. We know what the function does. It must return its argument. That's all it can do. The types give us this information. And it's a really good exercise. If you're a little bit like, oh, I'm not too sure if that's true, it's a really good exercise to try to make it not true. Like to sit down with a compiler and see and try to make it not true. You'll either use an escape hatch, or you'll not terminate, or you won't be functional programming. You'll start doing something where I can't replace expressions with values anymore. So because we've got these states in the ground, you're only ever going to come up with one answer. Let's talk about some more realistic examples. These are sort of just definitions and trivial examples. But let's look at this one here.  If we have a look at, say, this validate web form function here, and then this other function here. This is written in Haskell notation. So I'll just read it out to you. Submit web form, takes as arguments an app state, and then a web form, and then it returns back a pair of a response and an app state. So it's just an example I came up with. That's typically what a web form does sitting on a server. We submit the web form with the state of the application sitting on the server, and then the web form itself. We get back a new state, and then a response to send back to the browser. I'm going to make the claim that for all web forms and for all app states, if I submit the web form twice, so if I submit the web form with a state, and then I submit it again with the same state, then that's the same as submitting it just once. And you can see here, it runs the two actions, calls the results S1 and S2, and then makes sure that they're equivalent in the test property. This little property here is called like dampenance. It actually has a name. If we do it twice, it's the same as doing it once. So this is an example of a property test I might write if I'm writing a web application, and the test framework is going to generate thousands and thousands of different web forms and application states. It's going to try to disprove this property, and if it doesn't, it's going to say it passed. It's not going to provide me a proof because that's not what tests do. That's what types do, but it is going to try really hard to disprove it and hopefully fail. That means that the test passed. So just as a bit of like a principle in how to use this sort of method of software engineering, we use the types first, and we use them up to the point that we can, and where they fall short, we start using automated tests. The library that I use, this is written in Haskell, and it's written in Scala as well, is called Hedgehog. So if you've got a bunch of Java codes sitting at your work or whatever, you can actually use Hedgehog written in Scala to write some tests and call into those Java libraries, and you can generate automated tests. The goal that I really hope for is not that it works on my machine right now, but it works on all machines at all times. That is to say my tests are deterministic. Just because they passed on Tuesday, that also means they'll pass on Wednesday, and I'm sure you've all seen that in certain production systems where you run the tests and then someone updates a variable somewhere and suddenly the tests stop working. So back to this example, like I said, the answer is four, and you can actually calculate it algebraically. So you can do this for any function. The inhabitants or the number of programs with the type is the return type. So that is to say Boolean being the return type, raised to the power of its argument. So Boolean to the power of Boolean, or two to the power of two, and that's four. And if you're not sure, here are all the possible programs with that type. That's all four, and there's nothing else you can do. That's the only four possible programs you can write with that type. What about this one? So given a polymorphic A return and A, I've told you that it's only one, but how do I work out that it's actually equal to one? Now I wrote a proof, and I wrote that proof using Java, all right? Now, it turns out that it was about 300 lines of code, which of course is not going to fit on my slides. But I did write this proof.  For example, can I write a proof that this is equal to one using the Yoneta lemma? The answer is yes, I did. And it's available there. And I'll post the link to this later. And actually, I can probably, maybe I can do that right now. I'll post it. Can I do that right now? I'll post it in the chat. So there's the proof there. That is equal to one using a NetElima. And don't blame me for its messiness. Like I said, I chose Java for a reason just because I just wanted to see if I could. I can. So yeah, if you're interested in learning how to do that, I am certainly open to receiving emails or messages or whatever to help you learn how to do that if that interests you. So how to calculate algebra-breakly function inhabitants and so on. Generally how to use types and tests to ensure your software works well. So what I've done here is I've given another example. This is an example of a function. This is written in Haskell. This type here. And I rewritten it in Java. So if you're more familiar with that syntax, given a function from B to C, that's a polymorphic B to C, and a function A to B, return a function A to C, this particular type is also once inhabited. So that is to say there's only one function with this type. Given this type, I already know what it's going to do. But more interesting is, can I prove it? Can I write a proof that this is equal to one? And you'll see that this is a slightly less trivial example than the previous one. And if you start practicing with these trivial examples, eventually you become more fluent in doing it with less trivial examples. Like for example, your great big enterprise system at your office or whatever you might have. Here is a proof of correctness.  Because there isn't a bill, you have a proof. Wouldn't that be nice? It's a little bit of fantasy there, but that's kind of the aspiration or the thing to aim for at least. Another example here, this one's probably a little bit easier if you chose to go down this path, which is polymorphic A to A to A, or in Java, giving two A's return an A. This is actually equal to two. There's two inhabitants of this type. And because it's not one, that means there's tests to write. So what tests can we write? There's two possible programs with that type. And you can actually prove it using your netLMR that it's equal to two. And here's just to point out that so I wanted to give a less trivial example, just to point out that you can do it. This one, this type here has one inhabitant. And you can prove this one as well. However, you can't write, it's not possible to write this type in Java. So unfortunately, I couldn't convert it. It's just not possible. But it's a good example of a slightly less trivial proof that you could write. But here's another example. And the only difference here is I've changed, this is called a constraint in Haskell, by the way. So all I've done, you know, like an interface constraint. And I've basically changed the constraint that used to say, the previous one said functor and now it says applicative. And all I did is change that constraint. And the number of possible programs has gone from one to infinity. Whoops, that's a big number. So now we've got lots of tests to write. Or is there something else I could do better? I would not recommend trying to prove anything about this particular type. You might ask, you might write a function with this type, and then ask yourself, what tests can I write about this program that I've just written? So that's all I've got. I just noticed there's two minutes remaining. So I'm happy to take any questions or anything like that. Thanks guys for listening. Sorry I couldn't be in India again this year, hopefully next year. Thank you so much, Tony. Thank you for proving my guess absolutely incorrect. Thanks a lot for that. Feel free to find a fifth program if you like. I'm sure there isn't one. Give me the weekend, Tony, and I'll get back to you one day. I'll give you four marks for bravery though. It's a really good idea to at least try, just accept that you're probably not going to get it right. That's okay. That's all part of learning. As you said in the introduction, I do flight instruction. I do it, you know, I'm going to be doing it all weekend this weekend. Mistakes are what my students do all day long, and I do them myself as well. So it's all part of learning. Just be brave and have a go, and learn from those mistakes and get better at what you're doing.


Dozens of Democrats could beat Trump. Biden, U.S. President Joe Biden has claimed that there are dozens of Democrats who could defeat Donald Trump in the 2024 presidential election, but has insisted he must be the one to do so. Some sections of the Democratic Party and the media are already treating Biden as the default nominee for next year's presidential elections. The party's Florida branch has refused to place any other names on the ballot for its primary vote, while the Democratic National Committee has refused to organize debates with other contenters. Biden was asked by the media whether he thought there were fellow Democrats who could defeat Trump. Probably 50 of them. The president responded declining to offer any names. I'm not the only one, but I will defeat him. Questions about Biden's willingness to run for a second term were triggered by remarks he made at a campaign fundraiser in Boston. If Trump wasn't running, I'm not sure I'd be running, said the incumbent leader. Again, citing the challenges from his predecessor, Biden later told journalists outside the White House that I just have to run. Biden overcame Trump in the 2020 presidential election and a likely rematch has been touted by the Democrats as an existential battle against the Republican frontrunner's supposed authoritarianism. However, Biden's approval ratings recently reached a low of just 37%, according to a CNN poll. Last month, a New York Times survey predicted Biden would lose to Trump in five of six battleground states.