Hi, it's Bridget. Welcome to Sunday Morning Coffee with Bridget. How are you doing today? I know. It's kind of hard to say, isn't it? It's minute by minute, it seems like. I want to be optimistic for the springtime. It's certainly got to be right around the corner. It's been very, very sunny here, but it's also been very snowy and cold. So I'm not really sure if I can get too optimistic yet. I'm cautiously optimistic. Let's just say that. I know some of my friends who are experiencing crazy weather across the United States. You've been in my thoughts. I'm just going to say that. Today's topic, I'd like to talk to you about death. Seriously, though, about our morbid fascination with death. I'm going to tell you a little story. So I've been realizing as I've been on my own journey of self-healing. I've been working on healing my psychicness, my psychic gifts, because I know that there's a lot of energy that I hold back in regards to my psychic gifts. And I'm starting to see or has become known to me as I'm writing about this, talking to my life coach about this, talking to my counselor about this, working on some shadows and some past experiences I've had. I'm starting to remember some things from experiences that I've had all along, from childhood all the way up to adulthood, where it's been like this bad thing to be psychic or it's this like shameful thing to be psychic. Now, not in the ways that you think of, not in the ways of like religion or challenged by religion, nothing like that, but in regards to the whole concept of death. And let me tell you why. Okay, so one of the things I can remember, I remembered, because I was specifically working with any of my resistance around mediumship about being a medium, because it's been a struggle since the pandemic started and I could feel all the people doing their mass exodus onto the other side and I just felt all this grief and it was very, very overwhelming for I'm sure many, many people, not just me, but so I stopped working as a medium in private session. And now I'm at the point where I'm like, I need to give myself some time here to heal some of this because there has to be something here, there's got to be my own personal resistance based on my own personal experiences and something that I'm attaching to this. It's not really a fear, it's just an incredible overwhelming sadness and grief energy that just feels super depressing and heavy and it almost feels like never being satisfied. So somewhere along the lines, I've connected death with this feeling of never being satisfied, having it never be good enough. So at the point of death, looking back on life and not experiencing enough, feeling regret and never feeling quite complete, never feeling quite like it's been enough. Have I done enough? Have I done enough? Have I given enough? Have I achieved enough? Enough. So somewhere along the line I've associated death with other people's value judgments about me and about life itself as a whole and whether or not I'm living up to the standard of what a life is intended to be. And this any kind of introduction of death is like almost perceived as skipping ahead and wanting to be done with the life, wanting to take a shortcut. Even though I never wanted to die or I never had like suicidal thoughts or anything like that at all. It was nothing like that. Somehow I have connected this energy of the meaning of death, the status of death itself as something that I should be, you know, it's like, feel kind of like, like, ooh, why would you want to do that? Like weird it out by like, oh, that's gross. Death is gross. Or, oh, that's so morbid. That's the word. The word morbid, morbid comes to mind. And here's how it comes from the story. So when I was in what, like fourth or fifth grade, I got fascinated with the Kennedys. Oh, yes, not shocking to believe, right? I think it was fifth grade. I think it was my fifth grade year. That was when the JFK, it was like the anniversary, like the 20th anniversary of his assassination or something like that. It was like in the 80s. And yeah, it was like, yeah, it's the 80s. And it was like the 20th anniversary, I think, maybe 25th. It might have been 25th. I can't recall exactly. And there were these miniseries on TV because they used to do that back in those days, watching miniseries. We didn't have Netflix, you know? I know it's shocking to believe, but we didn't. And so we were watching these miniseries. And there was this highlighted, these four days, four days was highlighted. Turns out it was a book, and I asked for the book for my birthday that following year, because this was November and the following year, my birthday's in February. And I wanted the book for Christmas and I think I got it for my birthday. And four days was about the morning after the assassination of President Kennedy. And I got so interested in what happened in his life, in John Kennedy's life, but more so in what happened after his death and how the entire nation mourned. Now, I wasn't alive at this time. My parents were, but I wasn't. So they lived through it. But I was fascinated by it and how one person could have such a dramatic impact and how this collective grief happened and I could feel into at that time, fifth grade. I felt the grief. And it was years and years and years later, right? And I didn't know the Kennedys and I wasn't even alive then and all the stuff that you might say about people like Freddie Mercury or Prince or Elvis or David Bowie, people after life that you might look up to or love, right? So I got to the point where I was so into this, this book and this story about what happened the four days after the four days of grieving when the nation was grieving and it was long after that too, but this book documented these four days and some of the images were so profound in it. And there was this image that an artist rendered of a flag with like blood on it and it was like a sketch. So I sketched that and you's got out my markers, my fifth grade markers and colored it up and I hung it on my wall and my mom was like mortified.  What is wrong with our child? You know, she didn't directly say that to me, but I could tell that there were a lot of weird feelings about my and concern over my morbid fascination with what was perceived as death, the death of John F. Kennedy. That was probably my first introduction into the mediumship energy and the fact that the things that I was experiencing when I was reading was very clear sentient or the psychic gift of sensing feeling which many of you won't recognize as being an empath, being a highly sensitive person or being an empath, okay? And so looking back, I can see how all this makes sense, this activated something, it was like a portal. It was this collective experience. I was clearly already psychic at that point and having experiences. So that was just one thing that I remembered in regards to death and in working on my psychic gifts. And so this fascination with death, it's not a fascination with death. I think it's more so a fascination with our spirit and our energy and the life beyond the human form and this tiny little timeline that we get, this little chunk of time that we get and how our bodies decay pretty rapidly. Like in a hundred years, your body just gives out, right? You can get new tires on your car, but you can't just replace all your organs, et cetera, et cetera. Well, who knows in the future with all the 3D imaging? We'll see, and AI and all that. That's a whole nother topic, a conversation. But for the most part, time is so short and I don't think you really start to recognize that until you're maybe middle-aged. Like now I'm at a place where my oldest child is now moving into her 20s. And so to me, I'm like, and I just had a birth and I'm like, oh my gosh. Like if I live to be as old as, I have two grandmothers right now that are 96. Yeah, I got good genes on both sides. Apparently the women, they wail out, live them in. Let's just say that, wail out, live them in. So they're both like 96. So theoretically I could be only, only halfway through my life. However, the way I feel right now in my body and with my kids and the life, full life experiences I've had for myself and through them and their experiences, I clearly feel far older than I actually am physically. Except for my spirit. The energy of me, the enthusiasm, the incredible joy that I can feel, the free-spirited energy that I feel, the creativity and the rush of like playful energy that I get when I come up with a new program or I offer a new service that I'm really excited about or I'm in a healing session with someone or a psychic session with someone doing intuitive coaching. And we're doing some deep healing work and we're moving stuff and I just get so, just, oh, so amazed and in awe of how energy flows and moves and that power and the perseverance of the human spirit. And in the sessions I do like here on an above-life channel, right? The readings and not readings, it's not the right way to say it, but the interviews that I do with the afterlife, the channeling sessions I have, I'm just amazed with the stuff that I hear, the wisdom, the feelings that are just amazing. So I think that the fascination isn't with death, it's with the fact that our lives are so much bigger than what we can live in body. And through our body and inner body. And so I think it's not this hurry to get to the finish line. I think it's more of this, and it's not even a fear. I don't think we have a morbid fascination with death for the most part because of the fear of it, although I will say with, especially with my grandparents, with like the religious peace for them, there's very much for my grandmother, especially there's very much the sense of God and this fear of like judgment and criticism and comparison and all that. Not that she'll be rejected, but that, oh, did I do enough? Did I live my life enough? Have I been enough? Have I done enough with the life I've been given? I think that death is this opportunity to look back and reflect upon life and by then it's too late to change anything. And I think that there's a part of us, like that's why there's a rise of self-help and self-development movements and wellness and yoga and alternative healing solutions for people that deal with stress and anxiety and why we've seen an increase in mental health issues and anxiety and depression and impulsivity and autism and all of these other things that we've seen people come in, born into life with and also people who've developed things over time because of all of these these interwoven, interconnected experiences that, quite frankly, I don't think we'll ever really understand until we are not attached to the body. I think that's why things like astral production are really appealing to people. Let's leave the body and have psychic experience and let's come back. Well, why would you do that? Then you're totally disappointed when you come back unless you can integrate effectively, which good on you if you can. If you can, you're probably this master psychic medium or an incredible gifted healer that are you okay if you're not, then don't be just jumping out of the body because the whole goal is to be in the body to have a human experience with the benefit of being a spirit and to not have a life with regret or remorse at the end of it but to acknowledge the cool experiences that you're having along the way and even when they're hard. Like Glennon Doyle says, we can do hard things. Have the experience, be present for the pain even in the emotions. When you're sad, be present for the sadness, be present for the grief because then it will not eat you alive.  That creates fear. So death itself is nothing to be afraid of. It's the very fact that we are afraid to live. What's morbid is the depressing state of the not living. A life not living. Not being lived. A life not being lived. Think about all the people that have died tragically suddenly. Think of the people that have died of horrific circumstances, illnesses, disease.  Live on behalf of someone else who got their lives taken from them. Robbed of life.  Don't you spend your time addicted to stuff avoiding your feelings. Show up and be in your feelings and if you need help, guess what? That's human. Human relationship is part of this process. You got to reach out and ask for help through counseling, through licensed clinical social workers, through crisis helplines, through friends, through community organizations, through religious organizations, through churches, through non-profit organizations. Reach out again and again and again and again and again and again. Release fear and judgment and show up for life and live it to the best of your ability. To the best of your ability. And then a life lived is a life that is successful. That has value. Living itself. In and of itself. Not a perfect life. Not the one way. Not the best way. But living. Just simply living. Day to day to the best you can. Not everybody is going to be an Olympic athlete or a Nobel Prize winner. Guess what? That's okay. That's okay. Alright? Let's get fascinated with life. Let's try that. How about that? Alright? Okay, you guys. I have no idea how this Sunday morning coffee episode went from talking about morbid fascination with death to living life. But it has. And here we are. Time to refill that coffee cup and get started about your day. If you've been able to follow my labyrinth of interesting conversation today, I'm good on you. You're probably going to need a little caffeine or maybe a little more time sleeping in in bed. Cozy it up with a good book or something like that. I hope I've inspired your spirit giving you something to be hopeful about. Encouragement to live your best life. It's your life after all, so you have to live it. I can't do it for you. Just like you can't live mine for me either. So, even though I do wish you the very best today, I do. I really do. This is Bridget at Above Life Channel. Thank you for listening to Sunday Morning Coffee podcast episode. I'm a psychic medium and an intuitive life coach. I like to share inspiration on both my YouTube channels above life channel YouTube and fairy grasshopper YouTube. Fairy grasshopper is more of a casual vlog type setting where I also share some readings using card decks and other interesting psychic tools on there as well. If you're looking for me on social media, check me out as Bridget inspired on Facebook and Instagram. Thanks for listening.


Hey fellow buddies, thanks for watching. All right in this video. We're gonna talk about the top 10 Selling plush on ebay at the time I did this video So ebay goes back. I think 90 days. You can go back a little further on terror peak I think up to two years worth point is what I use when I want to look at things that are further back or More information. I do have a link down below It's a referral link for worth point if you want to check that out I've got some videos that show you how I use worth point. It is a little pricey, but I love it So check out that video. It may be a good fit for you. It may not be it took me a long time to get it But I'm glad I did so But like I said, it is pricey so figure out if you really need it for your business But if if you do it's very beneficial. You will make more money because of it All right, so let's talk about the top 10 plush now. I Do a little more digging when I look up solds because there are so many fake Soldes Unverifiable solds that people tell you sold for big money when really an actuality an Actuality is that a word? They didn't even sell. They did not even sell So be careful because when you're searching solds Sometimes the item never got paid for it wasn't even a good sale It still shows up in the solds, but it didn't sell does that make sense? So let's talk about some big money plush that are verified and I'll tell you how I verified it If you've watched me before you know some of my little tricks But if you haven't this may be new to you and a lot of these things get new resellers So if you're new to reselling pay attention, this is very important. All right, so the first item is This antique very old teddy bearer stifle question mark straw stuffed vintage plush needs help and a home so They don't know if it's stifle or not now. What do you guys think about putting a question mark in the title? I have done this before. I don't know if it's the right thing to do or not I Can't remember why why I used a question mark, but I have done it before I don't know if it was for a brand I don't think it was I think it was something else but Do you think it's keyword spamming if you're not sure? Because anybody that's looking for stifle is going to be drawn to this listing when it may or may not be a Stifle bear. Let me know what you guys think down in the comments Also, what do you think about the chicken noodle soup? Would you would you use this chicken noodle soup? I know I've seen people use quarters with jewelry, which I get I get the quarters with jewelry I don't know about the chicken noodle soup. It kind of makes me giggle So I kind of like it for laughs and then you look here. It looks like it's got some damage to it None of these factors played any role in how much this item sold for the Title the question mark we hear all the time. Don't use punctuation in your title. There's punctuation. There's a question mark there's a slash this item still sold for big money and This bear is not in great condition as you can see man He has he has had a rough day. This poor guy has had a rough day. Oh My goodness. Oh my goodness. He has had a really rough day He has something hanging out of his neck Wow, you guys for real. Look at this 20 bids 1325 dollars plus shipping the bear is so cute fast shipping and packed very well Thank you so much This straw stuffed vintage plush I don't know if it was stifled or not But this old stuffed bear that needs help and a home went for over a thousand dollars So how did I verify it? I? Checked for feedback and guess what there's feedback, which means it was a good sale This is a warrior cats squirrel flight plush stuffed animal It is pre-owned without the tag and it is a harder to find rare item. This is your tush tag This is one that I've never heard of and we will talk about this in another video So stay tuned for that this sold for four hundred and ninety nine dollars and feedback was left This is a sixteen inch sprocket fraggle rock plush dog with tags and collar by to me 1984 henshin, so we're just gonna take a look at the pictures. It does have the original tag definitely is gonna be helpful $550 easy to work with high quality item sold This is a jumbo Jag plush bison American buffalo stuffed animal vintage and rare sold for four hundred and seventy five dollars on auction it has a defect and there is your tush tag and He's a big guy. I probably would have used a tape measure to show how big it is Personally, I always try to do that in my photos. That's one recommendation I would have for you guys if you're watching this and new to selling plush show the measurements and This also man this bison is awesome. They so big and cuddly. Thanks again $475 This one is so cute. It's a rare red russet woolly long hair husky dog Ruben 2042 plush Douglas cuddle toys. Here's your tag Here's your other Mmm, excuse me. Here's your other information Here's the bottom a lot of times these white plush They get yellow and they start to look dirty this one looks pretty good And it sold for seven hundred and forty nine dollars and fifty cents and The buyer had free shipping on that so free shipping Here. Oh wait, I'm sorry disregard seven forty nine fifty I went over to terror peak to verify it It looks like it sold on June 15th for seven hundred the buyer did not pay So this is how I know because I look at the date here and it says June 21st And it sold for six hundred and twenty five So there you go six hundred and twenty five. I copy the title into terror peak So basically you go over to research And terror peak product research you put the title in you hit search Filter by last two years guys And you'll find your item And then you look at the dates over here That's going to tell you if it sold and got re-listed or what the sold the final sold price was in this case It was six twenty five um I'm looking here at this one That has the same exact title And it says march. So it looks like in march it sold for eight eighty So it didn't get paid for twice and then finally sold for six twenty five And here's your feedback on that Thank you. So it sold for six twenty five This is a rare feo fao schwarz red fox plush stuffed animal 27 inches Realistic this is what i'm talking about putting a tape measure In your listing this really helps buyers understand just how big your item is They've got this in a light box So here it is And feedback was left And they sold it for eight hundred and ninety nine dollars and ninety cents with positive feedback E and j plush Malamute husky wolf Huge stuffed dog 40 inches now. I will say I am not a big fan of items uh being put on furniture or on beds or different things like that, but this one I love this picture This seems so realistic to me. This looks realistic. It's on the back of the couch. It's laying on the couch I mean Good job on making this thing. Look like a real dog. Oh my goodness. So stinking adorable So I don't know if you're going to agree with me or not, but this is one situation where I'm like They nailed it with the photos What they're doing here is they're showing that the eyeballs have scratches or do not have scratches A lot of collectors when they're paying big money for plush They want to know how do the eyeballs look here is your tag Here is the bottom definitely show the bottom, especially if it's white. Like I said a lot of times they will yellow I'm going to go to tera peak and see what this actually sold for because you can see it as cross through Which means the best offer was taken this sold for fourteen hundred dollars And the buyer paid shipping and there's your feedback guys very cute and amazing condition and arrived quickly fourteen hundred dollars for a plush stuffed animal This is a vintage 1950s stifle lulac donkey With stifle metal earpost excellent condition. So let's take a good look at this one This looks like it was actually sold by a goodwill store And there's your stifle tag 2759 dollars and 99 cents And feedback great communication item as described great sellers stifle is a great brand to look for The older ones from the 50s and you know 60s. Those are the ones that go for more But even some of the more newer stifle can be big money also. So definitely look them up if you see them The next item is this rare douglas cuddle toys blazer german shepherd plush dog this little guy Okay, i'm not sure what's happening here What is happening right here? What is this picture? Was this an accident? I think this might be an accident Oh my goodness here are all my plush. All right. Here's the little german shepherd. Uh, that's not a great photo either Uh, oh well it's still sold for big money, right? And this is what i'm talking about having it like on a bed and stuff like that I personally just prefer to see an item in a light box But that one on the back of that couch it looked so awesome and realistic So here is the douglas the cuddle toy And it shows that it's got a little bit of staining on the foot. So they did a great job of showing any condition issues and Let's take a peek one thousand and nine dollars free shipping on this Feedback was left. It says a stunning plush. It was a real pleasure to work with the seller in acquiring the plush For my close friend. She is absolutely in love with him. Thanks so much And if you go over to terror peak you can see on june 18th this item sold for four thousand and fifty dollars And the buyer did not pay. So they re-listed it and it sold for a thousand. So still really really great profit, but um Not four thousand right So could they have held out and did like a buy it now or best offer and gotten more? I don't know. What do you guys think? Let me know down in the comments The next item was a webkins that I found and I just recently did a video on webkins to look for And when I was doing my research, I saw this little guy And he sold for two hundred and fifty dollars. So he is not quite as high as the other ones But I will say that the webkins you find these you find them at thrift stores You find them at the binge you find them at garage sales. They're a little bit easier to maybe find This one however is a draft and I saw lots of drafts But I did not see the pink draft with the purple little thingies So maybe that one is special. Let me know if you guys know anything about this plush All right guys, so those were the top 10 plush That sold at the time of this video that I could actually Verify because there were other solds, but I'm not going to show you every sold with a high price I mean you guys can go in and do that I'm going to take the time and do a little extra work so that we know that it's legit because I want to know That these items are really selling for that price because otherwise I may go out and overspend on something because I think it's a bolo when really It's not I just researched wrong so check feedback Another thing you can do is go into the seller's store if there's no feedback Go into their active listings. See if the item is relisted if the item is relisted Then obviously it didn't sell if it's not relisted. I'm going to say it Probably sold it's probably a good sale because what do you do with the listing that somebody doesn't pay for? You relist it. So those are two things that you can do Um verifying the price the sold price on terror peak is also another very important thing You can see that one last plush when I first looked it up I saw four thousand dollars and I was like Whoa And then I looked on terror peak and I saw the same picture and I saw the dates and I saw that it sold for a thousand After it sold for four thousand. So that's how I was able to figure that one out Does it take more time? Does it take more research? Yes these videos take a long time to make Because I'm looking for the best of the best to bring you guys so that you know what to look for But to me it's worth it. It helps me learn. It helps you guys learn and I love it Now I have talked about selling on mercari your plush toys even jewelry Things that are flooded on ebay Sometimes sell for more on mercari and poshmark But mercari especially for plush check out my bill to bear video Because I show you bill to bears that sold for way more on mercari than they did on ebay I just kept doing this research throughout this video and I was like, are you kidding me? Are you kidding me? Are you kidding me? So definitely if you sell bill to bear check out that video now Have things changed since I did that video maybe but there is definitely a market for those types of items over on mercari Um, if you use my link down below It's a referral link if you're not already on mercari you can use that and you will get $10 to shop When you join with it and another $20 to shop when you sell $100 worth of stuff So that's $30 total that you can get to spend on mercari to buy something to sell Or just something for personal use. I do have bolo buddies earrings Um, I call this my new merch They were made by lucky day shop. She's on whatnot. She has amazing earrings like this, but she uh Put these together for me. She added uh, let me just oh I just hit my computer screen I'm just going to show you here at the end of the video if you've already seen it You guys can like tune out. I get it. But if you haven't they're so cute. So here's halloween Here is Thanksgiving And here are the ones I have in that are just you can wear them every day And I had a solid blue and you'll see me wear them in some videos but they were kind of hard for her to work with um, there was a lot of Improfections because of the solid blue color. So we're working on She's working on trying to get me like a watercolor blue that isn't going to show like some of the Improfections because I really love the bolo buddies blue color But these are fantastic because I think they match more. Does that make sense? So anyway more to come lucky day shop over on what not she also sells jewelry on her channel her what not channel It's a kota channel. I don't even know what we call our what not But I am loving what not but I've got these earrings in my what not buy it now They're five dollars plus shipping. So if you use my referral link down below, you'll get 15 dollars to shop And that's if you join what not with it. Okay, you can't already be on what not you have to join with that link It's a referral link get 15 dollars to shop and then you can go over and buy some earrings Or whatever else you want to buy on what not you don't have to use that credit with me You can use it with anybody but I would love for you to come check out a what not show We have lots of fun Even if you guys don't buy anything just come hang out in the chat We giggle and laugh and just have such a good time as I'm showing the jewelry I've got some really funny friends that come in and we just have a good time. So I hope to see you Um in a future what not show all right you guys. Thank you so much for being here Thank you for watching be sure to like comment subscribe and share and I'll see you at the next one Thanks for watching


So, we will quickly revise what we have learned in the last lecture. In the last lecture, we looked at dispersion model. Overall, we are just looking at models for non-ideal reactors. The first model was Tanksin series. The second one is dispersion model. So, in dispersion model, we assume a tubular reactor geometry. And then, of course, we say, we characterize this flow pattern through a parameter called Peclet number. So, we say that fine, we have a tracer that is injected at the inlet which gets into the form like this. So, it becomes flat when it comes out flat in the sense. Of course, it gets distributed, I would say. Now, we want to see the behavior. And this particular behavior depends on the extent of back mixing which in turn depends on the Peclet number for the given system. So, we derived equation for this or rather we formulated a differential equation for this which was 1 by P e del psi del 2 psi by del lambda square minus del psi by del lambda is equal to del psi by del theta, where theta is dimensionless number, lambda is dimensionless length. And Peclet number is something that characterizes the extent of mixing which is nothing but U L by dA, where dA is the dispersion coefficient, L is the length and U is the velocity. And this dispersion coefficient is nothing but something similar to a diffusion coefficient, but that the diffusion is by fixed law where you are talking about migration due to concentration driving force. Here, it has a slightly broader meaning in the sense not just diffusion, but it takes care of other effects also and somehow characterizes the extent of mixing that is occurring or the flow that is occurring outside the convective flow. So, the two types of flow now convective and dispersive. Now, so this is something that takes care of dispersion and convection of course, taken care of by the velocity term. So, this is that particular term where you have velocity coming in picture. So, now this Peclet number I told you that if it goes to infinity means you have a typical ideal plug flow reactor, if it goes to 0 means you have a CSTR. So, the two extremes of plug flow sorry Peclet number and in between these two 0 to infinity you will have number of Peclet. So, Peclet number giving an idea about the extent of back mixing occurring in the real reactor. Now, if you have this equation and of course, the corresponding boundary conditions you solve them and you get you get a behavior like this for different values of Peclet number. This is the exit concentration of course, and for Peclet number equal to 0 you have a CSTR then for Peclet number higher than that you have a behavior like this Peclet number say 5 then you start seeing some lag then Peclet number say 100 or so and then you have something like this going up and then at value of Peclet number close to infinity or very large you see a plug flow behavior. So, this is a quick revision of what we have learned in the last lecture. So, I told you that once Peclet number is known I can draw this profile at the way round if the profile is known I can draw I can get a value of Peclet number. Now, how is the profile known you do experiments in laboratory. So, you have a reactor you do tracer injection and you measure the exit concentration and get this profile. Once you have this profile from this profile you have go back and calculate Peclet number. So, you know what this reactor is all about or what kind of mixing is occurring here and then you can predict the conversion you applied for the reactive flow that is what we are going to see now. So, before that now Peclet number is related to deviation or variance. Now, what is that relation I told you last time sigma square divided by tau m square tau m is nothing, but tau sorry t m is nothing, but tau is a mean residence time 2 by Pe minus 2 by Pe square 1 minus e raise to minus Pe sorry. So, this is 1 minus e raise to minus Pe ok. So, this is the relationship. So, you know this is a residence time this is Pe and sigma. So, in the case of Tanksian series I had relationship between Pe and sorry sigma and n now instead of n I have Pe. So, in Tanksian series I have a parameter called n here it is Peclet number. So, once you know the Peclet number how to get a conversion. So, let us go back to the reactor now I have a tubular reactor I write differential balance for it and get a conversion. So, let me write differential balance for the reaction case now earlier it was only non-reactive tracer injection now I have a reaction case ok. Before that sorry before that this is something that I have obtained for obtained for close, close vessel you know what I mean by close close that means before the inlet and after the outlet dA is equal to 0 there is no dispersion happening and accordingly we wrote the equations at those boundaries and got a boundary condition. But then it can be open vessel as well it can be open close it can be close open. So, depending on what I assume I will get different boundary condition and if your boundary condition is different then your value of Peclet number is also going to change. So, the expression that I have got always remember the expression that I have got is for a closed, closed vessel very important for open upon vessel you can derive it, derive it. But then of course I am not going to spend some time on this it is all given in standard text books. So, what I get there is sigma square divided by tau m square or sorry tm square is equal to 2 by Peclet number plus 8 by Peclet number raise to 2 alright. So, I will get a relationship for open open vessel like this what you need to remember is there is a relationship is sigma and p it changes as per the boundary condition that I am using for an open open system it must be noted that tm is not equal to tau. So, once you get sigma from e curve you can calculate a value of p if you are not sure about what happens in inlet what kind of vessel it is open open open try and get all values of possible values of Pe depending on which boundary condition you are depending on the boundary conditions and for every Peclet number calculate a conversion. So, you will get some idea at least fine. So, let us go ahead for the reactive case reaction happening in a tubular reactor in fact our main aim is to design a reactor, but time that we have spent so far is to this character is a flow pattern alright. So, let us go ahead if I take a differential balance at steady state now it is very important earlier all those unsteady state now it is a continuous reactor it is steady state operation. So, it is a plug is similar to what we see in plug flow only thing is now the f a is different anyway. So, let us write it d a f a by d a z now it is not del f a it is d f a because it is steady state no time no change with respect to time alright why r a r a is the rate of reaction it comes from the rate equation r a is equal to minus k c a or whatever depending on what kind of reaction it is first order second order it can be anything alright. So, I have this differential equation now in this differential equation this f a is not u into c a it is not just u into c a, but it has the diffusion or dispersion term also present there. So, if I substitute for f a based on those two terms convective and dispersive or dispersion rather then what I see is this d a into u divided by u d c a by d z square plus minus d c a by d z plus r a by u is equal to 0 u will come here anyway so that is.  So, this is 1 by u yeah 1 by u is equal to this alright. So, d f a by d z is equal to d a into this into u into d c a by d z. So, I have just substituted for this and then I have divided by u also for this term. So, I am dividing it by u dividing the entire LHS by u I hope this is clear.  So, this is a this is the equation now for the reactor because I have a reaction term I have not expanded this it can be rate equation minus k c a or whatever depending on first order or second order.  So, what do I see d a by u into d 2 c a by d z square this minus d c a by d z minus k c a divided by u is equal to 0 I have just substituted for r a I had non dimensionalized this further on I non dimensionalized this further what do I get if I just non dimensionalized it I would get I divided by L. So, 1 by p e d 2 c a sorry d 2 psi by d lambda square minus d psi. See look at this I am going first, but I think it is because you already done similar exercise before now the difference is that you have the reaction term appearing you have the reaction term appearing here. So, for c a it will be psi into into k sorry k psi into k into L divided by u why see what I am doing here is I am multiplying or rather since I am writing p e here that means I have to multiply it by L here. So, I am multiplying by L here. So, L L got cancelled right. So, I have L appearing here right is equal to 0. So, this is my dimensionless equation the dimensionless equation and I go ahead and solve this of course it needs boundary condition, but before that we will define one more parameter or one more dimensionless number which is called as of course it has many other definitions as well, but here psi into d a is equal to 0 what is this d a do not confuse this d a with dispersion coefficient. So, this is a dimolar number this is a dimolar number and you have already seen this number before probably in reaction engineering part 1. So, this becomes a non-dimensional less sorry non-dimensional or dimensionless equation dimolar number let us define it like what we did for Peclet number what is dimolar number is rate of consumption of a by reaction see in the numerator you had k remember let me write it k L by u. So, in the numerator you have k. So, this divided by rate of transport of a by convection. So, this is dimolar number. So, see is what is happening to a in the reactor is moving ahead because of convection and is reacting. So, d a tells you the relative important or relative potential of these two terms or magnitudes of these terms what is important in convection is important it comes in denominator reaction is less. So, d a is less higher the value of larger the value of d a it says that the reaction is more compared to convection. So, dimolar numbers I am not going to spend more time on this because you already discussed this or learned this in chemical engineering chemical reaction in part 1. So, this is a definition for d a for first order reaction for second order or nth order reaction d a is nothing but or dimolar number is nothing, but k into c a 0 n minus 1 in divided by u. So, this term has appeared here because that concentration will also come in picture and the initial concentration or inlet concentration rather, but raise to n minus 1 n is the order. So, where are we? So, we have this equation sorry I will get back to the main equation because that we should not forget. So, this is the main equation that I have got in that I have two dimensionless numbers Peclet number that characterizes the extent of back mixing or dispersion and dimolar number that characterizes the importance of reaction as against convection. And for in order to solve this equation and need boundary conditions again two boundary conditions 1 divided by p e remember this close, close vessel we have we have used this before right at lambda is equal to 0 that means inlet and at the outlet at the outlet we have d psi by d lambda is equal to 0 that is at lambda is equal to 1 outlet close, close vessel right. So, these two boundary conditions I do not need a boundary condition I do not need initial condition now this equation because the steady state equation, steady state equation two boundary conditions I solve this equation for psi that is dimensionless concentration of say a what I get is this psi at why see psi is changing with respect to length, but where at what position I do I want the value of psi, I want the value of psi at the exit, exit because that is going to decide a conversion psi is a conversion concentration. So, correspondingly so best so if I know the concentration I can calculate the conversion. Now this psi at the outlet that means at lambda is equal to 1 or z is equal to l. So, psi at the lambda equal to 1 is equal to after I solve this equation what I get of course, this is nothing but C a l that is outlet concentration divided by inlet concentration and in terms of conversion it is going to be 1 minus x and you get a very big expression analytical expression if I solve this equation and I am just writing it I am not spending time for this mathematical derivation here what is more important is I get a value of conversion based on what there will be two numbers here which are the two numbers Peclet number and Daimkohler number. So, this is nothing but look at this expression there is no need to buy had this expression, but then you should know that there is an equation like this possible what are we doing we are looking at a tubular reactor non-ideal reactor with axial mixing with axial mixing and this mixing is characterized by a number called Peclet number this is a close close boundary condition sorry it is very big expression. So, what do you see here on the right hand side Peclet number what else you expect here Daimkohler number this is not Daimkohler, but something called Q why because it is quite complicated now this Q is nothing but a function of Daimkohler number let me write it here. So, where Q is equal to root of 1 z is 1 plus Da divided by Pe into 4 sorry it should be 4 Da by Pe right. So, I get expression for psi which is nothing but 1 minus x right.   So, now compare this with what you got in the case of tanks in series model what was it x is equal to 1 minus 1 divided by 1 plus tau i k raise to n. So, this is dispersion model this is tanks in series models. So, obviously this is simpler compared to this, but does not matter these is know like you have everything fed in computer. So, you can calculate a convergence is not an issue what is more important how close are you to the reality and so in. So, look at the entire exercise what have we done so far or if I want to design a reactor how do I do it based on this one parameter model. So, let me write down in steps design of a non-ideal reactor using one parameter model what do I do first I do tracer experiment in the lab get C T sorry C T versus T curve. Then determine E T third determine where the variance sigma or sigma square and you know the definition of this shall I write it here once you get sigma determine if it is tanks in series n you know what you know this is related to this or Pe this is again related to this up to this point I am still looking at a flow pattern now using this parameters what I need to do is just get a conversion. Now, for first order reaction conversion x sorry first order reaction I have an analytical expression, but depending on the order I will have probably I have to do it numerically especially in the case of dispersion model. So, get conversion by solving reaction enabled balance reaction enabled balance for a real case. So, in this particular for a first order of course, I will repeat 1 minus 1 by 1 plus tau i k raise to n this is tanks in series model and x is equal to sorry I do not want to write it here the big expression for a dispersion model dispersion model this will be function of Pe and da. So, this is the overall procedure this is for a design now sorry I started I said that this is a design problem and I have written an algorithm to calculate a conversion. So, this is not really a design problem see it is like you are given the length or the volume reactor and you are calculating the conversion, but then it can be other way round somebody says I want 50 percent conversion design the reactor for me. So, what will I do? I will just do the entire exercise assume some flow rate calculate a conversion it is not matching play with the flow rate, but I will do an entire exercise again. So, this becomes a trial and error trial and error method and it is it is a big complicated, but there is no way out because the flow pattern or your flow rate that you are going to decide the residence time is likely to change your e curve also it is likely to change your mixing also. So, every time whatever flow rate that you want to operate it at is always better to do experiment and see whether you have the right kind of e curve or you have taken into consideration the non-ideality and accordingly the value of p e and p e or n. So, this procedure tells you for a given volume what is the conversion possible problem can be solved iteratively to get a particular conversion sorry to get volume for a desired conversion. So, this is how it works because you want to incorporate a flow patterns right if we had assumed the reactor to be ideal close to p f r or c s t r things would have been much easier like what we did before, but now I want to take into consideration the flow patterns and this is remember this is only for reactor which is giving me a behavior close to a tubular reactor. If you have a very irregular geometry then this is not going to fit your p e or n values are not going to they are not enough one parameter models are not enough or they are not it is not adequate to rather express or characterize your flow patterns you have to go for multi parameter models we will see that later. So, this works for particular e curve always remember that I told you in the beginning of this particular first lecture of this chapter that if you have very weird like e curve you do not think of using a one parameter model for it it should look like c s t r then going from c s t r to p f r all right. So, let us solve one problem of course, I am not going to do numerical calculations here, but again like whatever I have written words here let me try and explain more detail if one has to solve a problem. So, the first so who so what is given to you c t versus t. So, this is what you would expect in a problem the tracer concentration the tracer concentration time and concentration the unit can be grams per liter or moles per liter here it is can be second minute order. So, 1 2 3 4 3 4 5 order and here again you have some numbers right. So, at 0 time it will be 0 then probably 1 then 7 20 and it may come down again say 8 3 what. So, this is the typical behavior like this. So, this is given to you what else do you need to design a reactor the value of k it is rate constant and what order. So, that independently somebody would have determined it for you in a differential reactor or in laboratory and then they would have estimated values of k rate constant activation energy if it is exothermic endothermic reaction and all frequency factor and order. So, these are all parameters for the reaction kinetics fine. So, this is what is given to you and from this you need to determine the conversion using different models. Now, a problem may be calculate conversion for a CSTR PFR 1 parameter models it can be tank in series and can be dispersion. Now, just one question before we go ahead see it is not that always solve equations whatever we know and get a values, but then if it is a first order reaction or if it is a positive order reaction CSTR will give me one bound conversion will be minimum or maximum conversion will be for CSTR positive order reaction conversion will be minimum. PFR will give me another bound conversion will be maximum and in between you have this mixing happening because of which conversion will be in between PFR and CSTR right the tubular reactor. So, only thing is because of partial back mixing the conversion is going to get affected and since this is a positive order reaction back mixing is not desired for a conversion like higher conversion will get affected adversely with back mixing right. Of course, you need initial inlet concentration and all for all this exercise. So, how do I proceed I have T 1 2 3 4 and so on C T concentration measured concentration 1 0 1 7 20 and so on I need to get E T I need to get E T how do I get E T E T is equal to C T divided by integration 0 to infinity C T D T. Now, how so C T is known C T is known for a particular time I need to know this how much is the tracer that I have injected. So, the entire concentration I have a plot of C T versus time if I want to get this value what do I do I just take the area under the curve from 0 to infinity may meet the x axis I do not need to go further. So, this area is nothing but this denominator I am just explaining you the procedure. So, this gives me E T. So, I will have some values here I am not going to write those values I will have some values here right. So, I got E T from E T what do I find out first thing is I need to get average residence time I need to get average residence time I want the value of tau remember everywhere tau came in picture that tau is required how do I get average residence time or mean residence time mean residence time is this the expression for mean residence time tau T m is equal to 0 to infinity T E T D T again tau is equal to T m is valid only for closed closed system. So, what I need here is from this plot I will calculate T into E T and I will have a value. So, T into E T I will have some values oh sorry it looks like 0. So, let me write cross I am just simply multiplying these two numbers T T E T D T I am explaining though only a procedure because doing calculations in the lecture will be difficult. So, T E T D T and then from this once I know T E T I can plot see I can plot T E T versus T. So, what a plot I get I get area under the curve I do not know the nature of this it can be anything all I need to do is get area under the curve and that is nothing but tau. So, in this step I have determined the value of tau that is mean residence time mean residence time. So, this is a this particular row would give me the T E T by multiplying these two and then area under the curve when I plot this against this that is time this against this and I get mean residence time. What do I need next then what I do is I take T square now you know why I am doing this instead of T I have T square why will I need T square because I need to calculate variance and you know the expression for variance. What is the expression for variance the expression is this sigma square is equal to 0 to infinity T minus tau E T D T. If I expand this it is T square E T D T minus 2 tau sorry T E T D T plus tau square 0 infinity E T D T. You know what this is this is nothing but 1. So, this becomes tau square and what is this is tau. So, this is minus 2 tau square plus tau square that means it is minus tau square. So, these two terms I know what I need is only this right. So, this is to be found out by plotting T square E T D T sorry T square E T versus time and whatever plot I am going to see sorry I do not know the nature of this I take the area under the curve and this is nothing but this term. This term minus tau square this is nothing but tau square minus tau square. So, this term this area minus tau square nothing but the variance. So, I did I get variance I hope it is clear. So, I have these values I plot these values against these values this versus time get a curve and area under the curve will give me this particular term this term minus this all is tau square I have already determined tau that is mean residence time in my earlier exercise right here tau. So, from that I get sigma square that is variance why I want variance because variance tells me the extent of distribution or dispersion right. So, from variance I calculate get P E or N from sigma square this is required sorry these two are required because I want to get conversion from this. So, from this there are expressions for conversion and you know expression.  Now, you may ask me these values will be different or they are same see if they should be quite close to each other these two values if you exercise is correct these two values should be very close to each other. So, you make it say I am I. So, I will just write a value say CSTR you may get a conversion point 5 P F R you may get a conversion point 7 for a first order reaction or positive order reaction and it is quite possible that for a tank in series model you get point 6 3 and dispersion for a dispersion model you may get something close to say point 6 1 or 6 2. So, they are quite close to each other just to give an idea and they these two are going to be in between these two positive order reaction effect of mixing on the reaction conversion. So, this is how it going to be as far as effect of mixing on reactor is concern sorry on conversion is concerned when you have a tubular reactor and we are talking about first order reaction of course, it can be any other reaction, but the algorithm or the procedure will be quite similar be quite similar. So, there are many examples in assignment there are many example in text books like Levenspiel, Fogler and all like and you can solve these examples and if you are clear about the overall procedure then there should not be much of a problem. Now, there is some correlation between this N and Peclet number. So, approximately this N is nothing, but Peclet number by 2 plus 1 approximately this is approximate relationship. So, they are related. So, if you if you want to compare these two approaches where the question is like whether I should go for dispersion model or tanks in series model. So, that will depend on your choice whether you like differential equation or you like algebra equation because in the case of tanks in series model you need to solve algebra equation case of dispersion model you need to deal with differential equations. Typically the calculation wise or if you want to remember formulae and all that probably tank in series model is relatively easy compared to dispersion model fine.  So, what we have seen here is that we can use one parameter model if you have a typical E curve. So, it is always it is very important like once you do experiment tracer experiment you get an E curve you should know whether you should apply one parameter model or some other model because sometimes one parameter model may not fit I have been repeating this again and again because it is very important. So, sometimes students are in impression that one parameter model can be used for any reactor. So, after you do entire exercise realize that you have got a value which is or you come with a result which are of no use because the E curve does not represent a tubular reactor which can fit in either dispersion model or tanks in series model fine. Now, we are going to go one step ahead and look at two parameter model. Now, why do we need extra parameter because one parameter is not able to explain the flow behavior properly as simple as that as I said like if I go on changing the value of Peclet number or n I get a typical behavior like this of course this peak is going to go increase, but it is not necessary that E curve falls in these categories only or you will have E curve of this nature only as I said before I may have E curve like this I may have E curve like this it all depends on the geometry that you have it all depends on what is happening inside. So, in that case you should be quick enough to know that my one parameter model is not going to have I have to go for a two parameter model or a multi parameter model. So, here we need to know what happens inside reactor you have should have some information about what is happening inside a reactor. So, that I have proper guess as to how to go ahead now I will give you an example here. So, you have you have a normal CSTR like look reactor all I would not call it a CSTR it is a mixing tank or mixer or reactor. Now, this is the this is the way I represent CSTR, but in reality I will have a vessel I will have a vessel in that I may have a reactor sorry agitator I will have an agitator. Now, I am looking at the geometry also. So, it is not a schematic, but it is somewhat real picture it will have a nozzle here I will have a nozzle here and I have field coming in and the product stream going out from here. Look at this nozzle is now close to inlet now this is a way. So, it may be a overflow. So, the whatever extra comes in goes out from here and there is intense agitation inside. So, you have a nice mixing happening so called nice because most of the times like you do not have proper mixing in each and every corner of the CSTR or in a mixing tank for that matter. There are always some pockets in the reactor which do not see the kind of turbulence intensity which is there near the impeller you can very well appreciate this fact. See if you want exactly same amount of turbulence intensity or mixing level everywhere in the tank then you need to put agitators as many agitators as possible at every position in the reactor is not it that should be the case, but that is not practical. So, normally you have only one agitator for some time you may have one shaft on which you have multiple agitators or impellers mounted. So, it is quite possible that if you are away from the impeller especially in the corners then there are stagnant pockets. So, what is likely to happen in this particular case see the feed is coming in and you have certain dead zones possible. So, at this point is away from agitator this point is away from agitator. So, somewhere in this part you will have sorry I will use another pane you will have dead zones. This is not a only effect another effect can be that some of the stream see there is a stream you can imagine now this stream gets divided in several sub streams. So, it is quite likely that some part of the inlet stream will directly go here and will not see the agitator at all what is this is bypassing these are dead zones and in between you have perfect back mixing in between or other in this particular region sorry. So, now I have three things happening bypass dead zones and mixed zone. I know how to model this this is like an normal CSTR how do I incorporate this how do I incorporate this in my model. So, I need to have a combined effect of all this happening here.  So, all these three effects are going to tell me the conversion or go to decide a conversion. So, if I just assume a normal CSTR a mixed zone I may go wrong. I need to consider these two effects also which are probably not desired, but definitely I have to consider them to design the reactor bypass and dead zones and there is no provision to consider these effects in my one parameter model that is tanks in series or dispersion model there is no provision for these. So, I need to have additional parameters I need to complicate my model further. So, that I get these effects incorporated in my model and my prediction of the conversion will be more or it will be closer to the reality. Thank you will discuss this further in the next lecture.


I'm actually going to try and stay put this time, because the last time when I spoke at this conference, they gave me a hand microphone, and I kept walking over there, so they had to adjust the spotlight, and then I would walk back here, and they had to adjust it again. I did that a couple of times, and then in the middle of the talk, they were like, she's not going to stop this, and then they just switched on the stage lights, and no idea what was happening. I was like, so I'm just going to try and stay here. All right, so as you might have guessed, I'm Laura. I'm software engineer. I work for a company in Tokyo right now. We mostly put iBeacons into vending machines and then do a lot of cool stuff with them and some more things. But you can ask me about that later if you want to. And I'm going to talk about writing better errors today. What I'm not going to talk about is how to craft the perfect error message, because I feel like there's already a lot of literature and talks and stuff about that out there. But what I've always been missing is kind of that step before, to figure out what you actually want to say and to whom. So I want to take a step back and talk about the high-level perspective, more about the approach, how do we communicate errors. I recently got a room bar from a friend who is moving away from Tokyo. And if you don't know what it is, it's kind of like a tiny little vacuum cleaning robot which goes around on your floors and cleans them. So I got it and I brought it home and then I wanted it to clean my floors. So I put it on my floor. And I pushed a big clean button and I expected it to clean, but it refused. Instead, it started blinking at me. And I was like, I'm not quite sure what it's trying to tell me. And because I'm a highly sophisticated engineer, I decided to approach this issue with a time-tested and proven best practice method. I pushed a random button to see what it does. Maybe we can use a lapel mic to put it to you. No, it's okay. This is kind of far. You put the stand in there. You want me to be closer to the microphone? Yeah, that'll do it. Okay, I can do that. Right. So I pushed this button and it started speaking to me in Japanese. And I was like, I can speak some Japanese. It's not that great. And I was like, I don't know. And I pushed a button a couple more times. And I finally figured out it was kind of trying to say something about error 2. So I deployed another time-tested method, which is Googling the error message. And this is what I got. Error 2 opened Roomba's extractor frame and clean extractors. And eventually I figured out what it actually wanted me to do is to clean the brushes. And so this is like most people nowadays don't really interact with robots every day yet. But what a lot of people do interact with a lot is software on a daily basis. And you kind of get the same stuff there, right? It's like, you see this or like... Okay. And it's not really that helpful, right? And we're like, oh, that's all like desktop software, like, you know, those Photoshop people or let's not even talk about Windows, you know. But we kind of do the same thing to the people that use our stuff. It's like, that's not helpful. Like even more racy stuff, you know. This is not the research you're looking for. I didn't even know I was looking for a resource, but thanks. What do you do with this, right? And so I was starting to think like, what's the problem? Like aside from the fact that these error messages are clearly not helpful at all. Like, why aren't they? And I think the problem with these messages is that they tell you what's the problem. And I was like, isn't that what you want to know? Like there is an error and you kind of want to know what's the problem, right? I was like, is that really what you want to know? And I started thinking some more about this because I was like, huh, I am frequently on the receiving side of these error messages. But since I'm a developer, I'm probably also somebody who causes other people to face these error messages. And I was like, maybe there should be something done about it. So I was kind of trying to take a step back and was like, if there's an error, like what is this error? And what am I trying to say about this error?  And so I figured, and I was like, okay, who am I talking to? Whenever I have an error, there are probably some different audiences. What could these audiences be that would be interested in this error that just happened? So first of all, we have the developer. Like we have a product, we have an app or something. There's a person on the back end, assuming we have a server client architecture. There's a person on the back end that writes this stuff. And their job is to figure out how to fix errors that shouldn't happen. Who else do we have? We have people that use our stuff. If we have an API, our product is an API or has an API, we have an API user and what they need to do is to figure out how to correctly call the endpoints that we provide to them and get the response that they expect. And last but not least, we have this guy. If our thing is our product is an app, a web app or a mobile app or something. We have the person that actually needs to figure out how to use this app and how to do the things that we promised them they can do with our product. So now we have our audiences, the other users and the developers. Different types of users, the developer writes the thing. Now we have errors. And for this one, I'm going to really generalize a lot. But I feel like it's helpful categories. We have user errors. I call them user errors. These are errors that are actually caused by the user, by inputting things that are incorrect. And these errors are expected. They have rules.  Or you have to input something can be longer than this stuff like that. You're not supposed to use a credit card that's expired. So it's not necessarily to use this fault, but they cause it. And if they know the rules and they follow the rules, maybe that's a little German in me. I'm like, just follow the rules and everything's going to be okay. So if you follow the rules, then the error goes away. And then we have this other type of error, which I'm going to call the server error for now. It's stuff that happens, like, in your code, in the back end. And it's unexpected. It has no rules. Like, there's nobody that, like, no error message that you can possibly write for a bug that tells you right away, like, oh, here's what it is, and this is how you fix it. It would be great, but unfortunately, it doesn't usually happen. So you actually need to go and investigate if something like this happens before you can fix it. So our two types of errors are the user errors and server errors. And now we can chart this up. We have users. We have developers. We have user errors and server errors. And now we can think, like, who actually cares about all of this stuff?  Like, I got to deal with this. If I have a user that faces a user error, that's something they can fix. They just need to input the right thing. They need to know what they should input and then do it. A developer that writes this code, like, at the point when the user actually inputs something, you can't really stop them. Like, there's nothing you can do about it. You can try to make it clear and everything, but if they do something wrong, you can't stop them. So you kind of can't really fix this. On the other hand, if you have a server error, a user can't really do anything about it. They can't go into your code and kind of try to fix the bug and you don't really want to anyways. You can and you must, however, fix your server errors. Like, if there's a bug, you have to go and find it and fix it. So what you really care about as a user is the user errors. These are the ones that you have to handle or deal with and as a developer, you mostly want to know about the server errors. And as we already figured out, server errors and bugs mostly, you have to know what's the problem. Because you have to figure out on your own, like, what's wrong. You have to have all the information that you can get to debug. However, as a user of an app, I have exactly zero interest in debugging this app that I'm using right now, or this API that I'm using right now. I just want to use it. Here we go. So I don't really want to know what's the problem. That's just a step on the way. What I really want to know is how do I make this problem go away? And now if we look at this kind of error message, guess who wrote this? The person who wrote this is a person that is used to dealing with errors on their side, where they don't really have a solution of how to make it go away. They just want to know what's the problem. And that's what they tell the other person as well. For them, however, it's not actually what they want to know. So if we keep that in mind and look at it more on a, I guess, like a system level or a flow level, this is my extremely creative flow diagram. When we have a request coming in from some kind of interface, like no matter if it's like an API or like an app or whatever, an error happens here. What do we do? If this is an error that is actually interesting for me, the developer, I got to log it. Like I got to be informed about this error. I got to know what happened. So this is basically a logging. And you want to put everything there that tells this person what is the problem. On the other hand, I also got to communicate it back to the interface. And here I really don't want to know what's the problem. I want to know how do I make it go away? Can I make it go away? So we're splitting this up. We're deciding what is this? What kind of error is this? And who am I talking to about this error? And now that we know that, we can kind of think about a bit more, how do we communicate this? Because now we know what we want to say and to whom. So what about user errors as a developer? Is that something that interests me at all? Most of the time, I'm kind of like, I don't really care. However, this is something that I've actually experienced on products that I've worked on. If you constantly get input about users not being able to do a thing or they always make errors, they do the wrong thing, you can kind of turn on to selectively log input errors, like this kind of errors on an info level and see how often they happen and at which point they happen.  Then you go and talk to the UX people or whoever made this thing to figure out how can we actually not make this happen so much. Because we have to communicate the rules to the user, but in this case, me as a developer, I actually want to know how to not make it happen. As a user on the other hand, I'm concerned at this point like how do I make it work? So what do I want? As an app user, first of all, I want really clear and readable layout. I don't want to kind of try and have to kind of look around and see what it actually is. I want to see it right away and when it's super clear, I want to localize if possible.  It can be English depending on the country. If you're in a country where you can't assume, everybody speaks English really well. You have to then do something else. For example, in Japan, it's usually not a reasonable assumption to make English error messages. You probably want Japanese. You really want to provide a clear course of action to solve the problem, no matter what it is. You tell them you uploaded something that is too big, upload something that is maximum one megabyte, or your credit card is expired, use a credit card that is not expired. Use a coupon that hasn't been used yet, whatever it is. Tell them what to do. That kind of ties in with the other one. If you want to minimize these errors from happening in the first place, the best error is the error that never shows up, that never happens. You want a lot of front-end validations for stuff that you can validate in the front-end, and you want good UX for people to understand what they actually are supposed to do. If we have API users, the thing about them is, they usually are developers also. They just can't look into your source code. They have to talk to you through this API interface. They kind of understand. You don't have to guide them along that much, because they're used to debugging also. But you want to make it super easy for them to know what went wrong and how they can make it right. So, use matching HTTP status codes. There's actually... So, there's a service that I have had to use at work, and they have an API, and this API has an endpoint, like an endpoint one, and to tell this endpoint what to do is you put into the body of your request an ID that says, for example, I want to do, like, register something. You put ID 022, and like all the other parameters, and then you send it, and this endpoint will always return 200 okay. No matter what happens. And then in the body of the response, you will have an error code. If there is a result, which is 0 if everything was all right, 1 if there was an error, then you have an error code, which tells you what kind of error it was, and then you have a detail error code, which tells you what kind of detail error it was, and then you have to go and look at a gigantic list of custom error codes to figure out what went wrong. A person on Twitter, like I shared this on Twitter, and a person came up with the app description of this as 200 okay, but... So you can, like, I mean, as it says in the second point, put in specific error messages, put all the custom codes you want, but still use reasonable HTTP status codes. There's a reason why there are standards for this, right? And include everything into the response that makes it clear what to do. Like you say, like, parameter something is missing. If you just say parameter missing, that's not helpful. Parameter blah is missing. Our validation failed because here is, like, how to make a valid request. Also, kind of like the front-end validations on the app user side and the good UX, write really clear documentation because API users do occasionally read the manual, so give them one. It's going to be a lot less trouble for you afterwards, and that's the API user. What about server errors? As a developer, this is something I care about a lot because I need to fix them. So you want to make sure that your code has robust error handling. Like, if there is a bug or an unexpected error, you want to kind of minimize the damage. You don't want everything to crash and burn. You want to log it and report it, like you use, like, air brake or roll bar or whatever, and include as much information as possible. Like, most of these services, like, they give you a gem or something that you can include, and they already pull out a lot of info, like, they give you the backtrace, they give you the actual error, they give you the parameters and everything, but whatever else you have and you think might help you actually reconstruct this error and be able to redo it and find what is the actual issue, put it all in. Like, send it to your logging service. Do make sure that someone actually gets notified because you can have all the logging in the world and all the error reporting in the world if nobody ever looks at it. It's kind of pointless. So what we do, for example, we have our, like, we integrate our roll bar with one of our Slack channels. So whenever there's an error that happens for the first time, that happens repeatedly, we get notifications on Slack if it's a production system. If developers aren't that one, and then you can actually go right away and look at it and evaluate, is it something that you have to fix right now? Something that you can fix later. And if you want to, if there was an actual bug that affected users, you can then announce publicly on a changelog, for example, that it was fixed, so people know, hey, it's not going to happen again. What about users and server errors? It does impact them, right? I mean, they really don't want to know what went wrong because they can't do nothing about it. They do want to know kind of what's going on, especially tell them that it's not their fault.  Like, did I break it? Like, did I break the internet? Did I break something? And so you got to tell them, hey, this is what happened. It's our fault. This is what to do next. And it can be, for example, just try again later. We're like over capacity. We can't serve you right now like just try again later. Or, hey, this is an actual problem with your stuff. Please contact support. I found this little cartoon and I thought that's quite descriptive because like this kind of stuff is scary to users. So if you just say, whoa, error, bam. They're like, what am I going to do now? What am I going to do now? Did I delete my data? Did it charge my credit card? Did it charge it like five times? Can I order again? Like, what do I do? Or you just tell them, hey, something went wrong on our side. You're safe. Just try again later. And they're going to be like, phew, okay. I'm good. Just going to try again later. So instead, for example, of sending something like this, which is still scary. And I'm like, to a developer, it makes sense because this is what happened to a person who doesn't know. It doesn't make any sense at all. It's just scary stuff. You did something wrong. Instead, you do something like that.  You know, it's okay. Like you can just write the message. Like even if it's not nicely styled, just say it. And the 80-20 rule, like, you know, 20% of effort brings you like 80% of the way. So if you just say it, no matter how, it's already going to be much, much better. And this is pretty much what we want, right? For everybody who is interested, everybody in our audience, we want to achieve or we want to enable them to solve the problem that they're facing in the best way possible in the fastest way possible with the minimum of frustration, no matter if it's a developer, if it's a user or anything. And now that we know what we want to say about what kind of error, to who, we can now go out and figure out how to write the perfect error message, how to word things, how to display things. But this step about, like, what am I going to communicate to who? That's like, that's been like the missing link for me of like going from an error happens to what kind of thing do I put into my error message? And this is pretty much what I wanted to share with you. So I hope this is helpful to you when you handle your errors in the future and communicate them to whoever is interested in them. Thank you. Awesome stuff. Thanks, Laura. I think it's a great message to think about the people going to see your errors and give them some direction of the do next. Can we get some questions, please? Yes. Okay. Hi. Thank you for the talk. What do you think is the major problem with, like, because you showed the 500 in Rails error message, and I mean, I've seen it a million times, and I think, oh, what do you think is the reason for that? Because if I can make a comment, I think most people don't know how to kind of, I mean, I wouldn't know how to keep, like, how to track what error happened, because, you know, you have this 500 generic handler in Rails, and then once this exception is happening, you basically lose information of, okay, was it, I don't know, the wrong credit card number, or was it, I don't know, red is a connection broke or something like that. So I think, I'm asking, how would people track what actually happened, especially in Rails? Track is for, like, the developer, like, what error happened, or track for the person who sees it on the front end? So the developer has to basically track what happened, so you can render a meaningful error message. Well, I think for, I guess what I was trying to make clear for 500 errors. I totally think we should talk German, by the way. Like, for server errors, there is, you don't really want this, so if it's a 500, then it's most likely some kind of bug, and you don't really have to communicate to the user, hey, this is exactly the bug that happened because they don't really care. It's not going to work for them until you fix the bug. So for a 500 error, you just want to tell them, hey, something went wrong on our side. So you don't really need to figure out at this point what went wrong and show it to the user, but you as a developer, you need to know, so you want the error handling that actually, like, as the exception gets raised, you catch it or you kind of handle it and log it to your logging system. So you can then get notified and say, like, hey, this is where it happened, this was the error, this is the back trace, and you get it. Cool, thanks. Do you think, actually, it is a good idea to tell the users to try contacting us or something like this, or to try again later these messages? Because I think that if you say try again later, the users will just keep trying, and this bug is, like, you know, over and over, and they are just frustrated because what does it mean later? Does it mean in five minutes or five days? And the other one is when you say contact us, then suddenly you've got 50 emails from users and I saw this error, but me as a developer, I already saw it in my error tracker, so the user actually doesn't have to contact me, I don't need it. So do you think that doesn't it make users only more frustrated because they expect the immediate response from you when they contact me? Yeah, that's a good question, and I think it really depends on the kind of error because, like, even on the server, you get different types of errors. If it's a bug, like, an unexpected error, like, completely unexpected, you've got to fix the bug, like, it goes away. However, if it's, for example, because you temporarily couldn't reach some microservice, or something timed out, and then you're like, okay, I know this is, like, a 503 or a 504 or something, and then you know, like, okay, if they try again, it's probably going to work. Then you can tell them, like, oh, just retry. If it's something where you really want to contact support, that would probably be, like, if you can figure it out by the type of error being raised, then you actually have a problem with your data. You know, like, if something got missing and they're just trying to kind of actually get a resource that's not there anymore, but it should be there, but they won't fix itself. It's not an actual, like, code error, but it's more like a data error, and you probably have to have someone fix it for them, like, specifically for that person or for that user. Yeah. Any other questions? Yeah. Hi. Thank you for your talk. It was exceptional. Thank you. Sorry. I really enjoyed your presentation. I was wondering, for the category of errors when we're just showing 500 pages, where it's something that happened on the back end and we don't need to inform the end user what happened, do you think that that's the type of messaging that belongs on that page is generic enough that it could be a similar thing for all websites? I mean, I guess what I'm trying to get to is is there a... Could we possibly change the 500 page... the default 500 page on Rails such that it's... or the production 500 page such that it's better for end users by default? Is that something you think would be possible, or does it have to be customized per site? Probably, if you want to do it 100%, you can probably customize it per site, but I think it could be a lot better as a default just because if I'm developing, if I'm doing it on my local machine and stuff, then sure, as a developer, I know this internal server error, I know what that means. If it's displayed to a user in production, I think that's actually a very good idea to say something that makes sense out of the box to a person who doesn't know what this is about. Thank you. I have one more comment. I think that if you have a website, you have an application that processes users' money, if users use credit cards or something to pay you, and there is an error on the payment step, you shouldn't contact us, you should tell we will contact you. I think that it's just not developers, but the company's good practice to be proactive because users will panic if they see an error and they provided you their credit card number. I think so. If you actually manage to catch it, some kind of error, that's not a kind of no method error or something, and you know that their payment wasn't processed or it never even reached, for example, the credit card provider tell them, especially about credit card payments, because that's something that people don't think is funny at all.  If I order again, will they charge me twice? What happened?  This was a process that involved payment an error happened, please check on this user. Was there a payment? Did it go through or not? How useful do you think HTTP status codes are to users? Which kind of users? Actual app users. You still see quite a lot of 404 pages with the numbers 404 in them. I'm just wondering, is it so common nowadays that people know a 404 means a page cannot be found, or is it still like our developer bias coming in? I guess the thing with the 404 is that's kind of the one status code that's kind of ambiguous, because it could be like this page doesn't exist, like this path per se, or like this actual resource that I was trying to find doesn't exist. So that's one of the bit more difficult ones, but basically it says something wasn't found. I don't think the number means anything to people. It just kind of shows up, but what a lot of websites do is like, oops, we couldn't find what you were looking for, because of something. And then you still kind of, I think it's better to actually say, hey, what should you do, if you can do something. But like the number per se, I don't think it means anything, unless you target, like your target audience is actually a developer, like if you're a GitHub, like people who use your service are developers, so they're going to know what is 404. But if it's something completely unrelated, I think the number probably doesn't mean anything to actual end users. Cool. I think we have time for one last question, if there is any. Do we have anyone else with questions? No? Okay, thank you very much. Thank you.