explain recursion to a non technical person

It's too abstract and boring for them. And trust me: They'll understand it in no time. It associates various information with domain names assigned to each of the associated entities. Do: Open Russian Doll: If there is a doll inside, do "Open Russian Doll". I hope this article brought you more clarity about recursion in programming. If you skip over this step, you really are not even turning your translator on. This article is based on a lesson in my new video course from Manning Publications called Algorithms in Motion. Google Product Manager Interview Questions, Meta (facebook) Product Manager Interview Questions, Meta (Facebook) Product Manager Interview Questions, Amazon Product Manager Interview Questions, Microsoft Product Manager Interview Questions, Product Management Product Design Interview Questions, Product Management Product Strategy Interview Questions, Product Management Product Improvement Interview Questions, Product Management Estimation Interview Questions, Product Management Behavioral Interview Questions, Product Management Metrics Interview Questions, Product Management Problem Solving Interview Questions, Product Management Technical Interview Questions, Product Management Execution Interview Questions, Product Management Product Launch Interview Questions, Product Management Leadership and Development Interview Questions, Product Management Other Interview Questions, Product Management Product Growth Interview Questions, Product Management AB Testing Interview Questions, Product Management Resume Review Interview Questions. (actually this function isn't working as intended, it was created only to show you the concept of recursion). Lawful Neutral, "Software Engineer" - DevOps/Release Engineer. Access to the series is completely free, if you have found it useful (Just like him, you think.) Acknowledge the things theyre good at and let them know you have respect for what they do. People from all areas have to explain industry details to stakeholders who might not know the jargon. I believe it's better for everyone if a software developer uses proper . And when the time comes, they'll understand and know how to apply it. k6 = k5 +1 Tara Lagu b : not being or using technical or specialized terminology He needs to understand the algorithm before he can understand the code that will accomplish it. Azure DevOps and git admin with a weird interest in rsums and portfolios Let me try to explain with an example. 24 likes Reply George Marr Oct 7 '18 Edited on Oct 7 Imagine you go to open a room, but the room is locked. Direct Recursion: These can be further categorized into four types:. When trainer calls Pokemon it's "normal" function call. @MGZero Haha, I learned decimal division and a little bit of extremely basic pre-algebra at that age! The prototypical question here is "Can you explain recursion to a five year old", i.e. Everything needs to be communicated in simple terms with a non-technical audience. The function might have more than one base case, but it must have at least one. With you every step of your journey. Because Lucidchart isweb-based, those visuals and diagrams can be shared remotely with other departments or incorporated into a video conference for an expanded presentation. Someone in a movie theater asks you what row you're sitting in. The first step is finding within yourself the patience and willingness to translate your information into non-technical terms. Notice how each call to fact has its own copy of x. Just what does the listener already understand? Take time to allow them to wrap their head around your subject, avoiding the urge to cram every detail on a slide and just reading it aloud., If youre going to use PowerPoint to convey your information, remember that every slide should enhance the presentation and not detract from it. It's not about function calls, but about behaviour. So here the base condition is to know a person who knows how many are standing before. So, the base assumption here is that my grandma is totally unaware of any of the programming concepts. Try it yourself. "What do you mean add 'them' up, it's just one card.". That silence is a vacuum that begs to be filledand that is the time when the listener either confirms that they are up to speed and you can move on or that they are still floundering. This process once again gets on and on until the person before grandma knows how many people are before him and replies the same to you. k5 = k4 +1 Take the time to explain what a database is. In conclusion, using any one of these tips will help keep in mind the average non-technical listener. Most people dont know how to interpret all the lines, angles and numbers, so it would be a waste of time for an architect to get into the details about how they measured the spacing. This is very important to making recursion work. I do think that the skill of communicating technical ideas can be learned. Somebody on the team needs to be able to communicate with these stakeholders. We have clients across the U.S. in domains including engineering, scientific, manufacturing, education, marketing, entertainment, small business and robotics. Recursive functions use something called the call stack. When a program calls a function, that function goes on top of the call stack. I tried with the Fibonacci Series but i failed. When singer, e.g. As suggested, use fractals. Crucially, recursive functions can propagate information through multiple calls by passing variables around. Ackermann Function without Recursion or Stack, Theoretically Correct vs Practical Notation. The most common application of recursion is in mathematicsand computer science, where a functionbeing defined is applied within its own definition. Some of them I ask when interviewing people. (2) You must develop a mental technical-to-non-technical translation device. However, when your goal is to simplify technical information, working to visualize your concepts can be a much more effective communication medium. Here is a recursive function to calculate the factorial of a number: Now lets see what happens if you call fact(3) The illustration bellow shows how the stack changes, line by line. Tweet a thanks, Learn to code for free. It would've been bonus points if you had explained when you would use recursion vs. iteration and also what the downside of recursion could be (e.g. What are the considerations to determine whether you can use recursion to solve a problem? 2^4 = 2^3*2 In its simplest form, a recursive function is one that calls itself. Are functional languages better at recursion? Speaking in technical terms can isolate people who have less familiarity with the material at hand. Okay whatever, so the last person just says the number on the card. I will show you the call stack in action with the factorial function. What they will comprehend is a simple statement explaining that users will be able to request refunds more easily, alleviating stress on the accounting department. Non-technical roles are job positions that do not require you to have coding or other core IT skills. All content 2023 tosbourn ltd.The registered office address is The Knoll Business Centre, Unit W8A, 325-327 Old Shoreham Road, Hove, BN3 7GS. You add things one at a time. k8 = k7 +1. We were founded in 1993 and are based in Ann Arbor, Michigan. Made with love and Ruby on Rails. Many of the key stakeholders who are consulted for software product input may not be technical. Recursion is the repeated sequential use of a particular type of linguistic element or grammatical structure. I was speaking with respect to the average. This is a technical article catered to developers, technical project managers, and other technical staff looking to improve their skills. Example PM technical interview question "How would you describe an API to a non-technical person?" This is a reasonable question to expect at a company that has a . Reddit and its partners use cookies and similar technologies to provide you with a better experience. So they hatch a plan. Drawbacks of nonrepudiation with digital signatures. Why doesn't the federal government manage Sandia National Laboratories? (2) You must develop a mental technical-to-non-technical translation device. We also know that from looking at our 5 * 4 * 3 * 2 * 1 = 120 example that if we knew the factorial of 4 (4 * 3 * 2 * 1 = 24) we could just write 5 * 24 = 120. Let your listener digest. (3) You must realize that communication is always two-way. Since five is not less than or equal to zero, we go to the else statement. Showing others your willingness to explain things with a sense of humility is more important than trying to impress them with how smart or knowledgeable you are.. Concerning the "why you would use it": Does this matter to non-programmers? It will help give you a home base for direction, so if you start to sway too deep into a topic, you can pull yourself back and cater to the needs of the listener. By Keith Shields, CEO atDesignli, a digital product studio that helps entrepreneurs and startup-minded enterprises launch transformative apps and web apps. n=0 is the base case, and we simply return 1 if it's true. Heres the second way in pseudocode. This is a BETA experience. If you read this far, tweet to the author to show them you care. The recursive function's structure can often be modeled after the definition of the recursive data structure it takes as an input. More simply, recursion has also been described as the ability to place one component inside another component of the same kind. then you say, well i don't want to write them all down, so i want to generalize it, and one way to do it is to say Why did the Soviets not shoot down US spy satellites during the Cold War? This course breaks down what recursion is, why you would and wouldn't want to use it, and shows a variety of examples for how it can be used. Don't try it with mathematics or whatever the other people here are suggesting. The techniques for executing recursive functions are well-known: each function call has a piece of memory, called a stack frame. Think of it like reading an architects blueprints. Koch's Snowflake is _/\_ defined by "forward, left 60, forward, right 120, forward, left 60, forward. Boxes inside of boxes. This might be pretty complex internally. Also, other stuff. "basic approach behind recursion" is NOT "divide and conquer" -- it is "code reuse" :). Hi, Emmanuel, Thank you for your vote of support. Connect and share knowledge within a single location that is structured and easy to search. (divide and conquer) then use a simple visual example side by side with the code to explain how this relates to recursion in code. Since many sellers don't mark items as sold, what existing functionality and metrics could you use to determine whether an item has likely sold? Are they in a creative field? The second is how to measure . The communication skills necessary to present knowledge-specific information to non-techies is growing in necessity. One problem is that this destroys the deck. Those same software engineers often have all of the raw material to be great communicators. Communication and stakeholder relationships are crucial to the success of a data project. Donations to freeCodeCamp go toward our education initiatives, and help pay for servers, services, and staff. Boost your confidence in PM interviews by attending peer to peer mock interview practices, group practices, and QA sessions with expert PMs. really simple language. Do you need to explain the difference between client-side and server-side programming? The first is to compute non-loop attack paths with the distance less than the given number that the real attacker may take practically in realistic attack scenarios. Tail recursion is a form of linear recursion. Explanation: Here, the fact function uses recursion to calculate the factorial of a given number. Well-known Google joke featuring recursion. Copyright 1995-2023 - STOUT SYSTEMS DEVELOPMENT INC. - All Rights Reserved, How to Explain a Technical Subject to a Non-Technical Person: 3 Tips, Tech Workforce & Hiring Trends - February 2023, 4 Issues Preventing Your Company From Attracting and Retaining Great Software Development Talent, When Its Down to You and Another Candidate, Tech Workforce & Hiring Trends - January 2023, End users are often experts in the domain of the software product, but that doesnt necessarily mean that they are technical.. In tail recursion, the recursive call is the last thing the function does. :D. In the programming world, you can find recursive algorithms, such as sorting ones, and you can guess they aren't looping on themselves infinitely, we always add a return condition to be sure we won't have an infinite loop. If the piece of fish fits in your pan, you're done, Follow "Fish-Cutting-Steps" for each half. Tall parents tend to have tall children, but shorter than themselves while short parents tend to have short children, but taller than themselves. To break the ice, jokingly acknowledge the fact that youre a computer nerd or tech geek and apologize in advance if you get too technical. If you continue to explain and simplify until the lightbulb goes off, youll be certain that you and your audience are on the same page. The Egg Dropping Problem. 2^4 = 8*2 = 16 Doesn't change the fact that most people learn it when they're 8. and it is defined like this: 5! We also have thousands of freeCodeCamp study groups around the world. lets say you know the k element, and you want to know the next element, you can express things in a few ways, one of them is For further actions, you may consider blocking this person and/or reporting abuse. What the recipient of these blueprints cares about is the context (that the remodel design will allow more people to fit in the same office space) and the impact (the company saves money by not having to lease a second building). If you provide us with your mobile phone number we may send you limited texts related to your submission. @MainMa, we had recursion on the first day of our computer sci degree - that way students that were not up to computer sci could change degrees quickly (pity more of the "hopeless" ones did not make the change). This sounds complicated, and trust me the first time you try and get your head around this it can be tough, but lets work through an example. Thinking about how you would explain something to a child may seem patronizing, but it is often a workable approach. By accepting all cookies, you agree to our use of cookies to deliver and maintain our services and site, improve the quality of Reddit, personalize Reddit content and advertising, and measure the effectiveness of advertising. Or does your listener already understand? You are too lazy to count, so you ask the person in front of you. Explain how you only want them to better understand the technology and that their unfamiliarity with how it works is not a reflection of their intelligence. It'll be good for their development and creativity. sacrificing some of the nuances of it. Visual content is easier to learn and more frequently recalled than concepts learned by reading or just being told. If you continue to explain and simplify until the lightbulb goes off, youll be certain that you and your audience are on the same page. 8-year olds can be smart, but their brain is not really equipped at that age to grasp this level of abstraction. Later you may suggest including some little discrepancies, like using 59 degrees instead of 60 Generally, Logo is awesome language to teach recursion. Jul 16, 2018. Then, move on to factorial, length of list, sum of list, simple mathematical formulas in this area. You could write it recursively in JavaScript like this: This function will keep counting down forever. Often, the value of the recursive call is returned. Where the term self-reliant suggests a person or persons who have acquired a certain level of expertise without necessarily being professionals. The second way uses recursion. recursive: [adjective] of, relating to, or involving recursion. However, if you really feel you need to explain something you could use the medical receptionist analogue. Recursion involves several numbers of recursive calls. If you found this article useful please consider sponsoring us on Github, our goal is to be able to spend our time writing useful articles for the community. There may be a situation where a non-technical person really does want a relatively in-depth understanding of the problem at hand. Despite your best efforts, non-techies (as well as fellow technical professionals skilled in other disciplines) may feel theyre being talked down to whenever you present with new information.. Let's write code for that. In c++ please with clear indentation thank you so much Write the simplest program that will demonstrate iteration vs recursion using the following guidelines - Write two primary helper functions - one iterative (IsArrayPrimeIter) and one recursive (IsArrayPrimeRecur) - each of which Takes an array of integers and its size as input params and returns a bool such that 'true' ==> all elements of . How did Dominion legally obtain text messages from Fox News hosts? These are some of the most common tools used for incremental problem solving in any . However, it is important to impose a termination . So if my number is 5 it would be multiplying 5 by the factorial of 4. Put a period on a paragraphand then take a breath. k4 = k3 +1 The idea used by compilers to optimize tail-recursive functions is simple since the recursive call is the last statement, there is nothing left to do in the current function, so saving the current function's . Then, when you are ready to take something off, you always take off the top item. Python developer with some experience in Image Processing. Privacy Policy. You may need to conduct regular meetings to provide your organization's non-techies with the in-depth understanding and appreciation they need. You can use it to create art. They are able to think "recursive" then. I run the freeCodeCamp.org YouTube channel. To start, whats the most important takeaway? Although it may be second nature for you to throw out acronyms like GCP and DBMS, certain terminology may confuse or disengage the less technically savvy members of your audience. Do it properly, and the chances of success are so much higher. Your classmate says fine, but then realizes there must be like 49 cards in this deck, which sounds like a lot, I mean come on? Detect Palindromes. Likewise, use real life tangible objects to compare with your technical topics. How can I recognize one? What does a search warrant actually look like? Those functions are pretty useful to apply a repeating behaviour to a serie of data. This example will be in Ruby, dont worry if you dont know Ruby, I will be explaining it line by line. The Domain Name System (DNS) is a hierarchical and distributed naming system for computers, services, and other resources in the Internet or other Internet Protocol (IP) networks. Thanks for keeping DEV Community safe. Like, number of legos in a box after applying the next step in the algorithm (which I'd advice to call something less scary, such as a turn or a step). They don't know either, and ask the person in front of them. For formulas, give him something concrete that he can relate to, rather than just numbers. Interested in Computer Vision. Lucidchart is the intelligent diagramming application that empowers teams to clarify complexity, align their insights, and build the futurefaster. This is great. The Sierpinski's Triangle as mentioned by Mihai Maruseac is a nice start. Take some time to make sure your audience understands the context of the situation.. I still belive he has much greater chance with cartoons then with Fibonacci or any other mathematical concept (which might draw even greater confusion). It will become hidden in your post, but will still be visible via the comment's permalink. The method has called itself. How much of what you were told went right over your head? Templates let you quickly answer FAQs or store snippets for re-use. If you learn best through books, get the book! In programming languages, if a program allows you to call a function inside the same function, then it is called a recursive call of the function. The third-to-last person takes the number that the second-to-last person tells them and adds it to the number on the card they kept, and so on back up the line. You get the number that the second person tells you and add it to the one card you kept. But it will take work. Remember, the first method was iterative using loops. But that termcommunication skillsis so broad that it can be hard to figure out what you should work to improve. With some planning, non-technical audiences will begin to applaud your efforts and really learn what you're trying to teach them, instead of becoming frustrated and complaining about your efforts to their bosses. Do your homework beforehand so you have a good picture of the hassles and headaches of attendees - then craft your presentation to specifically tell them how this technology is the answer. The why is the broader context and impact of the information being shared. This will give the kid something tangible to grasp at. if he doesn't get fibonacci, then get him to understand the math before explaining the code. Expertise from Forbes Councils members, operated under license. target number the number we know the step to the next element. For some perspective on this, think of the last time you went to a medical specialist. I mean, come on, adding a couple numbers is fine, but there are probably like 50 numbers in this deck of cards. a : not related to technique or technical skills or subjects Most of the criticism focused on nontechnical aspects of carenot whether the diagnosis or surgery was correct but on the overall experience of the patient. Your non-technical person needs to make a decision. We log the number 4. For instance, you may want to write a count down function. I highly doubt that an 8 year old is going to grasp the concept of a kth element or exponents. Tear them apart and you'll find that the smaller parts will turn out to look like the big whole you once had, just smaller. code of conduct because it is harassing, offensive or spammy. Instead of throwing in specialized words, choose an easier synonym, offer a definition before someone has to ask and include analogies to illustrate topics. Your three-year-old son pops in from around the corner and lets you know he hid the only key in a box. You can either give them the relevant information needed so they can make an informed choice, or you can boil it all down to "trust me".. Is something's right to be free more important than the best interest for its own species according to deontology? Can I use a vintage derailleur adapter claw on a modern derailleur. Recursion(adjective: recursive) occurs when a thing is defined in terms of itself or of its type. Are you trying to convince your CMO that no-code platforms for citizen developers will dramatically reduce the product backlog? There should always be two parts to a recursive function: the recursive case and the base case. The function has to process or perform any operation at the time of calling and it does nothing at returning time. In my case and your case, we're just outside of the average. In fact, Lucidcharts intuitive format may inspire further collaboration and improve working relationships throughout your entire organization, between technical and non-technical departments alike. Recursion can be tough to understand especially for new programmers. In Ruby we can then test it by asking for the factorial of 5 (which we know is 120). Your three-year-old son pops in from around the corner and lets you know he hid the only key in a box. That's a pretty good off-the-cuff explanation, though it begs the question of what the point of all that recursive paper-folding is. Play Tower of Hanoi using stacking rings every toddler probably has in their play bin. Recursion, though, is a fairly elusive concept, often used in slightly different ways.1 Before I delve into some of the complexi-ties, let's consider some further examples to give the general idea. One way to ensure that you start out at the right level of explanation is by asking the listener what they do and dont already know. Python Recursion. Write down the steps to cut the fish so it fits in the pan. Why must a product of symmetric random variables be symmetric? Must a product of symmetric random variables be symmetric is a technical article catered developers... 2 in its simplest form, a recursive function is one that itself. No time in the pan of them based on a paragraphand then take a.! Article is based on a modern derailleur base case the ability to place one component another! Adjective ] of, relating to, or involving recursion Emmanuel, Thank you for your of. It was created only to show them you care attending peer to peer mock interview practices, group practices group... Article brought you more clarity about recursion in programming a medical specialist it created. And a little bit of extremely basic pre-algebra at that age to grasp the concept recursion... To your submission necessarily being professionals that my grandma is totally unaware any! So, the base assumption here is & quot ;, i.e three-year-old son pops in from around corner! People from all areas have to explain what a database is tools for. Software product input may not be technical always two-way be smart, but will still be visible via comment! A modern derailleur Dominion legally obtain text messages from Fox News hosts at and let them know you have it... A box Manning Publications called Algorithms in Motion mentioned by Mihai Maruseac is a start! Sitting in diagramming application that empowers teams to clarify complexity, align their insights, and chances! Not really equipped at that age to grasp the concept of recursion the... Whether you can use recursion to solve a problem brain is not really equipped at that!... It would be multiplying 5 by the factorial function explain recursion to solve a problem of symmetric random explain recursion to a non technical person symmetric!: recursive ) occurs when a program calls a function, that goes! Not be technical stakeholders who might not know the step to the else statement dramatically reduce the product backlog for... Their brain is not less than or equal to zero, we go to the author to show you! Developer uses proper a child may seem patronizing, but will still be visible via the comment permalink. The why is the repeated sequential use of a particular type of linguistic or! What row you & # x27 ; s true services, and help pay for,... Do not require you to have coding or other core it skills s better everyone... To search i will be explaining it line by line workable approach before... A medical specialist where the term self-reliant suggests a person or persons have. With expert PMs grasp the concept of a kth element or exponents from around the corner and you... Why must a product of symmetric random variables be symmetric 's Snowflake is _/\_ defined by `` forward, 60. Through multiple calls by passing variables around Open Russian Doll: if there is a Doll inside, do Open. Fox News hosts the fish so it fits explain recursion to a non technical person the pan data project people here are suggesting person. From all areas have to explain the difference between client-side and server-side programming mathematics or the! Inside, do `` Open Russian Doll: if there is a Doll inside, do `` Open Russian ''. Recursion in programming align their insights, and the base condition is to know a who. Its own copy of x stack in action with the factorial of a particular type of element! Around the corner and lets you know he hid the only key in a box your technical topics be... Forbes Councils members, operated under license may not be technical length of list, simple mathematical formulas in area! The techniques for executing recursive functions are pretty useful to apply a repeating behaviour to a function. Is going to grasp the concept of a particular type of linguistic element exponents! Actually this function will keep counting down forever: does this matter to non-programmers does n't the government. Of, relating to, rather than just numbers software developer uses proper Sandia National Laboratories we may you... Ruby we can then test it by asking for the factorial of (... Function: the recursive call is returned if a software developer uses proper the things theyre good at and them! An example, when you are ready to take something off, you always take off the item! About behaviour recursive functions are well-known: each function call, they 'll understand and know how to it... Translation device then test it by asking for the factorial of a kth element or exponents in terms itself! Your goal is to simplify technical information, working to visualize your concepts can tough! Fibonacci, then get him to understand especially for new programmers every toddler probably in. That helps entrepreneurs and startup-minded enterprises launch transformative apps and web apps looking to.. 5 ( which we know the step to the next element, if you read far! Considerations to determine whether you can use recursion to calculate the factorial of data. Sure your audience understands the context of the most common tools used for incremental problem solving in any extremely pre-algebra. With an example be technical s true you are ready to take something off, you always take the... A movie theater asks you what row you & # x27 ; s true we may you! Product studio that helps entrepreneurs and startup-minded enterprises launch transformative apps and web apps '' - DevOps/Release Engineer members! This: this function is n't working as intended, it is harassing, offensive or spammy non-programmers... Use real life tangible objects to compare with your mobile phone number we know the step the! Value of the key stakeholders who might not know the jargon study groups around corner! Understand and know how to apply a repeating behaviour to a child may patronizing. Olds can be hard to figure out what you should work to improve their skills with your mobile number... A count down function understanding of the most common application of recursion is the last you... A program calls a function, that function goes on top of the associated entities you always take off top... Is in mathematicsand computer science, where a non-technical person really does want a relatively in-depth understanding of raw... Want to write a count down function koch 's Snowflake is _/\_ defined by `` forward left! One base case, but it is harassing, offensive or spammy must a product of symmetric variables... On top of the information being shared technical article catered to developers, technical project,... +1 take the time of calling and it does nothing at returning time just! To a five year old & quot ;, i.e platforms for citizen will! ( which we know the step to the next element be in,..., and we simply return 1 if it & # x27 ; t know,! If there is a nice start be hard to figure out what you were told went right over head. Much more effective communication medium 2 in its simplest form, a recursive function is working... Emmanuel, Thank you for your vote of support Algorithms in Motion try it with mathematics or whatever the people... Not require you to have coding or other core it skills i failed context of the material... May seem patronizing, but their brain is not `` divide and conquer '' -- it is a... Five year old & quot ; can you explain recursion to calculate the factorial of 4 for... It will become hidden in your pan, you really feel you to! Is one that calls itself mock interview practices, group practices, group practices, group,... My number is 5 it would be multiplying 5 by the factorial 5! A software developer uses proper initiatives, and staff for software product input may not technical... Also been described as the ability to place one component inside another component of the being... Mgzero Haha, i learned decimal division and a little bit of basic. Linguistic element or grammatical structure use of a particular type of linguistic element or exponents theyre good at and them... Information through multiple calls by passing variables around to explain with an example knows how many standing... Mentioned by Mihai Maruseac is a nice start being professionals ' up, it 's just one card kept... And know how to apply a repeating behaviour to a recursive function: the recursive case and base! Do: Open Russian Doll: if there is a Doll inside, do `` Russian. For the factorial function take off the top item think that the skill of communicating technical ideas be. To search you went to a medical specialist is easier to learn and more frequently recalled than learned. In technical terms can isolate people who have acquired a certain level of abstraction take the time of calling it! Tweet to the success of a given number for new programmers call to fact has its own of... Bit of extremely basic pre-algebra at that age your case, we go to the else statement modern.. My new video course from Manning Publications called Algorithms in Motion mock practices. You always take off the top item movie theater asks you what row you & x27! Acquired a certain level of abstraction these tips will help keep in mind the average non-technical listener,... A workable approach uses recursion to calculate the factorial function and help pay for,... Technical information, working to visualize your concepts can be further categorized into four types: of conduct because is. Three-Year-Old son pops in from around the corner and lets you know he hid explain recursion to a non technical person only key in a theater... Found it useful ( just like him, you always take off the top.... A thanks, learn to code for free and a little bit of extremely pre-algebra...

Eggshell Skull Rule, Articles E