{"appState":{"pageLoadApiCallsStatus":true},"categoryState":{"relatedCategories":{"headers":{"timestamp":"2024-12-23T08:01:05+00:00"},"categoryId":33512,"data":{"title":"Technology","slug":"technology","image":{"src":"https://www.dummies.com/wp-content/uploads/technology-category.jpg","width":643,"height":1286},"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512}],"parentCategory":{"categoryId":0,"title":null,"slug":null,"_links":null},"childCategories":[{"categoryId":35241,"title":"Virtual Reality","slug":"virtual-reality","_links":{"self":"https://dummies-api.dummies.com/v2/categories/35241"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":5,"bookCount":2},{"categoryId":33513,"title":"Computers","slug":"computers","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33513"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":1393,"bookCount":57},{"categoryId":33537,"title":"Cybersecurity","slug":"cybersecurity","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33537"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":60,"bookCount":14},{"categoryId":33538,"title":"Digital Audio & Radio","slug":"digital-audio-radio","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33538"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":131,"bookCount":5},{"categoryId":33543,"title":"Electronics","slug":"electronics","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33543"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":1757,"bookCount":46},{"categoryId":33572,"title":"Information Technology","slug":"information-technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33572"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":815,"bookCount":69},{"categoryId":33587,"title":"Internet Basics","slug":"internet-basics","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33587"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":86,"bookCount":3},{"categoryId":33588,"title":"Notable Websites","slug":"notable-websites","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33588"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":188,"bookCount":4},{"categoryId":33592,"title":"Programming & Web Design","slug":"programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":1395,"bookCount":101},{"categoryId":33611,"title":"Social Media","slug":"social-media","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33611"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":385,"bookCount":20},{"categoryId":33618,"title":"Software","slug":"software","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33618"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":3194,"bookCount":189}],"description":"Technology. It makes the world go 'round. And whether you're a self-confessed techie or a total newbie, you'll find something to love among our hundreds of technology articles and books.","relatedArticles":{"self":"https://dummies-api.dummies.com/v2/articles?category=33512&offset=0&size=5"},"hasArticle":true,"hasBook":true,"articleCount":9410,"bookCount":510},"_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"}},"relatedCategoriesLoadedStatus":"success"},"listState":{"list":{"count":10,"total":9429,"items":[{"headers":{"creationTime":"2024-12-06T22:05:41+00:00","modifiedTime":"2024-12-09T16:51:22+00:00","timestamp":"2024-12-09T18:01:32+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Information Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33572"},"slug":"information-technology","categoryId":33572},{"name":"AI","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33574"},"slug":"ai","categoryId":33574},{"name":"Generative AI","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33576"},"slug":"general-ai","categoryId":33576}],"title":"How to Write Effective AI Prompts for Different Real World Uses","strippedTitle":"how to write effective ai prompts for different real world uses","slug":"how-to-write-effective-prompts-for-different-real-world-uses","canonicalUrl":"","seo":{"metaDescription":"Discover how to craft effective AI prompts tailored for various real-world applications. Unlock AI's potential in creative writing, data analysis, and more.","noIndex":0,"noFollow":0},"content":"As you delve deeper into the realm of prompt engineering, you find out that the effectiveness of a prompt can vary greatly depending on the application. Whether you’re using AI for creative writing, data analysis, customer service, or any other specific use, the prompts you use need to be tailored to fit the task at hand.\r\n<p class=\"article-tips remember\">The art in prompt engineering is matching your form of communication to the nature of the task. If you succeed, you’ll unlock the vast potential of AI.</p>\r\nFor instance, when engaging with AI for creative writing, your prompts should be open-ended and imaginative, encouraging the AI to generate original and diverse ideas. A prompt like “Write a story about a lost civilization discovered by a group of teenagers” sets the stage for a creative narrative.\r\n\r\nIn contrast, data analysis requires prompts that are precise and data-driven. Here, you might need to guide the AI with specific instructions or questions, such as “Analyze the sales data from the last quarter and identify the top-performing products.” You may need to include that data in the prompt if it isn’t already loaded into the training data, retrieval-augmented generation (RAG), system or custom messages, or a specialized GPT. In any case, this type of prompt helps the AI focus on the exact task, ensuring that the output is relevant and actionable.\r\n\r\nThe key to designing effective prompts lies in understanding the domain you’re addressing. Each field has its own set of terminologies, expectations, and objectives. For example, legal prompts require a different structure and language than those used in entertainment or education. It’s essential to incorporate domain-specific knowledge into your prompts to guide the AI in generating the desired output.\r\n\r\nFollowing are some examples across various industries that illustrate how prompts can be tailored for domain-specific applications:\r\n<ul>\r\n \t<li><strong>Legal domain:</strong> In the legal industry, precision and formality are paramount. Prompts must be crafted to reflect the meticulous nature of legal language and reasoning. For instance, a prompt for contract analysis might be, “Identify and summarize the obligations and rights of each party as per the contract clauses outlined in Section 2.3 and 4.1.” This prompt is structured to direct the AI to focus on specific sections, reflecting the detailed-oriented nature of legal work.</li>\r\n \t<li><strong>Healthcare domain:</strong> In healthcare, prompts must be sensitive to medical terminology and patient privacy. A prompt for medical diagnosis might be, “Given the following anonymized patient symptoms and test results, what are the potential differential diagnoses?” This prompt respects patient confidentiality while leveraging the AI’s capability to process medical data.</li>\r\n \t<li><strong>Education domain:</strong> Educational prompts often aim to engage and instruct. A teacher might use a prompt like, “Create a lesson plan that introduces the concept of photosynthesis to 5th graders using interactive activities.” This prompt is designed to generate educational content that is age-appropriate and engaging.</li>\r\n \t<li><strong>Finance domain:</strong> In finance, prompts need to be data-driven and analytical. A financial analyst might use a prompt such as, “Analyze the historical price data of XYZ stock over the past year and predict the trend for the next quarter based on the moving average and standard deviation.” This prompt asks the AI to apply specific financial models to real-world data.</li>\r\n \t<li><strong>Marketing domain:</strong> Marketing prompts often focus on creativity and audience engagement. A marketing professional could use a prompt like, “Generate a list of catchy headlines for our new eco-friendly product line that will appeal to environmentally conscious consumers.” This prompt encourages the AI to produce creative content that resonates with a target demographic.</li>\r\n \t<li><strong>Software development domain:</strong> In software development, prompts can be technical and require understanding of coding languages. A prompt might be, “Debug the following Python code snippet and suggest optimizations for increasing its efficiency.” This prompt is technical, directing the AI to engage with code directly.</li>\r\n \t<li><strong>Customer service domain:</strong> For customer service, prompts should be empathetic and solution oriented. A prompt could be, “Draft a response to a customer complaint about a delayed shipment, ensuring to express understanding and offer a compensatory solution.” This prompt guides the AI to handle a delicate situation with care.</li>\r\n</ul>\r\nBy understanding the unique requirements and language of each domain, you can craft prompts to effectively guide AI in producing the desired outcomes. It’s not just about giving commands; it’s about framing them in a way that aligns with the goals, terms, and practices of the industry in question. As AI continues to evolve, the ability to engineer precise and effective prompts becomes an increasingly valuable skill across all sectors.\r\n<h2 id=\"tab1\" >15 tips and tricks for better AI prompting</h2>\r\nAlthough GenAI may seem like magic, it takes knowledge and practice to write effective prompts that will generate the content you’re looking for. The following list provides some insider tips and tricks to help you optimize your prompts to get the most out of your interactions with GenAI tools:\r\n<ul>\r\n \t<li><strong>Know your goal.</strong> Decide what you want from the AI — like a simple how-to or a bunch of ideas — before you start asking.</li>\r\n \t<li><strong>Get specific.</strong> The clearer you are, the better the AI can help. Ask “How do I bake a beginner's chocolate cake?” instead of just “How do I make a cake?”</li>\r\n \t<li><strong>Keep it simple.</strong> Use easy language unless you’re in a special field like law or medicine where using the right terms is necessary.</li>\r\n \t<li><strong>Add context.</strong> Give some background if it's a special topic, like tips for small businesses on social media.</li>\r\n \t<li><strong>Play pretend.</strong> Tell the AI to act like someone, like a fitness coach, to get answers that fit that role.</li>\r\n \t<li><strong>Try again.</strong> If the first answer isn't great, change your question a bit and ask again.</li>\r\n \t<li><strong>Show examples.</strong> If you want something creative, show the AI an example to follow, like asking for a poem like one by Robert Frost.</li>\r\n \t<li><strong>Don't overwhelm.</strong> Keep your question focused. If it's too packed with info, it gets messy.</li>\r\n \t<li><strong>Mix it up.</strong> Try asking in different ways, like with a question or a command, to see what works best.</li>\r\n \t<li><strong>Embrace the multimodal functionality.</strong> <em>Multimodal functionality</em> means that the GenAI model you’re working with can accept more than one kind of prompt input. Typically, that means it can accept both text and images in the input.</li>\r\n \t<li><strong>Understand the model’s limitations.</strong> GenAI is not infallible and can still produce errors or “hallucinate” responses. Always approach the AI’s output with a critical eye and use it as a starting point rather than the final word on any subject.</li>\r\n \t<li><strong>Leverage the enhanced problem-solving abilities.</strong> GenAI’s enhanced problem-solving skills mean that you can tackle more complex prompts. Use this to your advantage when crafting prompts that require a deep dive into a topic.</li>\r\n \t<li><strong>Keep prompts aligned with AI training.</strong> For example, remember that GPT-4, like its predecessors, is trained on a vast dataset up to a certain point in time (April 2023 at the time of this writing). It doesn’t know about anything that happened after that date. If you need to reference more recent events or data, provide that context within your prompt.</li>\r\n \t<li><strong>Experiment with different prompt lengths.</strong> Short prompts can be useful for quick answers, while longer, more detailed prompts can provide more context and yield more comprehensive responses.</li>\r\n \t<li><strong>Incorporate feedback loops.</strong> After receiving a response from your GenAI application, assess its quality and relevance. If it hit — or is close to — the mark, click on the thumbs-up icon. If it’s not quite what you were looking for, provide feedback in your next prompt by clicking on the thumbs-down icon. This iterative process can help refine the AI’s understanding of your requirements and improve the quality of future responses.</li>\r\n</ul>\r\n<p class=\"article-tips remember\">By keeping these tips in mind and staying informed about the latest developments in the capabilities of various GenAI models and applications, you’ll be able to craft prompts that are not only effective but also responsible and aligned with the AI’s strengths and limitations.</p>\r\n\r\n<h2 id=\"tab2\" >How to use prompts to fine-tune the AI model</h2>\r\nThe point of prompt engineering is to carefully compose a prompt that can shape the AI’s learning curve and fine-tune its responses to perfection. In this section, you dive into the art of using prompts to refine the GenAI model, ensuring that it delivers the most accurate and helpful answers possible. In other words, you discover how to use prompts to also teach the model to perform better for you over time. Here are some specific tactics:\r\n<ul>\r\n \t<li><strong>When you talk to the AI and it gives you answers, tell it if you liked the answer or not.</strong> Do this by clicking the thumbs up or thumbs down, or the + or – icons above or below the output. The model will learn how to respond better to you and your prompts over time if you do this consistently.</li>\r\n \t<li><strong>If the AI gives you a weird answer, there's a “do-over” button you can press.</strong> It's like asking your friend to explain something again if you didn't get it the first time. Look for “Regenerate Response'’ or some similar wording (term varies among models) near the output. Click on that and you’ll instantly get the AI’s second try!</li>\r\n \t<li><strong>Think of different ways to ask the AI the same or related questions.</strong> It's like using magic words to get the best answers. If you're really good at it, you can make a list of prompts that others can use to ask good questions too. Prompt libraries are very helpful to all. It’s smart to look at prompt libraries for ideas when you’re stumped on how or what to prompt.</li>\r\n \t<li><strong>Share your successful prompts.</strong> If you find a super good way to ask something, you can share it online (at sites like GitHub) with other prompt engineers and use prompts others have shared there too.</li>\r\n \t<li><strong>Instead of teaching the AI everything from scratch (retraining the model), you can teach it a few more new things through your prompting.</strong> Just ask it in different ways to do new things. Over time, it will learn to expand its computations. And with some models, what it learns from your prompts will be stored in its memory. This will improve the outputs it gives you too!</li>\r\n \t<li><strong>Redirect AI biases.</strong> If the AI says something that seems mean or unfair, rate it a thumbs down and state why the response was unacceptable in your next prompt. Also, change the way you ask questions going forward to redirect the model away from this tendency.</li>\r\n \t<li><strong>Be transparent and accountable when you work with AI.</strong> Tell people why you're asking the AI certain questions and what you hope to get from it. If something goes wrong, try to make it right. It's like being honest about why you borrowed your friend's toy and fixing it if it breaks.</li>\r\n \t<li><strong>Keep learning.</strong> The AI world changes a lot, and often. Keep up with new models, features, and tactics, talk to others, and always try to get better at making the AI do increasingly more difficult things.</li>\r\n</ul>\r\n<p class=\"article-tips remember\">The more you help GenAI learn, the better it gets at helping you!</p>\r\n\r\n<h2 id=\"tab3\" >What to do when AI goes wrong</h2>\r\nWhen you engage with AI through your prompts, be aware of common pitfalls that can lead to biased or undesirable outcomes. Following are some strategies to avoid these pitfalls, ensuring that your interactions with AI are both effective and ethically sound.\r\n<ul>\r\n \t<li><strong>Recognize and mitigate biases.</strong> Biases in AI can stem from the data it was trained on or the way prompts are structured. For instance, a healthcare algorithm in the United States inadvertently favored white patients over people of color because it used healthcare cost history as a proxy for health needs, which correlated with race. To avoid such biases, carefully consider the variables and language used in your prompts. Ensure they do not inadvertently favor one group over another or perpetuate stereotypes.</li>\r\n \t<li><strong>Question assumptions.</strong> Wrong or flawed assumptions can lead to misguided AI behavior. For example, Amazon’s hiring algorithm developed a bias against women because it was trained on resumes predominantly submitted by men. Regularly review the assumptions behind your prompts and be open to challenging and revising them as needed.</li>\r\n \t<li><strong>Avoid overgeneralization.</strong> AI can make sweeping generalizations based on limited data. To prevent this, provide diverse and representative examples in your prompts. This helps the AI understand the nuances and variations within the data, leading to more accurate and fair outcomes.</li>\r\n \t<li><strong>Keep your purpose in sight.</strong> Losing sight of the purpose of your interaction with AI can result in irrelevant or unhelpful responses. Always align your prompts with the intended goal and avoid being swayed by the AI’s responses into a direction that deviates from your original objective.</li>\r\n \t<li><strong>Diversify information sources.</strong> Relying on too narrow a set of information can skew AI responses. Ensure that the data and examples you provide cover a broad spectrum of scenarios and perspectives. This helps the AI develop a well-rounded understanding of the task at hand. For example, if the AI is trained to find causes of helicopter crashes and the only dataset the AI has is of events when helicopters crash, it will deduce that all helicopters crash which in turn will render skewed outputs that could be costly or even dangerous. Add data on flights or events when helicopters did not crash, and you’ll get better outputs because the model has more diverse and more complete information to analyze.</li>\r\n \t<li><strong>Encourage open debate.</strong> AI can sometimes truncate debate by providing authoritative-sounding answers. Encourage open-ended prompts that allow for multiple viewpoints and be critical of the AI’s responses. This fosters a more thoughtful and comprehensive exploration of the topic.</li>\r\n \t<li><strong>Be wary of consensus.</strong> Defaulting to consensus can be tempting, especially when AI confirms our existing beliefs. However, it’s important to challenge the AI and yourself by considering alternative viewpoints and counterarguments. This helps in uncovering potential blind spots and biases.</li>\r\n \t<li><strong>Check your work.</strong> Always review the AI’s responses for accuracy and bias. As with the healthcare algorithm that skewed resources toward white patients, unintended consequences can arise from seemingly neutral variables. Rigorous checks and balances are necessary to ensure the AI’s outputs align with ethical standards.</li>\r\n</ul>","description":"As you delve deeper into the realm of prompt engineering, you find out that the effectiveness of a prompt can vary greatly depending on the application. Whether you’re using AI for creative writing, data analysis, customer service, or any other specific use, the prompts you use need to be tailored to fit the task at hand.\r\n<p class=\"article-tips remember\">The art in prompt engineering is matching your form of communication to the nature of the task. If you succeed, you’ll unlock the vast potential of AI.</p>\r\nFor instance, when engaging with AI for creative writing, your prompts should be open-ended and imaginative, encouraging the AI to generate original and diverse ideas. A prompt like “Write a story about a lost civilization discovered by a group of teenagers” sets the stage for a creative narrative.\r\n\r\nIn contrast, data analysis requires prompts that are precise and data-driven. Here, you might need to guide the AI with specific instructions or questions, such as “Analyze the sales data from the last quarter and identify the top-performing products.” You may need to include that data in the prompt if it isn’t already loaded into the training data, retrieval-augmented generation (RAG), system or custom messages, or a specialized GPT. In any case, this type of prompt helps the AI focus on the exact task, ensuring that the output is relevant and actionable.\r\n\r\nThe key to designing effective prompts lies in understanding the domain you’re addressing. Each field has its own set of terminologies, expectations, and objectives. For example, legal prompts require a different structure and language than those used in entertainment or education. It’s essential to incorporate domain-specific knowledge into your prompts to guide the AI in generating the desired output.\r\n\r\nFollowing are some examples across various industries that illustrate how prompts can be tailored for domain-specific applications:\r\n<ul>\r\n \t<li><strong>Legal domain:</strong> In the legal industry, precision and formality are paramount. Prompts must be crafted to reflect the meticulous nature of legal language and reasoning. For instance, a prompt for contract analysis might be, “Identify and summarize the obligations and rights of each party as per the contract clauses outlined in Section 2.3 and 4.1.” This prompt is structured to direct the AI to focus on specific sections, reflecting the detailed-oriented nature of legal work.</li>\r\n \t<li><strong>Healthcare domain:</strong> In healthcare, prompts must be sensitive to medical terminology and patient privacy. A prompt for medical diagnosis might be, “Given the following anonymized patient symptoms and test results, what are the potential differential diagnoses?” This prompt respects patient confidentiality while leveraging the AI’s capability to process medical data.</li>\r\n \t<li><strong>Education domain:</strong> Educational prompts often aim to engage and instruct. A teacher might use a prompt like, “Create a lesson plan that introduces the concept of photosynthesis to 5th graders using interactive activities.” This prompt is designed to generate educational content that is age-appropriate and engaging.</li>\r\n \t<li><strong>Finance domain:</strong> In finance, prompts need to be data-driven and analytical. A financial analyst might use a prompt such as, “Analyze the historical price data of XYZ stock over the past year and predict the trend for the next quarter based on the moving average and standard deviation.” This prompt asks the AI to apply specific financial models to real-world data.</li>\r\n \t<li><strong>Marketing domain:</strong> Marketing prompts often focus on creativity and audience engagement. A marketing professional could use a prompt like, “Generate a list of catchy headlines for our new eco-friendly product line that will appeal to environmentally conscious consumers.” This prompt encourages the AI to produce creative content that resonates with a target demographic.</li>\r\n \t<li><strong>Software development domain:</strong> In software development, prompts can be technical and require understanding of coding languages. A prompt might be, “Debug the following Python code snippet and suggest optimizations for increasing its efficiency.” This prompt is technical, directing the AI to engage with code directly.</li>\r\n \t<li><strong>Customer service domain:</strong> For customer service, prompts should be empathetic and solution oriented. A prompt could be, “Draft a response to a customer complaint about a delayed shipment, ensuring to express understanding and offer a compensatory solution.” This prompt guides the AI to handle a delicate situation with care.</li>\r\n</ul>\r\nBy understanding the unique requirements and language of each domain, you can craft prompts to effectively guide AI in producing the desired outcomes. It’s not just about giving commands; it’s about framing them in a way that aligns with the goals, terms, and practices of the industry in question. As AI continues to evolve, the ability to engineer precise and effective prompts becomes an increasingly valuable skill across all sectors.\r\n<h2 id=\"tab1\" >15 tips and tricks for better AI prompting</h2>\r\nAlthough GenAI may seem like magic, it takes knowledge and practice to write effective prompts that will generate the content you’re looking for. The following list provides some insider tips and tricks to help you optimize your prompts to get the most out of your interactions with GenAI tools:\r\n<ul>\r\n \t<li><strong>Know your goal.</strong> Decide what you want from the AI — like a simple how-to or a bunch of ideas — before you start asking.</li>\r\n \t<li><strong>Get specific.</strong> The clearer you are, the better the AI can help. Ask “How do I bake a beginner's chocolate cake?” instead of just “How do I make a cake?”</li>\r\n \t<li><strong>Keep it simple.</strong> Use easy language unless you’re in a special field like law or medicine where using the right terms is necessary.</li>\r\n \t<li><strong>Add context.</strong> Give some background if it's a special topic, like tips for small businesses on social media.</li>\r\n \t<li><strong>Play pretend.</strong> Tell the AI to act like someone, like a fitness coach, to get answers that fit that role.</li>\r\n \t<li><strong>Try again.</strong> If the first answer isn't great, change your question a bit and ask again.</li>\r\n \t<li><strong>Show examples.</strong> If you want something creative, show the AI an example to follow, like asking for a poem like one by Robert Frost.</li>\r\n \t<li><strong>Don't overwhelm.</strong> Keep your question focused. If it's too packed with info, it gets messy.</li>\r\n \t<li><strong>Mix it up.</strong> Try asking in different ways, like with a question or a command, to see what works best.</li>\r\n \t<li><strong>Embrace the multimodal functionality.</strong> <em>Multimodal functionality</em> means that the GenAI model you’re working with can accept more than one kind of prompt input. Typically, that means it can accept both text and images in the input.</li>\r\n \t<li><strong>Understand the model’s limitations.</strong> GenAI is not infallible and can still produce errors or “hallucinate” responses. Always approach the AI’s output with a critical eye and use it as a starting point rather than the final word on any subject.</li>\r\n \t<li><strong>Leverage the enhanced problem-solving abilities.</strong> GenAI’s enhanced problem-solving skills mean that you can tackle more complex prompts. Use this to your advantage when crafting prompts that require a deep dive into a topic.</li>\r\n \t<li><strong>Keep prompts aligned with AI training.</strong> For example, remember that GPT-4, like its predecessors, is trained on a vast dataset up to a certain point in time (April 2023 at the time of this writing). It doesn’t know about anything that happened after that date. If you need to reference more recent events or data, provide that context within your prompt.</li>\r\n \t<li><strong>Experiment with different prompt lengths.</strong> Short prompts can be useful for quick answers, while longer, more detailed prompts can provide more context and yield more comprehensive responses.</li>\r\n \t<li><strong>Incorporate feedback loops.</strong> After receiving a response from your GenAI application, assess its quality and relevance. If it hit — or is close to — the mark, click on the thumbs-up icon. If it’s not quite what you were looking for, provide feedback in your next prompt by clicking on the thumbs-down icon. This iterative process can help refine the AI’s understanding of your requirements and improve the quality of future responses.</li>\r\n</ul>\r\n<p class=\"article-tips remember\">By keeping these tips in mind and staying informed about the latest developments in the capabilities of various GenAI models and applications, you’ll be able to craft prompts that are not only effective but also responsible and aligned with the AI’s strengths and limitations.</p>\r\n\r\n<h2 id=\"tab2\" >How to use prompts to fine-tune the AI model</h2>\r\nThe point of prompt engineering is to carefully compose a prompt that can shape the AI’s learning curve and fine-tune its responses to perfection. In this section, you dive into the art of using prompts to refine the GenAI model, ensuring that it delivers the most accurate and helpful answers possible. In other words, you discover how to use prompts to also teach the model to perform better for you over time. Here are some specific tactics:\r\n<ul>\r\n \t<li><strong>When you talk to the AI and it gives you answers, tell it if you liked the answer or not.</strong> Do this by clicking the thumbs up or thumbs down, or the + or – icons above or below the output. The model will learn how to respond better to you and your prompts over time if you do this consistently.</li>\r\n \t<li><strong>If the AI gives you a weird answer, there's a “do-over” button you can press.</strong> It's like asking your friend to explain something again if you didn't get it the first time. Look for “Regenerate Response'’ or some similar wording (term varies among models) near the output. Click on that and you’ll instantly get the AI’s second try!</li>\r\n \t<li><strong>Think of different ways to ask the AI the same or related questions.</strong> It's like using magic words to get the best answers. If you're really good at it, you can make a list of prompts that others can use to ask good questions too. Prompt libraries are very helpful to all. It’s smart to look at prompt libraries for ideas when you’re stumped on how or what to prompt.</li>\r\n \t<li><strong>Share your successful prompts.</strong> If you find a super good way to ask something, you can share it online (at sites like GitHub) with other prompt engineers and use prompts others have shared there too.</li>\r\n \t<li><strong>Instead of teaching the AI everything from scratch (retraining the model), you can teach it a few more new things through your prompting.</strong> Just ask it in different ways to do new things. Over time, it will learn to expand its computations. And with some models, what it learns from your prompts will be stored in its memory. This will improve the outputs it gives you too!</li>\r\n \t<li><strong>Redirect AI biases.</strong> If the AI says something that seems mean or unfair, rate it a thumbs down and state why the response was unacceptable in your next prompt. Also, change the way you ask questions going forward to redirect the model away from this tendency.</li>\r\n \t<li><strong>Be transparent and accountable when you work with AI.</strong> Tell people why you're asking the AI certain questions and what you hope to get from it. If something goes wrong, try to make it right. It's like being honest about why you borrowed your friend's toy and fixing it if it breaks.</li>\r\n \t<li><strong>Keep learning.</strong> The AI world changes a lot, and often. Keep up with new models, features, and tactics, talk to others, and always try to get better at making the AI do increasingly more difficult things.</li>\r\n</ul>\r\n<p class=\"article-tips remember\">The more you help GenAI learn, the better it gets at helping you!</p>\r\n\r\n<h2 id=\"tab3\" >What to do when AI goes wrong</h2>\r\nWhen you engage with AI through your prompts, be aware of common pitfalls that can lead to biased or undesirable outcomes. Following are some strategies to avoid these pitfalls, ensuring that your interactions with AI are both effective and ethically sound.\r\n<ul>\r\n \t<li><strong>Recognize and mitigate biases.</strong> Biases in AI can stem from the data it was trained on or the way prompts are structured. For instance, a healthcare algorithm in the United States inadvertently favored white patients over people of color because it used healthcare cost history as a proxy for health needs, which correlated with race. To avoid such biases, carefully consider the variables and language used in your prompts. Ensure they do not inadvertently favor one group over another or perpetuate stereotypes.</li>\r\n \t<li><strong>Question assumptions.</strong> Wrong or flawed assumptions can lead to misguided AI behavior. For example, Amazon’s hiring algorithm developed a bias against women because it was trained on resumes predominantly submitted by men. Regularly review the assumptions behind your prompts and be open to challenging and revising them as needed.</li>\r\n \t<li><strong>Avoid overgeneralization.</strong> AI can make sweeping generalizations based on limited data. To prevent this, provide diverse and representative examples in your prompts. This helps the AI understand the nuances and variations within the data, leading to more accurate and fair outcomes.</li>\r\n \t<li><strong>Keep your purpose in sight.</strong> Losing sight of the purpose of your interaction with AI can result in irrelevant or unhelpful responses. Always align your prompts with the intended goal and avoid being swayed by the AI’s responses into a direction that deviates from your original objective.</li>\r\n \t<li><strong>Diversify information sources.</strong> Relying on too narrow a set of information can skew AI responses. Ensure that the data and examples you provide cover a broad spectrum of scenarios and perspectives. This helps the AI develop a well-rounded understanding of the task at hand. For example, if the AI is trained to find causes of helicopter crashes and the only dataset the AI has is of events when helicopters crash, it will deduce that all helicopters crash which in turn will render skewed outputs that could be costly or even dangerous. Add data on flights or events when helicopters did not crash, and you’ll get better outputs because the model has more diverse and more complete information to analyze.</li>\r\n \t<li><strong>Encourage open debate.</strong> AI can sometimes truncate debate by providing authoritative-sounding answers. Encourage open-ended prompts that allow for multiple viewpoints and be critical of the AI’s responses. This fosters a more thoughtful and comprehensive exploration of the topic.</li>\r\n \t<li><strong>Be wary of consensus.</strong> Defaulting to consensus can be tempting, especially when AI confirms our existing beliefs. However, it’s important to challenge the AI and yourself by considering alternative viewpoints and counterarguments. This helps in uncovering potential blind spots and biases.</li>\r\n \t<li><strong>Check your work.</strong> Always review the AI’s responses for accuracy and bias. As with the healthcare algorithm that skewed resources toward white patients, unintended consequences can arise from seemingly neutral variables. Rigorous checks and balances are necessary to ensure the AI’s outputs align with ethical standards.</li>\r\n</ul>","blurb":"","authors":[{"authorId":34669,"name":"Pam Baker","slug":"pamela-baker","description":"<b>Pam Baker</b> is an award-winning freelance journalist, analyst, and author. Her previous book, <i>ChatGPT For Dummies</i>, was one of the first how-to guides for effective use of the ChatGPT platform. She writes for several media outlets, including <i>The New York Times</i>, CNN, <i>Ars Technica</i>, <i>InformationWeek</i>, and <i>CSO</i>. Baker is also an instructor on GenAI for LinkedIn Learning.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/34669"}}],"primaryCategoryTaxonomy":{"categoryId":33576,"title":"Generative AI","slug":"general-ai","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33576"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[{"label":"15 tips and tricks for better AI prompting","target":"#tab1"},{"label":"How to use prompts to fine-tune the AI model","target":"#tab2"},{"label":"What to do when AI goes wrong","target":"#tab3"}],"relatedArticles":{"fromBook":[{"articleId":302379,"title":"Generative AI For Dummies Cheat Sheet","slug":"generative-ai-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/302379"}}],"fromCategory":[{"articleId":302379,"title":"Generative AI For Dummies Cheat Sheet","slug":"generative-ai-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/302379"}},{"articleId":302176,"title":"Improving CLM with Generative AI: Key Use Cases","slug":"improving-clm-with-generative-ai-key-use-cases","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/302176"}},{"articleId":301980,"title":"Enterprise Generative AI: Transforming Your Business","slug":"enterprise-generative-ai-transforming-your-business","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301980"}},{"articleId":301240,"title":"Five Ways Machine Health Delivers Real Business Value","slug":"five-ways-machine-health-delivers-real-business-value","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301240"}},{"articleId":299369,"title":"How ChatGPT Could Change Our Lives","slug":"how-chatgpt-could-change-our-lives","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/299369"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":302330,"slug":"generative-ai-for-dummies","isbn":"9781394270743","categoryList":["technology","information-technology","ai","general-ai"],"amazon":{"default":"https://www.amazon.com/gp/product/1394270747/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394270747/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394270747-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394270747/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394270747/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/generative-ai-for-dummies-cover-9781394270743-203x255.jpg","width":203,"height":255},"title":"Generative AI For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><b><b data-author-id=\"34669\">Pam Baker</b></b> is an award-winning freelance journalist, analyst, and author. Her previous book, <i>ChatGPT For Dummies</i>, was one of the first how-to guides for effective use of the ChatGPT platform. She writes for several media outlets, including <i>The New York Times</i>, CNN, <i>Ars Technica</i>, <i>InformationWeek</i>, and <i>CSO</i>. Baker is also an instructor on GenAI for LinkedIn Learning.</p>","authors":[{"authorId":34669,"name":"Pam Baker","slug":"pamela-baker","description":"<b>Pam Baker</b> is an award-winning freelance journalist, analyst, and author. Her previous book, <i>ChatGPT For Dummies</i>, was one of the first how-to guides for effective use of the ChatGPT platform. She writes for several media outlets, including <i>The New York Times</i>, CNN, <i>Ars Technica</i>, <i>InformationWeek</i>, and <i>CSO</i>. Baker is also an instructor on GenAI for LinkedIn Learning.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/34669"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;information-technology&quot;,&quot;ai&quot;,&quot;general-ai&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394270743&quot;]}]\" id=\"du-slot-6757307c75563\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;information-technology&quot;,&quot;ai&quot;,&quot;general-ai&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394270743&quot;]}]\" id=\"du-slot-6757307c774da\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Solve","lifeExpectancy":"One year","lifeExpectancySetFrom":"2024-12-06T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":302523},{"headers":{"creationTime":"2024-11-20T21:20:42+00:00","modifiedTime":"2024-11-20T21:20:42+00:00","timestamp":"2024-11-21T00:01:14+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Cybersecurity","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33537"},"slug":"cybersecurity","categoryId":33537}],"title":"What Is Zero Risk Application Security and How Can It Align with Compliance Frameworks?","strippedTitle":"what is zero risk application security and how can it align with compliance frameworks?","slug":"what-is-zero-risk-application-security-and-how-can-it-align-with-compliance-frameworks","canonicalUrl":"","seo":{"metaDescription":"Learn about Zero Risk application security and its role in protecting vital data, ensuring compliance, and preventing unauthorized access to your systems.","noIndex":0,"noFollow":0},"content":"Zero Risk application security provides comprehensive protection against potential threats, ensuring the integrity, confidentiality, and availability of your vital data and systems. This approach integrates automated risk analysis, stringent access provisioning controls, and continuous monitoring to prevent unauthorized access and vulnerabilities. The goal is to neutralize potential threats before they cause harm, which helps maintain the highest levels of visibility, security, and compliance.\r\n\r\nAligning your organization’s Zero Risk strategies with established cybersecurity and regulatory compliance frameworks is a necessity. The goal is to create a robust security posture that not only protects your assets but also ensures you meet the critical standards set by regulatory bodies.\r\n<h2 id=\"tab1\" >Understanding the compliance landscape</h2>\r\nBefore you can align your Zero Risk strategies with compliance frameworks, you must understand the landscape. Two of the most significant regulatory frameworks in this realm are the Sarbanes-Oxley Act (SOX) and the General Data Protection Regulation (GDPR). SOX focuses on financial reporting and corporate governance, while GDPR is concerned with data protection and privacy for individuals within the European Union.\r\n\r\nThe National Institute of Standards and Technology (NIST) also provides a risk management framework that can be leveraged to align with Zero Risk strategies. This framework helps your organization manage and mitigate risks in a comprehensive and repeatable manner, ensuring that cybersecurity remains a dynamic and integral part of your organization’s culture and business processes.\r\n<p class=\"article tips remember\">To hit the mark on Zero Risk, you also need to mature your cybersecurity model. The Cybersecurity Maturity Model Certification (CMMC) enhances your security practices through five levels of cyber hygiene:</p>\r\n\r\n<ul>\r\n \t<li><strong>Level 1: Basic cyber hygiene:</strong> Figure out your current cybersecurity practices and understanding the basics.</li>\r\n \t<li><strong>Level 2: Intermediate cyber hygiene:</strong> Document your cybersecurity practices consistency and repeatability.</li>\r\n \t<li><strong>Level 3: Good cyber hygiene:</strong> Put proper risk management practices in place to address identified vulnerabilities and threats.</li>\r\n \t<li><strong>Level 4: Proactive cyber hygiene:</strong> Routinely and regularly review risks. Continuous monitoring ensures you’re proactive in managing them.</li>\r\n \t<li><strong>Level 5: Advanced and progressive cyber hygiene:</strong> Optimize your cybersecurity processes and continuously improving to stay ahead of emerging threats.</li>\r\n</ul>\r\n<h2 id=\"tab2\" >Focusing on key actions to alignment</h2>\r\nAligning Zero Risk with the compliance frameworks involves several key actions:\r\n<ul>\r\n \t<li><strong>Gap analysis:</strong> Conduct a thorough comparison of your current policies, processes, and technologies against the requirements of SOX, GDPR, and the NIST framework. This analysis highlights areas that need improvement and helps prioritize your efforts.</li>\r\n \t<li><strong>Remediation roadmap:</strong> Develop a detailed plan (a roadmap of sorts) to address the identified gaps (see the preceding bullet). This plan should prioritize critical areas, allocate resources, and set timelines for completion.</li>\r\n \t<li><strong>Policy communication:</strong> Update your policies to align with SOX and GDPR standards, and communicate these changes effectively across your organization.</li>\r\n</ul>\r\n<h2 id=\"tab3\" >Taking practical measures for compliance</h2>\r\nTo ensure that your Zero Risk strategies are in sync with compliance frameworks, consider the following practical measures:\r\n<ul>\r\n \t<li><strong>Automating monitoring and reporting:</strong> Use identity and application access governance software to automate the monitoring of your systems and the reporting process. This measure not only saves time but also reduces the risk of human error.</li>\r\n \t<li><strong>Regular training:</strong> Conduct regular training and awareness programs for employees to ensure that they understand their roles in protecting data and maintaining financial integrity.</li>\r\n \t<li><strong>Continuous monitoring:</strong> Implement real-time tracking of all transactions within the application environment. This helps maintain an up-to-date security posture and immediate threat detection.</li>\r\n</ul>\r\n<h2 id=\"tab4\" >Maintaining compliance and security</h2>\r\nAfter you’ve aligned your Zero Risk strategies with compliance frameworks, maintaining that alignment over time is crucial.\r\n<p class=\"article tips tip\">To stay aligned and ensure ongoing compliance, follow these tips:</p>\r\n\r\n<ul>\r\n \t<li><strong>Perform audits.</strong> Conduct regular internal audits to test your financial controls and data security procedures. This action helps identify any compliance drift early on.</li>\r\n \t<li><strong>Stay updated.</strong> Keep abreast of changes in compliance frameworks and adjust your policies and procedures accordingly. This means subscribing to regulatory updates, attending relevant seminars and webinars, and participating in industry groups. Regularly revisit your compliance frameworks to ensure they reflect the latest legal and regulatory changes.</li>\r\n \t<li><strong>Document, document, document.</strong> Keep an up-to-date record of all data processing activities. This documentation is key to demonstrating compliance during audits.</li>\r\n</ul>\r\nAligning Zero Risk strategies with cybersecurity and regulatory compliance frameworks is a dynamic process that requires continuous attention and adaptation. By taking a systematic approach to gap analysis, remediation, and ongoing maintenance, organizations can not only enhance their security posture but also ensure they meet the evolving demands of regulatory compliance. This integrated strategy supports sustainable growth and resilience in an increasingly complex digital landscape.\r\n<p class=\"article tips remember\">Achieving compliance is an accomplishment, but maintaining it is the goal. Falling out of compliance can be costly, so keep reviewing and updating your cybersecurity model to stay ahead of the curve.</p>\r\n\r\n<h2 id=\"tab5\" >How Pathlock can help</h2>\r\nYour organization needs to achieve a Zero Risk application environment, and Pathlock can help. Pathlock’s solutions give you critical tools for planning a proactive defense strategy to continuously monitor and manage risks. To find out more, check out <em>Zero Risk Application Security For Dummies, </em>Pathlock Special Edition. Head to <a href=\"https://pathlock.com/resource/zero-risk-application-security-for-dummies/\" target=\"_blank\" rel=\"noopener\" data-testid=\"bookSponsorDownloadButton\">pathlock.com/resource/zero-risk-application-security-for-dummies</a> for your free e-book, and start planning your Zero Risk application security approach.","description":"Zero Risk application security provides comprehensive protection against potential threats, ensuring the integrity, confidentiality, and availability of your vital data and systems. This approach integrates automated risk analysis, stringent access provisioning controls, and continuous monitoring to prevent unauthorized access and vulnerabilities. The goal is to neutralize potential threats before they cause harm, which helps maintain the highest levels of visibility, security, and compliance.\r\n\r\nAligning your organization’s Zero Risk strategies with established cybersecurity and regulatory compliance frameworks is a necessity. The goal is to create a robust security posture that not only protects your assets but also ensures you meet the critical standards set by regulatory bodies.\r\n<h2 id=\"tab1\" >Understanding the compliance landscape</h2>\r\nBefore you can align your Zero Risk strategies with compliance frameworks, you must understand the landscape. Two of the most significant regulatory frameworks in this realm are the Sarbanes-Oxley Act (SOX) and the General Data Protection Regulation (GDPR). SOX focuses on financial reporting and corporate governance, while GDPR is concerned with data protection and privacy for individuals within the European Union.\r\n\r\nThe National Institute of Standards and Technology (NIST) also provides a risk management framework that can be leveraged to align with Zero Risk strategies. This framework helps your organization manage and mitigate risks in a comprehensive and repeatable manner, ensuring that cybersecurity remains a dynamic and integral part of your organization’s culture and business processes.\r\n<p class=\"article tips remember\">To hit the mark on Zero Risk, you also need to mature your cybersecurity model. The Cybersecurity Maturity Model Certification (CMMC) enhances your security practices through five levels of cyber hygiene:</p>\r\n\r\n<ul>\r\n \t<li><strong>Level 1: Basic cyber hygiene:</strong> Figure out your current cybersecurity practices and understanding the basics.</li>\r\n \t<li><strong>Level 2: Intermediate cyber hygiene:</strong> Document your cybersecurity practices consistency and repeatability.</li>\r\n \t<li><strong>Level 3: Good cyber hygiene:</strong> Put proper risk management practices in place to address identified vulnerabilities and threats.</li>\r\n \t<li><strong>Level 4: Proactive cyber hygiene:</strong> Routinely and regularly review risks. Continuous monitoring ensures you’re proactive in managing them.</li>\r\n \t<li><strong>Level 5: Advanced and progressive cyber hygiene:</strong> Optimize your cybersecurity processes and continuously improving to stay ahead of emerging threats.</li>\r\n</ul>\r\n<h2 id=\"tab2\" >Focusing on key actions to alignment</h2>\r\nAligning Zero Risk with the compliance frameworks involves several key actions:\r\n<ul>\r\n \t<li><strong>Gap analysis:</strong> Conduct a thorough comparison of your current policies, processes, and technologies against the requirements of SOX, GDPR, and the NIST framework. This analysis highlights areas that need improvement and helps prioritize your efforts.</li>\r\n \t<li><strong>Remediation roadmap:</strong> Develop a detailed plan (a roadmap of sorts) to address the identified gaps (see the preceding bullet). This plan should prioritize critical areas, allocate resources, and set timelines for completion.</li>\r\n \t<li><strong>Policy communication:</strong> Update your policies to align with SOX and GDPR standards, and communicate these changes effectively across your organization.</li>\r\n</ul>\r\n<h2 id=\"tab3\" >Taking practical measures for compliance</h2>\r\nTo ensure that your Zero Risk strategies are in sync with compliance frameworks, consider the following practical measures:\r\n<ul>\r\n \t<li><strong>Automating monitoring and reporting:</strong> Use identity and application access governance software to automate the monitoring of your systems and the reporting process. This measure not only saves time but also reduces the risk of human error.</li>\r\n \t<li><strong>Regular training:</strong> Conduct regular training and awareness programs for employees to ensure that they understand their roles in protecting data and maintaining financial integrity.</li>\r\n \t<li><strong>Continuous monitoring:</strong> Implement real-time tracking of all transactions within the application environment. This helps maintain an up-to-date security posture and immediate threat detection.</li>\r\n</ul>\r\n<h2 id=\"tab4\" >Maintaining compliance and security</h2>\r\nAfter you’ve aligned your Zero Risk strategies with compliance frameworks, maintaining that alignment over time is crucial.\r\n<p class=\"article tips tip\">To stay aligned and ensure ongoing compliance, follow these tips:</p>\r\n\r\n<ul>\r\n \t<li><strong>Perform audits.</strong> Conduct regular internal audits to test your financial controls and data security procedures. This action helps identify any compliance drift early on.</li>\r\n \t<li><strong>Stay updated.</strong> Keep abreast of changes in compliance frameworks and adjust your policies and procedures accordingly. This means subscribing to regulatory updates, attending relevant seminars and webinars, and participating in industry groups. Regularly revisit your compliance frameworks to ensure they reflect the latest legal and regulatory changes.</li>\r\n \t<li><strong>Document, document, document.</strong> Keep an up-to-date record of all data processing activities. This documentation is key to demonstrating compliance during audits.</li>\r\n</ul>\r\nAligning Zero Risk strategies with cybersecurity and regulatory compliance frameworks is a dynamic process that requires continuous attention and adaptation. By taking a systematic approach to gap analysis, remediation, and ongoing maintenance, organizations can not only enhance their security posture but also ensure they meet the evolving demands of regulatory compliance. This integrated strategy supports sustainable growth and resilience in an increasingly complex digital landscape.\r\n<p class=\"article tips remember\">Achieving compliance is an accomplishment, but maintaining it is the goal. Falling out of compliance can be costly, so keep reviewing and updating your cybersecurity model to stay ahead of the curve.</p>\r\n\r\n<h2 id=\"tab5\" >How Pathlock can help</h2>\r\nYour organization needs to achieve a Zero Risk application environment, and Pathlock can help. Pathlock’s solutions give you critical tools for planning a proactive defense strategy to continuously monitor and manage risks. To find out more, check out <em>Zero Risk Application Security For Dummies, </em>Pathlock Special Edition. Head to <a href=\"https://pathlock.com/resource/zero-risk-application-security-for-dummies/\" target=\"_blank\" rel=\"noopener\" data-testid=\"bookSponsorDownloadButton\">pathlock.com/resource/zero-risk-application-security-for-dummies</a> for your free e-book, and start planning your Zero Risk application security approach.","blurb":"","authors":[],"primaryCategoryTaxonomy":{"categoryId":33537,"title":"Cybersecurity","slug":"cybersecurity","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33537"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[{"label":"Understanding the compliance landscape","target":"#tab1"},{"label":"Focusing on key actions to alignment","target":"#tab2"},{"label":"Taking practical measures for compliance","target":"#tab3"},{"label":"Maintaining compliance and security","target":"#tab4"},{"label":"How Pathlock can help","target":"#tab5"}],"relatedArticles":{"fromBook":[],"fromCategory":[{"articleId":302201,"title":"SAP Application Security: Get Clean, Stay Clean, and Optimize","slug":"sap-application-security-get-clean-stay-clean-and-optimize","categoryList":["technology","cybersecurity"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/302201"}},{"articleId":301649,"title":"Takeaways about Extended Detection and Response (XDR)","slug":"takeaways-about-extended-detection-and-response-xdr","categoryList":["technology","cybersecurity"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301649"}},{"articleId":301654,"title":"Nine Ways to Protect Against Advanced Email Threats","slug":"nine-ways-to-protect-against-advanced-email-threats","categoryList":["technology","cybersecurity"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301654"}},{"articleId":301585,"title":"Risk-Based Cybersecurity with Managed Detection and Response (MDR)","slug":"risk-based-cybersecurity-with-managed-detection-and-response-mdr","categoryList":["technology","cybersecurity"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301585"}},{"articleId":300402,"title":"Implementing Sustainable Cloud Security to Stop Remediation Nightmares","slug":"implementing-sustainable-cloud-security-to-stop-remediation-nightmares","categoryList":["technology","cybersecurity"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/300402"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":0,"slug":null,"isbn":null,"categoryList":null,"amazon":null,"image":null,"title":null,"testBankPinActivationLink":null,"bookOutOfPrint":false,"authorsInfo":null,"authors":null,"_links":null},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;cybersecurity&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]},{&quot;key&quot;:&quot;sponsored&quot;,&quot;values&quot;:[&quot;customsolutions&quot;]}]\" id=\"du-slot-673e784aeb92f\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;cybersecurity&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]},{&quot;key&quot;:&quot;sponsored&quot;,&quot;values&quot;:[&quot;customsolutions&quot;]}]\" id=\"du-slot-673e784aed2b0\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":true,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"Brought to you by Pathlock","brandingLink":"https://pathlock.com/","brandingLogo":{"src":"https://www.dummies.com/wp-content/uploads/pathlock-logo-185x42-1.jpg","width":185,"height":42},"sponsorAd":"","sponsorEbookTitle":"Zero Risk Application Security For Dummies, Pathlock Special Edition","sponsorEbookLink":"https://pathlock.com/resource/zero-risk-application-security-for-dummies/","sponsorEbookImage":{"src":"https://www.dummies.com/wp-content/uploads/zero-risk-application-security-fd-pathlock-special-edition-9781394236213-165x255.jpg","width":165,"height":255}},"primaryLearningPath":"Solve","lifeExpectancy":"One year","lifeExpectancySetFrom":"2024-11-21T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[{"adPairKey":"sponsored","adPairValue":"customsolutions"}]},"status":"publish","visibility":"public","articleId":302507},{"headers":{"creationTime":"2024-11-13T21:56:21+00:00","modifiedTime":"2024-11-13T22:03:06+00:00","timestamp":"2024-11-14T00:01:09+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Electronics","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33543"},"slug":"electronics","categoryId":33543},{"name":"Drones","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33550"},"slug":"drones","categoryId":33550}],"title":"Drone Piloting For Dummies Cheat Sheet","strippedTitle":"drone piloting for dummies cheat sheet","slug":"drone-piloting-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Elevate your drone skills with our cheat sheet! Learn to fly safely, ace the Part 107 exam, and explore opportunities for turning your hobby into a career.","noIndex":0,"noFollow":0},"content":"Drone piloting is for fun . . . and profit, if you want to go that route! It can start out as a hobby and become a side hustle or even a full-time job in a particular industry. From giving you tips about buying a drone, to flying it safely, to taking the Part 107 exam, to cranking up a freelance business, this cheat sheet can help you get your drone piloting goals off the ground.","description":"Drone piloting is for fun . . . and profit, if you want to go that route! It can start out as a hobby and become a side hustle or even a full-time job in a particular industry. From giving you tips about buying a drone, to flying it safely, to taking the Part 107 exam, to cranking up a freelance business, this cheat sheet can help you get your drone piloting goals off the ground.","blurb":"","authors":[{"authorId":9855,"name":"Curt Simmons","slug":"curt-simmons","description":" <p><b>Curt Simmons</b> is the author of more than 100 technology books, including <i>Windows 11 For Seniors For Dummies.</i> Curt is also a certified FAA Part 107 remote pilot and owns a drone photography business, Sky Life Photography, LLC (skylifephotography.com). He photographs rural properties, construction projects, and commercial landscaping projects. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9855"}}],"primaryCategoryTaxonomy":{"categoryId":33550,"title":"Drones","slug":"drones","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33550"}},"secondaryCategoryTaxonomy":{"categoryId":34272,"title":"General Careers","slug":"general-careers","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34272"}},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[],"fromCategory":[{"articleId":207484,"title":"Drones For Dummies Cheat Sheet","slug":"drones-for-dummies-cheat-sheet","categoryList":["technology","electronics","drones"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/207484"}},{"articleId":145856,"title":"What Are Aerial Drones Used for?","slug":"what-are-aerial-drones-used-for","categoryList":["technology","electronics","drones"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/145856"}},{"articleId":142519,"title":"Shooting Aerial Video Footage with Your Drone","slug":"shooting-aerial-video-footage-with-your-drone","categoryList":["technology","electronics","drones"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/142519"}},{"articleId":142520,"title":"Protecting Your Drone from Water","slug":"protecting-your-drone-from-water","categoryList":["technology","electronics","drones"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/142520"}},{"articleId":142517,"title":"FAA Restrictions for Drone Use","slug":"faa-restrictions-for-drone-use","categoryList":["technology","electronics","drones"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/142517"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":302400,"slug":"drone-piloting-for-dummies","isbn":"9781394282111","categoryList":["technology","electronics","drones"],"amazon":{"default":"https://www.amazon.com/gp/product/1394282117/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394282117/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394282117-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394282117/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394282117/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/drone-piloting-for-dummies-cover-9781394282111-203x255.jpg","width":203,"height":255},"title":"Drone Piloting For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><p><b><b data-author-id=\"9855\">Curt Simmons</b></b> is the author of more than 100 technology books, including <i>Windows 11 For Seniors For Dummies.</i> Curt is also a certified FAA Part 107 remote pilot and owns a drone photography business, Sky Life Photography, LLC (skylifephotography.com). He photographs rural properties, construction projects, and commercial landscaping projects.</p>","authors":[{"authorId":9855,"name":"Curt Simmons","slug":"curt-simmons","description":" <p><b>Curt Simmons</b> is the author of more than 100 technology books, including <i>Windows 11 For Seniors For Dummies.</i> Curt is also a certified FAA Part 107 remote pilot and owns a drone photography business, Sky Life Photography, LLC (skylifephotography.com). He photographs rural properties, construction projects, and commercial landscaping projects. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9855"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;electronics&quot;,&quot;drones&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394282111&quot;]}]\" id=\"du-slot-67353dc5a706d\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;electronics&quot;,&quot;drones&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394282111&quot;]}]\" id=\"du-slot-67353dc5a7a8d\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":0,"title":"","slug":null,"categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/"}}],"content":[{"title":"Buying a new drone","thumb":null,"image":null,"content":"<p>If you’re about to buy your first drone, or maybe your fifth, the process never gets easier. You encounter too many options, too many opinions, and too much marketing. You discover so many drone makes and models, and then off-shoots of those models, that it makes your head spin.</p>\n<p>But here are a few tips for shopping for a drone:</p>\n<ul>\n<li><strong>Decide on your drone’s main purpose.</strong> Different makes and models of drones are good at different things. What do you really want to do with the drone? Don’t spend your money on features that you don’t plan to use.</li>\n<li><strong>Know your budget.</strong> There’s no point looking at drones that cost $15,000 if your budget is $5,000. It’s a time-waster and makes the shopping process more confusing. Plan a budget and stick to it so that you can narrow down your options.</li>\n<li><strong>Check out reviews.</strong> Start reading reviews from a variety of sources, and as you read the reviews, look for the “middle of the road” pattern among them. Forget both the glowing reviews and the one-star reviews. Look for the middle ground where you see potential negatives but also what people say consistently about the positives.</li>\n<li><strong>Think about insurance and warranties.</strong> A drone can be a big purchase, which merits considering the warranty that comes with it and possibly getting an extended warranty. You may also want to insure the drone against crashes or theft. The cost of insurance and a good warranty may impact your budget, too.</li>\n<li><strong>Buy from a store that allows generous returns.</strong> Know how much time you have to check out the drone before you can return it. Return policies vary wildly from store to store.</li>\n</ul>\n"},{"title":"Flying safely","thumb":null,"image":null,"content":"<p>Flying a drone safely means avoiding harm to your drone and to any person or someone’s property! The list of safety tips here are easy to follow, but too many people ignore them. Develop a simple safety routine and do these tasks every time you get ready to fly. Your drone — and everyone else — will thank you.</p>\n<ul>\n<li><strong>Charge the batteries and RC.</strong> This tip may seem obvious, but a common cause of accidents is lack of power. People forget to charge the batteries or RC, wrongly assume that they’ll last long enough, and then get into power trouble when they fly. Always start with everything charged, and remember that environmental variables like wind and cold weather can greatly impact how long batteries last.</li>\n<li><strong>Check for firmware updates.</strong> Drone firmware is updated often with new features and bug fixes. Keep it up to date to avoid any potential problems. Updates usually take only a few minutes, so if you haven’t flown in a week or so, check for updates before you do.</li>\n<li><strong>Use collision-avoidance features.</strong> Many drones have built-in sensors that provide at least some level of obstacle avoidance. These features often include braking before you hit an object, or bypassing it, which enables the drone to take over and fly around an obstacle. Such features aren’t perfect, but they can help a lot in a variety of situations. Use them and know what features and limitations your drone has. Also, remember that sport or speed mode typically turns those sensors off, so be careful!</li>\n<li><strong>Check the weather.</strong> Rain, snow, wind, very cold and very hot temperatures, and humidity can all impact your drone piloting mission and the drone’s battery life. Always check the weather before you fly, and delay a mission if the weather doesn’t look so hot (no pun intended).</li>\n<li><strong>Check the airspace.</strong> Make sure you can legally fly in the airspace your mission encompasses. It’s easy to obtain a B4UFLY app and check it before you fly. The app quickly tells you identifies the airspace and any restrictions. Airspace restrictions exist for safety purposes, and they’re important. You can also check out the current B4UFLY apps at <a href=\"https://www.faa.gov/uas/getting_started/b4ufly\" target=\"_blank\" rel=\"noopener\">https://www.faa.gov/uas/getting_started/b4ufly</a>.</li>\n<li><strong>Use situational awareness.</strong> The last piece of the safety puzzle really comes down to you being aware. Be aware of the environment, including whether there are possible hazards, too many people, or problematic obstacles. Also, be aware of yourself, which means an honest appraisal of whether you are sufficiently rested, mentally focused, and free from any influence of alcohol, drugs, and prescription medications. Much of drone safety comes back to the pilot, so make sure you’re ready to fly!</li>\n</ul>\n"},{"title":"Studying for the Part 107 Exam","thumb":null,"image":null,"content":"<p>You can’t do anything that’s considered commercial with your drone (that includes nonprofits, and it doesn’t matter whether you’re paid or not) without passing the Part 107 certification. For this reason, many drone pilots quickly move from flying for fun to taking the Part 107 exam. If you want to expand beyond being strictly a hobbyist, you must pass the test. Here are some tips for studying:</p>\n<ul>\n<li><strong>Don’t memorize sample test questions.</strong> You can find sample test questions for the Part 107 exam all over the internet, and you can even purchase various study courses. Although it’s good to look at sample questions, the actual exam may not have any of the questions you review. Focus on learning content, not memorizing questions. You’ll be a much better drone pilot if you actually know the material and don’t just try to pass the test.</li>\n<li><strong>Use old-school flashcards.</strong> You need to know a lot of terms, acronyms, and concepts to pass the test. There’s no way around it; you have to memorize this content. Go old school and make flashcards of those terms and concepts and work on just knowing them backward and forward. While you’re at it, say those terms and definitions out loud as you practice. That way, you engage both eyes and ears in the learning process. For most people, this strategy makes memorization easier.</li>\n<li><strong>Know airspace.</strong> The FAA wants you to understand airspace and what’s legal for drone piloting. You need to know the airspace classes and be able to identify them on sectional charts. Make sure you spend plenty of time studying airspace!</li>\n<li><strong>Practice sectional chart interpretation.</strong> You’ll likely see several questions asking you to interpret something on a sectional chart. Make sure you can read and understand these charts. Practice, and then practice some more.</li>\n<li><strong>Practice with scratch paper.</strong> At the testing center, you take the test on a computer but are also provided with a testing supplement document and scratch paper for use before and during the test. Before you click Start on the test screen, you can spend a few moments writing down difficult or confusing concepts, terms and definitions, or making drawings on the scratch paper. Because the Part 107 exam likes to mix up terms and concepts in an effort to confuse you, having some notes ready to refer to can help you keep things straight.</li>\n<li><strong>Slow down.</strong> The odds are good that passing the Part 107 exam isn’t an emergency for you. People who spend more time studying typically perform better on the test. It’s not a race. And if you don’t pass the first time, you can take it again!</li>\n</ul>\n"},{"title":"Taking great drone photos","thumb":null,"image":null,"content":"<p>One of the most significant uses of drones is to take photos and videos. Yet not all photos are created equally. To get good shots, follow these tips:</p>\n<ul>\n<li><strong>Work on composition.</strong> Composition refers to what you include in a photo and what you exclude. Think about what you want to show the viewer and exclude items that distract from it.</li>\n<li><strong>Try different angles.</strong> The best angle for a shot may not be directly over the subject but instead may be slightly lower, or even much lower. Or it may be to the side, with a slight tilt of the gimbal. Consider what will make your subject look the best and then experiment with different angles.</li>\n<li><strong>Be aware of the sun’s location.</strong> The best photos tend to happen on overcast days when you have diffused sunlight. Of course, you often can’t do anything about that, and if you need to shoot in direct sunlight, watch out. Direct sunlight can completely ruin a photo. Try to shoot with the sun behind the drone instead of facing it. Sometimes just changing the drone’s angle or elevation can make a big difference!</li>\n<li><strong>Take a lot of photos. </strong>All photographers who do great work take a lot of photos. Then they critically cull through those shots and pick only the very best. Do the same. The more shots you take, the more likely you are to get a shot you love!</li>\n</ul>\n"},{"title":"Planning a business venture as a drone pilot","thumb":null,"image":null,"content":"<p>If you’re thinking of starting a small business or perhaps engage in an existing business as a drone pilot, consider these questions:</p>\n<ul>\n<li><strong>What’s the purpose of the business?</strong> Too often, drone pilots begin a freelance business without a clear plan for the kinds of jobs they are willing to do, or not do. Knowing what areas of the drone business don’t interest you is just as important as what you do want to do. People who are successful in small business tend to be laser focused on a business plan with just a few goals, such as getting clients and marketing their business.</li>\n<li><strong>What equipment do you need?</strong> Don’t ask what equipment you want, but what equipment do you actually need? A new drone, new computer, photo or video editing software? Decide what you need to get your business off the ground and how to fund those expenses.</li>\n<li><strong>Who will your clients be?</strong> Consider who may hire you for drone work and what they will need from you. What service would be the most helpful in your area? The potential market for your services depends on where you live.</li>\n<li><strong>What do you need to do to give it your best shot? </strong>When you start your own business, you have to deal with stuff that’s not as fun as flying, such as saving money, billing, paying taxes, and tracking income and expenses. Before you take the plunge into starting your own business, do you need to work on getting more organized? Maybe you need to learn some accounting software, or create an office space in your home. Think about how to lay the best foundation for your new venture. That foundation may hold the keys to success!</li>\n</ul>\n"}],"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2024-11-13T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":302481},{"headers":{"creationTime":"2024-11-13T19:31:10+00:00","modifiedTime":"2024-11-13T19:31:10+00:00","timestamp":"2024-11-13T21:01:11+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Computers","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33513"},"slug":"computers","categoryId":33513},{"name":"PCs","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33536"},"slug":"pcs","categoryId":33536}],"title":"PCs & Laptops For Dummies Cheat Sheet","strippedTitle":"pcs & laptops for dummies cheat sheet","slug":"pcs-laptops-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Master your computer with our free Cheat Sheet for PCs and laptops. It's the perfect resource for anyone looking to improve their tech know-how.","noIndex":0,"noFollow":0},"content":"Whether it’s a desktop the family uses, an office computer, or a liberating laptop you can take with you around the globe, everyone loves to cheat! Specifically, you may find it beneficial to print and save this bonus information to assist you with your beloved computer. Call it helpful hints, but <em>For Dummies</em> tradition labels this document a Cheat Sheet — once a $2.95 value but now free!","description":"Whether it’s a desktop the family uses, an office computer, or a liberating laptop you can take with you around the globe, everyone loves to cheat! Specifically, you may find it beneficial to print and save this bonus information to assist you with your beloved computer. Call it helpful hints, but <em>For Dummies</em> tradition labels this document a Cheat Sheet — once a $2.95 value but now free!","blurb":"","authors":[{"authorId":9003,"name":"Dan Gookin","slug":"dan-gookin","description":" <p><b>Dan Gookin</b> wrote the very first <i>For Dummies</i> book in 1991. The author of several bestsellers, Dan enjoys worldwide success with books that have been translated into 32 languages and have more than 11 million copies in print. Dan is also author of <i>Word For Dummies</i> and <i>C Programming For Dummies</i>. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9003"}}],"primaryCategoryTaxonomy":{"categoryId":33536,"title":"PCs","slug":"pcs","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33536"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[],"fromCategory":[{"articleId":283471,"title":"Laptop Keyboards","slug":"laptop-keyboards","categoryList":["technology","computers","pcs"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/283471"}},{"articleId":245446,"title":"How to Create the System Image for Your Windows PC","slug":"create-system-image-windows-pc","categoryList":["technology","computers","pcs"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245446"}},{"articleId":245443,"title":"Browsing File History","slug":"browsing-file-history","categoryList":["technology","computers","pcs"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245443"}},{"articleId":245440,"title":"Recovering an Older Version of a File with File History","slug":"recovering-older-version-file-file-history","categoryList":["technology","computers","pcs"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245440"}},{"articleId":245437,"title":"How to Select Folders for Backup on Your PC","slug":"select-folders-backup-pc","categoryList":["technology","computers","pcs"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245437"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":302399,"slug":"pcs-laptops-for-dummies","isbn":"9781394276943","categoryList":["technology","computers","pcs"],"amazon":{"default":"https://www.amazon.com/gp/product/139427694X/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/139427694X/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/139427694X-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/139427694X/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/139427694X/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/pcs-and-laptops-for-dummies-cover-9781394276943-203x255.jpg","width":203,"height":255},"title":"PCs & Laptops For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><p><b><b data-author-id=\"9003\">Dan Gookin</b></b> wrote the very first <i>For Dummies</i> book in 1991. The author of several bestsellers, Dan enjoys worldwide success with books that have been translated into 32 languages and have more than 11 million copies in print. Dan is also author of <i>Word For Dummies</i> and <i>C Programming For Dummies</i>.</p>","authors":[{"authorId":9003,"name":"Dan Gookin","slug":"dan-gookin","description":" <p><b>Dan Gookin</b> wrote the very first <i>For Dummies</i> book in 1991. The author of several bestsellers, Dan enjoys worldwide success with books that have been translated into 32 languages and have more than 11 million copies in print. Dan is also author of <i>Word For Dummies</i> and <i>C Programming For Dummies</i>. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9003"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;computers&quot;,&quot;pcs&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394276943&quot;]}]\" id=\"du-slot-67351397e4974\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;computers&quot;,&quot;pcs&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394276943&quot;]}]\" id=\"du-slot-67351397e50ac\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":0,"title":"","slug":null,"categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/"}}],"content":[{"title":"My computer’s basic information","thumb":null,"image":null,"content":"<p>Here is some good information to have, not only for your own reference but also should you ever need to phone tech support, reference other material online, or boast to people you enjoy putting down.</p>\n<p>The following technical information is specific to your own computer, desktop, or laptop.</p>\n<p>Computer name: _______________________________________________<br />\n(The name given in Windows, the network name, or a pet’s name)</p>\n<p>Brand name: _________________________________________________<br />\n(The manufacturer, such as Compaq, Gateway, or Kaypro)</p>\n<p>Make: _________________________________________________<br />\n(The model’s name or number, if you know it. If not, make it up.)</p>\n<p>Serial number: ______________________<br />\n(Write it down now to save you some panic later.)</p>\n<p>Purchase date: ______________________________<br />\n(Extra parenthetical note here to please my editor.)</p>\n<p>My computer’s technical details</p>\n<p>This stuff may be important for tech support or a future upgrade. Details concealed in this book tell you how to find this information.</p>\n<p>Microprocessor: _____________________</p>\n<p>RAM (GB): _________________________</p>\n<p>Primary storage device capacity (GB): __________</p>\n<p>Video adapter: ___________________________</p>\n"},{"title":"Important contact information","thumb":null,"image":null,"content":"<p>Keep these numbers here so that when you lose this sheet of paper, you feel truly screwed.</p>\n<p>My computer dealer: ______________________________________</p>\n<p>Dealer’s phone number: _________________________________________</p>\n<p>Dealer’s email: _______________________________________________</p>\n<p>Tech support phone line: ________________________________________</p>\n<p>Tech support email: ___________________________________________</p>\n<p>Internet provider name: _________________________________________</p>\n<p>Internet provider tech support line: _________________________________</p>\n<p>Internet service provider’s web page: ______________________________________</p>\n<p>Internet service provider’s email: ________________________________________</p>\n"},{"title":"Laptop battery-saving tips","thumb":null,"image":null,"content":"<p>Here are some suggestions to make your battery last as long as possible without offending the laws of physics. These are all imperatives, though because English lacks an imperative case, I’ve ended each sentence with an exclamation point:</p>\n<ul>\n<li>Dim the screen!</li>\n<li>Mute the speaker!</li>\n<li>Turn off Wi-Fi and Bluetooth!</li>\n<li>Run only necessary programs!</li>\n<li>Set a solid-color desktop!</li>\n<li>Enable low-battery warnings!</li>\n<li>Close unused programs!</li>\n<li>Customize the power management scheme!</li>\n<li>Charge your laptop when you can!</li>\n</ul>\n"},{"title":"Laptop bag checklist","thumb":null,"image":null,"content":"<p>Here’s a smattering of items you might want to stuff into your laptop case or backpack. Storing these items there is trendier than sticking them all in your pockets — even when you wear cargo pants — because doing so would make you look like a dork.</p>\n<ul>\n<li>Laptop</li>\n<li>Power cord and adapter</li>\n<li>Wireless mouse and spare battery</li>\n<li>External storage</li>\n<li>Ethernet cable</li>\n<li>Pens, paper, sticky notes</li>\n<li>Screen wipes</li>\n<li>Headphones</li>\n<li>A copy of your presentation</li>\n<li>Media cards and thumb drives</li>\n<li>Lock or cable</li>\n<li>Business cards</li>\n<li>Snacks</li>\n</ul>\n"},{"title":"General troubleshooting tips","thumb":null,"image":null,"content":"<p>This list of impressive tips was promoted from colonel troubleshooting tips in the previous edition.</p>\n<ul>\n<li>Restart Windows. This trick fixes many common problems.</li>\n<li>Ensure that all cables are properly connected.</li>\n<li>Remember that changes cause problems. Upgrading software or hardware or changing the settings in Windows usually causes whatever new problems your laptop encounters.</li>\n<li>Activate and use antivirus software.</li>\n<li>Affix a personal label or asset-tracking sticker to your laptop.</li>\n</ul>\n"},{"title":"Helpful computer hints","thumb":null,"image":null,"content":"<ul>\n<li>Some of these items are found in the book; some of them are not.</li>\n<li>Keep Windows up-to-date!</li>\n<li>Always use your best posture while you compute. Don’t slouch! Elevate your wrists. Don’t tilt your head too far down.</li>\n<li>Skip this point.</li>\n<li>Get a UPS for your desktop PC. Plug the monitor, console, and external backup drive into the battery-backed-up sockets.</li>\n<li>Press the Fn key on your laptop in conjunction with other keys to activate special laptop features.</li>\n<li>Properly turn off your PC; use the Windows Shutdown command.</li>\n<li>You can connect and disconnect USB devices to and from the computer while the computer or device is on. However:</li>\n<li>Properly disconnect a thumb drive, media card, or external USB drive. Don’t just yank it out, no matter how much doing so pleases you.</li>\n<li>The best gift you can buy a desktop computer is more memory.</li>\n<li>Obtain an external drive and implement a backup regimen on your computer.</li>\n<li>Give yourself time to learn new software.</li>\n<li>The key to understanding software is to know what a <em>file</em> is. The key to organizing files is to know what a <em>folder</em> is.</li>\n</ul>\n"},{"title":"Unhelpful computer hints","thumb":null,"image":null,"content":"<p>Share this list with your enemies:</p>\n<ul>\n<li>Using Windows version 8.0 is great. Downgrade at once!</li>\n<li>Put your passwords on sticky notes all around the monitor. Write down the website and account name. Print to make the details easy to read.</li>\n<li>Format drive C. The computer has an Undo command, right?</li>\n<li>The most effective way to turn off a computer is to just yank that plug right out of the socket.</li>\n<li>When the thumb drive doesn’t seem to fit into the USB port, try using a hammer.</li>\n<li>The vents on the back of a desktop computer provide an excellent location to dispose of discarded chewing gum.</li>\n<li>When the mouse pointer is stuck or nonresponsive, lift the mouse from the desktop and slam it back down</li>\n<li>Don’t worry about spilling coffee into a computer keyboard. Caffeine is an excellent cleanser.</li>\n<li>Click the link in that email message. Some foreign princes are truly magnanimous with their fortunes.</li>\n<li>Believe everything you read on the Internet.</li>\n</ul>\n"}],"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Explore","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2024-11-13T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":302473},{"headers":{"creationTime":"2024-11-07T20:04:19+00:00","modifiedTime":"2024-11-13T15:15:05+00:00","timestamp":"2024-11-13T18:01:09+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Information Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33572"},"slug":"information-technology","categoryId":33572},{"name":"AI","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33574"},"slug":"ai","categoryId":33574}],"title":"10 Mistakes to Avoid When Writing AI Prompts","strippedTitle":"10 mistakes to avoid when writing ai prompts","slug":"10-mistakes-to-avoid-when-writing-ai-prompts","canonicalUrl":"","seo":{"metaDescription":"When you’re new to crafting AI prompts, it's easy to make mistakes. Discover the top 10 mistakes to avoid when writing AI prompts with our video and guide.","noIndex":0,"noFollow":0},"content":"When you’re new to crafting AI prompts, you can easily make mistakes. Using AI tools the right way makes you more productive and efficient. But if you aren’t careful, you may develop bad habits when you’re still learning. We clue you in to 10 mistakes you should avoid from the start in this video and article.\r\n<div class=\"x2 x2-top\"><iframe title=\"YouTube video player\" src=\"https://www.youtube.com/embed/Ti_N7CWlPTc?si=4hbJ9CpWMF_W1db6\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe></div>\r\n<h2 id=\"tab1\" >Not Spending Enough Time Crafting and Testing Prompts</h2>\r\nOne common mistake when using AI tools is not putting in the effort to carefully craft your prompts. You may be tempted — very tempted — to quickly type out a prompt and get a response back from the AI, but hurried prompts usually produce mediocre results. Taking the time to compose your prompt using clear language will increase your chances of getting the response you want. A poor response spells the need for you to evaluate the prompt to see where you can clarify or improve it. It’s an iterative process, so don’t be surprised if you have to refine your prompt several times. Like any skill, learning to design effective prompts takes practice and patience. The key is to resist the urge to take shortcuts. Make sure to put in the work needed to guide the AI to a great response.\r\n<h2 id=\"tab2\" >Assuming the AI Understands Context or Subtext</h2>\r\nIt’s easy to overestimate the capabilities of AI tools and assume they understand the meaning of language the way humans do. Current AI tools take things literally. They don’t actually understand the context of a conversation. An AI assistant may be trained to identify patterns and connections and is aware of these things as concepts (like norms, emotions, or sarcasm), all of which rely on context, but it struggles to identify them reliably.\r\n\r\nHumans can read between the lines and understand meaning beyond what’s actually written. An AI interprets instructions and prompts in a very literal sense — it doesn’t understand the meaning behind them. You can’t assume an AI understands concepts it hasn’t been trained for.\r\n<h2 id=\"tab3\" >Asking Overly Broad or Vague Questions</h2>\r\nWhen interacting with an AI, avoid overly broad or vague questions. The AI works best when you give it clear, specific prompts. Providing prompts like “Tell me about human history” or “Explain consciousness” is like asking the AI to search the entire internet. The response will probably be unfocused. The AI has no sense of what information is relevant or important so you need to refocus and try again.\r\n\r\nGood prompts are more direct. You can start with a prompt such as “Summarize this research paper in two paragraphs” or “Write a 500-word article on summer plants that require shade.” The prompt should give the AI boundaries and context to shape its response. Going from broad to increasingly narrow questions also helps.\r\n\r\nYou can start generally asking about a topic and then follow up with focused requests on the specific details. Providing concrete examples guides the AI. The key is to give the AI precise prompts centered directly on the information you want instead of typing a request with a vague, borderless question. Sharp, specific questioning produces the best AI results.\r\n<h2 id=\"tab4\" >Not Checking Outputs for Errors and Biases</h2>\r\nA common mistake when using AI apps is taking the results at face value without double-checking them. AI systems may reflect bias, or generate text that seems right but has errors. Just because the content came from an AI doesn’t mean it’s necessarily accurate. Reviewing AI responses rather than blindly trusting the technology is critical. Look for instances of bias where specific demographics are negatively characterized or tropes (clichés) are reinforced.\r\n\r\nAlways check facts and figures against other sources. Look for logic that indicates the AI was “confused.” Providing feedback when the AI makes a mistake can further enhance its training. The key is to approach responses skeptically instead of assuming that the AI always generates perfect results. As with any human team member, reviewing their work is essential before using it. Careful oversight of AI tools mitigates risks.\r\n<h2 id=\"tab5\" >Using Offensive, Unethical, or Dangerous Prompts</h2>\r\nA primary concern when working with AI is that the apps can inadvertently amplify harmful biases if users write offensive, unethical, or dangerous prompts. The AI will generate text for any input, but the response may be that you’re asking for a harmful response and it will not comply. Prompting an AI with inappropriate language or potential discrimination may reinforce biases from the data the model was trained on.\r\n\r\nIf users are cautious when formulating prompts, that can help steer the technology toward more thoughtful responses. AI can be subject to the whims of bad actors.\r\n<h2 id=\"tab6\" >Expecting Too Much Originality or Creativity from the AI</h2>\r\nOne common mistake when using AI apps is expecting too much original thought or creativity. AI tools can generate unique mixes of text, imagery, and other media, but there are limits. As of this writing, AI apps are only capable of remixing existing information and patterns into new combinations. They can’t really create responses that break new ground. An AI has no natural creative flair like human artists or thinkers. Its training data consists only of past and present works. So, although an AI can generate new work, expecting a “masterpiece” is unrealistic.\r\n<h2 id=\"tab7\" >Copying Generated Content Verbatim</h2>\r\nA big mistake users make when first using AI tools is to take the text and use it verbatim, without any edits or revisions. AI can often produce text that appears to be well written, but the output is more likely to be a bit rough and require a good edit. Mindlessly copying the unedited output can result in unclear and generic work. (Also, plagiarizing or passing the writing off as your own is unethical.)\r\n\r\nA best practice is to use the suggestions as a starting point that you build upon with your own words and edits to polish the final product. Keep the strong parts and make it into something original. The key is that the AI app should support your work, not replace it. With the right editing and polishing, you can produce something you’ll be proud of.\r\n<h2 id=\"tab8\" >Providing Too Few Examples and Use Cases</h2>\r\nWhen you’re training an AI app to handle a new task, a common mistake is to provide too few examples of inputs. Humans can usually extrapolate from a few samples, but AI apps can’t. An AI must be shown examples to grasp the full scope of the case. You need to feed the AI varied use cases to help it generalize effectively.\r\n\r\nSimilarly, limiting prompts to just a couple of instances produces equally poor results because the AI has little indication of the boundaries of the task. Providing diverse examples helps the AI form an understanding about how to respond. Having patience and supplying many examples lets the AI respond appropriately.\r\n<h2 id=\"tab9\" >Not Customizing Prompts for Different Use Cases</h2>\r\nOne common mistake when working with AI tools is attempting to use the same generic prompt to handle all your use cases. Creating a one-size-fits-all prompt is easier, but it will deliver disappointing results. Each use case and application has its own unique goals and information that need to be conveyed, as discussed throughout this book. For example, a prompt for a creative nonfiction story should be designed differently than a prompt for a medical article.\r\n\r\nAn inventory of prompts designed for various use cases allows the AI to adapt quickly to different needs. The key is customization. Building a library of specialized prompts is an investment that pays dividends.\r\n<h2 id=\"tab10\" >Becoming Overly Reliant on AI Tasks Better Suited for Humans</h2>\r\nAlmost everyone is excited about using AI tools to make their job easier. But it’s important to avoid becoming too dependent on them. AI is great for tasks like automation and personalization, but applying ethics and conveying empathy are still human strengths.","description":"When you’re new to crafting AI prompts, you can easily make mistakes. Using AI tools the right way makes you more productive and efficient. But if you aren’t careful, you may develop bad habits when you’re still learning. We clue you in to 10 mistakes you should avoid from the start in this video and article.\r\n<div class=\"x2 x2-top\"><iframe title=\"YouTube video player\" src=\"https://www.youtube.com/embed/Ti_N7CWlPTc?si=4hbJ9CpWMF_W1db6\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe></div>\r\n<h2 id=\"tab1\" >Not Spending Enough Time Crafting and Testing Prompts</h2>\r\nOne common mistake when using AI tools is not putting in the effort to carefully craft your prompts. You may be tempted — very tempted — to quickly type out a prompt and get a response back from the AI, but hurried prompts usually produce mediocre results. Taking the time to compose your prompt using clear language will increase your chances of getting the response you want. A poor response spells the need for you to evaluate the prompt to see where you can clarify or improve it. It’s an iterative process, so don’t be surprised if you have to refine your prompt several times. Like any skill, learning to design effective prompts takes practice and patience. The key is to resist the urge to take shortcuts. Make sure to put in the work needed to guide the AI to a great response.\r\n<h2 id=\"tab2\" >Assuming the AI Understands Context or Subtext</h2>\r\nIt’s easy to overestimate the capabilities of AI tools and assume they understand the meaning of language the way humans do. Current AI tools take things literally. They don’t actually understand the context of a conversation. An AI assistant may be trained to identify patterns and connections and is aware of these things as concepts (like norms, emotions, or sarcasm), all of which rely on context, but it struggles to identify them reliably.\r\n\r\nHumans can read between the lines and understand meaning beyond what’s actually written. An AI interprets instructions and prompts in a very literal sense — it doesn’t understand the meaning behind them. You can’t assume an AI understands concepts it hasn’t been trained for.\r\n<h2 id=\"tab3\" >Asking Overly Broad or Vague Questions</h2>\r\nWhen interacting with an AI, avoid overly broad or vague questions. The AI works best when you give it clear, specific prompts. Providing prompts like “Tell me about human history” or “Explain consciousness” is like asking the AI to search the entire internet. The response will probably be unfocused. The AI has no sense of what information is relevant or important so you need to refocus and try again.\r\n\r\nGood prompts are more direct. You can start with a prompt such as “Summarize this research paper in two paragraphs” or “Write a 500-word article on summer plants that require shade.” The prompt should give the AI boundaries and context to shape its response. Going from broad to increasingly narrow questions also helps.\r\n\r\nYou can start generally asking about a topic and then follow up with focused requests on the specific details. Providing concrete examples guides the AI. The key is to give the AI precise prompts centered directly on the information you want instead of typing a request with a vague, borderless question. Sharp, specific questioning produces the best AI results.\r\n<h2 id=\"tab4\" >Not Checking Outputs for Errors and Biases</h2>\r\nA common mistake when using AI apps is taking the results at face value without double-checking them. AI systems may reflect bias, or generate text that seems right but has errors. Just because the content came from an AI doesn’t mean it’s necessarily accurate. Reviewing AI responses rather than blindly trusting the technology is critical. Look for instances of bias where specific demographics are negatively characterized or tropes (clichés) are reinforced.\r\n\r\nAlways check facts and figures against other sources. Look for logic that indicates the AI was “confused.” Providing feedback when the AI makes a mistake can further enhance its training. The key is to approach responses skeptically instead of assuming that the AI always generates perfect results. As with any human team member, reviewing their work is essential before using it. Careful oversight of AI tools mitigates risks.\r\n<h2 id=\"tab5\" >Using Offensive, Unethical, or Dangerous Prompts</h2>\r\nA primary concern when working with AI is that the apps can inadvertently amplify harmful biases if users write offensive, unethical, or dangerous prompts. The AI will generate text for any input, but the response may be that you’re asking for a harmful response and it will not comply. Prompting an AI with inappropriate language or potential discrimination may reinforce biases from the data the model was trained on.\r\n\r\nIf users are cautious when formulating prompts, that can help steer the technology toward more thoughtful responses. AI can be subject to the whims of bad actors.\r\n<h2 id=\"tab6\" >Expecting Too Much Originality or Creativity from the AI</h2>\r\nOne common mistake when using AI apps is expecting too much original thought or creativity. AI tools can generate unique mixes of text, imagery, and other media, but there are limits. As of this writing, AI apps are only capable of remixing existing information and patterns into new combinations. They can’t really create responses that break new ground. An AI has no natural creative flair like human artists or thinkers. Its training data consists only of past and present works. So, although an AI can generate new work, expecting a “masterpiece” is unrealistic.\r\n<h2 id=\"tab7\" >Copying Generated Content Verbatim</h2>\r\nA big mistake users make when first using AI tools is to take the text and use it verbatim, without any edits or revisions. AI can often produce text that appears to be well written, but the output is more likely to be a bit rough and require a good edit. Mindlessly copying the unedited output can result in unclear and generic work. (Also, plagiarizing or passing the writing off as your own is unethical.)\r\n\r\nA best practice is to use the suggestions as a starting point that you build upon with your own words and edits to polish the final product. Keep the strong parts and make it into something original. The key is that the AI app should support your work, not replace it. With the right editing and polishing, you can produce something you’ll be proud of.\r\n<h2 id=\"tab8\" >Providing Too Few Examples and Use Cases</h2>\r\nWhen you’re training an AI app to handle a new task, a common mistake is to provide too few examples of inputs. Humans can usually extrapolate from a few samples, but AI apps can’t. An AI must be shown examples to grasp the full scope of the case. You need to feed the AI varied use cases to help it generalize effectively.\r\n\r\nSimilarly, limiting prompts to just a couple of instances produces equally poor results because the AI has little indication of the boundaries of the task. Providing diverse examples helps the AI form an understanding about how to respond. Having patience and supplying many examples lets the AI respond appropriately.\r\n<h2 id=\"tab9\" >Not Customizing Prompts for Different Use Cases</h2>\r\nOne common mistake when working with AI tools is attempting to use the same generic prompt to handle all your use cases. Creating a one-size-fits-all prompt is easier, but it will deliver disappointing results. Each use case and application has its own unique goals and information that need to be conveyed, as discussed throughout this book. For example, a prompt for a creative nonfiction story should be designed differently than a prompt for a medical article.\r\n\r\nAn inventory of prompts designed for various use cases allows the AI to adapt quickly to different needs. The key is customization. Building a library of specialized prompts is an investment that pays dividends.\r\n<h2 id=\"tab10\" >Becoming Overly Reliant on AI Tasks Better Suited for Humans</h2>\r\nAlmost everyone is excited about using AI tools to make their job easier. But it’s important to avoid becoming too dependent on them. AI is great for tasks like automation and personalization, but applying ethics and conveying empathy are still human strengths.","blurb":"","authors":[{"authorId":8966,"name":"Stephanie Diamond","slug":"stephanie-diamond","description":" <p><b>John Mueller</b> has produced hundreds of books and articles on topics ranging from networking to home security and from database management to heads-down programming. If he had a nickel for every time he is asked the question, &#8220;Is the terminator real?&#8221; (No!), he could have retired years ago.</p> <p><b>Luca Massaron</b> is a data scientist who specializes in organizing and interpreting big data and turning it into smart data. He has over 20 years??? experience delivering data solutions to clients in a variety of industries. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/8966"}},{"authorId":35397,"name":"Jeffrey Allan","slug":"jeffrey-allan","description":" <p> <b>Stephanie Diamond</b> is a marketing professional and author or coauthor of more than two dozen books, including <i>Digital Marketing All-in-One For Dummies </i>and <i>Facebook Marketing For Dummies. </i> <b>Jeffrey Allan</b> is the Director of the Institute for Responsible Technology and Artificial Intelligence (IRT) at Nazareth University. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/35397"}}],"primaryCategoryTaxonomy":{"categoryId":33574,"title":"AI","slug":"ai","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33574"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[{"label":"Not Spending Enough Time Crafting and Testing Prompts","target":"#tab1"},{"label":"Assuming the AI Understands Context or Subtext","target":"#tab2"},{"label":"Asking Overly Broad or Vague Questions","target":"#tab3"},{"label":"Not Checking Outputs for Errors and Biases","target":"#tab4"},{"label":"Using Offensive, Unethical, or Dangerous Prompts","target":"#tab5"},{"label":"Expecting Too Much Originality or Creativity from the AI","target":"#tab6"},{"label":"Copying Generated Content Verbatim","target":"#tab7"},{"label":"Providing Too Few Examples and Use Cases","target":"#tab8"},{"label":"Not Customizing Prompts for Different Use Cases","target":"#tab9"},{"label":"Becoming Overly Reliant on AI Tasks Better Suited for Humans","target":"#tab10"}],"relatedArticles":{"fromBook":[{"articleId":301862,"title":"Writing AI Prompts For Dummies Cheat Sheet","slug":"writing-ai-prompts-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301862"}}],"fromCategory":[{"articleId":302302,"title":"Marketing with AI For Dummies Cheat Sheet","slug":"marketing-with-ai-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/302302"}},{"articleId":301862,"title":"Writing AI Prompts For Dummies Cheat Sheet","slug":"writing-ai-prompts-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301862"}},{"articleId":301745,"title":"Reaping the Benefits of AI for CX for Your Stakeholders","slug":"reaping-the-benefits-of-ai-for-cx-for-your-stakeholders","categoryList":["technology","information-technology","ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301745"}},{"articleId":301679,"title":"Coding with AI For Dummies Cheat Sheet","slug":"coding-with-ai-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301679"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":301809,"slug":"writing-ai-prompts-for-dummies","isbn":"9781394244669","categoryList":["technology","information-technology","ai"],"amazon":{"default":"https://www.amazon.com/gp/product/1394244665/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394244665/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394244665-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394244665/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394244665/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/writing-ai-prompts-for-dummies-cover-9781394244669-203x255.jpg","width":203,"height":255},"title":"Writing AI Prompts For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><p><b>John Mueller</b> has produced hundreds of books and articles on topics ranging from networking to home security and from database management to heads-down programming. If he had a nickel for every time he is asked the question, &#8220;Is the terminator real?&#8221; (No!), he could have retired years ago.</p> <p><b>Luca Massaron</b> is a data scientist who specializes in organizing and interpreting big data and turning it into smart data. He has over 20 years??? experience delivering data solutions to clients in a variety of industries. <p> <b>Stephanie Diamond</b> is a marketing professional and author or coauthor of more than two dozen books, including <i>Digital Marketing All-in-One For Dummies </i>and <i>Facebook Marketing For Dummies. </i> <b><b data-author-id=\"35397\">Jeffrey Allan</b></b> is the Director of the Institute for Responsible Technology and Artificial Intelligence (IRT) at Nazareth University.</p>","authors":[{"authorId":8966,"name":"Stephanie Diamond","slug":"stephanie-diamond","description":" <p><b>John Mueller</b> has produced hundreds of books and articles on topics ranging from networking to home security and from database management to heads-down programming. If he had a nickel for every time he is asked the question, &#8220;Is the terminator real?&#8221; (No!), he could have retired years ago.</p> <p><b>Luca Massaron</b> is a data scientist who specializes in organizing and interpreting big data and turning it into smart data. He has over 20 years??? experience delivering data solutions to clients in a variety of industries. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/8966"}},{"authorId":35397,"name":"Jeffrey Allan","slug":"jeffrey-allan","description":" <p> <b>Stephanie Diamond</b> is a marketing professional and author or coauthor of more than two dozen books, including <i>Digital Marketing All-in-One For Dummies </i>and <i>Facebook Marketing For Dummies. </i> <b>Jeffrey Allan</b> is the Director of the Institute for Responsible Technology and Artificial Intelligence (IRT) at Nazareth University. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/35397"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;information-technology&quot;,&quot;ai&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394244669&quot;]}]\" id=\"du-slot-6734e9658cf4b\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;information-technology&quot;,&quot;ai&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394244669&quot;]}]\" id=\"du-slot-6734e9658ea18\"></div></div>"},"articleType":{"articleType":"Videos","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"One year","lifeExpectancySetFrom":"2024-11-07T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":302451},{"headers":{"creationTime":"2024-11-06T20:55:47+00:00","modifiedTime":"2024-11-06T21:14:28+00:00","timestamp":"2024-11-07T00:01:06+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Information Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33572"},"slug":"information-technology","categoryId":33572}],"title":"The Next Data Cycle: Why Your Organization Needs Hyperscale NAS","strippedTitle":"the next data cycle: why your organization needs hyperscale nas","slug":"the-next-data-cycle-why-your-organization-needs-hyperscale-nas","canonicalUrl":"","seo":{"metaDescription":"Discover how hyperscale NAS can revolutionize your data architecture. Adapt to the next data cycle and unlock new opportunities in AI and deep learning.","noIndex":0,"noFollow":0},"content":"In the ever-accelerating race of data processing and analytics, your organization’s ability to adapt and evolve its data architecture is crucial. As we enter the next data cycle, marked by the rise of artificial intelligence (AI) and deep learning (DL), the demands on data storage and management are unprecedented. This is where hyperscale network-attached storage (NAS) comes into play, offering a transformative solution for organizations looking to capitalize on the next wave of data-driven opportunities.\r\n<h2 id=\"tab1\" >Ushering in the Next Data Cycle with Hyperscale NAS</h2>\r\nThe next data cycle is characterized by a shift from structured business intelligence (BI) data to a world where unstructured and semi-structured data reign supreme. This data is massive in volume and comes from countless sources, which require high-performance access to drive valuable insights. Hyperscale NAS meets this challenge head-on by merging the simplicity of enterprise NAS with the extreme performance of high-performance computing (HPC) parallel file systems.\r\n\r\n<p class=\"article-tips remember\">Hyperscale NAS is essential for your organization for the following reasons:</p>\r\n<ul>\r\n \t<li><strong>Performance at scale:</strong> Hyperscale NAS isn’t bottlenecked by traditional NAS controllers, so linear scalability in performance and capacity are enabled across potentially thousands of nodes.</li>\r\n \t<li><strong>Cost efficiency:</strong> Being software-defined, hyperscale NAS allows the use of commodity hardware and avoids vendor lock-in, driving down costs significantly.</li>\r\n \t<li><strong>Metadata excellence:</strong> With shared metadata kept out of the data path, hyperscale NAS ensures fast access to data across the global environment, which is critical for AI and DL workloads that require rapid data retrieval and processing.</li>\r\n</ul>\r\n<h2 id=\"tab2\" >Hyperscale NAS: A Pillar for Modern Data Architectures</h2>\r\nThe architecture of hyperscale NAS is fundamentally different from traditional solutions. It overcomes the limitations of scale-out NAS by providing linear scalability and extreme throughput using commodity infrastructure. This means that as your data grows, your system’s performance and capacity can grow with it, without the need for expensive, specialized hardware.\r\n\r\nSome of the transformative capabilities of hyperscale NAS include\r\n<ul>\r\n \t<li><strong>Standards-based integration:</strong> The hyperscale NAS client software is built into standard Linux distributions, eliminating the need for proprietary clients.</li>\r\n \t<li><strong>Consistent high performance:</strong> The separation of metadata from the data path allows for near-full bandwidth utilization, delivering the speed necessary for demanding applications.</li>\r\n \t<li><strong>High availability:</strong> Hyperscale NAS includes distributed architecture, load balancing, tiering, and high-availability features, proving itself in some of the world’s largest AI environments.</li>\r\n</ul>\r\n<h2 id=\"tab3\" >Making Data Available and Actionable</h2>\r\nIn the era of AI, having access to sufficient compute resources, like graphics processing units (GPUs), is a significant challenge. Hyperscale NAS helps you leverage GPUs wherever they’re available, making data a live, globally shared resource that’s no longer localized or trapped within proprietary storage systems or specific cloud data services.\r\n\r\n<p class=\"article-tips remember\">Hyperscale NAS makes data more accessible and actionable through</p>\r\n<ul>\r\n \t<li><strong>Global data sets:</strong> Hyperscale NAS orchestrates data to GPUs in the cloud and GPU-as-a-Service providers, unifying multiple data sources into a single global file system.</li>\r\n \t<li><strong>Intelligent data placement:</strong> Leveraging metadata-driven data orchestration, Hyperscale NAS ensures data is where it needs to be, when it needs to be there.</li>\r\n \t<li><strong>Non-disruptive data mobility:</strong> Data can be moved between storage systems, sites, and clouds without disrupting access or performance.</li>\r\n</ul>\r\nAs your organization gears up for the next data cycle, adopting hyperscale NAS isn’t just a strategic move; it’s an imperative one. It’s a future-proof solution that enables you to keep pace with the exponential growth of data and the complex demands of AI and DL. With hyperscale NAS, you can transform your business, unleash the full potential of your data assets, and ensure that your organization isn’t just ready but thriving in the next data cycle.\r\n\r\nFor more information, download this free e-book: <a class=\"bookSponsor-btn\" href=\"https://hammerspace.com/hyperscale-nas-for-dummies/\" target=\"_blank\" rel=\"noopener\" data-testid=\"bookSponsorDownloadButton\"><em>Hyperscale NAS For Dummies,</em> Hammerspace Special Edition</a>.","description":"In the ever-accelerating race of data processing and analytics, your organization’s ability to adapt and evolve its data architecture is crucial. As we enter the next data cycle, marked by the rise of artificial intelligence (AI) and deep learning (DL), the demands on data storage and management are unprecedented. This is where hyperscale network-attached storage (NAS) comes into play, offering a transformative solution for organizations looking to capitalize on the next wave of data-driven opportunities.\r\n<h2 id=\"tab1\" >Ushering in the Next Data Cycle with Hyperscale NAS</h2>\r\nThe next data cycle is characterized by a shift from structured business intelligence (BI) data to a world where unstructured and semi-structured data reign supreme. This data is massive in volume and comes from countless sources, which require high-performance access to drive valuable insights. Hyperscale NAS meets this challenge head-on by merging the simplicity of enterprise NAS with the extreme performance of high-performance computing (HPC) parallel file systems.\r\n\r\n<p class=\"article-tips remember\">Hyperscale NAS is essential for your organization for the following reasons:</p>\r\n<ul>\r\n \t<li><strong>Performance at scale:</strong> Hyperscale NAS isn’t bottlenecked by traditional NAS controllers, so linear scalability in performance and capacity are enabled across potentially thousands of nodes.</li>\r\n \t<li><strong>Cost efficiency:</strong> Being software-defined, hyperscale NAS allows the use of commodity hardware and avoids vendor lock-in, driving down costs significantly.</li>\r\n \t<li><strong>Metadata excellence:</strong> With shared metadata kept out of the data path, hyperscale NAS ensures fast access to data across the global environment, which is critical for AI and DL workloads that require rapid data retrieval and processing.</li>\r\n</ul>\r\n<h2 id=\"tab2\" >Hyperscale NAS: A Pillar for Modern Data Architectures</h2>\r\nThe architecture of hyperscale NAS is fundamentally different from traditional solutions. It overcomes the limitations of scale-out NAS by providing linear scalability and extreme throughput using commodity infrastructure. This means that as your data grows, your system’s performance and capacity can grow with it, without the need for expensive, specialized hardware.\r\n\r\nSome of the transformative capabilities of hyperscale NAS include\r\n<ul>\r\n \t<li><strong>Standards-based integration:</strong> The hyperscale NAS client software is built into standard Linux distributions, eliminating the need for proprietary clients.</li>\r\n \t<li><strong>Consistent high performance:</strong> The separation of metadata from the data path allows for near-full bandwidth utilization, delivering the speed necessary for demanding applications.</li>\r\n \t<li><strong>High availability:</strong> Hyperscale NAS includes distributed architecture, load balancing, tiering, and high-availability features, proving itself in some of the world’s largest AI environments.</li>\r\n</ul>\r\n<h2 id=\"tab3\" >Making Data Available and Actionable</h2>\r\nIn the era of AI, having access to sufficient compute resources, like graphics processing units (GPUs), is a significant challenge. Hyperscale NAS helps you leverage GPUs wherever they’re available, making data a live, globally shared resource that’s no longer localized or trapped within proprietary storage systems or specific cloud data services.\r\n\r\n<p class=\"article-tips remember\">Hyperscale NAS makes data more accessible and actionable through</p>\r\n<ul>\r\n \t<li><strong>Global data sets:</strong> Hyperscale NAS orchestrates data to GPUs in the cloud and GPU-as-a-Service providers, unifying multiple data sources into a single global file system.</li>\r\n \t<li><strong>Intelligent data placement:</strong> Leveraging metadata-driven data orchestration, Hyperscale NAS ensures data is where it needs to be, when it needs to be there.</li>\r\n \t<li><strong>Non-disruptive data mobility:</strong> Data can be moved between storage systems, sites, and clouds without disrupting access or performance.</li>\r\n</ul>\r\nAs your organization gears up for the next data cycle, adopting hyperscale NAS isn’t just a strategic move; it’s an imperative one. It’s a future-proof solution that enables you to keep pace with the exponential growth of data and the complex demands of AI and DL. With hyperscale NAS, you can transform your business, unleash the full potential of your data assets, and ensure that your organization isn’t just ready but thriving in the next data cycle.\r\n\r\nFor more information, download this free e-book: <a class=\"bookSponsor-btn\" href=\"https://hammerspace.com/hyperscale-nas-for-dummies/\" target=\"_blank\" rel=\"noopener\" data-testid=\"bookSponsorDownloadButton\"><em>Hyperscale NAS For Dummies,</em> Hammerspace Special Edition</a>.","blurb":"","authors":[],"primaryCategoryTaxonomy":{"categoryId":33572,"title":"Information Technology","slug":"information-technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33572"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[{"label":"Ushering in the Next Data Cycle with Hyperscale NAS","target":"#tab1"},{"label":"Hyperscale NAS: A Pillar for Modern Data Architectures","target":"#tab2"},{"label":"Making Data Available and Actionable","target":"#tab3"}],"relatedArticles":{"fromBook":[],"fromCategory":[]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":0,"slug":null,"isbn":null,"categoryList":null,"amazon":null,"image":null,"title":null,"testBankPinActivationLink":null,"bookOutOfPrint":false,"authorsInfo":null,"authors":null,"_links":null},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;information-technology&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]},{&quot;key&quot;:&quot;sponsored&quot;,&quot;values&quot;:[&quot;customsolutions&quot;]}]\" id=\"du-slot-672c0342454a9\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;information-technology&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]},{&quot;key&quot;:&quot;sponsored&quot;,&quot;values&quot;:[&quot;customsolutions&quot;]}]\" id=\"du-slot-672c03424713e\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":true,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"Brought to you by Hammerspace","brandingLink":"https://hammerspace.com/","brandingLogo":{"src":"https://www.dummies.com/wp-content/uploads/hammerspace-logo-266x55-1.png","width":266,"height":55},"sponsorAd":"","sponsorEbookTitle":"Hyperscale NAS For Dummies, Hammerspace Special Edition","sponsorEbookLink":"https://hammerspace.com/hyperscale-nas-for-dummies/","sponsorEbookImage":{"src":"https://www.dummies.com/wp-content/uploads/hyperscale-nas-for-dummies-hammerspace-special-edition-9781394261680-165x255.jpg","width":165,"height":255}},"primaryLearningPath":"Solve","lifeExpectancy":"One year","lifeExpectancySetFrom":"2024-11-07T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[{"adPairKey":"sponsored","adPairValue":"customsolutions"}]},"status":"publish","visibility":"public","articleId":302435},{"headers":{"creationTime":"2019-10-09T22:32:15+00:00","modifiedTime":"2024-10-28T20:21:54+00:00","timestamp":"2024-10-28T21:01:27+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"},"slug":"python","categoryId":33606}],"title":"How to Define and Use Python Lists","strippedTitle":"how to define and use python lists","slug":"how-to-define-and-use-python-lists","canonicalUrl":"","seo":{"metaDescription":"Use this guide from Dummies.com to learn how to define and use Python lists. This Python tutorial helps you make the most of your Python lists.","noIndex":0,"noFollow":0},"content":"The simplest data collection in <a href=\"https://www.dummies.com/programming/python/python-all-in-one-for-dummies-cheat-sheet/\">Python</a> is a list. A <em>list</em> is any list of data items, separated by commas, inside square brackets. Typically, you assign a name to the Python list using an = sign, just as you would with variables. If the list contains numbers, then don't use quotation marks around them. For example, here is a list of test scores:\r\n<pre class=\"code\">scores = [88, 92, 78, 90, 98, 84]</pre>\r\nIf the list contains strings then, as always, those strings should be enclosed in single or double quotation marks, as in this example:\r\n\r\nTo display the contents of a list on the screen, you can print it just as you would print any regular variable. For example, executing <code>print(students)</code> in your code after defining that list shows this on the screen.\r\n<pre class=\"code\">['Mark', 'Amber', 'Todd', 'Anita', 'Sandy']</pre>\r\nThis may not be exactly what you had in mind. But don’t worry, Python offers lots of great ways to access data in lists and display it however you like.\r\n<h2 id=\"tab1\" >Referencing Python list items by position</h2>\r\nEach item in a list has a position number, starting with zero, even though you don’t see any numbers. You can refer to any item in the list by its number using the name for the list followed by a number in square brackets. In other words, use this syntax:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;[&lt;em&gt;x&lt;/em&gt;]\r\n\r\nReplace &lt;em&gt;&lt;code&gt;listname&lt;/code&gt;&lt;/em&gt; with the name of the list you're accessing and replace &lt;em&gt;&lt;code&gt;x&lt;/code&gt;&lt;/em&gt; with the position number of item you want. Remember, the first item is always number zero, not one. For example, in the first line below, I define a list named &lt;code&gt;students&lt;/code&gt;, and then print item number zero from that list. The result, when executing the code, is that the name &lt;code&gt;Mark&lt;/code&gt; is displayed.</pre>\r\n<pre class=\"code\">students = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nprint(students[0])\r\nMark</pre>\r\n<technicalstuff>\r\n\r\nWhen reading access list items, professionals use the word <em>sub</em> before the number. For example, <em>students[0]</em> would be spoken as <em>students sub zero</em>.\r\n\r\nThis next example shows a list named <code>scores</code>. The <code>print()</code> function prints the position number of the last score in the list, which is 4 (because the first one is always zero).\r\n<pre class=\"code\">scores = [88, 92, 78, 90, 84]\r\nprint(scores[4])\r\n84</pre>\r\nIf you try to access a list item that doesn't exist, you get an “index out of range” error. The <em>index</em> part is a reference to the number inside the square brackets. For example, the image below shows a little experiment in a <a href=\"https://www.dummies.com/programming/python/tips-for-using-jupyter-notebook-for-python-programming/\">Jupyter notebook</a> where a list of scores was created and then the printing of <code>score[5]</code> was attempted.\r\n\r\nIt failed and generated an error because there is no <code>scores[5]</code>. There's only <code>scores[0]</code>, <code>scores[1]</code>, <code>scores[2]</code>, <code>scores[3]</code>, and <code>scores[4]</code> because the counting always starts at zero with the first one on the list.\r\n\r\n[caption id=\"attachment_264920\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264920 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-index-range.jpg\" alt=\"Python index range\" width=\"535\" height=\"212\" /> Index out of range error because there is no scores[5].[/caption] \r\n<h2 id=\"tab2\" >Looping through a Python list</h2>\r\nTo access each item in a list, just use a for loop with this syntax:\r\n<pre class=\"code\">for &lt;em&gt;x&lt;/em&gt; in &lt;em&gt;list&lt;/em&gt;:</pre>\r\nReplace <em<code>&gt;x</code> with a variable name of your choosing. Replace <em><code>list</code></em> with the name of the list. An easy way to make the code readable is to always use a plural for the list name (such as <code>students</code>, <code>scores</code>). Then you can use the singular name (<code>student</code>, <code>score</code>) for the variable name. You don't need to use subscript numbers (numbers in square brackets) with this approach either. For example, the following code prints each score in the scores list:\r\n<pre class=\"code\">for score in scores:\r\nprint(score)</pre>\r\nRemember to always indent the code that’s to be executed within the loop. This image shows a more complete example where you can see the result of running the code in a Jupyter notebook.\r\n\r\n[caption id=\"attachment_264921\" align=\"aligncenter\" width=\"262\"]<img class=\"wp-image-264921 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-loop-list.jpg\" alt=\"Looping through a Python list\" width=\"262\" height=\"219\" /> Looping through a list.[/caption]\r\n\r\n \r\n<h2 id=\"tab3\" >Seeing whether a Python list contains an item</h2>\r\nIf you want your code to check the contents of a list to see whether it already contains some item, use <code>in &lt;em&gt;listname&lt;/em&gt;</code> in an <code>if</code> statement or a variable assignment.\r\n\r\nFor example, the code in the image below creates a list of names. Then, two variables store the results of searching the list for the names <em>Anita</em> and <em>Bob</em>. Printing the contents of each variable shows True for the one where the name (Anita) is in the list. The test to see whether Bob is in the list proves False.\r\n\r\n[caption id=\"attachment_264922\" align=\"aligncenter\" width=\"460\"]<img class=\"wp-image-264922 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-list-contain.jpg\" alt=\"Seeing whether an item is in a Python list\" width=\"460\" height=\"244\" /> Seeing whether an item is in a list.[/caption]\r\n\r\n \r\n<h2 id=\"tab4\" >Getting the length of a Python list</h2>\r\nTo determine how many items are in a list, use the <code>len()</code> function (short for <em>length</em>). Put the name of the list inside the parentheses. For example, type the following code into a Jupyter notebook or Python prompt or whatever:\r\n<pre class=\"code\">students = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nprint(len(students))</pre>\r\nRunning that code produces this output:\r\n<pre class=\"code\">5</pre>\r\nThere are indeed five items in the list, though the last one is always one less than the number because Python starts counting at zero. So the last one, Sandy, actually refers to students[4] and not students[5].\r\n<h2 id=\"tab5\" >Appending an item to the end of a Python list</h2>\r\nWhen you want your Python code to add a new item to the end of a list, use the <code>.append()</code> method with the value you want to add inside the parentheses. You can use either a variable name or a literal value inside the quotation marks.\r\n\r\nFor instance, in the following image the line that reads <code>students.append(\"Goober\")</code> adds the name Goober to the list. The line that reads <code>students.append(new_student)</code> adds whatever name is stored in the variable named <code>new_student</code> to the list. The <code>.append()</code> method always adds to the end of the list. So when you print the list you see those two new names at the end.\r\n\r\n[caption id=\"attachment_264923\" align=\"aligncenter\" width=\"533\"]<img class=\"wp-image-264923 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-append-list.jpg\" alt=\"Python append list\" width=\"533\" height=\"272\" /> Appending two new names to the end of the list.[/caption]\r\n\r\n \r\n\r\nYou can use a test to see whether an item is in a list and then append it only when the item isn't already there. For example, the code below won’t add the name Amber to the list because that name is already in the list:\r\n<pre class=\"code\">student_name = \"Amanda\"\r\n\r\n#Add student_name but only if not already in the list.\r\nif student_name in students:\r\n print (student_name + \" already in the list\")\r\nelse: \r\n students.append(student_name)\r\n print (student_name + \" added to the list\")</pre>\r\n<h2 id=\"tab6\" >Inserting an item into a Python list</h2>\r\nAlthough the <code>append()</code> method allows you to add an item to the end of a list, the <code>insert()</code> method allows you to add an item to the list in any position. The syntax for <code>insert()</code> is\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.insert(&lt;em&gt;position&lt;/em&gt;, &lt;em&gt;item&lt;/em&gt;)</pre>\r\nReplace <em>listname</em> with the name of the list, <em>position</em> with the position at which you want to insert the item (for example, 0 to make it the first item, 1 to make it the second item, and so forth). Replace <em>item</em> with the value, or the name of a variable that contains the value, that you want to put into the list.\r\n\r\nFor example, the following code makes Lupe the first item in the list:\r\n<pre class=\"code\">#Create a list of strings (names).\r\nstudents = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\n\r\nstudent_name = \"Lupe\"\r\n# Add student name to front of the list.\r\nstudents.insert(0,student_name)\r\n\r\n#Show me the new list.\r\nprint(students)</pre>\r\nIf you run the code, <code>print(students)</code> will show the list after the new name has been inserted, as follows:\r\n<pre class=\"code\">['Lupe', 'Mark', 'Amber', 'Todd', 'Anita', 'Sandy']</pre>\r\n<h2 id=\"tab7\" >Changing an item in a Python list</h2>\r\nYou can change an item in a list using the = assignment operator (check out these <a href=\"https://www.dummies.com/programming/python/common-python-operators/\">common Python operators</a>) just like you do with variables. Just make sure you include the index number in square brackets of the item you want to change. The syntax is:\r\n\r\n<em>listname</em>[<em>index</em>]=<em>newvalue</em>\r\n\r\nReplace <em><code>listname</code></em> with the name of the list; replace <em><code>index</code></em> with the subscript (index number) of the item you want to change; and replace <em><code>newvalue</code></em> with whatever you want to put in the list item. For example, take a look at this code:\r\n<pre class=\"code\">#Create a list of strings (names).\r\nstudents = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nstudents[3] = \"Hobart\"\r\nprint(students)</pre>\r\nWhen you run this code, the output is as follows, because Anita's name has been changed to Hobart.\r\n<pre class=\"code\">['Mark', 'Amber', 'Todd', 'Hobart', 'Sandy']</pre>\r\n<h2 id=\"tab8\" >Combining Python lists</h2>\r\nIf you have two lists that you want to combine into a single list, use the <code>extend()</code> function with the syntax:\r\n<pre class=\"code\">&lt;em&gt;original_list&lt;/em&gt;.extend(&lt;em&gt;additional_items_list&lt;/em&gt;)</pre>\r\nIn your code, replace <em>original_list</em> with the name of the list to which you’ll be adding new list items. Replace <em>additional_items_list</em> with the name of the list that contains the items you want to add to the first list. Here is a simple example using lists named <code>list1</code> and <code>list2</code>. After executing <code>list1.extend(list2)</code>, the first list contains the items from both lists, as you can see in the output of the <code>print()</code> statement at the end.\r\n<pre class=\"code\"># Create two lists of Names.\r\nlist1 = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\nlist2 = [\"Huey\", \"Dewey\", \"Louie\", \"Nader\", \"Bubba\"]\r\n\r\n# Add list2 names to list1.\r\nlist1.extend(list2)\r\n\r\n# Print list 1.\r\nprint(list1)\r\n\r\n['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba']</pre>\r\nEasy Parcheesi, no?\r\n<h2 id=\"tab9\" >Removing Python list items</h2>\r\nPython offers a <code>remove()</code> method so you can remove any value from the list. If the item is in the list multiple times, only the first occurrence is removed. For example, the following code shows a list of letters with the letter <em>C</em> repeated a few times. Then the code uses <code>letters.remove(\"C\")</code> to remove the letter <em>C</em> from the list:\r\n<pre class=\"code\"># Remove \"C\" from the list.\r\nletters.remove(\"C\")\r\n\r\n#Show me the new list.\r\nprint(letters)</pre>\r\nWhen you actually execute this code and then print the list, you'll see that only the first letter <em>C</em> has been removed:\r\n<pre class=\"code\">['A', 'B', 'D', 'C', 'E', 'C']</pre>\r\nIf you need to remove all of an item, you can use a <code>while</code> loop to repeat the <code>.remove</code> as long as the item still remains in the list. For example, this code repeats the .remove as long as the “C” is still in the list.\r\n<pre class=\"code\">#Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"C\", \"E\", \"C\"]</pre>\r\nIf you want to remove an item based on its position in the list, use <code>pop()</code> with an index number rather than <code>remove()</code> with a value. If you want to remove the last item from the list, use <code>pop()</code> without an index number.\r\n\r\nFor example, the following code creates a list, one line removes the first item (0), and another removes the last item <code>(pop()</code> with nothing in the parentheses). Printing the list shows those two items have been removed:\r\n<pre class=\"code\">#Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n#Remove the first item.\r\nletters.pop(0)\r\n#Remove the last item.\r\nletters.pop()\r\n \r\n#Show me the new list.\r\nprint(letters)</pre>\r\nRunning the code shows that the popping the first and last items did, indeed, work:\r\n<pre class=\"code\">['B', 'C', 'D', 'E', 'F']</pre>\r\nWhen you <code>pop()</code> an item off the list, you can store a copy of that value in some variable. For example this image shows the same code as above. However, it stores copies of what's been removed in variables named <code>first_removed</code> and <code>last_removed</code>. At the end it <a href=\"https://www.dummies.com/programming/python/printing-lists-using-python/\">prints the Python list</a>, and also shows which letters were removed.\r\n\r\n[caption id=\"attachment_264924\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264924 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-remove-list-item.jpg\" alt=\"remove items from Python list\" width=\"535\" height=\"231\" /> Removing list items with pop().[/caption]\r\n\r\nPython also offers a <code>del</code> (short for <em>delete</em>) command that deletes any item from a list based on its index number (position). But again, you have to remember that the first item is zero. So, let's say you run the following code to delete item number 2 from the list:\r\n<pre class=\"code\"># Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n# Remove item sub 2.\r\ndel letters[2]\r\n \r\nprint(letters)</pre>\r\nRunning that code shows the list again, as follows. The letter <em>C</em> has been deleted, which is the correct item to delete because letters are numbered 0, 1, 2, 3, and so forth.\r\n<pre class=\"code\">['A', 'B', 'D', 'E', 'F', 'G']</pre>\r\nYou can also use del to delete an entire list. Just don’t use the square brackets and the index number. For example, the code you see below creates a list then deletes it. Trying to print the list after the deletion causes an error, because the list no longer exists when the <code>print()</code> statement is executed.\r\n\r\n[caption id=\"attachment_264925\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264925 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-delete-list.jpg\" alt=\"delete Python list\" width=\"535\" height=\"273\" /> Deleting a list and then trying to print it causes an error.[/caption]\r\n\r\n \r\n<h2 id=\"tab10\" >Clearing out a Python list</h2>\r\nIf you want to delete the contents of a list but not the list itself, use <code>.clear()</code>. The list still exists; however, it contains no items. In other words, it's an empty list. The following code shows how you could test this. Running the code displays [] at the end, which lets you know the list is empty:\r\n<pre class=\"code\"># Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n# Clear the list of all entries.\r\nletters.clear()\r\n \r\n# Show me the new list.\r\nprint(letters)\r\n</pre>\r\n\r\n<h2 id=\"tab11\" >Counting how many times an item appears in a Python list</h2>\r\nYou can use the Python <code>count()</code> method to count how many times an item appears in a list. As with other list methods, the syntax is simple:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.count(&lt;em&gt;x&lt;/em&gt;)</pre>\r\nReplace <em>listname</em> with the name of your list, and <em>x</em> with the value you're looking for (or the name of a variable that contains that value).\r\n\r\nThe code in the image below counts how many times the letter <em>B</em> appears in the list, using a literal B inside the parentheses of <code>.count()</code>. This same code also counts the number of <em>C</em> grades, but that value was stored in a variable just to show the difference in syntax. Both counts worked, as you can see in the output of the program at the bottom. One was added to count the <em>F</em>'s, not using any variables. The <em>F</em>’s were counted right in the code that displays the message. There are no <em>F</em> grades, so this returns zero, as you can see in the output.\r\n\r\n[caption id=\"attachment_264926\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264926 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-count-list-item.jpg\" alt=\"count Python list items\" width=\"535\" height=\"296\" /> Counting items in a list.[/caption]\r\n\r\nWhen trying to combine numbers and strings to form a message, remember you have to convert the numbers to strings using the <code>str()</code> function. Otherwise, you get an error that reads something like can only <code>concatenate str (not \"int\") to str</code>. In that message, <code>int</code> is short for <em>integer</em>, and <code>str</code> is short for <em>string</em>.\r\n<h2 id=\"tab12\" >Finding a Python list item's index</h2>\r\nPython offers an .index() method that returns a number indicating the position, based on index number, of an item in a list. The syntax is:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.index(&lt;em&gt;x&lt;/em&gt;)</pre>\r\nAs always, replace <em><code>listname</code></em> with name of the list you want to search. Replace <em>x</em> what whatever you're looking for (either as a literal or as a variable name, as always). Of course, there’s no guarantee that the item is in the list, and even if it is, there’s no guarantee that the item is in the list only once. If the item isn’t in the list, then an error occurs. If the item is in the list multiple times, then the index of the first matching item is returned.\r\n\r\nThe following image shows an example where the program crashes at the line <code>f_index = grades.index(look_for)</code> because there is no <em>F</em> in the list.\r\n\r\n[caption id=\"attachment_264927\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264927 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-list-iem-index.jpg\" alt=\"Python list item index\" width=\"535\" height=\"374\" /> Program fails when trying to find index of a nonexistent list item.[/caption]\r\n\r\n \r\n\r\nAn easy way to get around that problem is to use an <code>if</code> statement to see whether an item is in the list before you try to get its index number. If the item isn't in the list, display a message saying so. Otherwise, get the index number and show it in a message. That code is as follows:\r\n<pre class=\"code\"># Create a list of strings.\r\ngrades = [\"C\", \"B\", \"A\", \"D\", \"C\", \"B\", \"C\"]\r\n# Decide what to look for\r\nlook_for = \"F\"\r\n# See if the item is in the list.\r\nif look_for in grades:\r\n # If it's in the list, get and show the index.\r\n print(str(look_for) + \" is at index \" + str(grades.index(look_for)))\r\nelse:\r\n # If not in the list, don't even try for index number.\r\n print(str(look_for) + \" isn't in the list.\")</pre>\r\n<h2 id=\"tab13\" >Alphabetizing and sorting Python lists</h2>\r\nPython offers a <code>sort()</code> method for sorting lists. In its simplest form, it alphabetizes the items in the list (if they’re strings). If the list contains numbers, they’re sorted smallest to largest. For a simple sort like that, just use <code>sort()</code> with empty parentheses:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.sort()</pre>\r\nReplace <em><code>listname</code></em> with the name of your list. The following image shows an example using a list of strings and a list of numbers. In the example, a new list was created for each of them simply by assigning each sorted list to a new list name. Then the code prints the contents of each sorted list.\r\n\r\n[caption id=\"attachment_264928\" align=\"aligncenter\" width=\"496\"]<img class=\"wp-image-264928 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-sort-list.jpg\" alt=\"sort Python list\" width=\"496\" height=\"296\" /> Sorting strings and numbers.[/caption]\r\n\r\n \r\n\r\nIf your list contains strings with a mixture of uppercase and lowercase letters, and if the results of the sort don't look right, try replacing <code>.sort()</code> with <code>.sort(key=lambda s:s.lower())</code> and then running the code again.\r\n\r\nDates are a little trickier because you can’t just type them in as strings, like <code>\"12/31/2020\"</code>. They have to be the <code>date</code> data type to sort correctly. This means using the <code>datetime</code> module and the <code>date()</code> method to define each date. You can add the dates to the list as you would any other list. For example, in the following line, the code creates a list of four dates, and the code is perfectly fine.\r\n<pre class=\"code\">dates = [dt.date(2020,12,31), dt.date(2019,1,31), dt.date(2018,2,28), dt.date(2020,1,1)]</pre>\r\nThe computer certainly won't mind if you create the list this way. But if you want to make the code more readable to yourself or other developers, you may want to create and append each date, one at a time, so just so it’s a little easier to see what’s going on and so you don’t have to deal with so many commas in one line of code. The image below shows an example where an empty list named <code>datelist</code> was created:\r\n<pre class=\"code\">datelist = []</pre>\r\n[caption id=\"attachment_264929\" align=\"aligncenter\" width=\"481\"]<img class=\"wp-image-264929 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-display-dates.jpg\" alt=\"display dates in Python\" width=\"481\" height=\"353\" /> Sorting and displaying dates in a nice format.[/caption]\r\n\r\n \r\n\r\nThen one date at a time was appended to the list using the <code>dt.date(&lt;em&gt;year&lt;/em&gt;,&lt;em&gt;month&lt;/em&gt;,&lt;em&gt;day&lt;/em&gt;)</code> syntax.\r\n\r\nAfter the list is created, the code uses <code>datelist.sort()</code> to sort them into chronological order (earliest to latest). You don’t need to use <code>print(datelist)</code> in that code because that method displays the dates with the data type information included, like this:\r\n<pre class=\"code\">[datetime.date(2018, 2, 28), datetime.date(2019, 1, 31), datetime.date (2020, 1, 1), datetime.date(2020, 12, 31)]</pre>\r\nNot the easiest list to read. So, rather than print the whole list with one <code>print()</code> statement, you can loop through each date in the list, and printed each one formatted with the f-string <code>%m/%d/%Y</code>. This displays each date on its own line in <em>mm/dd/yyyy</</em> format, as you can see at the bottom of the image above.\r\n\r\nIf you want to sort items in reverse order, put <code>reverse=True</code> inside the sort() parentheses (and don't forget to make the first letter uppercase). The image below shows examples of sorting all three lists in descending (reverse) order using <code>reverse=True</code>.\r\n\r\n[caption id=\"attachment_264930\" align=\"aligncenter\" width=\"403\"]<img class=\"wp-image-264930 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-sort-info-reverse.jpg\" alt=\"sort info in Python list in reverse\" width=\"403\" height=\"450\" /> Sorting strings, numbers, and dates in reverse order.[/caption]\r\n\r\n \r\n<h2 id=\"tab14\" >Reversing a Python list</h2>\r\nYou can also reverse the order of items in a list using the <code>.reverse</code> method. This is not the same as sorting in reverse, because when you sort in reverse, you still actually sort: Z–A for strings, largest to smallest for numbers, latest to earliest for dates. When you reverse a list, you simply reverse the items in the list, no matter their order, without trying to sort them in any way.\r\n\r\nThe following code shows an example in which you reverse the order of the names in the list and then print the list. The output shows the list items reversed from their original order:\r\n<pre class=\"code\"># Create a list of strings.\r\nnames = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\n# Reverse the list\r\nnames.reverse()\r\n# Print the list\r\nprint(names)\r\n \r\n['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']</pre>\r\n<h2 id=\"tab15\" >Copying a Python list</h2>\r\nIf you ever need to work with a copy of a list, use the <code>.copy()</code> method so as not to alter the original list,. For example, the following code is similar to the preceding code, except that instead of reversing the order of the original list, you make a copy of the list and reverse that one. Printing the contents of each list shows how the first list is still in the original order whereas the second one is reversed:\r\n<pre class=\"code\"># Create a list of strings.\r\nnames = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\n \r\n# Make a copy of the list\r\nbackward_names = names.copy()\r\n# Reverse the copy\r\nbackward_names.reverse()\r\n \r\n# Print the list\r\nprint(names)\r\nprint(backward_names)\r\n \r\n['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake']\r\n['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']</pre>\r\nFor future references, the following table summarizes the methods you've learned about.\r\n<table><caption>Methods for Working with Lists</caption>\r\n<thead>\r\n<tr>\r\n<td>Method</td>\r\n<td>What it Does</td>\r\n</tr>\r\n</thead>\r\n<tbody>\r\n<tr>\r\n<td><code>append()</code></td>\r\n<td>Adds an item to the end of the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>clear()</code></td>\r\n<td>Removes all items from the list, leaving it empty.</td>\r\n</tr>\r\n<tr>\r\n<td><code>copy()</code></td>\r\n<td>Makes a copy of a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>count()</code></td>\r\n<td>Counts how many times an element appears in a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>extend()</code></td>\r\n<td>Appends the items from one list to the end of another list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>index()</code></td>\r\n<td>Returns the index number (position) of an element within a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>insert()</code></td>\r\n<td>Inserts an item into the list at a specific position.</td>\r\n</tr>\r\n<tr>\r\n<td><code>pop()</code></td>\r\n<td>Removes an element from the list, and provides a copy of that item that you can store in a variable.</td>\r\n</tr>\r\n<tr>\r\n<td><code>remove()</code></td>\r\n<td>Removes one item from the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>reverse()</code></td>\r\n<td>Reverses the order of items in the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>sort()</code></td>\r\n<td>Sorts the list in ascending order. Put <code>reverse=True</code> inside the parentheses to sort in descending order.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n<h1></h1>","description":"The simplest data collection in <a href=\"https://www.dummies.com/programming/python/python-all-in-one-for-dummies-cheat-sheet/\">Python</a> is a list. A <em>list</em> is any list of data items, separated by commas, inside square brackets. Typically, you assign a name to the Python list using an = sign, just as you would with variables. If the list contains numbers, then don't use quotation marks around them. For example, here is a list of test scores:\r\n<pre class=\"code\">scores = [88, 92, 78, 90, 98, 84]</pre>\r\nIf the list contains strings then, as always, those strings should be enclosed in single or double quotation marks, as in this example:\r\n\r\nTo display the contents of a list on the screen, you can print it just as you would print any regular variable. For example, executing <code>print(students)</code> in your code after defining that list shows this on the screen.\r\n<pre class=\"code\">['Mark', 'Amber', 'Todd', 'Anita', 'Sandy']</pre>\r\nThis may not be exactly what you had in mind. But don’t worry, Python offers lots of great ways to access data in lists and display it however you like.\r\n<h2 id=\"tab1\" >Referencing Python list items by position</h2>\r\nEach item in a list has a position number, starting with zero, even though you don’t see any numbers. You can refer to any item in the list by its number using the name for the list followed by a number in square brackets. In other words, use this syntax:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;[&lt;em&gt;x&lt;/em&gt;]\r\n\r\nReplace &lt;em&gt;&lt;code&gt;listname&lt;/code&gt;&lt;/em&gt; with the name of the list you're accessing and replace &lt;em&gt;&lt;code&gt;x&lt;/code&gt;&lt;/em&gt; with the position number of item you want. Remember, the first item is always number zero, not one. For example, in the first line below, I define a list named &lt;code&gt;students&lt;/code&gt;, and then print item number zero from that list. The result, when executing the code, is that the name &lt;code&gt;Mark&lt;/code&gt; is displayed.</pre>\r\n<pre class=\"code\">students = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nprint(students[0])\r\nMark</pre>\r\n<technicalstuff>\r\n\r\nWhen reading access list items, professionals use the word <em>sub</em> before the number. For example, <em>students[0]</em> would be spoken as <em>students sub zero</em>.\r\n\r\nThis next example shows a list named <code>scores</code>. The <code>print()</code> function prints the position number of the last score in the list, which is 4 (because the first one is always zero).\r\n<pre class=\"code\">scores = [88, 92, 78, 90, 84]\r\nprint(scores[4])\r\n84</pre>\r\nIf you try to access a list item that doesn't exist, you get an “index out of range” error. The <em>index</em> part is a reference to the number inside the square brackets. For example, the image below shows a little experiment in a <a href=\"https://www.dummies.com/programming/python/tips-for-using-jupyter-notebook-for-python-programming/\">Jupyter notebook</a> where a list of scores was created and then the printing of <code>score[5]</code> was attempted.\r\n\r\nIt failed and generated an error because there is no <code>scores[5]</code>. There's only <code>scores[0]</code>, <code>scores[1]</code>, <code>scores[2]</code>, <code>scores[3]</code>, and <code>scores[4]</code> because the counting always starts at zero with the first one on the list.\r\n\r\n[caption id=\"attachment_264920\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264920 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-index-range.jpg\" alt=\"Python index range\" width=\"535\" height=\"212\" /> Index out of range error because there is no scores[5].[/caption] \r\n<h2 id=\"tab2\" >Looping through a Python list</h2>\r\nTo access each item in a list, just use a for loop with this syntax:\r\n<pre class=\"code\">for &lt;em&gt;x&lt;/em&gt; in &lt;em&gt;list&lt;/em&gt;:</pre>\r\nReplace <em<code>&gt;x</code> with a variable name of your choosing. Replace <em><code>list</code></em> with the name of the list. An easy way to make the code readable is to always use a plural for the list name (such as <code>students</code>, <code>scores</code>). Then you can use the singular name (<code>student</code>, <code>score</code>) for the variable name. You don't need to use subscript numbers (numbers in square brackets) with this approach either. For example, the following code prints each score in the scores list:\r\n<pre class=\"code\">for score in scores:\r\nprint(score)</pre>\r\nRemember to always indent the code that’s to be executed within the loop. This image shows a more complete example where you can see the result of running the code in a Jupyter notebook.\r\n\r\n[caption id=\"attachment_264921\" align=\"aligncenter\" width=\"262\"]<img class=\"wp-image-264921 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-loop-list.jpg\" alt=\"Looping through a Python list\" width=\"262\" height=\"219\" /> Looping through a list.[/caption]\r\n\r\n \r\n<h2 id=\"tab3\" >Seeing whether a Python list contains an item</h2>\r\nIf you want your code to check the contents of a list to see whether it already contains some item, use <code>in &lt;em&gt;listname&lt;/em&gt;</code> in an <code>if</code> statement or a variable assignment.\r\n\r\nFor example, the code in the image below creates a list of names. Then, two variables store the results of searching the list for the names <em>Anita</em> and <em>Bob</em>. Printing the contents of each variable shows True for the one where the name (Anita) is in the list. The test to see whether Bob is in the list proves False.\r\n\r\n[caption id=\"attachment_264922\" align=\"aligncenter\" width=\"460\"]<img class=\"wp-image-264922 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-list-contain.jpg\" alt=\"Seeing whether an item is in a Python list\" width=\"460\" height=\"244\" /> Seeing whether an item is in a list.[/caption]\r\n\r\n \r\n<h2 id=\"tab4\" >Getting the length of a Python list</h2>\r\nTo determine how many items are in a list, use the <code>len()</code> function (short for <em>length</em>). Put the name of the list inside the parentheses. For example, type the following code into a Jupyter notebook or Python prompt or whatever:\r\n<pre class=\"code\">students = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nprint(len(students))</pre>\r\nRunning that code produces this output:\r\n<pre class=\"code\">5</pre>\r\nThere are indeed five items in the list, though the last one is always one less than the number because Python starts counting at zero. So the last one, Sandy, actually refers to students[4] and not students[5].\r\n<h2 id=\"tab5\" >Appending an item to the end of a Python list</h2>\r\nWhen you want your Python code to add a new item to the end of a list, use the <code>.append()</code> method with the value you want to add inside the parentheses. You can use either a variable name or a literal value inside the quotation marks.\r\n\r\nFor instance, in the following image the line that reads <code>students.append(\"Goober\")</code> adds the name Goober to the list. The line that reads <code>students.append(new_student)</code> adds whatever name is stored in the variable named <code>new_student</code> to the list. The <code>.append()</code> method always adds to the end of the list. So when you print the list you see those two new names at the end.\r\n\r\n[caption id=\"attachment_264923\" align=\"aligncenter\" width=\"533\"]<img class=\"wp-image-264923 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-append-list.jpg\" alt=\"Python append list\" width=\"533\" height=\"272\" /> Appending two new names to the end of the list.[/caption]\r\n\r\n \r\n\r\nYou can use a test to see whether an item is in a list and then append it only when the item isn't already there. For example, the code below won’t add the name Amber to the list because that name is already in the list:\r\n<pre class=\"code\">student_name = \"Amanda\"\r\n\r\n#Add student_name but only if not already in the list.\r\nif student_name in students:\r\n print (student_name + \" already in the list\")\r\nelse: \r\n students.append(student_name)\r\n print (student_name + \" added to the list\")</pre>\r\n<h2 id=\"tab6\" >Inserting an item into a Python list</h2>\r\nAlthough the <code>append()</code> method allows you to add an item to the end of a list, the <code>insert()</code> method allows you to add an item to the list in any position. The syntax for <code>insert()</code> is\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.insert(&lt;em&gt;position&lt;/em&gt;, &lt;em&gt;item&lt;/em&gt;)</pre>\r\nReplace <em>listname</em> with the name of the list, <em>position</em> with the position at which you want to insert the item (for example, 0 to make it the first item, 1 to make it the second item, and so forth). Replace <em>item</em> with the value, or the name of a variable that contains the value, that you want to put into the list.\r\n\r\nFor example, the following code makes Lupe the first item in the list:\r\n<pre class=\"code\">#Create a list of strings (names).\r\nstudents = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\n\r\nstudent_name = \"Lupe\"\r\n# Add student name to front of the list.\r\nstudents.insert(0,student_name)\r\n\r\n#Show me the new list.\r\nprint(students)</pre>\r\nIf you run the code, <code>print(students)</code> will show the list after the new name has been inserted, as follows:\r\n<pre class=\"code\">['Lupe', 'Mark', 'Amber', 'Todd', 'Anita', 'Sandy']</pre>\r\n<h2 id=\"tab7\" >Changing an item in a Python list</h2>\r\nYou can change an item in a list using the = assignment operator (check out these <a href=\"https://www.dummies.com/programming/python/common-python-operators/\">common Python operators</a>) just like you do with variables. Just make sure you include the index number in square brackets of the item you want to change. The syntax is:\r\n\r\n<em>listname</em>[<em>index</em>]=<em>newvalue</em>\r\n\r\nReplace <em><code>listname</code></em> with the name of the list; replace <em><code>index</code></em> with the subscript (index number) of the item you want to change; and replace <em><code>newvalue</code></em> with whatever you want to put in the list item. For example, take a look at this code:\r\n<pre class=\"code\">#Create a list of strings (names).\r\nstudents = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nstudents[3] = \"Hobart\"\r\nprint(students)</pre>\r\nWhen you run this code, the output is as follows, because Anita's name has been changed to Hobart.\r\n<pre class=\"code\">['Mark', 'Amber', 'Todd', 'Hobart', 'Sandy']</pre>\r\n<h2 id=\"tab8\" >Combining Python lists</h2>\r\nIf you have two lists that you want to combine into a single list, use the <code>extend()</code> function with the syntax:\r\n<pre class=\"code\">&lt;em&gt;original_list&lt;/em&gt;.extend(&lt;em&gt;additional_items_list&lt;/em&gt;)</pre>\r\nIn your code, replace <em>original_list</em> with the name of the list to which you’ll be adding new list items. Replace <em>additional_items_list</em> with the name of the list that contains the items you want to add to the first list. Here is a simple example using lists named <code>list1</code> and <code>list2</code>. After executing <code>list1.extend(list2)</code>, the first list contains the items from both lists, as you can see in the output of the <code>print()</code> statement at the end.\r\n<pre class=\"code\"># Create two lists of Names.\r\nlist1 = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\nlist2 = [\"Huey\", \"Dewey\", \"Louie\", \"Nader\", \"Bubba\"]\r\n\r\n# Add list2 names to list1.\r\nlist1.extend(list2)\r\n\r\n# Print list 1.\r\nprint(list1)\r\n\r\n['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba']</pre>\r\nEasy Parcheesi, no?\r\n<h2 id=\"tab9\" >Removing Python list items</h2>\r\nPython offers a <code>remove()</code> method so you can remove any value from the list. If the item is in the list multiple times, only the first occurrence is removed. For example, the following code shows a list of letters with the letter <em>C</em> repeated a few times. Then the code uses <code>letters.remove(\"C\")</code> to remove the letter <em>C</em> from the list:\r\n<pre class=\"code\"># Remove \"C\" from the list.\r\nletters.remove(\"C\")\r\n\r\n#Show me the new list.\r\nprint(letters)</pre>\r\nWhen you actually execute this code and then print the list, you'll see that only the first letter <em>C</em> has been removed:\r\n<pre class=\"code\">['A', 'B', 'D', 'C', 'E', 'C']</pre>\r\nIf you need to remove all of an item, you can use a <code>while</code> loop to repeat the <code>.remove</code> as long as the item still remains in the list. For example, this code repeats the .remove as long as the “C” is still in the list.\r\n<pre class=\"code\">#Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"C\", \"E\", \"C\"]</pre>\r\nIf you want to remove an item based on its position in the list, use <code>pop()</code> with an index number rather than <code>remove()</code> with a value. If you want to remove the last item from the list, use <code>pop()</code> without an index number.\r\n\r\nFor example, the following code creates a list, one line removes the first item (0), and another removes the last item <code>(pop()</code> with nothing in the parentheses). Printing the list shows those two items have been removed:\r\n<pre class=\"code\">#Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n#Remove the first item.\r\nletters.pop(0)\r\n#Remove the last item.\r\nletters.pop()\r\n \r\n#Show me the new list.\r\nprint(letters)</pre>\r\nRunning the code shows that the popping the first and last items did, indeed, work:\r\n<pre class=\"code\">['B', 'C', 'D', 'E', 'F']</pre>\r\nWhen you <code>pop()</code> an item off the list, you can store a copy of that value in some variable. For example this image shows the same code as above. However, it stores copies of what's been removed in variables named <code>first_removed</code> and <code>last_removed</code>. At the end it <a href=\"https://www.dummies.com/programming/python/printing-lists-using-python/\">prints the Python list</a>, and also shows which letters were removed.\r\n\r\n[caption id=\"attachment_264924\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264924 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-remove-list-item.jpg\" alt=\"remove items from Python list\" width=\"535\" height=\"231\" /> Removing list items with pop().[/caption]\r\n\r\nPython also offers a <code>del</code> (short for <em>delete</em>) command that deletes any item from a list based on its index number (position). But again, you have to remember that the first item is zero. So, let's say you run the following code to delete item number 2 from the list:\r\n<pre class=\"code\"># Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n# Remove item sub 2.\r\ndel letters[2]\r\n \r\nprint(letters)</pre>\r\nRunning that code shows the list again, as follows. The letter <em>C</em> has been deleted, which is the correct item to delete because letters are numbered 0, 1, 2, 3, and so forth.\r\n<pre class=\"code\">['A', 'B', 'D', 'E', 'F', 'G']</pre>\r\nYou can also use del to delete an entire list. Just don’t use the square brackets and the index number. For example, the code you see below creates a list then deletes it. Trying to print the list after the deletion causes an error, because the list no longer exists when the <code>print()</code> statement is executed.\r\n\r\n[caption id=\"attachment_264925\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264925 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-delete-list.jpg\" alt=\"delete Python list\" width=\"535\" height=\"273\" /> Deleting a list and then trying to print it causes an error.[/caption]\r\n\r\n \r\n<h2 id=\"tab10\" >Clearing out a Python list</h2>\r\nIf you want to delete the contents of a list but not the list itself, use <code>.clear()</code>. The list still exists; however, it contains no items. In other words, it's an empty list. The following code shows how you could test this. Running the code displays [] at the end, which lets you know the list is empty:\r\n<pre class=\"code\"># Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n# Clear the list of all entries.\r\nletters.clear()\r\n \r\n# Show me the new list.\r\nprint(letters)\r\n</pre>\r\n\r\n<h2 id=\"tab11\" >Counting how many times an item appears in a Python list</h2>\r\nYou can use the Python <code>count()</code> method to count how many times an item appears in a list. As with other list methods, the syntax is simple:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.count(&lt;em&gt;x&lt;/em&gt;)</pre>\r\nReplace <em>listname</em> with the name of your list, and <em>x</em> with the value you're looking for (or the name of a variable that contains that value).\r\n\r\nThe code in the image below counts how many times the letter <em>B</em> appears in the list, using a literal B inside the parentheses of <code>.count()</code>. This same code also counts the number of <em>C</em> grades, but that value was stored in a variable just to show the difference in syntax. Both counts worked, as you can see in the output of the program at the bottom. One was added to count the <em>F</em>'s, not using any variables. The <em>F</em>’s were counted right in the code that displays the message. There are no <em>F</em> grades, so this returns zero, as you can see in the output.\r\n\r\n[caption id=\"attachment_264926\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264926 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-count-list-item.jpg\" alt=\"count Python list items\" width=\"535\" height=\"296\" /> Counting items in a list.[/caption]\r\n\r\nWhen trying to combine numbers and strings to form a message, remember you have to convert the numbers to strings using the <code>str()</code> function. Otherwise, you get an error that reads something like can only <code>concatenate str (not \"int\") to str</code>. In that message, <code>int</code> is short for <em>integer</em>, and <code>str</code> is short for <em>string</em>.\r\n<h2 id=\"tab12\" >Finding a Python list item's index</h2>\r\nPython offers an .index() method that returns a number indicating the position, based on index number, of an item in a list. The syntax is:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.index(&lt;em&gt;x&lt;/em&gt;)</pre>\r\nAs always, replace <em><code>listname</code></em> with name of the list you want to search. Replace <em>x</em> what whatever you're looking for (either as a literal or as a variable name, as always). Of course, there’s no guarantee that the item is in the list, and even if it is, there’s no guarantee that the item is in the list only once. If the item isn’t in the list, then an error occurs. If the item is in the list multiple times, then the index of the first matching item is returned.\r\n\r\nThe following image shows an example where the program crashes at the line <code>f_index = grades.index(look_for)</code> because there is no <em>F</em> in the list.\r\n\r\n[caption id=\"attachment_264927\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264927 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-list-iem-index.jpg\" alt=\"Python list item index\" width=\"535\" height=\"374\" /> Program fails when trying to find index of a nonexistent list item.[/caption]\r\n\r\n \r\n\r\nAn easy way to get around that problem is to use an <code>if</code> statement to see whether an item is in the list before you try to get its index number. If the item isn't in the list, display a message saying so. Otherwise, get the index number and show it in a message. That code is as follows:\r\n<pre class=\"code\"># Create a list of strings.\r\ngrades = [\"C\", \"B\", \"A\", \"D\", \"C\", \"B\", \"C\"]\r\n# Decide what to look for\r\nlook_for = \"F\"\r\n# See if the item is in the list.\r\nif look_for in grades:\r\n # If it's in the list, get and show the index.\r\n print(str(look_for) + \" is at index \" + str(grades.index(look_for)))\r\nelse:\r\n # If not in the list, don't even try for index number.\r\n print(str(look_for) + \" isn't in the list.\")</pre>\r\n<h2 id=\"tab13\" >Alphabetizing and sorting Python lists</h2>\r\nPython offers a <code>sort()</code> method for sorting lists. In its simplest form, it alphabetizes the items in the list (if they’re strings). If the list contains numbers, they’re sorted smallest to largest. For a simple sort like that, just use <code>sort()</code> with empty parentheses:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.sort()</pre>\r\nReplace <em><code>listname</code></em> with the name of your list. The following image shows an example using a list of strings and a list of numbers. In the example, a new list was created for each of them simply by assigning each sorted list to a new list name. Then the code prints the contents of each sorted list.\r\n\r\n[caption id=\"attachment_264928\" align=\"aligncenter\" width=\"496\"]<img class=\"wp-image-264928 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-sort-list.jpg\" alt=\"sort Python list\" width=\"496\" height=\"296\" /> Sorting strings and numbers.[/caption]\r\n\r\n \r\n\r\nIf your list contains strings with a mixture of uppercase and lowercase letters, and if the results of the sort don't look right, try replacing <code>.sort()</code> with <code>.sort(key=lambda s:s.lower())</code> and then running the code again.\r\n\r\nDates are a little trickier because you can’t just type them in as strings, like <code>\"12/31/2020\"</code>. They have to be the <code>date</code> data type to sort correctly. This means using the <code>datetime</code> module and the <code>date()</code> method to define each date. You can add the dates to the list as you would any other list. For example, in the following line, the code creates a list of four dates, and the code is perfectly fine.\r\n<pre class=\"code\">dates = [dt.date(2020,12,31), dt.date(2019,1,31), dt.date(2018,2,28), dt.date(2020,1,1)]</pre>\r\nThe computer certainly won't mind if you create the list this way. But if you want to make the code more readable to yourself or other developers, you may want to create and append each date, one at a time, so just so it’s a little easier to see what’s going on and so you don’t have to deal with so many commas in one line of code. The image below shows an example where an empty list named <code>datelist</code> was created:\r\n<pre class=\"code\">datelist = []</pre>\r\n[caption id=\"attachment_264929\" align=\"aligncenter\" width=\"481\"]<img class=\"wp-image-264929 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-display-dates.jpg\" alt=\"display dates in Python\" width=\"481\" height=\"353\" /> Sorting and displaying dates in a nice format.[/caption]\r\n\r\n \r\n\r\nThen one date at a time was appended to the list using the <code>dt.date(&lt;em&gt;year&lt;/em&gt;,&lt;em&gt;month&lt;/em&gt;,&lt;em&gt;day&lt;/em&gt;)</code> syntax.\r\n\r\nAfter the list is created, the code uses <code>datelist.sort()</code> to sort them into chronological order (earliest to latest). You don’t need to use <code>print(datelist)</code> in that code because that method displays the dates with the data type information included, like this:\r\n<pre class=\"code\">[datetime.date(2018, 2, 28), datetime.date(2019, 1, 31), datetime.date (2020, 1, 1), datetime.date(2020, 12, 31)]</pre>\r\nNot the easiest list to read. So, rather than print the whole list with one <code>print()</code> statement, you can loop through each date in the list, and printed each one formatted with the f-string <code>%m/%d/%Y</code>. This displays each date on its own line in <em>mm/dd/yyyy</</em> format, as you can see at the bottom of the image above.\r\n\r\nIf you want to sort items in reverse order, put <code>reverse=True</code> inside the sort() parentheses (and don't forget to make the first letter uppercase). The image below shows examples of sorting all three lists in descending (reverse) order using <code>reverse=True</code>.\r\n\r\n[caption id=\"attachment_264930\" align=\"aligncenter\" width=\"403\"]<img class=\"wp-image-264930 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-sort-info-reverse.jpg\" alt=\"sort info in Python list in reverse\" width=\"403\" height=\"450\" /> Sorting strings, numbers, and dates in reverse order.[/caption]\r\n\r\n \r\n<h2 id=\"tab14\" >Reversing a Python list</h2>\r\nYou can also reverse the order of items in a list using the <code>.reverse</code> method. This is not the same as sorting in reverse, because when you sort in reverse, you still actually sort: Z–A for strings, largest to smallest for numbers, latest to earliest for dates. When you reverse a list, you simply reverse the items in the list, no matter their order, without trying to sort them in any way.\r\n\r\nThe following code shows an example in which you reverse the order of the names in the list and then print the list. The output shows the list items reversed from their original order:\r\n<pre class=\"code\"># Create a list of strings.\r\nnames = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\n# Reverse the list\r\nnames.reverse()\r\n# Print the list\r\nprint(names)\r\n \r\n['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']</pre>\r\n<h2 id=\"tab15\" >Copying a Python list</h2>\r\nIf you ever need to work with a copy of a list, use the <code>.copy()</code> method so as not to alter the original list,. For example, the following code is similar to the preceding code, except that instead of reversing the order of the original list, you make a copy of the list and reverse that one. Printing the contents of each list shows how the first list is still in the original order whereas the second one is reversed:\r\n<pre class=\"code\"># Create a list of strings.\r\nnames = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\n \r\n# Make a copy of the list\r\nbackward_names = names.copy()\r\n# Reverse the copy\r\nbackward_names.reverse()\r\n \r\n# Print the list\r\nprint(names)\r\nprint(backward_names)\r\n \r\n['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake']\r\n['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']</pre>\r\nFor future references, the following table summarizes the methods you've learned about.\r\n<table><caption>Methods for Working with Lists</caption>\r\n<thead>\r\n<tr>\r\n<td>Method</td>\r\n<td>What it Does</td>\r\n</tr>\r\n</thead>\r\n<tbody>\r\n<tr>\r\n<td><code>append()</code></td>\r\n<td>Adds an item to the end of the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>clear()</code></td>\r\n<td>Removes all items from the list, leaving it empty.</td>\r\n</tr>\r\n<tr>\r\n<td><code>copy()</code></td>\r\n<td>Makes a copy of a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>count()</code></td>\r\n<td>Counts how many times an element appears in a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>extend()</code></td>\r\n<td>Appends the items from one list to the end of another list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>index()</code></td>\r\n<td>Returns the index number (position) of an element within a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>insert()</code></td>\r\n<td>Inserts an item into the list at a specific position.</td>\r\n</tr>\r\n<tr>\r\n<td><code>pop()</code></td>\r\n<td>Removes an element from the list, and provides a copy of that item that you can store in a variable.</td>\r\n</tr>\r\n<tr>\r\n<td><code>remove()</code></td>\r\n<td>Removes one item from the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>reverse()</code></td>\r\n<td>Reverses the order of items in the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>sort()</code></td>\r\n<td>Sorts the list in ascending order. Put <code>reverse=True</code> inside the parentheses to sort in descending order.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n<h1></h1>","blurb":"","authors":[{"authorId":26709,"name":"Alan Shovic","slug":"alan-shovic","description":"","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/26709"}},{"authorId":26710,"name":"John C. Shovic","slug":"john-shovic","description":"John Shovic, PhD, is a computer science faculty member at the University of Idaho specializing in robotics and artificial intelligence.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/26710"}}],"primaryCategoryTaxonomy":{"categoryId":33606,"title":"Python","slug":"python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[{"label":"Referencing Python list items by position","target":"#tab1"},{"label":"Looping through a Python list","target":"#tab2"},{"label":"Seeing whether a Python list contains an item","target":"#tab3"},{"label":"Getting the length of a Python list","target":"#tab4"},{"label":"Appending an item to the end of a Python list","target":"#tab5"},{"label":"Inserting an item into a Python list","target":"#tab6"},{"label":"Changing an item in a Python list","target":"#tab7"},{"label":"Combining Python lists","target":"#tab8"},{"label":"Removing Python list items","target":"#tab9"},{"label":"Clearing out a Python list","target":"#tab10"},{"label":"Counting how many times an item appears in a Python list","target":"#tab11"},{"label":"Finding a Python list item's index","target":"#tab12"},{"label":"Alphabetizing and sorting Python lists","target":"#tab13"},{"label":"Reversing a Python list","target":"#tab14"},{"label":"Copying a Python list","target":"#tab15"}],"relatedArticles":{"fromBook":[{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}},{"articleId":264872,"title":"The Raspberry Pi: The Perfect PC Platform for Python","slug":"the-raspberry-pi-the-perfect-platform-for-physical-computing-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264872"}}],"fromCategory":[{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}},{"articleId":264872,"title":"The Raspberry Pi: The Perfect PC Platform for Python","slug":"the-raspberry-pi-the-perfect-platform-for-physical-computing-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264872"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281833,"slug":"python-all-in-one-for-dummies","isbn":"9781394236152","categoryList":["technology","programming-web-design","python"],"amazon":{"default":"https://www.amazon.com/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394236158-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/python-all-in-one-for-dummies-cover-9781394236152-203x255.jpg","width":203,"height":255},"title":"Python All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"","authors":[{"authorId":35406,"name":"John C. Shovic","slug":"john-c-shovic","description":" <p> <b>John C. Shovic, PhD,</b> is a computer science faculty member specializing in robotics and artificial intelligence at the University of Idaho. <p><b>Alan Simpson</b> is a web development professional and prolific tech author with more than 100 publications to his credit. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/35406"}},{"authorId":10199,"name":"Alan Simpson","slug":"alan-simpson","description":" <p> <b>John C. Shovic, PhD,</b> is a computer science faculty member specializing in robotics and artificial intelligence at the University of Idaho. <p><b>Alan Simpson</b> is a web development professional and prolific tech author with more than 100 publications to his credit. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/10199"}},{"authorId":35433,"name":"","slug":"","description":" <p><b>Dr. Jill Schiefelbein</b> taught business communication at Arizona State University for 11 years before venturing into entrepreneurship. Jill’s business, The Dynamic Communicator<sup>®</sup>, helps organizations attract customers, increase sales, and retain clients. She is the author of <i>Dynamic Communication: 27 Strategies to Grow, Lead, and Manage Your Business.</i> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/35433"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394236152&quot;]}]\" id=\"du-slot-671ffba74cdb6\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394236152&quot;]}]\" id=\"du-slot-671ffba74d873\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2024-10-28T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":264919},{"headers":{"creationTime":"2018-07-11T02:40:50+00:00","modifiedTime":"2024-10-28T18:50:46+00:00","timestamp":"2024-10-28T21:01:26+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Information Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33572"},"slug":"information-technology","categoryId":33572},{"name":"AI","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33574"},"slug":"ai","categoryId":33574},{"name":"Generative AI","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33576"},"slug":"general-ai","categoryId":33576}],"title":"Envision the World as a Graph with Bayes' Theorem","strippedTitle":"envision the world as a graph with bayes' theorem","slug":"envision-world-graph-bayes-theorem","canonicalUrl":"","seo":{"metaDescription":"Bayes’ theorem can help you deduce how likely something is to happen in a certain context, based on the general probabilities of the fact itself and the evidenc","noIndex":0,"noFollow":0},"content":"Bayes’ theorem can help you deduce how likely something is to happen in a certain context, based on the general probabilities of the fact itself and the evidence you examine, and combined with the probability of the evidence given the fact. Seldom will a single piece of evidence diminish doubts and provide enough certainty in a prediction to ensure that it will happen. As a true detective, to reach certainty, you have to collect more evidence and make the individual pieces work together in your investigation. Noticing that a person has long hair isn’t enough to determine whether person is female or a male. Adding data about height and weight could help increase confidence.\r\n\r\nThe Naïve Bayes algorithm helps you arrange all the evidence you gather and reach a more solid prediction with a higher likelihood of being correct. Gathered evidence considered singularly couldn’t save you from the risk of predicting incorrectly, but all evidence summed together can reach a more definitive resolution. The following example shows how things work in a Naïve Bayes classification. This is an old, renowned problem, but it represents the kind of capability that you can expect from an AI. The dataset is from the paper “<a href=\"https://dl.acm.org/doi/10.1023/A%3A1022643204877\" target=\"_blank\" rel=\"noopener\">Induction of Decision Trees</a>,” by John Ross Quinlan. Quinlan is a computer scientist who contributed to the development of another machine learning algorithm, decision trees, in a fundamental way, but his example works well with any kind of learning algorithm. The problem requires that the AI guess the best conditions to play tennis given the weather conditions. The set of features described by Quinlan is as follows:\r\n<ul>\r\n \t<li><strong>Outlook:</strong> Sunny, overcast, or rainy</li>\r\n \t<li><strong>Temperature:</strong> Cool, mild, or hot</li>\r\n \t<li><strong>Humidity:</strong> High or normal</li>\r\n \t<li><strong>Windy:</strong> True or false</li>\r\n</ul>\r\nThe following table contains the database entries used for the example:\r\n<table>\r\n<thead>\r\n<tr>\r\n<td><strong>Outlook</strong></td>\r\n<td width=\"95\"><strong>Temperature</strong></td>\r\n<td width=\"95\"><strong>Humidity</strong></td>\r\n<td width=\"57\"><strong>Windy</strong></td>\r\n<td width=\"113\"><strong>PlayTennis</strong></td>\r\n</tr>\r\n</thead>\r\n<tbody>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Hot</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Hot</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n<tr>\r\n<td>Overcast</td>\r\n<td width=\"95\">Hot</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Cool</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Cool</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n<tr>\r\n<td>Overcast</td>\r\n<td width=\"95\">Cool</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Cool</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Overcast</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Overcast</td>\r\n<td width=\"95\">Hot</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\nThe option of playing tennis depends on the four arguments shown here.\r\n\r\n[caption id=\"attachment_254186\" align=\"alignnone\" width=\"535\"]<img class=\"size-full wp-image-254186\" src=\"https://www.dummies.com/wp-content/uploads/ai-naïve-bayes.jpg\" alt=\"ai-naïve-bayes\" width=\"535\" height=\"129\" /> A Naïve Bayes model can retrace evidence to the right outcome.[/caption]\r\n\r\nThe result of this AI learning example is a decision as to whether to play tennis, given the weather conditions (the evidence). Using just the outlook (sunny, overcast, or rainy) won’t be enough, because the temperature and humidity could be too high or the wind might be strong. These arguments represent real conditions that have multiple causes, or causes that are interconnected. The Naïve Bayes algorithm is skilled at guessing correctly when multiple causes exist.\r\n\r\nThe algorithm computes a score, based on the probability of making a particular decision and multiplied by the probabilities of the evidence connected to that decision. For instance, to determine whether to play tennis when the outlook is sunny but the wind is strong, the algorithm computes the score for a positive answer by multiplying the general probability of playing (9 played games out of 14 occurrences) by the probability of the day’s being sunny (2 out of 9 played games) and of having windy conditions when playing tennis (3 out of 9 played games). The same rules apply for the negative case (which has different probabilities for not playing given certain conditions):\r\n\r\n<code>likelihood of playing: 9/14 * 2/9 * 3/9 = 0.05</code>\r\n\r\n<code>likelihood of not playing: 5/14 * 3/5 * 3/5 = 0.13</code>\r\n\r\nBecause the score for the likelihood is higher, the algorithm decides that it’s safer not to play under such conditions. It computes such likelihood by summing the two scores and dividing both scores by their sum:\r\n\r\n<code>probability of playing : 0.05 / (0.05 + 0.13) = 0.278</code>\r\n\r\n<code>probability of not playing : 0.13 / (0.05 + 0.13) = 0.722</code>\r\n\r\nYou can further extend Naïve Bayes to represent relationships that are more complex than a series of factors that hint at the likelihood of an outcome using a <em>Bayesian network,</em> which consists of graphs showing how events affect each other. Bayesian graphs have nodes that represent the events and arcs showing which events affect others, accompanied by a table of conditional probabilities that show how the relationship works in terms of probability. The figure shows a famous example of a Bayesian network taken from a 1988 academic paper, “<a href=\"https://www.jstor.org/stable/2345762\" target=\"_blank\" rel=\"noopener\">Local computations with probabilities on graphical structures and their application to expert systems</a>,” by Lauritzen, Steffen L. and David J. Spiegelhalter, published by the <em>Journal of the Royal Statistical Society.</em>\r\n\r\n[caption id=\"attachment_254183\" align=\"alignnone\" width=\"449\"]<img class=\"size-full wp-image-254183\" src=\"https://www.dummies.com/wp-content/uploads/ai-bayesian-network.jpg\" alt=\"ai-bayesian-network\" width=\"449\" height=\"400\" /> A Bayesian network can support a medical decision.[/caption]\r\n\r\nThe depicted network is called <em>Asia.</em> It shows possible patient conditions and what causes what. For instance, if a patient has dyspnea, it could be an effect of tuberculosis, lung cancer, or bronchitis. Knowing whether the patient smokes, has been to Asia, or has anomalous x-ray results (thus giving certainty to certain pieces of evidence, a priori in Bayesian language) helps infer the real (posterior) probabilities of having any of the pathologies in the graph.\r\n\r\nBayesian networks, though intuitive, have complex math behind them, and they’re more powerful than a simple Naïve Bayes algorithm because they mimic the world as a sequence of causes and effects based on probability. Bayesian networks are so effective that you can use them to represent any situation. They have varied applications, such as medical diagnoses, the fusing of uncertain data arriving from multiple sensors, economic modeling, and the monitoring of complex systems such as a car. For instance, because driving in highway traffic may involve complex situations with many vehicles, the Analysis of MassIve Data STreams (AMIDST) consortium, in collaboration with the automaker Daimler, devised a Bayesian network that can recognize maneuvers by other vehicles and increase driving safety.","description":"Bayes’ theorem can help you deduce how likely something is to happen in a certain context, based on the general probabilities of the fact itself and the evidence you examine, and combined with the probability of the evidence given the fact. Seldom will a single piece of evidence diminish doubts and provide enough certainty in a prediction to ensure that it will happen. As a true detective, to reach certainty, you have to collect more evidence and make the individual pieces work together in your investigation. Noticing that a person has long hair isn’t enough to determine whether person is female or a male. Adding data about height and weight could help increase confidence.\r\n\r\nThe Naïve Bayes algorithm helps you arrange all the evidence you gather and reach a more solid prediction with a higher likelihood of being correct. Gathered evidence considered singularly couldn’t save you from the risk of predicting incorrectly, but all evidence summed together can reach a more definitive resolution. The following example shows how things work in a Naïve Bayes classification. This is an old, renowned problem, but it represents the kind of capability that you can expect from an AI. The dataset is from the paper “<a href=\"https://dl.acm.org/doi/10.1023/A%3A1022643204877\" target=\"_blank\" rel=\"noopener\">Induction of Decision Trees</a>,” by John Ross Quinlan. Quinlan is a computer scientist who contributed to the development of another machine learning algorithm, decision trees, in a fundamental way, but his example works well with any kind of learning algorithm. The problem requires that the AI guess the best conditions to play tennis given the weather conditions. The set of features described by Quinlan is as follows:\r\n<ul>\r\n \t<li><strong>Outlook:</strong> Sunny, overcast, or rainy</li>\r\n \t<li><strong>Temperature:</strong> Cool, mild, or hot</li>\r\n \t<li><strong>Humidity:</strong> High or normal</li>\r\n \t<li><strong>Windy:</strong> True or false</li>\r\n</ul>\r\nThe following table contains the database entries used for the example:\r\n<table>\r\n<thead>\r\n<tr>\r\n<td><strong>Outlook</strong></td>\r\n<td width=\"95\"><strong>Temperature</strong></td>\r\n<td width=\"95\"><strong>Humidity</strong></td>\r\n<td width=\"57\"><strong>Windy</strong></td>\r\n<td width=\"113\"><strong>PlayTennis</strong></td>\r\n</tr>\r\n</thead>\r\n<tbody>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Hot</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Hot</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n<tr>\r\n<td>Overcast</td>\r\n<td width=\"95\">Hot</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Cool</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Cool</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n<tr>\r\n<td>Overcast</td>\r\n<td width=\"95\">Cool</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Cool</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Sunny</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Overcast</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Overcast</td>\r\n<td width=\"95\">Hot</td>\r\n<td width=\"95\">Normal</td>\r\n<td width=\"57\">False</td>\r\n<td width=\"113\">Yes</td>\r\n</tr>\r\n<tr>\r\n<td>Rainy</td>\r\n<td width=\"95\">Mild</td>\r\n<td width=\"95\">High</td>\r\n<td width=\"57\">True</td>\r\n<td width=\"113\">No</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\nThe option of playing tennis depends on the four arguments shown here.\r\n\r\n[caption id=\"attachment_254186\" align=\"alignnone\" width=\"535\"]<img class=\"size-full wp-image-254186\" src=\"https://www.dummies.com/wp-content/uploads/ai-naïve-bayes.jpg\" alt=\"ai-naïve-bayes\" width=\"535\" height=\"129\" /> A Naïve Bayes model can retrace evidence to the right outcome.[/caption]\r\n\r\nThe result of this AI learning example is a decision as to whether to play tennis, given the weather conditions (the evidence). Using just the outlook (sunny, overcast, or rainy) won’t be enough, because the temperature and humidity could be too high or the wind might be strong. These arguments represent real conditions that have multiple causes, or causes that are interconnected. The Naïve Bayes algorithm is skilled at guessing correctly when multiple causes exist.\r\n\r\nThe algorithm computes a score, based on the probability of making a particular decision and multiplied by the probabilities of the evidence connected to that decision. For instance, to determine whether to play tennis when the outlook is sunny but the wind is strong, the algorithm computes the score for a positive answer by multiplying the general probability of playing (9 played games out of 14 occurrences) by the probability of the day’s being sunny (2 out of 9 played games) and of having windy conditions when playing tennis (3 out of 9 played games). The same rules apply for the negative case (which has different probabilities for not playing given certain conditions):\r\n\r\n<code>likelihood of playing: 9/14 * 2/9 * 3/9 = 0.05</code>\r\n\r\n<code>likelihood of not playing: 5/14 * 3/5 * 3/5 = 0.13</code>\r\n\r\nBecause the score for the likelihood is higher, the algorithm decides that it’s safer not to play under such conditions. It computes such likelihood by summing the two scores and dividing both scores by their sum:\r\n\r\n<code>probability of playing : 0.05 / (0.05 + 0.13) = 0.278</code>\r\n\r\n<code>probability of not playing : 0.13 / (0.05 + 0.13) = 0.722</code>\r\n\r\nYou can further extend Naïve Bayes to represent relationships that are more complex than a series of factors that hint at the likelihood of an outcome using a <em>Bayesian network,</em> which consists of graphs showing how events affect each other. Bayesian graphs have nodes that represent the events and arcs showing which events affect others, accompanied by a table of conditional probabilities that show how the relationship works in terms of probability. The figure shows a famous example of a Bayesian network taken from a 1988 academic paper, “<a href=\"https://www.jstor.org/stable/2345762\" target=\"_blank\" rel=\"noopener\">Local computations with probabilities on graphical structures and their application to expert systems</a>,” by Lauritzen, Steffen L. and David J. Spiegelhalter, published by the <em>Journal of the Royal Statistical Society.</em>\r\n\r\n[caption id=\"attachment_254183\" align=\"alignnone\" width=\"449\"]<img class=\"size-full wp-image-254183\" src=\"https://www.dummies.com/wp-content/uploads/ai-bayesian-network.jpg\" alt=\"ai-bayesian-network\" width=\"449\" height=\"400\" /> A Bayesian network can support a medical decision.[/caption]\r\n\r\nThe depicted network is called <em>Asia.</em> It shows possible patient conditions and what causes what. For instance, if a patient has dyspnea, it could be an effect of tuberculosis, lung cancer, or bronchitis. Knowing whether the patient smokes, has been to Asia, or has anomalous x-ray results (thus giving certainty to certain pieces of evidence, a priori in Bayesian language) helps infer the real (posterior) probabilities of having any of the pathologies in the graph.\r\n\r\nBayesian networks, though intuitive, have complex math behind them, and they’re more powerful than a simple Naïve Bayes algorithm because they mimic the world as a sequence of causes and effects based on probability. Bayesian networks are so effective that you can use them to represent any situation. They have varied applications, such as medical diagnoses, the fusing of uncertain data arriving from multiple sensors, economic modeling, and the monitoring of complex systems such as a car. For instance, because driving in highway traffic may involve complex situations with many vehicles, the Analysis of MassIve Data STreams (AMIDST) consortium, in collaboration with the automaker Daimler, devised a Bayesian network that can recognize maneuvers by other vehicles and increase driving safety.","blurb":"","authors":[{"authorId":9109,"name":"John Paul Mueller","slug":"john-paul-mueller","description":" <b>John Paul Mueller</b> has written more than 300 articles and 80 books, most recently <i>Mastering Windows Vista Business</i> with Mark Minasi. The author of <i>Ribbon X For Dummies</i>, he has covered everything from programming to operating systems to home security and accessibility.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9109"}},{"authorId":9110,"name":"Luca Massaron","slug":"luca-massaron","description":" <p> <b>This All-in-One draws on the work of top authors in the <i>For Dummies </i>series who’ve created books designed to help data professionals do their work. The experts are Jack Hyman, Luca Massaron, Paul McFedries, John Paul Mueller, Lillian Pierson, Jonathan Reichental PhD, Joseph Schmuller PhD, Alan Simon, and Allen G. Taylor.</b> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9110"}}],"primaryCategoryTaxonomy":{"categoryId":33576,"title":"Generative AI","slug":"general-ai","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33576"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":254261,"title":"Performing Health Care Tasks Using Automation","slug":"performing-tasks-using-automation","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/254261"}},{"articleId":254258,"title":"New Surgical Techniques and Artificial Intelligence","slug":"new-surgical-techniques-artificial-intelligence","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/254258"}},{"articleId":254255,"title":"Artificial Intelligence and Special Needs","slug":"artificial-intelligence-special-needs","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/254255"}},{"articleId":254252,"title":"How AI Can Enhance Physical Ability","slug":"artificial-intelligence-making-humans-capable","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/254252"}},{"articleId":254249,"title":"Portable Patient Monitoring","slug":"portable-patient-monitoring","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/254249"}}],"fromCategory":[{"articleId":302379,"title":"Generative AI For Dummies Cheat Sheet","slug":"generative-ai-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/302379"}},{"articleId":302176,"title":"Improving CLM with Generative AI: Key Use Cases","slug":"improving-clm-with-generative-ai-key-use-cases","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/302176"}},{"articleId":301980,"title":"Enterprise Generative AI: Transforming Your Business","slug":"enterprise-generative-ai-transforming-your-business","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301980"}},{"articleId":301240,"title":"Five Ways Machine Health Delivers Real Business Value","slug":"five-ways-machine-health-delivers-real-business-value","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301240"}},{"articleId":299369,"title":"How ChatGPT Could Change Our Lives","slug":"how-chatgpt-could-change-our-lives","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/299369"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281623,"slug":"artificial-intelligence-for-dummies","isbn":"9781119796763","categoryList":["technology","information-technology","ai","general-ai"],"amazon":{"default":"https://www.amazon.com/gp/product/1119796768/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119796768/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1119796768-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119796768/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119796768/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/artificial-intelligence-for-dummies-2nd-edition-cover-9781119796763-203x255.jpg","width":203,"height":255},"title":"Artificial Intelligence For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><b><b data-author-id=\"9109\">John Paul Mueller</b></b> has written more than 300 articles and 80 books, most recently <i>Mastering Windows Vista Business</i> with Mark Minasi. The author of <i>Ribbon X For Dummies</i>, he has covered everything from programming to operating systems to home security and accessibility. <p> <b>This All-in-One draws on the work of top authors in the <i>For Dummies </i>series who’ve created books designed to help data professionals do their work. The experts are Jack Hyman, <b data-author-id=\"9110\">Luca Massaron</b>, Paul McFedries, John Paul Mueller, Lillian Pierson, Jonathan Reichental PhD, Joseph Schmuller PhD, Alan Simon, and Allen G. Taylor.</b></p>","authors":[{"authorId":9109,"name":"John Paul Mueller","slug":"john-paul-mueller","description":" <b>John Paul Mueller</b> has written more than 300 articles and 80 books, most recently <i>Mastering Windows Vista Business</i> with Mark Minasi. The author of <i>Ribbon X For Dummies</i>, he has covered everything from programming to operating systems to home security and accessibility.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9109"}},{"authorId":9110,"name":"Luca Massaron","slug":"luca-massaron","description":" <p> <b>This All-in-One draws on the work of top authors in the <i>For Dummies </i>series who’ve created books designed to help data professionals do their work. The experts are Jack Hyman, Luca Massaron, Paul McFedries, John Paul Mueller, Lillian Pierson, Jonathan Reichental PhD, Joseph Schmuller PhD, Alan Simon, and Allen G. Taylor.</b> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9110"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;information-technology&quot;,&quot;ai&quot;,&quot;general-ai&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119796763&quot;]}]\" id=\"du-slot-671ffba706e99\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;information-technology&quot;,&quot;ai&quot;,&quot;general-ai&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119796763&quot;]}]\" id=\"du-slot-671ffba707797\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Six months","lifeExpectancySetFrom":"2024-10-28T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":254213},{"headers":{"creationTime":"2017-05-15T13:05:30+00:00","modifiedTime":"2024-10-28T18:28:36+00:00","timestamp":"2024-10-28T21:01:26+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Social Media","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33611"},"slug":"social-media","categoryId":33611},{"name":"YouTube","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33616"},"slug":"youtube","categoryId":33616}],"title":"How to Download YouTube Videos","strippedTitle":"how to download youtube videos","slug":"download-youtube-videos","canonicalUrl":"","seo":{"metaDescription":"Need to download a YouTube video for later viewing? Find out how with these easy instructions.","noIndex":0,"noFollow":0},"content":"<a href=\"https://www.youtube.com/\" target=\"_blank\" rel=\"noopener\">YouTube</a> is a video-sharing website where users post all kinds of media. YouTube is so popular that it has one billion unique visits every single month. From how-tos to educational cartoons, YouTube has a large selection of videos from every genre.\r\n\r\nYou’ve likely watched videos on YouTube and seen something that you might want to watch when you don’t have access to the internet. Need a <a href=\"https://www.dummies.com/article/technology/social-media/youtube/what-is-the-youtube-kids-app-138083/\">cartoon for your child </a>who watch while on an airplane? Or, maybe an instructional video to review while actually doing the task later? Downloading YouTube videos is quite simple.\r\n<h2 id=\"tab1\" >How to download YouTube videos with Keepvid</h2>\r\nYou can use keepvid.com to download YouTube videos. Follow these steps to use Keepvid:\r\n<ol>\r\n \t<li>Go to <a href=\"https://www.youtube.com\" target=\"_blank\" rel=\"noopener\">YouTube</a> and find the video you’d like to download.</li>\r\n \t<li>Click the <em>Share</em> button underneath the video on YouTube to copy the link.</li>\r\n \t<li>Open a new window and navigate to <a href=\"https://www.keepvid.site/\" target=\"_blank\" rel=\"noopener\">keepvid.com</a>.</li>\r\n \t<li>Paste the link into the download text box.</li>\r\n \t<li>Click download and save the video.All done!</li>\r\n</ol>\r\n<p class=\"article-tips tip\">Keepvid can also download videos from other websites, including videos posted to social media.</p>\r\n<p class=\"article-tips warning\">Before you begin downloading videos from YouTube, you need to understand the legal issues that accompany your use of those videos. YouTube content is copyrighted. That means that you absolutely cannot download it for anything other than personal use.</p>\r\nAlso, Google (the owner of YouTube) includes <a href=\"https://www.youtube.com/static?template=terms\" target=\"_blank\" rel=\"noopener\">terms of service</a> for users. These terms specifically state: “You shall not download any Content unless you see a 'download' or similar link displayed by YouTube on the Service for that Content” (Section 5 – B). The following is provided for informational purposes only.\r\n<p class=\"article-tips remember\">There are several methods for downloading YouTube videos. The instructions above discuss one popular way to complete the task, but other options exist. There are numerous software suites available to download these videos. If you prefer this method, you can easily find choices by searching the internet for “YouTube downloading software.” The directions you find here discuss the use of websites that are specifically created to download YouTube videos.</p>","description":"<a href=\"https://www.youtube.com/\" target=\"_blank\" rel=\"noopener\">YouTube</a> is a video-sharing website where users post all kinds of media. YouTube is so popular that it has one billion unique visits every single month. From how-tos to educational cartoons, YouTube has a large selection of videos from every genre.\r\n\r\nYou’ve likely watched videos on YouTube and seen something that you might want to watch when you don’t have access to the internet. Need a <a href=\"https://www.dummies.com/article/technology/social-media/youtube/what-is-the-youtube-kids-app-138083/\">cartoon for your child </a>who watch while on an airplane? Or, maybe an instructional video to review while actually doing the task later? Downloading YouTube videos is quite simple.\r\n<h2 id=\"tab1\" >How to download YouTube videos with Keepvid</h2>\r\nYou can use keepvid.com to download YouTube videos. Follow these steps to use Keepvid:\r\n<ol>\r\n \t<li>Go to <a href=\"https://www.youtube.com\" target=\"_blank\" rel=\"noopener\">YouTube</a> and find the video you’d like to download.</li>\r\n \t<li>Click the <em>Share</em> button underneath the video on YouTube to copy the link.</li>\r\n \t<li>Open a new window and navigate to <a href=\"https://www.keepvid.site/\" target=\"_blank\" rel=\"noopener\">keepvid.com</a>.</li>\r\n \t<li>Paste the link into the download text box.</li>\r\n \t<li>Click download and save the video.All done!</li>\r\n</ol>\r\n<p class=\"article-tips tip\">Keepvid can also download videos from other websites, including videos posted to social media.</p>\r\n<p class=\"article-tips warning\">Before you begin downloading videos from YouTube, you need to understand the legal issues that accompany your use of those videos. YouTube content is copyrighted. That means that you absolutely cannot download it for anything other than personal use.</p>\r\nAlso, Google (the owner of YouTube) includes <a href=\"https://www.youtube.com/static?template=terms\" target=\"_blank\" rel=\"noopener\">terms of service</a> for users. These terms specifically state: “You shall not download any Content unless you see a 'download' or similar link displayed by YouTube on the Service for that Content” (Section 5 – B). The following is provided for informational purposes only.\r\n<p class=\"article-tips remember\">There are several methods for downloading YouTube videos. The instructions above discuss one popular way to complete the task, but other options exist. There are numerous software suites available to download these videos. If you prefer this method, you can easily find choices by searching the internet for “YouTube downloading software.” The directions you find here discuss the use of websites that are specifically created to download YouTube videos.</p>","blurb":"","authors":[{"authorId":8941,"name":"Ashley Watters, Abshier House","slug":"ashley-watters-abshier-house","description":"","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/8941"}}],"primaryCategoryTaxonomy":{"categoryId":33616,"title":"YouTube","slug":"youtube","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33616"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[{"label":"How to download YouTube videos with Keepvid","target":"#tab1"}],"relatedArticles":{"fromBook":[],"fromCategory":[{"articleId":273536,"title":"Understanding Your YouTube Channel Audience","slug":"understanding-your-youtube-channel-audience","categoryList":["technology","social-media","youtube"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/273536"}},{"articleId":273522,"title":"Getting Started with YouTube Analytics","slug":"getting-started-with-youtube-analytics","categoryList":["technology","social-media","youtube"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/273522"}},{"articleId":273516,"title":"How to Add Music to Your YouTube Video","slug":"how-to-add-music-to-your-youtube-video","categoryList":["technology","social-media","youtube"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/273516"}},{"articleId":273510,"title":"Making a Content Strategy for Your YouTube Channel","slug":"making-a-content-strategy-for-your-youtube-channel","categoryList":["technology","social-media","youtube"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/273510"}},{"articleId":258541,"title":"How to Use YouTube as a Marketing Channel","slug":"how-to-use-youtube-as-a-marketing-channel","categoryList":["technology","social-media","youtube"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/258541"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":0,"slug":null,"isbn":null,"categoryList":null,"amazon":null,"image":null,"title":null,"testBankPinActivationLink":null,"bookOutOfPrint":false,"authorsInfo":null,"authors":null,"_links":null},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;social-media&quot;,&quot;youtube&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]}]\" id=\"du-slot-671ffba6b2dad\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;social-media&quot;,&quot;youtube&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]}]\" id=\"du-slot-671ffba6b422a\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Solve","lifeExpectancy":"One year","lifeExpectancySetFrom":"2024-10-28T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":239597},{"headers":{"creationTime":"2017-05-03T13:14:52+00:00","modifiedTime":"2024-10-28T17:51:19+00:00","timestamp":"2024-10-28T18:01:09+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Java","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33602"},"slug":"java","categoryId":33602}],"title":"The Atoms: Java’s Primitive Types","strippedTitle":"the atoms: java’s primitive types","slug":"atoms-javas-primitive-types","canonicalUrl":"","seo":{"metaDescription":"The words int and double are examples of primitive types (also known as simple types) in Java. The Java language has exactly eight primitive types. As a newcome","noIndex":0,"noFollow":0},"content":"The words <em>int</em> and <em>double</em> are examples of <em>primitive types</em> (also known as <em>simple</em> types) in Java. The Java language has exactly eight primitive types. As a newcomer to Java, you can pretty much ignore all but four of these types. (As programming languages go, Java is nice and compact that way.)\r\n\r\nThe types that you shouldn’t ignore are <code>int</code>, <code>double</code>, <code>char</code>, and <code>boolean</code>.\r\n<h2 id=\"tab1\" >The char type</h2>\r\nSeveral decades ago, people thought computers existed only for doing big number-crunching calculations. Nowadays, nobody thinks that way. So, if you haven’t been in a cryogenic freezing chamber for the past 20 years, you know that computers store letters, punctuation symbols, and other characters.\r\n\r\nThe Java type that’s used to store characters is called <em>char.</em> The code below has a simple program that uses the <code>char</code> type. This image shows the output of the program in the code below.\r\n\r\n[caption id=\"attachment_239304\" align=\"aligncenter\" width=\"163\"]<a href=\"https://www.dummies.com/wp-content/uploads/java-7e-char-type.jpg\"><img class=\"wp-image-239304 size-full\" src=\"https://www.dummies.com/wp-content/uploads/java-7e-char-type.jpg\" alt=\"java char type\" width=\"163\" height=\"122\" /></a> An exciting run of the program of below as it appears in the Eclipse Console view.[/caption]\r\n\r\n<code>public class CharDemo {</code>\r\n\r\n \r\n\r\n<code>public static void main(String args[]) {</code>\r\n\r\n<code>char myLittleChar = 'b';</code>\r\n\r\n<code>char myBigChar = Character.toUpperCase(myLittleChar);</code>\r\n\r\n<code>System.out.println(myBigChar);</code>\r\n\r\n<code>}</code>\r\n\r\n<code>}</code>\r\n\r\nIn this code, the first initialization stores the letter <em>b</em> in the variable <code>myLittleChar</code>. In the initialization, notice how <em>b</em> is surrounded by single quote marks. In Java, every <code>char</code> literally starts and ends with a single quote mark.\r\n<p class=\"article-tips remember\">In a Java program, single quote marks surround the letter in a <code>char</code> literal.</p>\r\n<em>Character.toUpperCase.</em> The <code>Character.toUpperCase</code> method does just what its name suggests — the method produces the uppercase equivalent of the letter <em>b.</em> This uppercase equivalent (the letter <em>B</em>) is assigned to the <code>myBigChar</code> variable, and the <em>B</em> that’s in <code>myBigChar</code> prints onscreen.\r\n\r\nIf you’re tempted to write the following statement,\r\n\r\n<code>char myLittleChars = &apos;barry&apos;; //Don&apos;t do this</code>\r\n\r\nplease resist the temptation. You can’t store more than one letter at a time in a <code>char</code> variable, and you can’t put more than one letter between a pair of single quotes. If you’re trying to store words or sentences (not just single letters), you need to use something called a String.\r\n<p class=\"article-tips warning\">If you’re used to writing programs in other languages, you may be aware of something called ASCII character encoding. Most languages use ASCII; Java uses Unicode. In the old ASCII representation, each character takes up only 8 bits, but in Unicode, each character takes up 8, 16, or 32 bits. Whereas ASCII stores the letters of the Roman (English) alphabet, Unicode has room for characters from most of the world’s commonly spoken languages.</p>\r\nThe only problem is that some of the Java API methods are geared specially toward 16-bit Unicode. Occasionally, this bites you in the back (or it bytes you in the back, as the case may be). If you’re using a method to write <code>Hello</code> on the screen and <code>H e l l o</code> shows up instead, check the method’s documentation for mention of Unicode characters.\r\n\r\nIt’s worth noticing that the two methods, <code>Character.toUpperCase</code> and <code>System.out.println</code>, are used quite differently in the code above. The method <code>Character.toUpperCase</code> is called as part of an initialization or an assignment statement, but the method <code>System.out.println</code> is called on its own.\r\n<h2 id=\"tab2\" >The boolean type</h2>\r\nA variable of type <code>boolean</code> stores one of two values: <code>true</code> or <code>false</code>. The code below demonstrates the use of a <code>boolean</code> variable.\r\n\r\n<code>public class ElevatorFitter2 {</code>\r\n\r\n \r\n\r\n<code>public static void main(String args[]) {</code>\r\n\r\n<code>System.out.println(\"True or False?\");</code>\r\n\r\n<code>System.out.println(\"You can fit all ten of the\");</code>\r\n\r\n<code>System.out.println(\"Brickenchicker dectuplets\");</code>\r\n\r\n<code>System.out.println(\"on the elevator:\");</code>\r\n\r\n<code>System.out.println();</code>\r\n\r\n \r\n\r\n<code>int weightOfAPerson = 150;</code>\r\n\r\n<code>int elevatorWeightLimit = 1400;</code>\r\n\r\n<code>int numberOfPeople = elevatorWeightLimit / weightOfAPerson;</code>\r\n\r\n \r\n\r\n<code>&lt;strong&gt; boolean allTenOkay = numberOfPeople &gt;= 10;&lt;/strong&gt;</code>\r\n\r\n \r\n\r\n<code>System.out.println(allTenOkay);</code>\r\n\r\n<code>}</code>\r\n\r\n<code>}</code>\r\n\r\nIn this code, the <code>allTenOkay</code> variable is of type <code>boolean</code>. To find a value for the <code>allTenOkay</code> variable, the program checks to see whether <code>numberOfPeople</code> is greater than or equal to ten. (The symbols >= stand for <em>greater than or equal to.</em>)\r\n\r\nAt this point, it pays to be fussy about terminology. Any part of a Java program that has a value is an <em>expression.</em> If you write\r\n\r\n<code>weightOfAPerson = 150;</code>\r\n\r\nthen <code>150 ,</code>is an expression (an expression whose value is the quantity <code>150</code>). If you write\r\n\r\n<code>numberOfEggs = 2 + 2;</code>\r\n\r\nthen 2 + 2 is an expression (because <code>2 + 2</code> has the value <code>4</code>). If you write\r\n\r\n<code>int numberOfPeople = elevatorWeightLimit / weightOfAPerson;</code>\r\n\r\nthen <code>elevatorWeightLimit / weightOfAPerson</code> is an expression. (The value of the expression <code>elevatorWeightLimit / weightOfAPerson</code> depends on whatever values the variables <code>elevatorWeightLimit</code> and <code>weightOfAPerson</code> have when the code containing the expression is executed.)\r\n<p class=\"article-tips remember\">Any part of a Java program that has a value is an expression.</p>\r\nIn the second set of code, <code>numberOfPeople &gt;= 10</code> is an expression. The expression’s value depends on the value stored in the <code>numberOfPeople</code> variable. But, as you know from seeing the strawberry shortcake at the Brickenchicker family’s catered lunch, the value of <code>numberOfPeople</code> isn’t greater than or equal to ten. As a result, the value of <code>numberOfPeople &gt;= 10</code> is <code>false</code>. So, in the statement in the second set of code, in which <code>allTenOkay</code> is assigned a value, the <code>allTenOkay</code> variable is assigned a <code>false</code> value.\r\n<p class=\"article-tips tip\">In the second set of code, <code>System.out.println()</code> is called with nothing inside the parentheses. When you do this, Java adds a line break to the program’s output. In the second set of code, <code>System.out.println()</code> tells the program to display a blank line.</p>","description":"The words <em>int</em> and <em>double</em> are examples of <em>primitive types</em> (also known as <em>simple</em> types) in Java. The Java language has exactly eight primitive types. As a newcomer to Java, you can pretty much ignore all but four of these types. (As programming languages go, Java is nice and compact that way.)\r\n\r\nThe types that you shouldn’t ignore are <code>int</code>, <code>double</code>, <code>char</code>, and <code>boolean</code>.\r\n<h2 id=\"tab1\" >The char type</h2>\r\nSeveral decades ago, people thought computers existed only for doing big number-crunching calculations. Nowadays, nobody thinks that way. So, if you haven’t been in a cryogenic freezing chamber for the past 20 years, you know that computers store letters, punctuation symbols, and other characters.\r\n\r\nThe Java type that’s used to store characters is called <em>char.</em> The code below has a simple program that uses the <code>char</code> type. This image shows the output of the program in the code below.\r\n\r\n[caption id=\"attachment_239304\" align=\"aligncenter\" width=\"163\"]<a href=\"https://www.dummies.com/wp-content/uploads/java-7e-char-type.jpg\"><img class=\"wp-image-239304 size-full\" src=\"https://www.dummies.com/wp-content/uploads/java-7e-char-type.jpg\" alt=\"java char type\" width=\"163\" height=\"122\" /></a> An exciting run of the program of below as it appears in the Eclipse Console view.[/caption]\r\n\r\n<code>public class CharDemo {</code>\r\n\r\n \r\n\r\n<code>public static void main(String args[]) {</code>\r\n\r\n<code>char myLittleChar = 'b';</code>\r\n\r\n<code>char myBigChar = Character.toUpperCase(myLittleChar);</code>\r\n\r\n<code>System.out.println(myBigChar);</code>\r\n\r\n<code>}</code>\r\n\r\n<code>}</code>\r\n\r\nIn this code, the first initialization stores the letter <em>b</em> in the variable <code>myLittleChar</code>. In the initialization, notice how <em>b</em> is surrounded by single quote marks. In Java, every <code>char</code> literally starts and ends with a single quote mark.\r\n<p class=\"article-tips remember\">In a Java program, single quote marks surround the letter in a <code>char</code> literal.</p>\r\n<em>Character.toUpperCase.</em> The <code>Character.toUpperCase</code> method does just what its name suggests — the method produces the uppercase equivalent of the letter <em>b.</em> This uppercase equivalent (the letter <em>B</em>) is assigned to the <code>myBigChar</code> variable, and the <em>B</em> that’s in <code>myBigChar</code> prints onscreen.\r\n\r\nIf you’re tempted to write the following statement,\r\n\r\n<code>char myLittleChars = &apos;barry&apos;; //Don&apos;t do this</code>\r\n\r\nplease resist the temptation. You can’t store more than one letter at a time in a <code>char</code> variable, and you can’t put more than one letter between a pair of single quotes. If you’re trying to store words or sentences (not just single letters), you need to use something called a String.\r\n<p class=\"article-tips warning\">If you’re used to writing programs in other languages, you may be aware of something called ASCII character encoding. Most languages use ASCII; Java uses Unicode. In the old ASCII representation, each character takes up only 8 bits, but in Unicode, each character takes up 8, 16, or 32 bits. Whereas ASCII stores the letters of the Roman (English) alphabet, Unicode has room for characters from most of the world’s commonly spoken languages.</p>\r\nThe only problem is that some of the Java API methods are geared specially toward 16-bit Unicode. Occasionally, this bites you in the back (or it bytes you in the back, as the case may be). If you’re using a method to write <code>Hello</code> on the screen and <code>H e l l o</code> shows up instead, check the method’s documentation for mention of Unicode characters.\r\n\r\nIt’s worth noticing that the two methods, <code>Character.toUpperCase</code> and <code>System.out.println</code>, are used quite differently in the code above. The method <code>Character.toUpperCase</code> is called as part of an initialization or an assignment statement, but the method <code>System.out.println</code> is called on its own.\r\n<h2 id=\"tab2\" >The boolean type</h2>\r\nA variable of type <code>boolean</code> stores one of two values: <code>true</code> or <code>false</code>. The code below demonstrates the use of a <code>boolean</code> variable.\r\n\r\n<code>public class ElevatorFitter2 {</code>\r\n\r\n \r\n\r\n<code>public static void main(String args[]) {</code>\r\n\r\n<code>System.out.println(\"True or False?\");</code>\r\n\r\n<code>System.out.println(\"You can fit all ten of the\");</code>\r\n\r\n<code>System.out.println(\"Brickenchicker dectuplets\");</code>\r\n\r\n<code>System.out.println(\"on the elevator:\");</code>\r\n\r\n<code>System.out.println();</code>\r\n\r\n \r\n\r\n<code>int weightOfAPerson = 150;</code>\r\n\r\n<code>int elevatorWeightLimit = 1400;</code>\r\n\r\n<code>int numberOfPeople = elevatorWeightLimit / weightOfAPerson;</code>\r\n\r\n \r\n\r\n<code>&lt;strong&gt; boolean allTenOkay = numberOfPeople &gt;= 10;&lt;/strong&gt;</code>\r\n\r\n \r\n\r\n<code>System.out.println(allTenOkay);</code>\r\n\r\n<code>}</code>\r\n\r\n<code>}</code>\r\n\r\nIn this code, the <code>allTenOkay</code> variable is of type <code>boolean</code>. To find a value for the <code>allTenOkay</code> variable, the program checks to see whether <code>numberOfPeople</code> is greater than or equal to ten. (The symbols >= stand for <em>greater than or equal to.</em>)\r\n\r\nAt this point, it pays to be fussy about terminology. Any part of a Java program that has a value is an <em>expression.</em> If you write\r\n\r\n<code>weightOfAPerson = 150;</code>\r\n\r\nthen <code>150 ,</code>is an expression (an expression whose value is the quantity <code>150</code>). If you write\r\n\r\n<code>numberOfEggs = 2 + 2;</code>\r\n\r\nthen 2 + 2 is an expression (because <code>2 + 2</code> has the value <code>4</code>). If you write\r\n\r\n<code>int numberOfPeople = elevatorWeightLimit / weightOfAPerson;</code>\r\n\r\nthen <code>elevatorWeightLimit / weightOfAPerson</code> is an expression. (The value of the expression <code>elevatorWeightLimit / weightOfAPerson</code> depends on whatever values the variables <code>elevatorWeightLimit</code> and <code>weightOfAPerson</code> have when the code containing the expression is executed.)\r\n<p class=\"article-tips remember\">Any part of a Java program that has a value is an expression.</p>\r\nIn the second set of code, <code>numberOfPeople &gt;= 10</code> is an expression. The expression’s value depends on the value stored in the <code>numberOfPeople</code> variable. But, as you know from seeing the strawberry shortcake at the Brickenchicker family’s catered lunch, the value of <code>numberOfPeople</code> isn’t greater than or equal to ten. As a result, the value of <code>numberOfPeople &gt;= 10</code> is <code>false</code>. So, in the statement in the second set of code, in which <code>allTenOkay</code> is assigned a value, the <code>allTenOkay</code> variable is assigned a <code>false</code> value.\r\n<p class=\"article-tips tip\">In the second set of code, <code>System.out.println()</code> is called with nothing inside the parentheses. When you do this, Java adds a line break to the program’s output. In the second set of code, <code>System.out.println()</code> tells the program to display a blank line.</p>","blurb":"","authors":[{"authorId":11028,"name":"Barry A. Burd","slug":"barry-a-burd","description":"","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/11028"}}],"primaryCategoryTaxonomy":{"categoryId":33602,"title":"Java","slug":"java","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33602"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":175788,"title":"Trig Identities for Pre-Calculus","slug":"trig-identities-for-pre-calculus","categoryList":["academics-the-arts","math","pre-calculus"],"_links":{"self":"/articles/175788"}},{"articleId":235851,"title":"Praying the Rosary and Meditating on the Mysteries","slug":"praying-rosary-meditating-mysteries","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/235851"}},{"articleId":186936,"title":"Chess Pieces and How They Move","slug":"knowing-the-moves-that-chess-pieces-can-make","categoryList":["home-auto-hobbies","games","board-games","chess"],"_links":{"self":"/articles/186936"}},{"articleId":195835,"title":"Common Medical Root Words","slug":"common-medical-root-words","categoryList":["body-mind-spirit","medical","terminology"],"_links":{"self":"/articles/195835"}}],"inThisArticle":[{"label":"The char type","target":"#tab1"},{"label":"The boolean type","target":"#tab2"}],"relatedArticles":{"fromBook":[{"articleId":239553,"title":"Using Streams and Lambda Expressions in Java","slug":"using-streams-lambda-expressions-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239553"}},{"articleId":239544,"title":"Command Line Arguments in Java","slug":"command-line-arguments-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239544"}},{"articleId":239529,"title":"How to Add Searching Capability with Java","slug":"add-searching-capability-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239529"}},{"articleId":239524,"title":"How to Use Subclasses in Java","slug":"use-subclasses-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239524"}},{"articleId":239520,"title":"Defining a Class in Java (What It Means to Be an Account)","slug":"defining-class-java-means-account","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239520"}}],"fromCategory":[{"articleId":275099,"title":"How to Download and Install TextPad","slug":"how-to-download-and-install-textpad","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/275099"}},{"articleId":275089,"title":"Important Features of the Java Language","slug":"important-features-of-the-java-language","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/275089"}},{"articleId":245151,"title":"How to Install JavaFX and Scene Builder","slug":"install-javafx-scene-builder","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245151"}},{"articleId":245148,"title":"A Few Things about Java GUIs","slug":"things-java-guis","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245148"}},{"articleId":245141,"title":"Getting a Value from a Method in Java","slug":"getting-value-method-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245141"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281748,"slug":"java-for-dummies-2","isbn":"9781119861645","categoryList":["technology","programming-web-design","java"],"amazon":{"default":"https://www.amazon.com/gp/product/1119861640/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119861640/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1119861640-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119861640/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119861640/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/9781119861645-203x255.jpg","width":203,"height":255},"title":"Java For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><b>Dr. <b data-author-id=\"9069\">Barry Burd</b></b> holds an M.S. in Computer Science from Rutgers University and a Ph.D. in Mathematics from the University of Illinois. Barry is also the author of <i>Beginning Programming with Java For Dummies, Java for Android For Dummies,</i> and <i>Flutter For Dummies.</i></p>","authors":[{"authorId":9069,"name":"Barry Burd","slug":"barry-burd","description":" <p><b>Dr. Barry Burd</b> holds an M.S. in Computer Science from Rutgers University and a Ph.D. in Mathematics from the University of Illinois. Barry is also the author of <i>Beginning Programming with Java For Dummies, Java for Android For Dummies,</i> and <i>Flutter For Dummies.</i></p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9069"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;java&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119861645&quot;]}]\" id=\"du-slot-671fd1658c809\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;java&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119861645&quot;]}]\" id=\"du-slot-671fd1658d3f6\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2024-10-28T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":239303}],"_links":{"self":{"self":"https://dummies-api.dummies.com/v2/categories/33512/categoryArticles?sortField=time&sortOrder=1&size=10&offset=0"},"next":{"self":"https://dummies-api.dummies.com/v2/categories/33512/categoryArticles?sortField=time&sortOrder=1&size=10&offset=10"},"last":{"self":"https://dummies-api.dummies.com/v2/categories/33512/categoryArticles?sortField=time&sortOrder=1&size=10&offset=9419"}}},"objectTitle":"","status":"success","pageType":"article-category","objectId":"33512","page":1,"sortField":"time","sortOrder":1,"categoriesIds":[],"articleTypes":[],"filterData":{"categoriesFilter":[{"itemId":0,"itemName":"All Categories","count":9410},{"itemId":33513,"itemName":"Computers","count":1393},{"itemId":33537,"itemName":"Cybersecurity","count":60},{"itemId":33538,"itemName":"Digital Audio & Radio","count":131},{"itemId":33543,"itemName":"Electronics","count":1757},{"itemId":33572,"itemName":"Information Technology","count":815},{"itemId":33587,"itemName":"Internet Basics","count":86},{"itemId":33588,"itemName":"Notable Websites","count":188},{"itemId":33592,"itemName":"Programming & Web Design","count":1395},{"itemId":33611,"itemName":"Social Media","count":385},{"itemId":33618,"itemName":"Software","count":3194},{"itemId":33512,"itemName":"Technology","count":1},{"itemId":35241,"itemName":"Virtual Reality","count":5}],"articleTypeFilter":[{"articleType":"All Types","count":9410},{"articleType":"Articles","count":8249},{"articleType":"Cheat Sheet","count":311},{"articleType":"Step by Step","count":762},{"articleType":"Videos","count":88}]},"filterDataLoadedStatus":"success","pageSize":10},"adsState":{"pageScripts":{"headers":{"timestamp":"2024-12-23T10:50:01+00:00"},"adsId":0,"data":{"scripts":[{"pages":["all"],"location":"header","script":"<!--Optimizely Script-->\r\n<script src=\"https://cdn.optimizely.com/js/10563184655.js\"></script>","enabled":false},{"pages":["all"],"location":"header","script":"<!-- comScore Tag -->\r\n<script>var _comscore = _comscore || [];_comscore.push({ c1: \"2\", c2: \"15097263\" });(function() {var s = document.createElement(\"script\"), el = document.getElementsByTagName(\"script\")[0]; s.async = true;s.src = (document.location.protocol == \"https:\" ? \"https://sb\" : \"http://b\") + \".scorecardresearch.com/beacon.js\";el.parentNode.insertBefore(s, el);})();</script><noscript><img src=\"https://sb.scorecardresearch.com/p?c1=2&c2=15097263&cv=2.0&cj=1\" /></noscript>\r\n<!-- / comScore Tag -->","enabled":true},{"pages":["all"],"location":"footer","script":"<!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->\r\n<script type='text/javascript'>\r\n(function(){var g=function(e,h,f,g){\r\nthis.get=function(a){for(var a=a+\"=\",c=document.cookie.split(\";\"),b=0,e=c.length;b<e;b++){for(var d=c[b];\" \"==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};\r\nthis.set=function(a,c){var b=\"\",b=new Date;b.setTime(b.getTime()+6048E5);b=\"; expires=\"+b.toGMTString();document.cookie=a+\"=\"+c+b+\"; path=/; \"};\r\nthis.check=function(){var a=this.get(f);if(a)a=a.split(\":\");else if(100!=e)\"v\"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(\":\"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case \"v\":return!1;case \"r\":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(\":\")),!c}return!0};\r\nthis.go=function(){if(this.check()){var a=document.createElement(\"script\");a.type=\"text/javascript\";a.src=g;document.body&&document.body.appendChild(a)}};\r\nthis.start=function(){var t=this;\"complete\"!==document.readyState?window.addEventListener?window.addEventListener(\"load\",function(){t.go()},!1):window.attachEvent&&window.attachEvent(\"onload\",function(){t.go()}):t.go()};};\r\ntry{(new g(100,\"r\",\"QSI_S_ZN_5o5yqpvMVjgDOuN\",\"https://zn5o5yqpvmvjgdoun-wiley.siteintercept.qualtrics.com/SIE/?Q_ZID=ZN_5o5yqpvMVjgDOuN\")).start()}catch(i){}})();\r\n</script><div id='ZN_5o5yqpvMVjgDOuN'><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>\r\n<!--END WEBSITE FEEDBACK SNIPPET-->","enabled":false},{"pages":["all"],"location":"header","script":"<!-- Hotjar Tracking Code for http://www.dummies.com -->\r\n<script>\r\n (function(h,o,t,j,a,r){\r\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\r\n h._hjSettings={hjid:257151,hjsv:6};\r\n a=o.getElementsByTagName('head')[0];\r\n r=o.createElement('script');r.async=1;\r\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\r\n a.appendChild(r);\r\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\r\n</script>","enabled":false},{"pages":["article"],"location":"header","script":"<!-- //Connect Container: dummies --> <script src=\"//get.s-onetag.com/bffe21a1-6bb8-4928-9449-7beadb468dae/tag.min.js\" async defer></script>","enabled":true},{"pages":["homepage"],"location":"header","script":"<meta name=\"facebook-domain-verification\" content=\"irk8y0irxf718trg3uwwuexg6xpva0\" />","enabled":true},{"pages":["homepage","article","category","search"],"location":"footer","script":"<!-- Facebook Pixel Code -->\r\n<noscript>\r\n<img height=\"1\" width=\"1\" src=\"https://www.facebook.com/tr?id=256338321977984&ev=PageView&noscript=1\"/>\r\n</noscript>\r\n<!-- End Facebook Pixel Code -->","enabled":true}]}},"pageScriptsLoadedStatus":"success"},"navigationState":{"navigationCollections":[{"collectionId":287568,"title":"BYOB (Be Your Own Boss)","hasSubCategories":false,"url":"/collection/for-the-entry-level-entrepreneur-287568"},{"collectionId":293237,"title":"Be a Rad Dad","hasSubCategories":false,"url":"/collection/be-the-best-dad-293237"},{"collectionId":295890,"title":"Career Shifting","hasSubCategories":false,"url":"/collection/career-shifting-295890"},{"collectionId":294090,"title":"Contemplating the Cosmos","hasSubCategories":false,"url":"/collection/theres-something-about-space-294090"},{"collectionId":287563,"title":"For Those Seeking Peace of Mind","hasSubCategories":false,"url":"/collection/for-those-seeking-peace-of-mind-287563"},{"collectionId":287570,"title":"For the Aspiring Aficionado","hasSubCategories":false,"url":"/collection/for-the-bougielicious-287570"},{"collectionId":291903,"title":"For the Budding Cannabis Enthusiast","hasSubCategories":false,"url":"/collection/for-the-budding-cannabis-enthusiast-291903"},{"collectionId":299891,"title":"For the College Bound","hasSubCategories":false,"url":"/collection/for-the-college-bound-299891"},{"collectionId":291934,"title":"For the Exam-Season Crammer","hasSubCategories":false,"url":"/collection/for-the-exam-season-crammer-291934"},{"collectionId":301547,"title":"For the Game Day Prepper","hasSubCategories":false,"url":"/collection/big-game-day-prep-made-easy-301547"}],"navigationCollectionsLoadedStatus":"success","navigationCategories":{"books":{"0":{"data":[{"categoryId":33512,"title":"Technology","hasSubCategories":true,"url":"/category/books/technology-33512"},{"categoryId":33662,"title":"Academics & The Arts","hasSubCategories":true,"url":"/category/books/academics-the-arts-33662"},{"categoryId":33809,"title":"Home, Auto, & Hobbies","hasSubCategories":true,"url":"/category/books/home-auto-hobbies-33809"},{"categoryId":34038,"title":"Body, Mind, & Spirit","hasSubCategories":true,"url":"/category/books/body-mind-spirit-34038"},{"categoryId":34224,"title":"Business, Careers, & Money","hasSubCategories":true,"url":"/category/books/business-careers-money-34224"}],"breadcrumbs":[],"categoryTitle":"Level 0 Category","mainCategoryUrl":"/category/books/level-0-category-0"}},"articles":{"0":{"data":[{"categoryId":33512,"title":"Technology","hasSubCategories":true,"url":"/category/articles/technology-33512"},{"categoryId":33662,"title":"Academics & The Arts","hasSubCategories":true,"url":"/category/articles/academics-the-arts-33662"},{"categoryId":33809,"title":"Home, Auto, & Hobbies","hasSubCategories":true,"url":"/category/articles/home-auto-hobbies-33809"},{"categoryId":34038,"title":"Body, Mind, & Spirit","hasSubCategories":true,"url":"/category/articles/body-mind-spirit-34038"},{"categoryId":34224,"title":"Business, Careers, & Money","hasSubCategories":true,"url":"/category/articles/business-careers-money-34224"}],"breadcrumbs":[],"categoryTitle":"Level 0 Category","mainCategoryUrl":"/category/articles/level-0-category-0"}}},"navigationCategoriesLoadedStatus":"success"},"searchState":{"searchList":[],"searchStatus":"initial","relatedArticlesList":[],"relatedArticlesStatus":"initial"},"routeState":{"name":"ArticleCategory","path":"/category/articles/technology-33512/","hash":"","query":{},"params":{"category":"technology-33512"},"fullPath":"/category/articles/technology-33512/","meta":{"routeType":"category","breadcrumbInfo":{"suffix":"Articles","baseRoute":"/category/articles"},"prerenderWithAsyncData":true},"from":{"name":null,"path":"/","hash":"","query":{},"params":{},"fullPath":"/","meta":{}}},"profileState":{"auth":{},"userOptions":{},"status":"success"}}
Logo
  • Articles Open Article Categories
  • Books Open Book Categories
  • Collections Open Collections list
  • Custom Solutions

Article Categories

Book Categories

Collections

Explore all collections
BYOB (Be Your Own Boss)
Be a Rad Dad
Career Shifting
Contemplating the Cosmos
For Those Seeking Peace of Mind
For the Aspiring Aficionado
For the Budding Cannabis Enthusiast
For the College Bound
For the Exam-Season Crammer
For the Game Day Prepper
Log In
  • Home
  • Technology Articles

Technology Articles

Technology. It makes the world go 'round. And whether you're a self-confessed techie or a total newbie, you'll find something to love among our hundreds of technology articles and books.

Browse By Category

Virtual Reality

Virtual Reality

Computers

Computers

Cybersecurity

Cybersecurity

Digital Audio & Radio

Digital Audio & Radio

Electronics

Electronics

Information Technology

Information Technology

Internet Basics

Internet Basics

Notable Websites

Notable Websites

Programming & Web Design

Programming & Web Design

Social Media

Social Media

Software

Software

Previous slideNext slide
Virtual Reality

Virtual Reality

Computers

Computers

Cybersecurity

Cybersecurity

Digital Audio & Radio

Digital Audio & Radio

Electronics

Electronics

Information Technology

Information Technology

Internet Basics

Internet Basics

Notable Websites

Notable Websites

Programming & Web Design

Programming & Web Design

Social Media

Social Media

Software

Software

Articles From Technology

page 1
page 2
page 3
page 4
page 5
page 6
page 7
page 8
page 9
page 10
page 11
page 12
page 13
page 14
page 15
page 16
page 17
page 18
page 19
page 20
page 21
page 22
page 23
page 24
page 25
page 26
page 27
page 28
page 29
page 30
page 31
page 32
page 33
page 34
page 35
page 36
page 37
page 38
page 39
page 40
page 41
page 42
page 43
page 44
page 45
page 46
page 47
page 48
page 49
page 50
page 51
page 52
page 53
page 54
page 55
page 56
page 57
page 58
page 59
page 60
page 61
page 62
page 63
page 64
page 65
page 66
page 67
page 68
page 69
page 70
page 71
page 72
page 73
page 74
page 75
page 76
page 77
page 78
page 79
page 80
page 81
page 82
page 83
page 84
page 85
page 86
page 87
page 88
page 89
page 90
page 91
page 92
page 93
page 94
page 95
page 96
page 97
page 98
page 99
page 100
page 101
page 102
page 103
page 104
page 105
page 106
page 107
page 108
page 109
page 110
page 111
page 112
page 113
page 114
page 115
page 116
page 117
page 118
page 119
page 120
page 121
page 122
page 123
page 124
page 125
page 126
page 127
page 128
page 129
page 130
page 131
page 132
page 133
page 134
page 135
page 136
page 137
page 138
page 139
page 140
page 141
page 142
page 143
page 144
page 145
page 146
page 147
page 148
page 149
page 150
page 151
page 152
page 153
page 154
page 155
page 156
page 157
page 158
page 159
page 160
page 161
page 162
page 163
page 164
page 165
page 166
page 167
page 168
page 169
page 170
page 171
page 172
page 173
page 174
page 175
page 176
page 177
page 178
page 179
page 180
page 181
page 182
page 183
page 184
page 185
page 186
page 187
page 188
page 189
page 190
page 191
page 192
page 193
page 194
page 195
page 196
page 197
page 198
page 199
page 200
page 201
page 202
page 203
page 204
page 205
page 206
page 207
page 208
page 209
page 210
page 211
page 212
page 213
page 214
page 215
page 216
page 217
page 218
page 219
page 220
page 221
page 222
page 223
page 224
page 225
page 226
page 227
page 228
page 229
page 230
page 231
page 232
page 233
page 234
page 235
page 236
page 237
page 238
page 239
page 240
page 241
page 242
page 243
page 244
page 245
page 246
page 247
page 248
page 249
page 250
page 251
page 252
page 253
page 254
page 255
page 256
page 257
page 258
page 259
page 260
page 261
page 262
page 263
page 264
page 265
page 266
page 267
page 268
page 269
page 270
page 271
page 272
page 273
page 274
page 275
page 276
page 277
page 278
page 279
page 280
page 281
page 282
page 283
page 284
page 285
page 286
page 287
page 288
page 289
page 290
page 291
page 292
page 293
page 294
page 295
page 296
page 297
page 298
page 299
page 300
page 301
page 302
page 303
page 304
page 305
page 306
page 307
page 308
page 309
page 310
page 311
page 312
page 313
page 314
page 315
page 316
page 317
page 318
page 319
page 320
page 321
page 322
page 323
page 324
page 325
page 326
page 327
page 328
page 329
page 330
page 331
page 332
page 333
page 334
page 335
page 336
page 337
page 338
page 339
page 340
page 341
page 342
page 343
page 344
page 345
page 346
page 347
page 348
page 349
page 350
page 351
page 352
page 353
page 354
page 355
page 356
page 357
page 358
page 359
page 360
page 361
page 362
page 363
page 364
page 365
page 366
page 367
page 368
page 369
page 370
page 371
page 372
page 373
page 374
page 375
page 376
page 377
page 378
page 379
page 380
page 381
page 382
page 383
page 384
page 385
page 386
page 387
page 388
page 389
page 390
page 391
page 392
page 393
page 394
page 395
page 396
page 397
page 398
page 399
page 400
page 401
page 402
page 403
page 404
page 405
page 406
page 407
page 408
page 409
page 410
page 411
page 412
page 413
page 414
page 415
page 416
page 417
page 418
page 419
page 420
page 421
page 422
page 423
page 424
page 425
page 426
page 427
page 428
page 429
page 430
page 431
page 432
page 433
page 434
page 435
page 436
page 437
page 438
page 439
page 440
page 441
page 442
page 443
page 444
page 445
page 446
page 447
page 448
page 449
page 450
page 451
page 452
page 453
page 454
page 455
page 456
page 457
page 458
page 459
page 460
page 461
page 462
page 463
page 464
page 465
page 466
page 467
page 468
page 469
page 470
page 471
page 472
page 473
page 474
page 475
page 476
page 477
page 478
page 479
page 480
page 481
page 482
page 483
page 484
page 485
page 486
page 487
page 488
page 489
page 490
page 491
page 492
page 493
page 494
page 495
page 496
page 497
page 498
page 499
page 500
page 501
page 502
page 503
page 504
page 505
page 506
page 507
page 508
page 509
page 510
page 511
page 512
page 513
page 514
page 515
page 516
page 517
page 518
page 519
page 520
page 521
page 522
page 523
page 524
page 525
page 526
page 527
page 528
page 529
page 530
page 531
page 532
page 533
page 534
page 535
page 536
page 537
page 538
page 539
page 540
page 541
page 542
page 543
page 544
page 545
page 546
page 547
page 548
page 549
page 550
page 551
page 552
page 553
page 554
page 555
page 556
page 557
page 558
page 559
page 560
page 561
page 562
page 563
page 564
page 565
page 566
page 567
page 568
page 569
page 570
page 571
page 572
page 573
page 574
page 575
page 576
page 577
page 578
page 579
page 580
page 581
page 582
page 583
page 584
page 585
page 586
page 587
page 588
page 589
page 590
page 591
page 592
page 593
page 594
page 595
page 596
page 597
page 598
page 599
page 600
page 601
page 602
page 603
page 604
page 605
page 606
page 607
page 608
page 609
page 610
page 611
page 612
page 613
page 614
page 615
page 616
page 617
page 618
page 619
page 620
page 621
page 622
page 623
page 624
page 625
page 626
page 627
page 628
page 629
page 630
page 631
page 632
page 633
page 634
page 635
page 636
page 637
page 638
page 639
page 640
page 641
page 642
page 643
page 644
page 645
page 646
page 647
page 648
page 649
page 650
page 651
page 652
page 653
page 654
page 655
page 656
page 657
page 658
page 659
page 660
page 661
page 662
page 663
page 664
page 665
page 666
page 667
page 668
page 669
page 670
page 671
page 672
page 673
page 674
page 675
page 676
page 677
page 678
page 679
page 680
page 681
page 682
page 683
page 684
page 685
page 686
page 687
page 688
page 689
page 690
page 691
page 692
page 693
page 694
page 695
page 696
page 697
page 698
page 699
page 700
page 701
page 702
page 703
page 704
page 705
page 706
page 707
page 708
page 709
page 710
page 711
page 712
page 713
page 714
page 715
page 716
page 717
page 718
page 719
page 720
page 721
page 722
page 723
page 724
page 725
page 726
page 727
page 728
page 729
page 730
page 731
page 732
page 733
page 734
page 735
page 736
page 737
page 738
page 739
page 740
page 741
page 742
page 743
page 744
page 745
page 746
page 747
page 748
page 749
page 750
page 751
page 752
page 753
page 754
page 755
page 756
page 757
page 758
page 759
page 760
page 761
page 762
page 763
page 764
page 765
page 766
page 767
page 768
page 769
page 770
page 771
page 772
page 773
page 774
page 775
page 776
page 777
page 778
page 779
page 780
page 781
page 782
page 783
page 784
page 785
page 786
page 787
page 788
page 789
page 790
page 791
page 792
page 793
page 794
page 795
page 796
page 797
page 798
page 799
page 800
page 801
page 802
page 803
page 804
page 805
page 806
page 807
page 808
page 809
page 810
page 811
page 812
page 813
page 814
page 815
page 816
page 817
page 818
page 819
page 820
page 821
page 822
page 823
page 824
page 825
page 826
page 827
page 828
page 829
page 830
page 831
page 832
page 833
page 834
page 835
page 836
page 837
page 838
page 839
page 840
page 841
page 842
page 843
page 844
page 845
page 846
page 847
page 848
page 849
page 850
page 851
page 852
page 853
page 854
page 855
page 856
page 857
page 858
page 859
page 860
page 861
page 862
page 863
page 864
page 865
page 866
page 867
page 868
page 869
page 870
page 871
page 872
page 873
page 874
page 875
page 876
page 877
page 878
page 879
page 880
page 881
page 882
page 883
page 884
page 885
page 886
page 887
page 888
page 889
page 890
page 891
page 892
page 893
page 894
page 895
page 896
page 897
page 898
page 899
page 900
page 901
page 902
page 903
page 904
page 905
page 906
page 907
page 908
page 909
page 910
page 911
page 912
page 913
page 914
page 915
page 916
page 917
page 918
page 919
page 920
page 921
page 922
page 923
page 924
page 925
page 926
page 927
page 928
page 929
page 930
page 931
page 932
page 933
page 934
page 935
page 936
page 937
page 938
page 939
page 940
page 941
page 942
page 943

Filter Results

9,429 results
9,429 results
Generative AI How to Write Effective AI Prompts for Different Real World Uses

Article / Updated 12-09-2024

As you delve deeper into the realm of prompt engineering, you find out that the effectiveness of a prompt can vary greatly depending on the application. Whether you’re using AI for creative writing, data analysis, customer service, or any other specific use, the prompts you use need to be tailored to fit the task at hand. The art in prompt engineering is matching your form of communication to the nature of the task. If you succeed, you’ll unlock the vast potential of AI. For instance, when engaging with AI for creative writing, your prompts should be open-ended and imaginative, encouraging the AI to generate original and diverse ideas. A prompt like “Write a story about a lost civilization discovered by a group of teenagers” sets the stage for a creative narrative. In contrast, data analysis requires prompts that are precise and data-driven. Here, you might need to guide the AI with specific instructions or questions, such as “Analyze the sales data from the last quarter and identify the top-performing products.” You may need to include that data in the prompt if it isn’t already loaded into the training data, retrieval-augmented generation (RAG), system or custom messages, or a specialized GPT. In any case, this type of prompt helps the AI focus on the exact task, ensuring that the output is relevant and actionable. The key to designing effective prompts lies in understanding the domain you’re addressing. Each field has its own set of terminologies, expectations, and objectives. For example, legal prompts require a different structure and language than those used in entertainment or education. It’s essential to incorporate domain-specific knowledge into your prompts to guide the AI in generating the desired output. Following are some examples across various industries that illustrate how prompts can be tailored for domain-specific applications: Legal domain: In the legal industry, precision and formality are paramount. Prompts must be crafted to reflect the meticulous nature of legal language and reasoning. For instance, a prompt for contract analysis might be, “Identify and summarize the obligations and rights of each party as per the contract clauses outlined in Section 2.3 and 4.1.” This prompt is structured to direct the AI to focus on specific sections, reflecting the detailed-oriented nature of legal work. Healthcare domain: In healthcare, prompts must be sensitive to medical terminology and patient privacy. A prompt for medical diagnosis might be, “Given the following anonymized patient symptoms and test results, what are the potential differential diagnoses?” This prompt respects patient confidentiality while leveraging the AI’s capability to process medical data. Education domain: Educational prompts often aim to engage and instruct. A teacher might use a prompt like, “Create a lesson plan that introduces the concept of photosynthesis to 5th graders using interactive activities.” This prompt is designed to generate educational content that is age-appropriate and engaging. Finance domain: In finance, prompts need to be data-driven and analytical. A financial analyst might use a prompt such as, “Analyze the historical price data of XYZ stock over the past year and predict the trend for the next quarter based on the moving average and standard deviation.” This prompt asks the AI to apply specific financial models to real-world data. Marketing domain: Marketing prompts often focus on creativity and audience engagement. A marketing professional could use a prompt like, “Generate a list of catchy headlines for our new eco-friendly product line that will appeal to environmentally conscious consumers.” This prompt encourages the AI to produce creative content that resonates with a target demographic. Software development domain: In software development, prompts can be technical and require understanding of coding languages. A prompt might be, “Debug the following Python code snippet and suggest optimizations for increasing its efficiency.” This prompt is technical, directing the AI to engage with code directly. Customer service domain: For customer service, prompts should be empathetic and solution oriented. A prompt could be, “Draft a response to a customer complaint about a delayed shipment, ensuring to express understanding and offer a compensatory solution.” This prompt guides the AI to handle a delicate situation with care. By understanding the unique requirements and language of each domain, you can craft prompts to effectively guide AI in producing the desired outcomes. It’s not just about giving commands; it’s about framing them in a way that aligns with the goals, terms, and practices of the industry in question. As AI continues to evolve, the ability to engineer precise and effective prompts becomes an increasingly valuable skill across all sectors. 15 tips and tricks for better AI prompting Although GenAI may seem like magic, it takes knowledge and practice to write effective prompts that will generate the content you’re looking for. The following list provides some insider tips and tricks to help you optimize your prompts to get the most out of your interactions with GenAI tools: Know your goal. Decide what you want from the AI — like a simple how-to or a bunch of ideas — before you start asking. Get specific. The clearer you are, the better the AI can help. Ask “How do I bake a beginner's chocolate cake?” instead of just “How do I make a cake?” Keep it simple. Use easy language unless you’re in a special field like law or medicine where using the right terms is necessary. Add context. Give some background if it's a special topic, like tips for small businesses on social media. Play pretend. Tell the AI to act like someone, like a fitness coach, to get answers that fit that role. Try again. If the first answer isn't great, change your question a bit and ask again. Show examples. If you want something creative, show the AI an example to follow, like asking for a poem like one by Robert Frost. Don't overwhelm. Keep your question focused. If it's too packed with info, it gets messy. Mix it up. Try asking in different ways, like with a question or a command, to see what works best. Embrace the multimodal functionality. Multimodal functionality means that the GenAI model you’re working with can accept more than one kind of prompt input. Typically, that means it can accept both text and images in the input. Understand the model’s limitations. GenAI is not infallible and can still produce errors or “hallucinate” responses. Always approach the AI’s output with a critical eye and use it as a starting point rather than the final word on any subject. Leverage the enhanced problem-solving abilities. GenAI’s enhanced problem-solving skills mean that you can tackle more complex prompts. Use this to your advantage when crafting prompts that require a deep dive into a topic. Keep prompts aligned with AI training. For example, remember that GPT-4, like its predecessors, is trained on a vast dataset up to a certain point in time (April 2023 at the time of this writing). It doesn’t know about anything that happened after that date. If you need to reference more recent events or data, provide that context within your prompt. Experiment with different prompt lengths. Short prompts can be useful for quick answers, while longer, more detailed prompts can provide more context and yield more comprehensive responses. Incorporate feedback loops. After receiving a response from your GenAI application, assess its quality and relevance. If it hit — or is close to — the mark, click on the thumbs-up icon. If it’s not quite what you were looking for, provide feedback in your next prompt by clicking on the thumbs-down icon. This iterative process can help refine the AI’s understanding of your requirements and improve the quality of future responses. By keeping these tips in mind and staying informed about the latest developments in the capabilities of various GenAI models and applications, you’ll be able to craft prompts that are not only effective but also responsible and aligned with the AI’s strengths and limitations. How to use prompts to fine-tune the AI model The point of prompt engineering is to carefully compose a prompt that can shape the AI’s learning curve and fine-tune its responses to perfection. In this section, you dive into the art of using prompts to refine the GenAI model, ensuring that it delivers the most accurate and helpful answers possible. In other words, you discover how to use prompts to also teach the model to perform better for you over time. Here are some specific tactics: When you talk to the AI and it gives you answers, tell it if you liked the answer or not. Do this by clicking the thumbs up or thumbs down, or the + or – icons above or below the output. The model will learn how to respond better to you and your prompts over time if you do this consistently. If the AI gives you a weird answer, there's a “do-over” button you can press. It's like asking your friend to explain something again if you didn't get it the first time. Look for “Regenerate Response'’ or some similar wording (term varies among models) near the output. Click on that and you’ll instantly get the AI’s second try! Think of different ways to ask the AI the same or related questions. It's like using magic words to get the best answers. If you're really good at it, you can make a list of prompts that others can use to ask good questions too. Prompt libraries are very helpful to all. It’s smart to look at prompt libraries for ideas when you’re stumped on how or what to prompt. Share your successful prompts. If you find a super good way to ask something, you can share it online (at sites like GitHub) with other prompt engineers and use prompts others have shared there too. Instead of teaching the AI everything from scratch (retraining the model), you can teach it a few more new things through your prompting. Just ask it in different ways to do new things. Over time, it will learn to expand its computations. And with some models, what it learns from your prompts will be stored in its memory. This will improve the outputs it gives you too! Redirect AI biases. If the AI says something that seems mean or unfair, rate it a thumbs down and state why the response was unacceptable in your next prompt. Also, change the way you ask questions going forward to redirect the model away from this tendency. Be transparent and accountable when you work with AI. Tell people why you're asking the AI certain questions and what you hope to get from it. If something goes wrong, try to make it right. It's like being honest about why you borrowed your friend's toy and fixing it if it breaks. Keep learning. The AI world changes a lot, and often. Keep up with new models, features, and tactics, talk to others, and always try to get better at making the AI do increasingly more difficult things. The more you help GenAI learn, the better it gets at helping you! What to do when AI goes wrong When you engage with AI through your prompts, be aware of common pitfalls that can lead to biased or undesirable outcomes. Following are some strategies to avoid these pitfalls, ensuring that your interactions with AI are both effective and ethically sound. Recognize and mitigate biases. Biases in AI can stem from the data it was trained on or the way prompts are structured. For instance, a healthcare algorithm in the United States inadvertently favored white patients over people of color because it used healthcare cost history as a proxy for health needs, which correlated with race. To avoid such biases, carefully consider the variables and language used in your prompts. Ensure they do not inadvertently favor one group over another or perpetuate stereotypes. Question assumptions. Wrong or flawed assumptions can lead to misguided AI behavior. For example, Amazon’s hiring algorithm developed a bias against women because it was trained on resumes predominantly submitted by men. Regularly review the assumptions behind your prompts and be open to challenging and revising them as needed. Avoid overgeneralization. AI can make sweeping generalizations based on limited data. To prevent this, provide diverse and representative examples in your prompts. This helps the AI understand the nuances and variations within the data, leading to more accurate and fair outcomes. Keep your purpose in sight. Losing sight of the purpose of your interaction with AI can result in irrelevant or unhelpful responses. Always align your prompts with the intended goal and avoid being swayed by the AI’s responses into a direction that deviates from your original objective. Diversify information sources. Relying on too narrow a set of information can skew AI responses. Ensure that the data and examples you provide cover a broad spectrum of scenarios and perspectives. This helps the AI develop a well-rounded understanding of the task at hand. For example, if the AI is trained to find causes of helicopter crashes and the only dataset the AI has is of events when helicopters crash, it will deduce that all helicopters crash which in turn will render skewed outputs that could be costly or even dangerous. Add data on flights or events when helicopters did not crash, and you’ll get better outputs because the model has more diverse and more complete information to analyze. Encourage open debate. AI can sometimes truncate debate by providing authoritative-sounding answers. Encourage open-ended prompts that allow for multiple viewpoints and be critical of the AI’s responses. This fosters a more thoughtful and comprehensive exploration of the topic. Be wary of consensus. Defaulting to consensus can be tempting, especially when AI confirms our existing beliefs. However, it’s important to challenge the AI and yourself by considering alternative viewpoints and counterarguments. This helps in uncovering potential blind spots and biases. Check your work. Always review the AI’s responses for accuracy and bias. As with the healthcare algorithm that skewed resources toward white patients, unintended consequences can arise from seemingly neutral variables. Rigorous checks and balances are necessary to ensure the AI’s outputs align with ethical standards.

View Article
Cybersecurity What Is Zero Risk Application Security and How Can It Align with Compliance Frameworks?

Article / Updated 11-20-2024

Zero Risk application security provides comprehensive protection against potential threats, ensuring the integrity, confidentiality, and availability of your vital data and systems. This approach integrates automated risk analysis, stringent access provisioning controls, and continuous monitoring to prevent unauthorized access and vulnerabilities. The goal is to neutralize potential threats before they cause harm, which helps maintain the highest levels of visibility, security, and compliance. Aligning your organization’s Zero Risk strategies with established cybersecurity and regulatory compliance frameworks is a necessity. The goal is to create a robust security posture that not only protects your assets but also ensures you meet the critical standards set by regulatory bodies. Understanding the compliance landscape Before you can align your Zero Risk strategies with compliance frameworks, you must understand the landscape. Two of the most significant regulatory frameworks in this realm are the Sarbanes-Oxley Act (SOX) and the General Data Protection Regulation (GDPR). SOX focuses on financial reporting and corporate governance, while GDPR is concerned with data protection and privacy for individuals within the European Union. The National Institute of Standards and Technology (NIST) also provides a risk management framework that can be leveraged to align with Zero Risk strategies. This framework helps your organization manage and mitigate risks in a comprehensive and repeatable manner, ensuring that cybersecurity remains a dynamic and integral part of your organization’s culture and business processes. To hit the mark on Zero Risk, you also need to mature your cybersecurity model. The Cybersecurity Maturity Model Certification (CMMC) enhances your security practices through five levels of cyber hygiene: Level 1: Basic cyber hygiene: Figure out your current cybersecurity practices and understanding the basics. Level 2: Intermediate cyber hygiene: Document your cybersecurity practices consistency and repeatability. Level 3: Good cyber hygiene: Put proper risk management practices in place to address identified vulnerabilities and threats. Level 4: Proactive cyber hygiene: Routinely and regularly review risks. Continuous monitoring ensures you’re proactive in managing them. Level 5: Advanced and progressive cyber hygiene: Optimize your cybersecurity processes and continuously improving to stay ahead of emerging threats. Focusing on key actions to alignment Aligning Zero Risk with the compliance frameworks involves several key actions: Gap analysis: Conduct a thorough comparison of your current policies, processes, and technologies against the requirements of SOX, GDPR, and the NIST framework. This analysis highlights areas that need improvement and helps prioritize your efforts. Remediation roadmap: Develop a detailed plan (a roadmap of sorts) to address the identified gaps (see the preceding bullet). This plan should prioritize critical areas, allocate resources, and set timelines for completion. Policy communication: Update your policies to align with SOX and GDPR standards, and communicate these changes effectively across your organization. Taking practical measures for compliance To ensure that your Zero Risk strategies are in sync with compliance frameworks, consider the following practical measures: Automating monitoring and reporting: Use identity and application access governance software to automate the monitoring of your systems and the reporting process. This measure not only saves time but also reduces the risk of human error. Regular training: Conduct regular training and awareness programs for employees to ensure that they understand their roles in protecting data and maintaining financial integrity. Continuous monitoring: Implement real-time tracking of all transactions within the application environment. This helps maintain an up-to-date security posture and immediate threat detection. Maintaining compliance and security After you’ve aligned your Zero Risk strategies with compliance frameworks, maintaining that alignment over time is crucial. To stay aligned and ensure ongoing compliance, follow these tips: Perform audits. Conduct regular internal audits to test your financial controls and data security procedures. This action helps identify any compliance drift early on. Stay updated. Keep abreast of changes in compliance frameworks and adjust your policies and procedures accordingly. This means subscribing to regulatory updates, attending relevant seminars and webinars, and participating in industry groups. Regularly revisit your compliance frameworks to ensure they reflect the latest legal and regulatory changes. Document, document, document. Keep an up-to-date record of all data processing activities. This documentation is key to demonstrating compliance during audits. Aligning Zero Risk strategies with cybersecurity and regulatory compliance frameworks is a dynamic process that requires continuous attention and adaptation. By taking a systematic approach to gap analysis, remediation, and ongoing maintenance, organizations can not only enhance their security posture but also ensure they meet the evolving demands of regulatory compliance. This integrated strategy supports sustainable growth and resilience in an increasingly complex digital landscape. Achieving compliance is an accomplishment, but maintaining it is the goal. Falling out of compliance can be costly, so keep reviewing and updating your cybersecurity model to stay ahead of the curve. How Pathlock can help Your organization needs to achieve a Zero Risk application environment, and Pathlock can help. Pathlock’s solutions give you critical tools for planning a proactive defense strategy to continuously monitor and manage risks. To find out more, check out Zero Risk Application Security For Dummies, Pathlock Special Edition. Head to pathlock.com/resource/zero-risk-application-security-for-dummies for your free e-book, and start planning your Zero Risk application security approach.

View Article
Drones Drone Piloting For Dummies Cheat Sheet

Cheat Sheet / Updated 11-13-2024

Drone piloting is for fun . . . and profit, if you want to go that route! It can start out as a hobby and become a side hustle or even a full-time job in a particular industry. From giving you tips about buying a drone, to flying it safely, to taking the Part 107 exam, to cranking up a freelance business, this cheat sheet can help you get your drone piloting goals off the ground.

View Cheat Sheet
PCs PCs & Laptops For Dummies Cheat Sheet

Cheat Sheet / Updated 11-13-2024

Whether it’s a desktop the family uses, an office computer, or a liberating laptop you can take with you around the globe, everyone loves to cheat! Specifically, you may find it beneficial to print and save this bonus information to assist you with your beloved computer. Call it helpful hints, but For Dummies tradition labels this document a Cheat Sheet — once a $2.95 value but now free!

View Cheat Sheet
AI 10 Mistakes to Avoid When Writing AI Prompts

Video / Updated 11-13-2024

When you’re new to crafting AI prompts, you can easily make mistakes. Using AI tools the right way makes you more productive and efficient. But if you aren’t careful, you may develop bad habits when you’re still learning. We clue you in to 10 mistakes you should avoid from the start in this video and article. Not Spending Enough Time Crafting and Testing Prompts One common mistake when using AI tools is not putting in the effort to carefully craft your prompts. You may be tempted — very tempted — to quickly type out a prompt and get a response back from the AI, but hurried prompts usually produce mediocre results. Taking the time to compose your prompt using clear language will increase your chances of getting the response you want. A poor response spells the need for you to evaluate the prompt to see where you can clarify or improve it. It’s an iterative process, so don’t be surprised if you have to refine your prompt several times. Like any skill, learning to design effective prompts takes practice and patience. The key is to resist the urge to take shortcuts. Make sure to put in the work needed to guide the AI to a great response. Assuming the AI Understands Context or Subtext It’s easy to overestimate the capabilities of AI tools and assume they understand the meaning of language the way humans do. Current AI tools take things literally. They don’t actually understand the context of a conversation. An AI assistant may be trained to identify patterns and connections and is aware of these things as concepts (like norms, emotions, or sarcasm), all of which rely on context, but it struggles to identify them reliably. Humans can read between the lines and understand meaning beyond what’s actually written. An AI interprets instructions and prompts in a very literal sense — it doesn’t understand the meaning behind them. You can’t assume an AI understands concepts it hasn’t been trained for. Asking Overly Broad or Vague Questions When interacting with an AI, avoid overly broad or vague questions. The AI works best when you give it clear, specific prompts. Providing prompts like “Tell me about human history” or “Explain consciousness” is like asking the AI to search the entire internet. The response will probably be unfocused. The AI has no sense of what information is relevant or important so you need to refocus and try again. Good prompts are more direct. You can start with a prompt such as “Summarize this research paper in two paragraphs” or “Write a 500-word article on summer plants that require shade.” The prompt should give the AI boundaries and context to shape its response. Going from broad to increasingly narrow questions also helps. You can start generally asking about a topic and then follow up with focused requests on the specific details. Providing concrete examples guides the AI. The key is to give the AI precise prompts centered directly on the information you want instead of typing a request with a vague, borderless question. Sharp, specific questioning produces the best AI results. Not Checking Outputs for Errors and Biases A common mistake when using AI apps is taking the results at face value without double-checking them. AI systems may reflect bias, or generate text that seems right but has errors. Just because the content came from an AI doesn’t mean it’s necessarily accurate. Reviewing AI responses rather than blindly trusting the technology is critical. Look for instances of bias where specific demographics are negatively characterized or tropes (clichés) are reinforced. Always check facts and figures against other sources. Look for logic that indicates the AI was “confused.” Providing feedback when the AI makes a mistake can further enhance its training. The key is to approach responses skeptically instead of assuming that the AI always generates perfect results. As with any human team member, reviewing their work is essential before using it. Careful oversight of AI tools mitigates risks. Using Offensive, Unethical, or Dangerous Prompts A primary concern when working with AI is that the apps can inadvertently amplify harmful biases if users write offensive, unethical, or dangerous prompts. The AI will generate text for any input, but the response may be that you’re asking for a harmful response and it will not comply. Prompting an AI with inappropriate language or potential discrimination may reinforce biases from the data the model was trained on. If users are cautious when formulating prompts, that can help steer the technology toward more thoughtful responses. AI can be subject to the whims of bad actors. Expecting Too Much Originality or Creativity from the AI One common mistake when using AI apps is expecting too much original thought or creativity. AI tools can generate unique mixes of text, imagery, and other media, but there are limits. As of this writing, AI apps are only capable of remixing existing information and patterns into new combinations. They can’t really create responses that break new ground. An AI has no natural creative flair like human artists or thinkers. Its training data consists only of past and present works. So, although an AI can generate new work, expecting a “masterpiece” is unrealistic. Copying Generated Content Verbatim A big mistake users make when first using AI tools is to take the text and use it verbatim, without any edits or revisions. AI can often produce text that appears to be well written, but the output is more likely to be a bit rough and require a good edit. Mindlessly copying the unedited output can result in unclear and generic work. (Also, plagiarizing or passing the writing off as your own is unethical.) A best practice is to use the suggestions as a starting point that you build upon with your own words and edits to polish the final product. Keep the strong parts and make it into something original. The key is that the AI app should support your work, not replace it. With the right editing and polishing, you can produce something you’ll be proud of. Providing Too Few Examples and Use Cases When you’re training an AI app to handle a new task, a common mistake is to provide too few examples of inputs. Humans can usually extrapolate from a few samples, but AI apps can’t. An AI must be shown examples to grasp the full scope of the case. You need to feed the AI varied use cases to help it generalize effectively. Similarly, limiting prompts to just a couple of instances produces equally poor results because the AI has little indication of the boundaries of the task. Providing diverse examples helps the AI form an understanding about how to respond. Having patience and supplying many examples lets the AI respond appropriately. Not Customizing Prompts for Different Use Cases One common mistake when working with AI tools is attempting to use the same generic prompt to handle all your use cases. Creating a one-size-fits-all prompt is easier, but it will deliver disappointing results. Each use case and application has its own unique goals and information that need to be conveyed, as discussed throughout this book. For example, a prompt for a creative nonfiction story should be designed differently than a prompt for a medical article. An inventory of prompts designed for various use cases allows the AI to adapt quickly to different needs. The key is customization. Building a library of specialized prompts is an investment that pays dividends. Becoming Overly Reliant on AI Tasks Better Suited for Humans Almost everyone is excited about using AI tools to make their job easier. But it’s important to avoid becoming too dependent on them. AI is great for tasks like automation and personalization, but applying ethics and conveying empathy are still human strengths.

Watch Video
Information Technology The Next Data Cycle: Why Your Organization Needs Hyperscale NAS

Article / Updated 11-06-2024

In the ever-accelerating race of data processing and analytics, your organization’s ability to adapt and evolve its data architecture is crucial. As we enter the next data cycle, marked by the rise of artificial intelligence (AI) and deep learning (DL), the demands on data storage and management are unprecedented. This is where hyperscale network-attached storage (NAS) comes into play, offering a transformative solution for organizations looking to capitalize on the next wave of data-driven opportunities. Ushering in the Next Data Cycle with Hyperscale NAS The next data cycle is characterized by a shift from structured business intelligence (BI) data to a world where unstructured and semi-structured data reign supreme. This data is massive in volume and comes from countless sources, which require high-performance access to drive valuable insights. Hyperscale NAS meets this challenge head-on by merging the simplicity of enterprise NAS with the extreme performance of high-performance computing (HPC) parallel file systems. Hyperscale NAS is essential for your organization for the following reasons: Performance at scale: Hyperscale NAS isn’t bottlenecked by traditional NAS controllers, so linear scalability in performance and capacity are enabled across potentially thousands of nodes. Cost efficiency: Being software-defined, hyperscale NAS allows the use of commodity hardware and avoids vendor lock-in, driving down costs significantly. Metadata excellence: With shared metadata kept out of the data path, hyperscale NAS ensures fast access to data across the global environment, which is critical for AI and DL workloads that require rapid data retrieval and processing. Hyperscale NAS: A Pillar for Modern Data Architectures The architecture of hyperscale NAS is fundamentally different from traditional solutions. It overcomes the limitations of scale-out NAS by providing linear scalability and extreme throughput using commodity infrastructure. This means that as your data grows, your system’s performance and capacity can grow with it, without the need for expensive, specialized hardware. Some of the transformative capabilities of hyperscale NAS include Standards-based integration: The hyperscale NAS client software is built into standard Linux distributions, eliminating the need for proprietary clients. Consistent high performance: The separation of metadata from the data path allows for near-full bandwidth utilization, delivering the speed necessary for demanding applications. High availability: Hyperscale NAS includes distributed architecture, load balancing, tiering, and high-availability features, proving itself in some of the world’s largest AI environments. Making Data Available and Actionable In the era of AI, having access to sufficient compute resources, like graphics processing units (GPUs), is a significant challenge. Hyperscale NAS helps you leverage GPUs wherever they’re available, making data a live, globally shared resource that’s no longer localized or trapped within proprietary storage systems or specific cloud data services. Hyperscale NAS makes data more accessible and actionable through Global data sets: Hyperscale NAS orchestrates data to GPUs in the cloud and GPU-as-a-Service providers, unifying multiple data sources into a single global file system. Intelligent data placement: Leveraging metadata-driven data orchestration, Hyperscale NAS ensures data is where it needs to be, when it needs to be there. Non-disruptive data mobility: Data can be moved between storage systems, sites, and clouds without disrupting access or performance. As your organization gears up for the next data cycle, adopting hyperscale NAS isn’t just a strategic move; it’s an imperative one. It’s a future-proof solution that enables you to keep pace with the exponential growth of data and the complex demands of AI and DL. With hyperscale NAS, you can transform your business, unleash the full potential of your data assets, and ensure that your organization isn’t just ready but thriving in the next data cycle. For more information, download this free e-book: Hyperscale NAS For Dummies, Hammerspace Special Edition.

View Article
Python How to Define and Use Python Lists

Article / Updated 10-28-2024

The simplest data collection in Python is a list. A list is any list of data items, separated by commas, inside square brackets. Typically, you assign a name to the Python list using an = sign, just as you would with variables. If the list contains numbers, then don't use quotation marks around them. For example, here is a list of test scores: scores = [88, 92, 78, 90, 98, 84] If the list contains strings then, as always, those strings should be enclosed in single or double quotation marks, as in this example: To display the contents of a list on the screen, you can print it just as you would print any regular variable. For example, executing print(students) in your code after defining that list shows this on the screen. ['Mark', 'Amber', 'Todd', 'Anita', 'Sandy'] This may not be exactly what you had in mind. But don’t worry, Python offers lots of great ways to access data in lists and display it however you like. Referencing Python list items by position Each item in a list has a position number, starting with zero, even though you don’t see any numbers. You can refer to any item in the list by its number using the name for the list followed by a number in square brackets. In other words, use this syntax: <em>listname</em>[<em>x</em>] Replace <em><code>listname</code></em> with the name of the list you're accessing and replace <em><code>x</code></em> with the position number of item you want. Remember, the first item is always number zero, not one. For example, in the first line below, I define a list named <code>students</code>, and then print item number zero from that list. The result, when executing the code, is that the name <code>Mark</code> is displayed. students = ["Mark", "Amber", "Todd", "Anita", "Sandy"] print(students[0]) Mark When reading access list items, professionals use the word sub before the number. For example, students[0] would be spoken as students sub zero. This next example shows a list named scores. The print() function prints the position number of the last score in the list, which is 4 (because the first one is always zero). scores = [88, 92, 78, 90, 84] print(scores[4]) 84 If you try to access a list item that doesn't exist, you get an “index out of range” error. The index part is a reference to the number inside the square brackets. For example, the image below shows a little experiment in a Jupyter notebook where a list of scores was created and then the printing of score[5] was attempted. It failed and generated an error because there is no scores[5]. There's only scores[0], scores[1], scores[2], scores[3], and scores[4] because the counting always starts at zero with the first one on the list. Looping through a Python list To access each item in a list, just use a for loop with this syntax: for <em>x</em> in <em>list</em>: Replace >x with a variable name of your choosing. Replace list with the name of the list. An easy way to make the code readable is to always use a plural for the list name (such as students, scores). Then you can use the singular name (student, score) for the variable name. You don't need to use subscript numbers (numbers in square brackets) with this approach either. For example, the following code prints each score in the scores list: for score in scores: print(score) Remember to always indent the code that’s to be executed within the loop. This image shows a more complete example where you can see the result of running the code in a Jupyter notebook. Seeing whether a Python list contains an item If you want your code to check the contents of a list to see whether it already contains some item, use in <em>listname</em> in an if statement or a variable assignment. For example, the code in the image below creates a list of names. Then, two variables store the results of searching the list for the names Anita and Bob. Printing the contents of each variable shows True for the one where the name (Anita) is in the list. The test to see whether Bob is in the list proves False. Getting the length of a Python list To determine how many items are in a list, use the len() function (short for length). Put the name of the list inside the parentheses. For example, type the following code into a Jupyter notebook or Python prompt or whatever: students = ["Mark", "Amber", "Todd", "Anita", "Sandy"] print(len(students)) Running that code produces this output: 5 There are indeed five items in the list, though the last one is always one less than the number because Python starts counting at zero. So the last one, Sandy, actually refers to students[4] and not students[5]. Appending an item to the end of a Python list When you want your Python code to add a new item to the end of a list, use the .append() method with the value you want to add inside the parentheses. You can use either a variable name or a literal value inside the quotation marks. For instance, in the following image the line that reads students.append("Goober") adds the name Goober to the list. The line that reads students.append(new_student) adds whatever name is stored in the variable named new_student to the list. The .append() method always adds to the end of the list. So when you print the list you see those two new names at the end. You can use a test to see whether an item is in a list and then append it only when the item isn't already there. For example, the code below won’t add the name Amber to the list because that name is already in the list: student_name = "Amanda" #Add student_name but only if not already in the list. if student_name in students: print (student_name + " already in the list") else: students.append(student_name) print (student_name + " added to the list") Inserting an item into a Python list Although the append() method allows you to add an item to the end of a list, the insert() method allows you to add an item to the list in any position. The syntax for insert() is <em>listname</em>.insert(<em>position</em>, <em>item</em>) Replace listname with the name of the list, position with the position at which you want to insert the item (for example, 0 to make it the first item, 1 to make it the second item, and so forth). Replace item with the value, or the name of a variable that contains the value, that you want to put into the list. For example, the following code makes Lupe the first item in the list: #Create a list of strings (names). students = ["Mark", "Amber", "Todd", "Anita", "Sandy"] student_name = "Lupe" # Add student name to front of the list. students.insert(0,student_name) #Show me the new list. print(students) If you run the code, print(students) will show the list after the new name has been inserted, as follows: ['Lupe', 'Mark', 'Amber', 'Todd', 'Anita', 'Sandy'] Changing an item in a Python list You can change an item in a list using the = assignment operator (check out these common Python operators) just like you do with variables. Just make sure you include the index number in square brackets of the item you want to change. The syntax is: listname[index]=newvalue Replace listname with the name of the list; replace index with the subscript (index number) of the item you want to change; and replace newvalue with whatever you want to put in the list item. For example, take a look at this code: #Create a list of strings (names). students = ["Mark", "Amber", "Todd", "Anita", "Sandy"] students[3] = "Hobart" print(students) When you run this code, the output is as follows, because Anita's name has been changed to Hobart. ['Mark', 'Amber', 'Todd', 'Hobart', 'Sandy'] Combining Python lists If you have two lists that you want to combine into a single list, use the extend() function with the syntax: <em>original_list</em>.extend(<em>additional_items_list</em>) In your code, replace original_list with the name of the list to which you’ll be adding new list items. Replace additional_items_list with the name of the list that contains the items you want to add to the first list. Here is a simple example using lists named list1 and list2. After executing list1.extend(list2), the first list contains the items from both lists, as you can see in the output of the print() statement at the end. # Create two lists of Names. list1 = ["Zara", "Lupe", "Hong", "Alberto", "Jake"] list2 = ["Huey", "Dewey", "Louie", "Nader", "Bubba"] # Add list2 names to list1. list1.extend(list2) # Print list 1. print(list1) ['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba'] Easy Parcheesi, no? Removing Python list items Python offers a remove() method so you can remove any value from the list. If the item is in the list multiple times, only the first occurrence is removed. For example, the following code shows a list of letters with the letter C repeated a few times. Then the code uses letters.remove("C") to remove the letter C from the list: # Remove "C" from the list. letters.remove("C") #Show me the new list. print(letters) When you actually execute this code and then print the list, you'll see that only the first letter C has been removed: ['A', 'B', 'D', 'C', 'E', 'C'] If you need to remove all of an item, you can use a while loop to repeat the .remove as long as the item still remains in the list. For example, this code repeats the .remove as long as the “C” is still in the list. #Create a list of strings. letters = ["A", "B", "C", "D", "C", "E", "C"] If you want to remove an item based on its position in the list, use pop() with an index number rather than remove() with a value. If you want to remove the last item from the list, use pop() without an index number. For example, the following code creates a list, one line removes the first item (0), and another removes the last item (pop() with nothing in the parentheses). Printing the list shows those two items have been removed: #Create a list of strings. letters = ["A", "B", "C", "D", "E", "F", "G"] #Remove the first item. letters.pop(0) #Remove the last item. letters.pop() #Show me the new list. print(letters) Running the code shows that the popping the first and last items did, indeed, work: ['B', 'C', 'D', 'E', 'F'] When you pop() an item off the list, you can store a copy of that value in some variable. For example this image shows the same code as above. However, it stores copies of what's been removed in variables named first_removed and last_removed. At the end it prints the Python list, and also shows which letters were removed. Python also offers a del (short for delete) command that deletes any item from a list based on its index number (position). But again, you have to remember that the first item is zero. So, let's say you run the following code to delete item number 2 from the list: # Create a list of strings. letters = ["A", "B", "C", "D", "E", "F", "G"] # Remove item sub 2. del letters[2] print(letters) Running that code shows the list again, as follows. The letter C has been deleted, which is the correct item to delete because letters are numbered 0, 1, 2, 3, and so forth. ['A', 'B', 'D', 'E', 'F', 'G'] You can also use del to delete an entire list. Just don’t use the square brackets and the index number. For example, the code you see below creates a list then deletes it. Trying to print the list after the deletion causes an error, because the list no longer exists when the print() statement is executed. Clearing out a Python list If you want to delete the contents of a list but not the list itself, use .clear(). The list still exists; however, it contains no items. In other words, it's an empty list. The following code shows how you could test this. Running the code displays [] at the end, which lets you know the list is empty: # Create a list of strings. letters = ["A", "B", "C", "D", "E", "F", "G"] # Clear the list of all entries. letters.clear() # Show me the new list. print(letters) Counting how many times an item appears in a Python list You can use the Python count() method to count how many times an item appears in a list. As with other list methods, the syntax is simple: <em>listname</em>.count(<em>x</em>) Replace listname with the name of your list, and x with the value you're looking for (or the name of a variable that contains that value). The code in the image below counts how many times the letter B appears in the list, using a literal B inside the parentheses of .count(). This same code also counts the number of C grades, but that value was stored in a variable just to show the difference in syntax. Both counts worked, as you can see in the output of the program at the bottom. One was added to count the F's, not using any variables. The F’s were counted right in the code that displays the message. There are no F grades, so this returns zero, as you can see in the output. When trying to combine numbers and strings to form a message, remember you have to convert the numbers to strings using the str() function. Otherwise, you get an error that reads something like can only concatenate str (not "int") to str. In that message, int is short for integer, and str is short for string. Finding a Python list item's index Python offers an .index() method that returns a number indicating the position, based on index number, of an item in a list. The syntax is: <em>listname</em>.index(<em>x</em>) As always, replace listname with name of the list you want to search. Replace x what whatever you're looking for (either as a literal or as a variable name, as always). Of course, there’s no guarantee that the item is in the list, and even if it is, there’s no guarantee that the item is in the list only once. If the item isn’t in the list, then an error occurs. If the item is in the list multiple times, then the index of the first matching item is returned. The following image shows an example where the program crashes at the line f_index = grades.index(look_for) because there is no F in the list. An easy way to get around that problem is to use an if statement to see whether an item is in the list before you try to get its index number. If the item isn't in the list, display a message saying so. Otherwise, get the index number and show it in a message. That code is as follows: # Create a list of strings. grades = ["C", "B", "A", "D", "C", "B", "C"] # Decide what to look for look_for = "F" # See if the item is in the list. if look_for in grades: # If it's in the list, get and show the index. print(str(look_for) + " is at index " + str(grades.index(look_for))) else: # If not in the list, don't even try for index number. print(str(look_for) + " isn't in the list.") Alphabetizing and sorting Python lists Python offers a sort() method for sorting lists. In its simplest form, it alphabetizes the items in the list (if they’re strings). If the list contains numbers, they’re sorted smallest to largest. For a simple sort like that, just use sort() with empty parentheses: <em>listname</em>.sort() Replace listname with the name of your list. The following image shows an example using a list of strings and a list of numbers. In the example, a new list was created for each of them simply by assigning each sorted list to a new list name. Then the code prints the contents of each sorted list. If your list contains strings with a mixture of uppercase and lowercase letters, and if the results of the sort don't look right, try replacing .sort() with .sort(key=lambda s:s.lower()) and then running the code again. Dates are a little trickier because you can’t just type them in as strings, like "12/31/2020". They have to be the date data type to sort correctly. This means using the datetime module and the date() method to define each date. You can add the dates to the list as you would any other list. For example, in the following line, the code creates a list of four dates, and the code is perfectly fine. dates = [dt.date(2020,12,31), dt.date(2019,1,31), dt.date(2018,2,28), dt.date(2020,1,1)] The computer certainly won't mind if you create the list this way. But if you want to make the code more readable to yourself or other developers, you may want to create and append each date, one at a time, so just so it’s a little easier to see what’s going on and so you don’t have to deal with so many commas in one line of code. The image below shows an example where an empty list named datelist was created: datelist = [] Then one date at a time was appended to the list using the dt.date(<em>year</em>,<em>month</em>,<em>day</em>) syntax. After the list is created, the code uses datelist.sort() to sort them into chronological order (earliest to latest). You don’t need to use print(datelist) in that code because that method displays the dates with the data type information included, like this: [datetime.date(2018, 2, 28), datetime.date(2019, 1, 31), datetime.date (2020, 1, 1), datetime.date(2020, 12, 31)] Not the easiest list to read. So, rather than print the whole list with one print() statement, you can loop through each date in the list, and printed each one formatted with the f-string %m/%d/%Y. This displays each date on its own line in mm/dd/yyyy format, as you can see at the bottom of the image above. If you want to sort items in reverse order, put reverse=True inside the sort() parentheses (and don't forget to make the first letter uppercase). The image below shows examples of sorting all three lists in descending (reverse) order using reverse=True. Reversing a Python list You can also reverse the order of items in a list using the .reverse method. This is not the same as sorting in reverse, because when you sort in reverse, you still actually sort: Z–A for strings, largest to smallest for numbers, latest to earliest for dates. When you reverse a list, you simply reverse the items in the list, no matter their order, without trying to sort them in any way. The following code shows an example in which you reverse the order of the names in the list and then print the list. The output shows the list items reversed from their original order: # Create a list of strings. names = ["Zara", "Lupe", "Hong", "Alberto", "Jake"] # Reverse the list names.reverse() # Print the list print(names) ['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara'] Copying a Python list If you ever need to work with a copy of a list, use the .copy() method so as not to alter the original list,. For example, the following code is similar to the preceding code, except that instead of reversing the order of the original list, you make a copy of the list and reverse that one. Printing the contents of each list shows how the first list is still in the original order whereas the second one is reversed: # Create a list of strings. names = ["Zara", "Lupe", "Hong", "Alberto", "Jake"] # Make a copy of the list backward_names = names.copy() # Reverse the copy backward_names.reverse() # Print the list print(names) print(backward_names) ['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake'] ['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara'] For future references, the following table summarizes the methods you've learned about. Methods for Working with Lists Method What it Does append() Adds an item to the end of the list. clear() Removes all items from the list, leaving it empty. copy() Makes a copy of a list. count() Counts how many times an element appears in a list. extend() Appends the items from one list to the end of another list. index() Returns the index number (position) of an element within a list. insert() Inserts an item into the list at a specific position. pop() Removes an element from the list, and provides a copy of that item that you can store in a variable. remove() Removes one item from the list. reverse() Reverses the order of items in the list. sort() Sorts the list in ascending order. Put reverse=True inside the parentheses to sort in descending order.

View Article
Generative AI Envision the World as a Graph with Bayes' Theorem

Article / Updated 10-28-2024

Bayes’ theorem can help you deduce how likely something is to happen in a certain context, based on the general probabilities of the fact itself and the evidence you examine, and combined with the probability of the evidence given the fact. Seldom will a single piece of evidence diminish doubts and provide enough certainty in a prediction to ensure that it will happen. As a true detective, to reach certainty, you have to collect more evidence and make the individual pieces work together in your investigation. Noticing that a person has long hair isn’t enough to determine whether person is female or a male. Adding data about height and weight could help increase confidence. The Naïve Bayes algorithm helps you arrange all the evidence you gather and reach a more solid prediction with a higher likelihood of being correct. Gathered evidence considered singularly couldn’t save you from the risk of predicting incorrectly, but all evidence summed together can reach a more definitive resolution. The following example shows how things work in a Naïve Bayes classification. This is an old, renowned problem, but it represents the kind of capability that you can expect from an AI. The dataset is from the paper “Induction of Decision Trees,” by John Ross Quinlan. Quinlan is a computer scientist who contributed to the development of another machine learning algorithm, decision trees, in a fundamental way, but his example works well with any kind of learning algorithm. The problem requires that the AI guess the best conditions to play tennis given the weather conditions. The set of features described by Quinlan is as follows: Outlook: Sunny, overcast, or rainy Temperature: Cool, mild, or hot Humidity: High or normal Windy: True or false The following table contains the database entries used for the example: Outlook Temperature Humidity Windy PlayTennis Sunny Hot High False No Sunny Hot High True No Overcast Hot High False Yes Rainy Mild High False Yes Rainy Cool Normal False Yes Rainy Cool Normal True No Overcast Cool Normal True Yes Sunny Mild High False No Sunny Cool Normal False Yes Rainy Mild Normal False Yes Sunny Mild Normal True Yes Overcast Mild High True Yes Overcast Hot Normal False Yes Rainy Mild High True No The option of playing tennis depends on the four arguments shown here. The result of this AI learning example is a decision as to whether to play tennis, given the weather conditions (the evidence). Using just the outlook (sunny, overcast, or rainy) won’t be enough, because the temperature and humidity could be too high or the wind might be strong. These arguments represent real conditions that have multiple causes, or causes that are interconnected. The Naïve Bayes algorithm is skilled at guessing correctly when multiple causes exist. The algorithm computes a score, based on the probability of making a particular decision and multiplied by the probabilities of the evidence connected to that decision. For instance, to determine whether to play tennis when the outlook is sunny but the wind is strong, the algorithm computes the score for a positive answer by multiplying the general probability of playing (9 played games out of 14 occurrences) by the probability of the day’s being sunny (2 out of 9 played games) and of having windy conditions when playing tennis (3 out of 9 played games). The same rules apply for the negative case (which has different probabilities for not playing given certain conditions): likelihood of playing: 9/14 * 2/9 * 3/9 = 0.05 likelihood of not playing: 5/14 * 3/5 * 3/5 = 0.13 Because the score for the likelihood is higher, the algorithm decides that it’s safer not to play under such conditions. It computes such likelihood by summing the two scores and dividing both scores by their sum: probability of playing : 0.05 / (0.05 + 0.13) = 0.278 probability of not playing : 0.13 / (0.05 + 0.13) = 0.722 You can further extend Naïve Bayes to represent relationships that are more complex than a series of factors that hint at the likelihood of an outcome using a Bayesian network, which consists of graphs showing how events affect each other. Bayesian graphs have nodes that represent the events and arcs showing which events affect others, accompanied by a table of conditional probabilities that show how the relationship works in terms of probability. The figure shows a famous example of a Bayesian network taken from a 1988 academic paper, “Local computations with probabilities on graphical structures and their application to expert systems,” by Lauritzen, Steffen L. and David J. Spiegelhalter, published by the Journal of the Royal Statistical Society. The depicted network is called Asia. It shows possible patient conditions and what causes what. For instance, if a patient has dyspnea, it could be an effect of tuberculosis, lung cancer, or bronchitis. Knowing whether the patient smokes, has been to Asia, or has anomalous x-ray results (thus giving certainty to certain pieces of evidence, a priori in Bayesian language) helps infer the real (posterior) probabilities of having any of the pathologies in the graph. Bayesian networks, though intuitive, have complex math behind them, and they’re more powerful than a simple Naïve Bayes algorithm because they mimic the world as a sequence of causes and effects based on probability. Bayesian networks are so effective that you can use them to represent any situation. They have varied applications, such as medical diagnoses, the fusing of uncertain data arriving from multiple sensors, economic modeling, and the monitoring of complex systems such as a car. For instance, because driving in highway traffic may involve complex situations with many vehicles, the Analysis of MassIve Data STreams (AMIDST) consortium, in collaboration with the automaker Daimler, devised a Bayesian network that can recognize maneuvers by other vehicles and increase driving safety.

View Article
YouTube How to Download YouTube Videos

Article / Updated 10-28-2024

YouTube is a video-sharing website where users post all kinds of media. YouTube is so popular that it has one billion unique visits every single month. From how-tos to educational cartoons, YouTube has a large selection of videos from every genre. You’ve likely watched videos on YouTube and seen something that you might want to watch when you don’t have access to the internet. Need a cartoon for your child who watch while on an airplane? Or, maybe an instructional video to review while actually doing the task later? Downloading YouTube videos is quite simple. How to download YouTube videos with Keepvid You can use keepvid.com to download YouTube videos. Follow these steps to use Keepvid: Go to YouTube and find the video you’d like to download. Click the Share button underneath the video on YouTube to copy the link. Open a new window and navigate to keepvid.com. Paste the link into the download text box. Click download and save the video.All done! Keepvid can also download videos from other websites, including videos posted to social media. Before you begin downloading videos from YouTube, you need to understand the legal issues that accompany your use of those videos. YouTube content is copyrighted. That means that you absolutely cannot download it for anything other than personal use. Also, Google (the owner of YouTube) includes terms of service for users. These terms specifically state: “You shall not download any Content unless you see a 'download' or similar link displayed by YouTube on the Service for that Content” (Section 5 – B). The following is provided for informational purposes only. There are several methods for downloading YouTube videos. The instructions above discuss one popular way to complete the task, but other options exist. There are numerous software suites available to download these videos. If you prefer this method, you can easily find choices by searching the internet for “YouTube downloading software.” The directions you find here discuss the use of websites that are specifically created to download YouTube videos.

View Article
Java The Atoms: Java’s Primitive Types

Article / Updated 10-28-2024

The words int and double are examples of primitive types (also known as simple types) in Java. The Java language has exactly eight primitive types. As a newcomer to Java, you can pretty much ignore all but four of these types. (As programming languages go, Java is nice and compact that way.) The types that you shouldn’t ignore are int, double, char, and boolean. The char type Several decades ago, people thought computers existed only for doing big number-crunching calculations. Nowadays, nobody thinks that way. So, if you haven’t been in a cryogenic freezing chamber for the past 20 years, you know that computers store letters, punctuation symbols, and other characters. The Java type that’s used to store characters is called char. The code below has a simple program that uses the char type. This image shows the output of the program in the code below. public class CharDemo { public static void main(String args[]) { char myLittleChar = 'b'; char myBigChar = Character.toUpperCase(myLittleChar); System.out.println(myBigChar); } } In this code, the first initialization stores the letter b in the variable myLittleChar. In the initialization, notice how b is surrounded by single quote marks. In Java, every char literally starts and ends with a single quote mark. In a Java program, single quote marks surround the letter in a char literal. Character.toUpperCase. The Character.toUpperCase method does just what its name suggests — the method produces the uppercase equivalent of the letter b. This uppercase equivalent (the letter B) is assigned to the myBigChar variable, and the B that’s in myBigChar prints onscreen. If you’re tempted to write the following statement, char myLittleChars = 'barry'; //Don't do this please resist the temptation. You can’t store more than one letter at a time in a char variable, and you can’t put more than one letter between a pair of single quotes. If you’re trying to store words or sentences (not just single letters), you need to use something called a String. If you’re used to writing programs in other languages, you may be aware of something called ASCII character encoding. Most languages use ASCII; Java uses Unicode. In the old ASCII representation, each character takes up only 8 bits, but in Unicode, each character takes up 8, 16, or 32 bits. Whereas ASCII stores the letters of the Roman (English) alphabet, Unicode has room for characters from most of the world’s commonly spoken languages. The only problem is that some of the Java API methods are geared specially toward 16-bit Unicode. Occasionally, this bites you in the back (or it bytes you in the back, as the case may be). If you’re using a method to write Hello on the screen and H e l l o shows up instead, check the method’s documentation for mention of Unicode characters. It’s worth noticing that the two methods, Character.toUpperCase and System.out.println, are used quite differently in the code above. The method Character.toUpperCase is called as part of an initialization or an assignment statement, but the method System.out.println is called on its own. The boolean type A variable of type boolean stores one of two values: true or false. The code below demonstrates the use of a boolean variable. public class ElevatorFitter2 { public static void main(String args[]) { System.out.println("True or False?"); System.out.println("You can fit all ten of the"); System.out.println("Brickenchicker dectuplets"); System.out.println("on the elevator:"); System.out.println(); int weightOfAPerson = 150; int elevatorWeightLimit = 1400; int numberOfPeople = elevatorWeightLimit / weightOfAPerson; <strong> boolean allTenOkay = numberOfPeople >= 10;</strong> System.out.println(allTenOkay); } } In this code, the allTenOkay variable is of type boolean. To find a value for the allTenOkay variable, the program checks to see whether numberOfPeople is greater than or equal to ten. (The symbols >= stand for greater than or equal to.) At this point, it pays to be fussy about terminology. Any part of a Java program that has a value is an expression. If you write weightOfAPerson = 150; then 150 ,is an expression (an expression whose value is the quantity 150). If you write numberOfEggs = 2 + 2; then 2 + 2 is an expression (because 2 + 2 has the value 4). If you write int numberOfPeople = elevatorWeightLimit / weightOfAPerson; then elevatorWeightLimit / weightOfAPerson is an expression. (The value of the expression elevatorWeightLimit / weightOfAPerson depends on whatever values the variables elevatorWeightLimit and weightOfAPerson have when the code containing the expression is executed.) Any part of a Java program that has a value is an expression. In the second set of code, numberOfPeople >= 10 is an expression. The expression’s value depends on the value stored in the numberOfPeople variable. But, as you know from seeing the strawberry shortcake at the Brickenchicker family’s catered lunch, the value of numberOfPeople isn’t greater than or equal to ten. As a result, the value of numberOfPeople >= 10 is false. So, in the statement in the second set of code, in which allTenOkay is assigned a value, the allTenOkay variable is assigned a false value. In the second set of code, System.out.println() is called with nothing inside the parentheses. When you do this, Java adds a line break to the program’s output. In the second set of code, System.out.println() tells the program to display a blank line.

View Article
page 1
page 2
page 3
page 4
page 5
page 6
page 7
page 8
page 9
page 10
page 11
page 12
page 13
page 14
page 15
page 16
page 17
page 18
page 19
page 20
page 21
page 22
page 23
page 24
page 25
page 26
page 27
page 28
page 29
page 30
page 31
page 32
page 33
page 34
page 35
page 36
page 37
page 38
page 39
page 40
page 41
page 42
page 43
page 44
page 45
page 46
page 47
page 48
page 49
page 50
page 51
page 52
page 53
page 54
page 55
page 56
page 57
page 58
page 59
page 60
page 61
page 62
page 63
page 64
page 65
page 66
page 67
page 68
page 69
page 70
page 71
page 72
page 73
page 74
page 75
page 76
page 77
page 78
page 79
page 80
page 81
page 82
page 83
page 84
page 85
page 86
page 87
page 88
page 89
page 90
page 91
page 92
page 93
page 94
page 95
page 96
page 97
page 98
page 99
page 100
page 101
page 102
page 103
page 104
page 105
page 106
page 107
page 108
page 109
page 110
page 111
page 112
page 113
page 114
page 115
page 116
page 117
page 118
page 119
page 120
page 121
page 122
page 123
page 124
page 125
page 126
page 127
page 128
page 129
page 130
page 131
page 132
page 133
page 134
page 135
page 136
page 137
page 138
page 139
page 140
page 141
page 142
page 143
page 144
page 145
page 146
page 147
page 148
page 149
page 150
page 151
page 152
page 153
page 154
page 155
page 156
page 157
page 158
page 159
page 160
page 161
page 162
page 163
page 164
page 165
page 166
page 167
page 168
page 169
page 170
page 171
page 172
page 173
page 174
page 175
page 176
page 177
page 178
page 179
page 180
page 181
page 182
page 183
page 184
page 185
page 186
page 187
page 188
page 189
page 190
page 191
page 192
page 193
page 194
page 195
page 196
page 197
page 198
page 199
page 200
page 201
page 202
page 203
page 204
page 205
page 206
page 207
page 208
page 209
page 210
page 211
page 212
page 213
page 214
page 215
page 216
page 217
page 218
page 219
page 220
page 221
page 222
page 223
page 224
page 225
page 226
page 227
page 228
page 229
page 230
page 231
page 232
page 233
page 234
page 235
page 236
page 237
page 238
page 239
page 240
page 241
page 242
page 243
page 244
page 245
page 246
page 247
page 248
page 249
page 250
page 251
page 252
page 253
page 254
page 255
page 256
page 257
page 258
page 259
page 260
page 261
page 262
page 263
page 264
page 265
page 266
page 267
page 268
page 269
page 270
page 271
page 272
page 273
page 274
page 275
page 276
page 277
page 278
page 279
page 280
page 281
page 282
page 283
page 284
page 285
page 286
page 287
page 288
page 289
page 290
page 291
page 292
page 293
page 294
page 295
page 296
page 297
page 298
page 299
page 300
page 301
page 302
page 303
page 304
page 305
page 306
page 307
page 308
page 309
page 310
page 311
page 312
page 313
page 314
page 315
page 316
page 317
page 318
page 319
page 320
page 321
page 322
page 323
page 324
page 325
page 326
page 327
page 328
page 329
page 330
page 331
page 332
page 333
page 334
page 335
page 336
page 337
page 338
page 339
page 340
page 341
page 342
page 343
page 344
page 345
page 346
page 347
page 348
page 349
page 350
page 351
page 352
page 353
page 354
page 355
page 356
page 357
page 358
page 359
page 360
page 361
page 362
page 363
page 364
page 365
page 366
page 367
page 368
page 369
page 370
page 371
page 372
page 373
page 374
page 375
page 376
page 377
page 378
page 379
page 380
page 381
page 382
page 383
page 384
page 385
page 386
page 387
page 388
page 389
page 390
page 391
page 392
page 393
page 394
page 395
page 396
page 397
page 398
page 399
page 400
page 401
page 402
page 403
page 404
page 405
page 406
page 407
page 408
page 409
page 410
page 411
page 412
page 413
page 414
page 415
page 416
page 417
page 418
page 419
page 420
page 421
page 422
page 423
page 424
page 425
page 426
page 427
page 428
page 429
page 430
page 431
page 432
page 433
page 434
page 435
page 436
page 437
page 438
page 439
page 440
page 441
page 442
page 443
page 444
page 445
page 446
page 447
page 448
page 449
page 450
page 451
page 452
page 453
page 454
page 455
page 456
page 457
page 458
page 459
page 460
page 461
page 462
page 463
page 464
page 465
page 466
page 467
page 468
page 469
page 470
page 471
page 472
page 473
page 474
page 475
page 476
page 477
page 478
page 479
page 480
page 481
page 482
page 483
page 484
page 485
page 486
page 487
page 488
page 489
page 490
page 491
page 492
page 493
page 494
page 495
page 496
page 497
page 498
page 499
page 500
page 501
page 502
page 503
page 504
page 505
page 506
page 507
page 508
page 509
page 510
page 511
page 512
page 513
page 514
page 515
page 516
page 517
page 518
page 519
page 520
page 521
page 522
page 523
page 524
page 525
page 526
page 527
page 528
page 529
page 530
page 531
page 532
page 533
page 534
page 535
page 536
page 537
page 538
page 539
page 540
page 541
page 542
page 543
page 544
page 545
page 546
page 547
page 548
page 549
page 550
page 551
page 552
page 553
page 554
page 555
page 556
page 557
page 558
page 559
page 560
page 561
page 562
page 563
page 564
page 565
page 566
page 567
page 568
page 569
page 570
page 571
page 572
page 573
page 574
page 575
page 576
page 577
page 578
page 579
page 580
page 581
page 582
page 583
page 584
page 585
page 586
page 587
page 588
page 589
page 590
page 591
page 592
page 593
page 594
page 595
page 596
page 597
page 598
page 599
page 600
page 601
page 602
page 603
page 604
page 605
page 606
page 607
page 608
page 609
page 610
page 611
page 612
page 613
page 614
page 615
page 616
page 617
page 618
page 619
page 620
page 621
page 622
page 623
page 624
page 625
page 626
page 627
page 628
page 629
page 630
page 631
page 632
page 633
page 634
page 635
page 636
page 637
page 638
page 639
page 640
page 641
page 642
page 643
page 644
page 645
page 646
page 647
page 648
page 649
page 650
page 651
page 652
page 653
page 654
page 655
page 656
page 657
page 658
page 659
page 660
page 661
page 662
page 663
page 664
page 665
page 666
page 667
page 668
page 669
page 670
page 671
page 672
page 673
page 674
page 675
page 676
page 677
page 678
page 679
page 680
page 681
page 682
page 683
page 684
page 685
page 686
page 687
page 688
page 689
page 690
page 691
page 692
page 693
page 694
page 695
page 696
page 697
page 698
page 699
page 700
page 701
page 702
page 703
page 704
page 705
page 706
page 707
page 708
page 709
page 710
page 711
page 712
page 713
page 714
page 715
page 716
page 717
page 718
page 719
page 720
page 721
page 722
page 723
page 724
page 725
page 726
page 727
page 728
page 729
page 730
page 731
page 732
page 733
page 734
page 735
page 736
page 737
page 738
page 739
page 740
page 741
page 742
page 743
page 744
page 745
page 746
page 747
page 748
page 749
page 750
page 751
page 752
page 753
page 754
page 755
page 756
page 757
page 758
page 759
page 760
page 761
page 762
page 763
page 764
page 765
page 766
page 767
page 768
page 769
page 770
page 771
page 772
page 773
page 774
page 775
page 776
page 777
page 778
page 779
page 780
page 781
page 782
page 783
page 784
page 785
page 786
page 787
page 788
page 789
page 790
page 791
page 792
page 793
page 794
page 795
page 796
page 797
page 798
page 799
page 800
page 801
page 802
page 803
page 804
page 805
page 806
page 807
page 808
page 809
page 810
page 811
page 812
page 813
page 814
page 815
page 816
page 817
page 818
page 819
page 820
page 821
page 822
page 823
page 824
page 825
page 826
page 827
page 828
page 829
page 830
page 831
page 832
page 833
page 834
page 835
page 836
page 837
page 838
page 839
page 840
page 841
page 842
page 843
page 844
page 845
page 846
page 847
page 848
page 849
page 850
page 851
page 852
page 853
page 854
page 855
page 856
page 857
page 858
page 859
page 860
page 861
page 862
page 863
page 864
page 865
page 866
page 867
page 868
page 869
page 870
page 871
page 872
page 873
page 874
page 875
page 876
page 877
page 878
page 879
page 880
page 881
page 882
page 883
page 884
page 885
page 886
page 887
page 888
page 889
page 890
page 891
page 892
page 893
page 894
page 895
page 896
page 897
page 898
page 899
page 900
page 901
page 902
page 903
page 904
page 905
page 906
page 907
page 908
page 909
page 910
page 911
page 912
page 913
page 914
page 915
page 916
page 917
page 918
page 919
page 920
page 921
page 922
page 923
page 924
page 925
page 926
page 927
page 928
page 929
page 930
page 931
page 932
page 933
page 934
page 935
page 936
page 937
page 938
page 939
page 940
page 941
page 942
page 943

Quick Links

  • About For Dummies
  • Contact Us
  • Activate a Book Pin

Connect

About Dummies

Dummies has always stood for taking on complex concepts and making them easy to understand. Dummies helps everyone be more knowledgeable and confident in applying what they know. Whether it's to pass that big test, qualify for that big promotion or even master that cooking technique; people who rely on dummies, rely on it to learn the critical skills and relevant information necessary for success.

Copyright @ 2000-2024 by John Wiley & Sons, Inc., or related companies. All rights reserved, including rights for text and data mining and training of artificial technologies or similar technologies.

Terms of Use
Privacy Policy
Cookies Settings
Do Not Sell My Personal Info - CA Only