{"appState":{"pageLoadApiCallsStatus":true},"categoryState":{"relatedCategories":{"headers":{"timestamp":"2023-02-02T08:01:03+00:00"},"categoryId":33610,"data":{"title":"General Programming & Web Design","slug":"general-programming-web-design","image":{"src":null,"width":0,"height":0},"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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"parentCategory":{"categoryId":33592,"title":"Programming & Web Design","slug":"programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"}},"childCategories":[],"description":"How do you customize a PHP server? What is an integrated development environment? Find these and other scattered coding details here.","relatedArticles":{"self":"https://dummies-api.dummies.com/v2/articles?category=33610&offset=0&size=5"},"hasArticle":true,"hasBook":true,"articleCount":206,"bookCount":35},"_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"relatedCategoriesLoadedStatus":"success"},"listState":{"list":{"count":10,"total":206,"items":[{"headers":{"creationTime":"2019-11-11T12:15:56+00:00","modifiedTime":"2022-07-29T14:30:57+00:00","timestamp":"2022-09-14T18:19:49+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"11 Ways DevOps Benefits Your Organization","strippedTitle":"11 ways devops benefits your organization","slug":"why-devops-matters-11-ways-devops-benefits-your-organization","canonicalUrl":"","seo":{"metaDescription":"DevOps offers many benefits for your organization. Discover all the ways a DevOps approach can help your business, from Dummies.com.","noIndex":0,"noFollow":0},"content":"When done correctly, DevOps offers significant advantages for your organization. This article presents the key points to know about how <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/what-is-devops-265584/\" target=\"_blank\" rel=\"noopener\">DevOps</a> benefits your organization. Use it as a reference to help you persuade your colleagues or to reinforce your understanding of why you chose to go the DevOps route when the road gets bumpy.\r\n\r\n[caption id=\"attachment_265627\" align=\"aligncenter\" width=\"556\"]<img class=\"wp-image-265627 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops-benefits.jpg\" alt=\"DevOps benefits\" width=\"556\" height=\"333\" /> ©Shutterstock/Ashalatha[/caption]\r\n<h2 id=\"tab1\" >DevOps helps you accept constant change</h2>\r\nThe tech landscape is an ever-changing environment. Some languages evolve and new ones are created. Frameworks come and go. Infrastructure tooling changes to meet the ever-growing demands for hosting applications more efficiently and delivering services more quickly. Tools continue to abstract low-level computing to reduce engineering overhead.\r\n\r\nThe only constant is change. Your ability to adapt to that change will determine your success as an individual contributor, manager, or executive. Regardless of the role you currently fill at your company or hope to eventually play, it is vital to adapt quickly and remove as much friction from growth as possible. DevOps enables you to adapt and grow by improving communication and collaboration.\r\n<h2 id=\"tab2\" >DevOps embraces the cloud</h2>\r\nThe cloud isn’t the future; it’s now. Although you may still be transitioning or not yet ready to move, realize that the cloud is the way forward for all but a few companies. It gives you more flexibility than traditional infrastructure, <a href=\"https://www.dummies.com/business/operations-management/how-to-ensure-quality-in-your-operations-management/\" target=\"_blank\" rel=\"noopener\">lowers the stress of operations</a>, and (usually) costs significantly less because of a pay-as-you-go pricing structure.\r\n\r\nPublic, private, and hybrid clouds give you endless possibilities to run your business better. The ability to spin up (launch) resources within minutes is something most companies have never experienced prior to the cloud.\r\n\r\nThis agility provided by the cloud goes hand in hand with DevOps. Omri Gazitt from Puppet, a company focused on automation and configuration management, put it best: “As organizations move to the cloud, they are revisiting their core assumptions about how they deliver software.”\r\n\r\nWith the cloud, APIs connect every service, platform, and infrastructure tool so that you can manage your resources and application seamlessly. As you migrate to the cloud, you can reevaluate past architecture decisions and slowly transition your application and system to be cloud-native, or designed with the cloud in mind.\r\n<h2 id=\"tab3\" >DevOps helps you hire the best</h2>\r\nBecause of increased demand, great engineers are scarce. There simply aren’t enough engineers to fill all the jobs currently open or to meet market demand over the next decade and beyond. Although finding engineers can be difficult, it’s not impossible, especially if you focus on discovering engineers who embrace curiosity and aren’t afraid to fail. If you implement DevOps in your overall engineering culture, you can level up engineers and train them in the methodology and technology that supports continuous improvement.\r\n\r\nIt’s difficult to measure potential in an interview. Usually, talent whispers. The most talented engineers typically aren’t gregarious or braggarts; they let their work speak for them. DevOps enables you to listen more closely to the personal and professional interests of the engineers you interview.\r\n\r\nTry choosing candidates based on their level of curiosity, communication skills, and enthusiasm. Those qualities can see your team through the troughs of fear, uncertainty, and doubt. They can carry the team through hard decisions, made within constraints, in their attempt to solve difficult problems.\r\n\r\nYou can teach someone a skill, but teaching someone how to learn is an entirely different matter. The learning culture you create in your DevOps organization enables you to prioritize a growth mindset over technical prowess. In DevOps, hiring for the team is critical. Every individual is a piece of a whole, and the team must have balance holistically. Achieving this balance means that sometimes you don’t hire the “best” engineer, you hire the best engineer for <em>the team.</em>\r\n\r\nWhen you hire for the DevOps team you can, like draft horses yoked together, pull more weight than you could individually. With DevOps, you can multiply the individual components of your team and, as a whole, create a powerhouse of a team.\r\n<h2 id=\"tab4\" >DevOps keeps you competitive</h2>\r\nThe yearly State of DevOps Report released by DevOps Research and Assessment (DORA) makes it clear: Companies across the world are using DevOps to adjust their engineering practices and are reaping the benefits. They see increases in engineering production and reductions in cost. With DevOps, these companies are shifting from clunky processes and systems to a streamlined way of developing software focused on the end user.\r\n\r\nDevOps enables companies to create reliable infrastructure and utilize that infrastructure to release software more quickly and more reliably. The bottom line is this: High-performing organizations use DevOps, and they’re crushing their competition by increasing their deployment frequency and significantly decreasing their failures that occur because of changes in the system.\r\n\r\nIf you want to compete, you must adopt the solid DevOps methodologies. Maybe not all of them, and definitely not all at one time — but the time to wait and see whether DevOps is worthwhile has passed.\r\n<h2 id=\"tab5\" >DevOps helps solve human problems</h2>\r\nHumans have reached a point in our evolution at which technology is evolving faster than our brains. Thus the greatest challenges humans face are due to human limitations — not the limitations of software or infrastructure. Unlike other software development methodologies, DevOps focuses holistically on your sociotechnical system.\r\n\r\nEmbracing DevOps requires a shift in culture and mindset. But if you achieve a DevOps culture and mindset, you and your organization reap almost limitless benefits. When engineers are empowered to explore, free of the pressure and fear of failure, amazing things happen.\r\n\r\nEngineers discover new ways to solve problems. They approach <a href=\"https://www.dummies.com/business/operations-management/top-10-devops-pitfalls-why-your-software-projects-fail/\" target=\"_blank\" rel=\"noopener\">projects and problems</a> with a healthy mindset and work together more fluidly, without needless and negative competition.\r\n<h2 id=\"tab6\" >DevOps challenges employees</h2>\r\n<a href=\"https://www.dummies.com/business/operations-management/devops-for-dummies-cheat-sheet/\" target=\"_blank\" rel=\"noopener\">DevOps</a> accelerates the growth of individual engineers as well as that of the engineering team as a whole. Engineers are smart people. They’re also naturally curious. A great engineer who embraces a growth mindset needs new challenges after mastering a particular technology, tool, or methodology or they often feel stagnant.\r\n\r\nThey need to feel as if their brain and skill sets are being stretched — not to the point of being overwhelmed or stressed, but enough to feel that they’re growing. That is the tension described by Dan Pink in <em>Drive</em>. If you can strike that balance, your engineers will thrive — as individuals and as a team.\r\n\r\nThe methodology of DevOps promotes T-shaped skills, which means that engineers specialize in one area with deep knowledge and have a broad understanding of many other areas. This approach allows engineers to explore other areas of interest.\r\n\r\nPerhaps a Python engineer has an interest in cloud infrastructure, for example. No other engineering methodology permits and encourages engineers to explore as much as DevOps does, and it’s a huge contributor to hiring and retaining talent.\r\n<h2 id=\"tab7\" >DevOps bridges gaps</h2>\r\nOne of challenges of modern technology companies is this gap between the needs of the business and the needs of engineering. In a traditional company, with traditional management strategies, a natural friction exists between engineering and departments like marketing, sales, and business development. This friction stems from a lack of alignment. Each department is measured by different indicators of success.\r\n\r\nDevOps seeks to unify each department of a business and create a shared understanding and respect. That respect for each other’s jobs and contributions is what allows every person in the company to thrive. It removes the friction and improves acceleration.\r\n\r\nThink about a team of sled dogs. If each dog is moving in separate directions, the sled goes nowhere. Now imagine the dogs working together, focused on moving forward — together. When you lack friction internally, the only challenges you face are external, and external challenges are almost always more manageable than internal strife.\r\n<h2 id=\"tab8\" >DevOps lets you fail well</h2>\r\nFailure is inevitable. It’s simply unavoidable. Predicting every way in which your system can fail is impossible because of all the unknowns. (And it can fail spectacularly, can’t it?) Instead of avoiding failure at all costs and feeling crushed when failure does occur, you can prepare for it. DevOps prepares organizations to respond to failure, but not in a panicky, stress-induced way.\r\n\r\nIncidents will always involve some level of stress. At some point along your command structure, an executive is likely to scream at the money being lost during a service outage. But you can reduce the stress your team experiences by using failure as a way of learning and adapting your system to become more resilient.\r\n<p class=\"article-tips remember\">Each incident is an opportunity to improve and grow, as individuals and as a team.</p>\r\nDevOps embraces <a href=\"https://www.kaizen.com/what-is-kaizen\" target=\"_blank\" rel=\"noopener\">kaizen</a>, the art of continuous improvement. When your team experiences flow in their work, they can make tiny choices every day that contribute to long-term growth and, ultimately, a better product.\r\n<h2 id=\"tab9\" >DevOps lets you continuously improve</h2>\r\nContinuous improvement is a key ingredient in DevOps. Use the visualization of a never-ending cycle when applying DevOps to your organization. The cycle shouldn’t invoke fears through thoughts of Sisyphus, pushing a boulder up a hill for all eternity. Instead, think of this cycle as movement, like a snowball rolling downhill, gathering momentum and mass.\r\n\r\nAs you adopt DevOps and integrate more and more of its core tenets into your everyday workflow, you’ll witness this acceleration first-hand. The cycle of continuous improvement should always center around the customer. You must continuously think about the end user and integrate feedback into your software delivery life cycle.\r\n\r\nFundamental to this cycle is CI/CD. Adopting CI/CD isn’t an all-or-nothing requirement of DevOps; instead, it’s a slow process of implementation. You should focus on mastering continuous integration first. Encourage engineers to share code freely and merge code frequently. This approach prevents isolation and silos from becoming blockers in your engineering organization.\r\n\r\nAfter your organization masters continuous integration, move on to continuous delivery, the practice of automating software delivery. This step requires automation because code will move through multiple checks to ensure quality. After all your code is secure and accessible in a source code repository, you can begin to implement small changes continuously. Your goal is to remove manual barriers and improve your team’s ability to discover and fix bugs without customer impact.\r\n<h2 id=\"tab10\" >DevOps automates toil</h2>\r\nAcceleration and increased efficacy are at the core of the DevOps methodology. By automating labor-intensive manual processes, DevOps frees engineers to work on projects that make the software and systems more reliable and easily maintained — without the chaos of unexpected service interruptions.\r\n\r\nSite reliability engineering (SRE) deals with toil, which is the work required to keep services up and running but is manual and repetitive. Toil can be automated and lacks long-term value. Perhaps most important of all, toil scales linearly, which limits growth. Note that toil doesn’t refer to the overhead of administrative necessities such as meetings and planning. This type of work, if implemented with a DevOps mentality, is beneficial to the long-term acceleration of your team.\r\n\r\nOne of the core tenets of tooling your DevOps practice is automation. You can automate your deployment pipeline to include a verbose test suite as well as other gates through which code must pass to be released. In many ways, SRE is the next logical step in the evolution of DevOps and should be your next step after you and your organization master the core concepts of DevOps and implement the practice in your team.\r\n<h2 id=\"tab11\" >DevOps accelerates delivery</h2>\r\nThe software delivery life cycle has evolved from the slow and linear Waterfall process to an agile and continuous loop of DevOps. You no longer think up a product, develop it fully, and then release it to customers, hoping for its success.\r\n\r\nInstead, you create a feedback loop around the customer and continuously deliver iterative changes to your products. This connected circuit enables you to continuously improve your features and ensure that the customer is satisfied with what you’re delivering.\r\n\r\nWhen you connect all the dots and fully adopt DevOps in your organization, you watch as your team can deliver better software faster. The changes will be small at first, just like the changes you release. But over time, those seemingly insignificant changes add up and create a team that accelerates its delivery of quality software.","description":"When done correctly, DevOps offers significant advantages for your organization. This article presents the key points to know about how <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/what-is-devops-265584/\" target=\"_blank\" rel=\"noopener\">DevOps</a> benefits your organization. Use it as a reference to help you persuade your colleagues or to reinforce your understanding of why you chose to go the DevOps route when the road gets bumpy.\r\n\r\n[caption id=\"attachment_265627\" align=\"aligncenter\" width=\"556\"]<img class=\"wp-image-265627 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops-benefits.jpg\" alt=\"DevOps benefits\" width=\"556\" height=\"333\" /> ©Shutterstock/Ashalatha[/caption]\r\n<h2 id=\"tab1\" >DevOps helps you accept constant change</h2>\r\nThe tech landscape is an ever-changing environment. Some languages evolve and new ones are created. Frameworks come and go. Infrastructure tooling changes to meet the ever-growing demands for hosting applications more efficiently and delivering services more quickly. Tools continue to abstract low-level computing to reduce engineering overhead.\r\n\r\nThe only constant is change. Your ability to adapt to that change will determine your success as an individual contributor, manager, or executive. Regardless of the role you currently fill at your company or hope to eventually play, it is vital to adapt quickly and remove as much friction from growth as possible. DevOps enables you to adapt and grow by improving communication and collaboration.\r\n<h2 id=\"tab2\" >DevOps embraces the cloud</h2>\r\nThe cloud isn’t the future; it’s now. Although you may still be transitioning or not yet ready to move, realize that the cloud is the way forward for all but a few companies. It gives you more flexibility than traditional infrastructure, <a href=\"https://www.dummies.com/business/operations-management/how-to-ensure-quality-in-your-operations-management/\" target=\"_blank\" rel=\"noopener\">lowers the stress of operations</a>, and (usually) costs significantly less because of a pay-as-you-go pricing structure.\r\n\r\nPublic, private, and hybrid clouds give you endless possibilities to run your business better. The ability to spin up (launch) resources within minutes is something most companies have never experienced prior to the cloud.\r\n\r\nThis agility provided by the cloud goes hand in hand with DevOps. Omri Gazitt from Puppet, a company focused on automation and configuration management, put it best: “As organizations move to the cloud, they are revisiting their core assumptions about how they deliver software.”\r\n\r\nWith the cloud, APIs connect every service, platform, and infrastructure tool so that you can manage your resources and application seamlessly. As you migrate to the cloud, you can reevaluate past architecture decisions and slowly transition your application and system to be cloud-native, or designed with the cloud in mind.\r\n<h2 id=\"tab3\" >DevOps helps you hire the best</h2>\r\nBecause of increased demand, great engineers are scarce. There simply aren’t enough engineers to fill all the jobs currently open or to meet market demand over the next decade and beyond. Although finding engineers can be difficult, it’s not impossible, especially if you focus on discovering engineers who embrace curiosity and aren’t afraid to fail. If you implement DevOps in your overall engineering culture, you can level up engineers and train them in the methodology and technology that supports continuous improvement.\r\n\r\nIt’s difficult to measure potential in an interview. Usually, talent whispers. The most talented engineers typically aren’t gregarious or braggarts; they let their work speak for them. DevOps enables you to listen more closely to the personal and professional interests of the engineers you interview.\r\n\r\nTry choosing candidates based on their level of curiosity, communication skills, and enthusiasm. Those qualities can see your team through the troughs of fear, uncertainty, and doubt. They can carry the team through hard decisions, made within constraints, in their attempt to solve difficult problems.\r\n\r\nYou can teach someone a skill, but teaching someone how to learn is an entirely different matter. The learning culture you create in your DevOps organization enables you to prioritize a growth mindset over technical prowess. In DevOps, hiring for the team is critical. Every individual is a piece of a whole, and the team must have balance holistically. Achieving this balance means that sometimes you don’t hire the “best” engineer, you hire the best engineer for <em>the team.</em>\r\n\r\nWhen you hire for the DevOps team you can, like draft horses yoked together, pull more weight than you could individually. With DevOps, you can multiply the individual components of your team and, as a whole, create a powerhouse of a team.\r\n<h2 id=\"tab4\" >DevOps keeps you competitive</h2>\r\nThe yearly State of DevOps Report released by DevOps Research and Assessment (DORA) makes it clear: Companies across the world are using DevOps to adjust their engineering practices and are reaping the benefits. They see increases in engineering production and reductions in cost. With DevOps, these companies are shifting from clunky processes and systems to a streamlined way of developing software focused on the end user.\r\n\r\nDevOps enables companies to create reliable infrastructure and utilize that infrastructure to release software more quickly and more reliably. The bottom line is this: High-performing organizations use DevOps, and they’re crushing their competition by increasing their deployment frequency and significantly decreasing their failures that occur because of changes in the system.\r\n\r\nIf you want to compete, you must adopt the solid DevOps methodologies. Maybe not all of them, and definitely not all at one time — but the time to wait and see whether DevOps is worthwhile has passed.\r\n<h2 id=\"tab5\" >DevOps helps solve human problems</h2>\r\nHumans have reached a point in our evolution at which technology is evolving faster than our brains. Thus the greatest challenges humans face are due to human limitations — not the limitations of software or infrastructure. Unlike other software development methodologies, DevOps focuses holistically on your sociotechnical system.\r\n\r\nEmbracing DevOps requires a shift in culture and mindset. But if you achieve a DevOps culture and mindset, you and your organization reap almost limitless benefits. When engineers are empowered to explore, free of the pressure and fear of failure, amazing things happen.\r\n\r\nEngineers discover new ways to solve problems. They approach <a href=\"https://www.dummies.com/business/operations-management/top-10-devops-pitfalls-why-your-software-projects-fail/\" target=\"_blank\" rel=\"noopener\">projects and problems</a> with a healthy mindset and work together more fluidly, without needless and negative competition.\r\n<h2 id=\"tab6\" >DevOps challenges employees</h2>\r\n<a href=\"https://www.dummies.com/business/operations-management/devops-for-dummies-cheat-sheet/\" target=\"_blank\" rel=\"noopener\">DevOps</a> accelerates the growth of individual engineers as well as that of the engineering team as a whole. Engineers are smart people. They’re also naturally curious. A great engineer who embraces a growth mindset needs new challenges after mastering a particular technology, tool, or methodology or they often feel stagnant.\r\n\r\nThey need to feel as if their brain and skill sets are being stretched — not to the point of being overwhelmed or stressed, but enough to feel that they’re growing. That is the tension described by Dan Pink in <em>Drive</em>. If you can strike that balance, your engineers will thrive — as individuals and as a team.\r\n\r\nThe methodology of DevOps promotes T-shaped skills, which means that engineers specialize in one area with deep knowledge and have a broad understanding of many other areas. This approach allows engineers to explore other areas of interest.\r\n\r\nPerhaps a Python engineer has an interest in cloud infrastructure, for example. No other engineering methodology permits and encourages engineers to explore as much as DevOps does, and it’s a huge contributor to hiring and retaining talent.\r\n<h2 id=\"tab7\" >DevOps bridges gaps</h2>\r\nOne of challenges of modern technology companies is this gap between the needs of the business and the needs of engineering. In a traditional company, with traditional management strategies, a natural friction exists between engineering and departments like marketing, sales, and business development. This friction stems from a lack of alignment. Each department is measured by different indicators of success.\r\n\r\nDevOps seeks to unify each department of a business and create a shared understanding and respect. That respect for each other’s jobs and contributions is what allows every person in the company to thrive. It removes the friction and improves acceleration.\r\n\r\nThink about a team of sled dogs. If each dog is moving in separate directions, the sled goes nowhere. Now imagine the dogs working together, focused on moving forward — together. When you lack friction internally, the only challenges you face are external, and external challenges are almost always more manageable than internal strife.\r\n<h2 id=\"tab8\" >DevOps lets you fail well</h2>\r\nFailure is inevitable. It’s simply unavoidable. Predicting every way in which your system can fail is impossible because of all the unknowns. (And it can fail spectacularly, can’t it?) Instead of avoiding failure at all costs and feeling crushed when failure does occur, you can prepare for it. DevOps prepares organizations to respond to failure, but not in a panicky, stress-induced way.\r\n\r\nIncidents will always involve some level of stress. At some point along your command structure, an executive is likely to scream at the money being lost during a service outage. But you can reduce the stress your team experiences by using failure as a way of learning and adapting your system to become more resilient.\r\n<p class=\"article-tips remember\">Each incident is an opportunity to improve and grow, as individuals and as a team.</p>\r\nDevOps embraces <a href=\"https://www.kaizen.com/what-is-kaizen\" target=\"_blank\" rel=\"noopener\">kaizen</a>, the art of continuous improvement. When your team experiences flow in their work, they can make tiny choices every day that contribute to long-term growth and, ultimately, a better product.\r\n<h2 id=\"tab9\" >DevOps lets you continuously improve</h2>\r\nContinuous improvement is a key ingredient in DevOps. Use the visualization of a never-ending cycle when applying DevOps to your organization. The cycle shouldn’t invoke fears through thoughts of Sisyphus, pushing a boulder up a hill for all eternity. Instead, think of this cycle as movement, like a snowball rolling downhill, gathering momentum and mass.\r\n\r\nAs you adopt DevOps and integrate more and more of its core tenets into your everyday workflow, you’ll witness this acceleration first-hand. The cycle of continuous improvement should always center around the customer. You must continuously think about the end user and integrate feedback into your software delivery life cycle.\r\n\r\nFundamental to this cycle is CI/CD. Adopting CI/CD isn’t an all-or-nothing requirement of DevOps; instead, it’s a slow process of implementation. You should focus on mastering continuous integration first. Encourage engineers to share code freely and merge code frequently. This approach prevents isolation and silos from becoming blockers in your engineering organization.\r\n\r\nAfter your organization masters continuous integration, move on to continuous delivery, the practice of automating software delivery. This step requires automation because code will move through multiple checks to ensure quality. After all your code is secure and accessible in a source code repository, you can begin to implement small changes continuously. Your goal is to remove manual barriers and improve your team’s ability to discover and fix bugs without customer impact.\r\n<h2 id=\"tab10\" >DevOps automates toil</h2>\r\nAcceleration and increased efficacy are at the core of the DevOps methodology. By automating labor-intensive manual processes, DevOps frees engineers to work on projects that make the software and systems more reliable and easily maintained — without the chaos of unexpected service interruptions.\r\n\r\nSite reliability engineering (SRE) deals with toil, which is the work required to keep services up and running but is manual and repetitive. Toil can be automated and lacks long-term value. Perhaps most important of all, toil scales linearly, which limits growth. Note that toil doesn’t refer to the overhead of administrative necessities such as meetings and planning. This type of work, if implemented with a DevOps mentality, is beneficial to the long-term acceleration of your team.\r\n\r\nOne of the core tenets of tooling your DevOps practice is automation. You can automate your deployment pipeline to include a verbose test suite as well as other gates through which code must pass to be released. In many ways, SRE is the next logical step in the evolution of DevOps and should be your next step after you and your organization master the core concepts of DevOps and implement the practice in your team.\r\n<h2 id=\"tab11\" >DevOps accelerates delivery</h2>\r\nThe software delivery life cycle has evolved from the slow and linear Waterfall process to an agile and continuous loop of DevOps. You no longer think up a product, develop it fully, and then release it to customers, hoping for its success.\r\n\r\nInstead, you create a feedback loop around the customer and continuously deliver iterative changes to your products. This connected circuit enables you to continuously improve your features and ensure that the customer is satisfied with what you’re delivering.\r\n\r\nWhen you connect all the dots and fully adopt DevOps in your organization, you watch as your team can deliver better software faster. The changes will be small at first, just like the changes you release. But over time, those seemingly insignificant changes add up and create a team that accelerates its delivery of quality software.","blurb":"","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[{"label":"DevOps helps you accept constant change","target":"#tab1"},{"label":"DevOps embraces the cloud","target":"#tab2"},{"label":"DevOps helps you hire the best","target":"#tab3"},{"label":"DevOps keeps you competitive","target":"#tab4"},{"label":"DevOps helps solve human problems","target":"#tab5"},{"label":"DevOps challenges employees","target":"#tab6"},{"label":"DevOps bridges gaps","target":"#tab7"},{"label":"DevOps lets you fail well","target":"#tab8"},{"label":"DevOps lets you continuously improve","target":"#tab9"},{"label":"DevOps automates toil","target":"#tab10"},{"label":"DevOps accelerates delivery","target":"#tab11"}],"relatedArticles":{"fromBook":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281681,"slug":"devops-for-dummies","isbn":"9781119552222","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119552222/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/1119552222-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/devops-for-dummies-cover-9781119552222-203x255.jpg","width":203,"height":255},"title":"DevOps For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"30388\">Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren't technical, but human. She's worked with both cutting-edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. </p>","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119552222&quot;]}]\" id=\"du-slot-63221b45c16cf\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119552222&quot;]}]\" id=\"du-slot-63221b45c1fd0\"></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":"Five years","lifeExpectancySetFrom":"2022-07-29T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":265626},{"headers":{"creationTime":"2016-03-26T14:56:06+00:00","modifiedTime":"2022-05-31T14:42:00+00:00","timestamp":"2022-09-14T18:19:43+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"How to Fix Noncompliant Code on Your Web Page","strippedTitle":"how to fix noncompliant code on your web page","slug":"how-to-fix-noncompliant-code-on-your-web-page","canonicalUrl":"","seo":{"metaDescription":"For each web coding issue identified by a validator, you need to determine what course of action to take. Although some culprits that repeatedly crop up are eas","noIndex":0,"noFollow":0},"content":"For each web coding issue identified by a validator, you need to determine what course of action to take. Although some culprits that repeatedly crop up are easy to fix, such as missing <span class=\"code\">alt</span> text and <span class=\"code\"><noscript></span> tags, you’re bound to find coding issues that completely baffle and stump you.\r\n\r\nFor instance, if you get an error message that reads <span class=\"code\">XML Parsing Error: Opening and ending tag mismatch: br line 52 and body</span>, it might be difficult to figure out what that means, let alone why it was caused and how you should fix it.\r\n\r\nAs a strategy then, try to fix the issues within the code from the top down, as they’re listed in the validation results, because sometimes fixing one issue resolves another. With the XML parsing error, that issue might disappear when you correct for an omitted closing element on a <span class=\"code\"><br /></span> tag listed earlier in the error results.\r\n\r\nThe best way to find out how to code better and make fewer mistakes before validation testing is to make lots of honest mistakes and figure out how to correct them on your own. Most often, you can fix noncompliant code by hand or with the help of a good HTML editor.\r\n\r\nTo help you identify some of the more common coding mistakes, here several code issues along with suggestions about how to fix them.\r\n<table>\r\n<tbody>\r\n<tr>\r\n<th>Problem</th>\r\n<th>Solution</th>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">alt</pre>\r\ntext attribute missing from\r\n<pre class=\"code\">&lt;img&gt;</pre>\r\ntag</td>\r\n<td>Add the alternative text attribute, either with or without a\r\ndescription, as in\r\n<pre class=\"code\">&lt;img\r\nsrc=\"images/logo.gif\" width=\"150\"\r\nheight=\"150\" alt=\"Pete’s Pizza\"&gt;\r\n&lt;img src=\"images/flourish.gif\" width=\"200\"\r\nheight=\"150\" alt=\"\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags missing from\r\ncode</td>\r\n<td>Add\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags below each\r\ninstance when JavaScript is present in in-line JavaScript or at the\r\nend of the content before the closing body tag. Between the\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags, insert HTML content\r\n(text, graphics, media files, and so on) that describes the\r\nfunction of the JavaScript and, when appropriate, how visitors can\r\naccess the information revealed by it, as shown here:\r\n<pre class=\"code\">&lt;script language=\"JavaScript\"\r\nsrc=\"bookmark.js\"\r\ntype=\"text/javascript\"&gt;&lt;/script&gt;&lt;noscript&gt;The\r\nJavaScript used on this page provides a quick link that allows\r\nvisitors to automatically bookmark this page. As an alternative,\r\nplease use your browser’s Bookmark This Page feature.&lt;/noscript&gt;</pre>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td>Flashing or flickering element(s) detected, such as animated\r\nGIFs, Java applets, and other multimedia plug-ins</td>\r\n<td>Adjust the speed of any animations to avoid causing the screen\r\nto flicker with a frequency between 2 Hz and 55 Hz. Animations that\r\nexceed these two measures may cause seizures in visitors with\r\nphotosensitive epilepsy.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">DOCTYPE</pre>\r\nspecified</td>\r\n<td>Add a valid\r\n<pre class=\"code\">DOCTYPE</pre>\r\nabove the opening\r\n<pre class=\"code\">&lt;head&gt;</pre>\r\ntag.</td>\r\n</tr>\r\n<tr>\r\n<td>No HTTP charset parameter specified</td>\r\n<td>This special meta tag specifies the character set used in the\r\nHTML code. Some HTML editors include it automatically when\r\ngenerating new blank web pages. If validation finds that this tag\r\nis missing from your HTML or XHTML code, insert the following code\r\nby hand:\r\n<pre class=\"code\">&lt;meta\r\nhttp-equiv=\"Content-Type\" content=\"text/html;\r\ncharset=utf-8\"&gt;</pre>\r\n. For HTML5, insert\r\n<pre class=\"code\">&lt;meta charset=\"utf-8\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">&lt;title&gt;</pre>\r\ntag specified</td>\r\n<td>Add a unique title between\r\n<pre class=\"code\">&lt;title&gt;</pre>\r\ntags in the head area on each\r\npage.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">&lt;meta&gt;</pre>\r\ntags specified</td>\r\n<td>Add meta keywords and meta description tags to the head of each\r\npage. These can be identical on every page on the site. If desired,\r\nyou may also add additional meta tags as needed.</td>\r\n</tr>\r\n<tr>\r\n<td>No Robots tags specified</td>\r\n<td>Add the\r\n<pre class=\"code\">Robots</pre>\r\n<pre class=\"code\">&lt;meta&gt;</pre>\r\ntag in the head of the page to\r\ninstruct web spiders and robots whether to index the page and\r\nfollow any hyperlinks, such as\r\n<pre class=\"code\">&lt;meta\r\nname=\"Robots\" content=\"All\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>Deprecated\r\n<pre class=\"code\">&lt;font&gt;</pre>\r\ntags\r\ndetected</td>\r\n<td>Move all the presentation markup of the HTML (page, fonts,\r\ntables, links, and so on) to an external CSS file and remove all\r\n<pre class=\"code\">&lt;font&gt;</pre>\r\ntags and HTML and inline\r\nformatting attributes.</td>\r\n</tr>\r\n<tr>\r\n<td>Deprecated table height attribute detected</td>\r\n<td>Control table cell heights, when necessary, with CSS\r\nstyles.</td>\r\n</tr>\r\n<tr>\r\n<td>Style attributes detected in the opening\r\n<pre class=\"code\">&lt;body&gt;</pre>\r\ntag</td>\r\n<td>Move <span class=\"code\">body</span> attributes, like margin\r\nattributes and background page color, to a BODY tag redefine style\r\nin an external CSS file.</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">type</pre>\r\nattribute not specified for\r\nJavaScript or CSS</td>\r\n<td>Add the\r\n<pre class=\"code\">type=\"text/css\"</pre>\r\nattribute for\r\n<pre class=\"code\">&lt;style&gt;</pre>\r\ntags and the\r\n<pre class=\"code\">type=\"text/javascript\"</pre>\r\nattribute for\r\n<pre class=\"code\">&lt;script&gt;</pre>\r\ntags:\r\n<pre class=\"code\">&lt;style type=\"text/css\" &gt;&lt;script\r\ntype=\"text/javascript\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>Entity name used instead of entity number</td>\r\n<td>Change the entity name to an entity number, such as using\r\n<pre class=\"code\">$#169;</pre>\r\ninstead of\r\n<pre class=\"code\">&copy;</pre>\r\nto create the copyright symbol\r\n(c).</td>\r\n</tr>\r\n<tr>\r\n<td>No background color attribute was specified for a CSS style\r\nthat specifies text color</td>\r\n<td>Provide each style that contains a text\r\n<pre class=\"code\">color</pre>\r\nattribute with an attending background\r\n<pre class=\"code\">color</pre>\r\nattribute. The background color\r\nshould match, or closely match, the background color upon which the\r\ntext will display on.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\nWhen you’re finished identifying and adjusting all the noncompliant code identified by the validation tools, and have fixed everything that needed fixing, move on to the retesting and acceptable failure phase of the testing process.","description":"For each web coding issue identified by a validator, you need to determine what course of action to take. Although some culprits that repeatedly crop up are easy to fix, such as missing <span class=\"code\">alt</span> text and <span class=\"code\"><noscript></span> tags, you’re bound to find coding issues that completely baffle and stump you.\r\n\r\nFor instance, if you get an error message that reads <span class=\"code\">XML Parsing Error: Opening and ending tag mismatch: br line 52 and body</span>, it might be difficult to figure out what that means, let alone why it was caused and how you should fix it.\r\n\r\nAs a strategy then, try to fix the issues within the code from the top down, as they’re listed in the validation results, because sometimes fixing one issue resolves another. With the XML parsing error, that issue might disappear when you correct for an omitted closing element on a <span class=\"code\"><br /></span> tag listed earlier in the error results.\r\n\r\nThe best way to find out how to code better and make fewer mistakes before validation testing is to make lots of honest mistakes and figure out how to correct them on your own. Most often, you can fix noncompliant code by hand or with the help of a good HTML editor.\r\n\r\nTo help you identify some of the more common coding mistakes, here several code issues along with suggestions about how to fix them.\r\n<table>\r\n<tbody>\r\n<tr>\r\n<th>Problem</th>\r\n<th>Solution</th>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">alt</pre>\r\ntext attribute missing from\r\n<pre class=\"code\">&lt;img&gt;</pre>\r\ntag</td>\r\n<td>Add the alternative text attribute, either with or without a\r\ndescription, as in\r\n<pre class=\"code\">&lt;img\r\nsrc=\"images/logo.gif\" width=\"150\"\r\nheight=\"150\" alt=\"Pete’s Pizza\"&gt;\r\n&lt;img src=\"images/flourish.gif\" width=\"200\"\r\nheight=\"150\" alt=\"\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags missing from\r\ncode</td>\r\n<td>Add\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags below each\r\ninstance when JavaScript is present in in-line JavaScript or at the\r\nend of the content before the closing body tag. Between the\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags, insert HTML content\r\n(text, graphics, media files, and so on) that describes the\r\nfunction of the JavaScript and, when appropriate, how visitors can\r\naccess the information revealed by it, as shown here:\r\n<pre class=\"code\">&lt;script language=\"JavaScript\"\r\nsrc=\"bookmark.js\"\r\ntype=\"text/javascript\"&gt;&lt;/script&gt;&lt;noscript&gt;The\r\nJavaScript used on this page provides a quick link that allows\r\nvisitors to automatically bookmark this page. As an alternative,\r\nplease use your browser’s Bookmark This Page feature.&lt;/noscript&gt;</pre>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td>Flashing or flickering element(s) detected, such as animated\r\nGIFs, Java applets, and other multimedia plug-ins</td>\r\n<td>Adjust the speed of any animations to avoid causing the screen\r\nto flicker with a frequency between 2 Hz and 55 Hz. Animations that\r\nexceed these two measures may cause seizures in visitors with\r\nphotosensitive epilepsy.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">DOCTYPE</pre>\r\nspecified</td>\r\n<td>Add a valid\r\n<pre class=\"code\">DOCTYPE</pre>\r\nabove the opening\r\n<pre class=\"code\">&lt;head&gt;</pre>\r\ntag.</td>\r\n</tr>\r\n<tr>\r\n<td>No HTTP charset parameter specified</td>\r\n<td>This special meta tag specifies the character set used in the\r\nHTML code. Some HTML editors include it automatically when\r\ngenerating new blank web pages. If validation finds that this tag\r\nis missing from your HTML or XHTML code, insert the following code\r\nby hand:\r\n<pre class=\"code\">&lt;meta\r\nhttp-equiv=\"Content-Type\" content=\"text/html;\r\ncharset=utf-8\"&gt;</pre>\r\n. For HTML5, insert\r\n<pre class=\"code\">&lt;meta charset=\"utf-8\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">&lt;title&gt;</pre>\r\ntag specified</td>\r\n<td>Add a unique title between\r\n<pre class=\"code\">&lt;title&gt;</pre>\r\ntags in the head area on each\r\npage.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">&lt;meta&gt;</pre>\r\ntags specified</td>\r\n<td>Add meta keywords and meta description tags to the head of each\r\npage. These can be identical on every page on the site. If desired,\r\nyou may also add additional meta tags as needed.</td>\r\n</tr>\r\n<tr>\r\n<td>No Robots tags specified</td>\r\n<td>Add the\r\n<pre class=\"code\">Robots</pre>\r\n<pre class=\"code\">&lt;meta&gt;</pre>\r\ntag in the head of the page to\r\ninstruct web spiders and robots whether to index the page and\r\nfollow any hyperlinks, such as\r\n<pre class=\"code\">&lt;meta\r\nname=\"Robots\" content=\"All\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>Deprecated\r\n<pre class=\"code\">&lt;font&gt;</pre>\r\ntags\r\ndetected</td>\r\n<td>Move all the presentation markup of the HTML (page, fonts,\r\ntables, links, and so on) to an external CSS file and remove all\r\n<pre class=\"code\">&lt;font&gt;</pre>\r\ntags and HTML and inline\r\nformatting attributes.</td>\r\n</tr>\r\n<tr>\r\n<td>Deprecated table height attribute detected</td>\r\n<td>Control table cell heights, when necessary, with CSS\r\nstyles.</td>\r\n</tr>\r\n<tr>\r\n<td>Style attributes detected in the opening\r\n<pre class=\"code\">&lt;body&gt;</pre>\r\ntag</td>\r\n<td>Move <span class=\"code\">body</span> attributes, like margin\r\nattributes and background page color, to a BODY tag redefine style\r\nin an external CSS file.</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">type</pre>\r\nattribute not specified for\r\nJavaScript or CSS</td>\r\n<td>Add the\r\n<pre class=\"code\">type=\"text/css\"</pre>\r\nattribute for\r\n<pre class=\"code\">&lt;style&gt;</pre>\r\ntags and the\r\n<pre class=\"code\">type=\"text/javascript\"</pre>\r\nattribute for\r\n<pre class=\"code\">&lt;script&gt;</pre>\r\ntags:\r\n<pre class=\"code\">&lt;style type=\"text/css\" &gt;&lt;script\r\ntype=\"text/javascript\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>Entity name used instead of entity number</td>\r\n<td>Change the entity name to an entity number, such as using\r\n<pre class=\"code\">$#169;</pre>\r\ninstead of\r\n<pre class=\"code\">&copy;</pre>\r\nto create the copyright symbol\r\n(c).</td>\r\n</tr>\r\n<tr>\r\n<td>No background color attribute was specified for a CSS style\r\nthat specifies text color</td>\r\n<td>Provide each style that contains a text\r\n<pre class=\"code\">color</pre>\r\nattribute with an attending background\r\n<pre class=\"code\">color</pre>\r\nattribute. The background color\r\nshould match, or closely match, the background color upon which the\r\ntext will display on.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\nWhen you’re finished identifying and adjusting all the noncompliant code identified by the validation tools, and have fixed everything that needed fixing, move on to the retesting and acceptable failure phase of the testing process.","blurb":"","authors":[{"authorId":9719,"name":"Sue Jenkins","slug":"sue-jenkins","description":"Sue Jenkins is a working designer as well as a design trainer and author. Her design firm, Luckychair, provides design services for web, logo, and print. Jenkins has also created a series of courses on popular Adobe design tools including Photoshop and Illustrator.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9719"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":208112,"title":"Web Design All-in-One For Dummies Cheat Sheet","slug":"web-design-all-in-one-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/208112"}},{"articleId":204470,"title":"How to Add a DOCTYPE in Dreamweaver","slug":"how-to-add-a-doctype-in-dreamweaver","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/204470"}},{"articleId":204469,"title":"How to Remove Unwanted Formatting from Your Website","slug":"how-to-remove-unwanted-formatting-from-your-website","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/204469"}},{"articleId":204468,"title":"How to Transfer Files to Your Website with Dreamweaver","slug":"how-to-transfer-files-to-your-website-with-dreamweaver","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/204468"}},{"articleId":171074,"title":"Nine Basic CSS Categories to Use in Web Design","slug":"nine-basic-css-categories-to-use-in-web-design","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/171074"}}],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281890,"slug":"web-design-all-in-one-for-dummies-2nd-edition","isbn":"9781118404102","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1118404106/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1118404106/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/1118404106-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1118404106/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1118404106/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/web-design-all-in-one-for-dummies-2nd-edition-cover-9781118404102-203x255.jpg","width":203,"height":255},"title":"Web Design All-in-One For Dummies, 2nd Edition","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"9719\">Sue Jenkins</b> is a working designer as well as a design trainer and author. Her design firm, Luckychair, provides design services for web, logo, and print. Sue has also created a series of training DVDs on popular Adobe design tools including Photoshop, Dreamweaver, and Illustrator.</p>","authors":[{"authorId":9719,"name":"Sue Jenkins","slug":"sue-jenkins","description":"Sue Jenkins is a working designer as well as a design trainer and author. Her design firm, Luckychair, provides design services for web, logo, and print. Jenkins has also created a series of courses on popular Adobe design tools including Photoshop and Illustrator.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9719"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781118404102&quot;]}]\" id=\"du-slot-63221b3feccfb\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781118404102&quot;]}]\" id=\"du-slot-63221b3fed73e\"></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":"2022-05-31T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":166201},{"headers":{"creationTime":"2016-03-27T16:53:50+00:00","modifiedTime":"2022-05-03T18:17:32+00:00","timestamp":"2022-09-14T18:19:42+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"Beginning Programming All-In-One For Dummies Cheat Sheet","strippedTitle":"beginning programming all-in-one for dummies cheat sheet","slug":"beginning-programming-all-in-one-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"This Cheat Sheet covers beginning programming knowledge, including data structures, branching and looping statements, and online resources.","noIndex":0,"noFollow":0},"content":"If you're just getting started writing computer programs, you need to learn programming branching and looping statements to perform the specific jobs you need for an effective program. Keeping a list of computer programming resources for useful information handy can help, too.","description":"If you're just getting started writing computer programs, you need to learn programming branching and looping statements to perform the specific jobs you need for an effective program. Keeping a list of computer programming resources for useful information handy can help, too.","blurb":"","authors":[{"authorId":9043,"name":"Wallace Wang","slug":"wallace-wang","description":" <p><b>Wallace Wang</b> specializes in making complex topics understandable. His assorted <i>For Dummies</i> tech books have sold nearly half a million copies. He has a master&#8217;s degree in computer science along with side hustles in stand-up comedy and screenwriting because life is too short to focus on just one thing.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9043"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":292091,"slug":"beginning-programming-all-in-one-for-dummies-2nd-edition","isbn":"9781119884408","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1119884403/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119884403/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/1119884403-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119884403/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119884403/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/9781119884408-203x255.jpg","width":203,"height":255},"title":"Beginning Programming All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><b><b data-author-id=\"9043\">Wallace Wang</b></b> specializes in making complex topics understandable. His assorted <i>For Dummies</i> tech books have sold nearly half a million copies. He has a master&#8217;s degree in computer science along with side hustles in stand-up comedy and screenwriting because life is too short to focus on just one thing.</p>","authors":[{"authorId":9043,"name":"Wallace Wang","slug":"wallace-wang","description":" <p><b>Wallace Wang</b> specializes in making complex topics understandable. His assorted <i>For Dummies</i> tech books have sold nearly half a million copies. He has a master&#8217;s degree in computer science along with side hustles in stand-up comedy and screenwriting because life is too short to focus on just one thing.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9043"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119884408&quot;]}]\" id=\"du-slot-63221b3e9d756\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119884408&quot;]}]\" id=\"du-slot-63221b3e9e1d5\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":187570,"title":"Computer Programming Branching Statements","slug":"computer-programming-branching-statements","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/187570"}},{"articleId":187577,"title":"Computer Programming Looping Statements","slug":"computer-programming-looping-statements","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/187577"}},{"articleId":187572,"title":"Programming Compilers and Interpreters","slug":"programming-compilers-and-interpreters","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/187572"}}],"content":[{"title":"Storing stuff in data structures","thumb":null,"image":null,"content":"<p>Every programming language needs to store data. The simplest way to store data is to use a variable, but a variable can only hold one item at a time. Another limitation is that you must create enough variables to store all the data your program may need to store. Because you likely won’t know how much data your program needs to store, you need to store related data inside a data structure.</p>\n<p>Think of a data structure as a super variable that can group related data together and grow or shrink in size depending on how much data your program needs to store. Structures group multiple variables together. Arrays or lists can grow or shrink to store different amounts of data. Dictionaries, maps, or hashes identify data using a “key” value to make it easy to retrieve data quickly. Stacks and queues provide two different ways to store and retrieve data.</p>\n<h3>Structures</h3>\n<p>A single variable can only hold exactly one chunk of data at a time. However, a structure can store multiple variables inside a single variable, like this:</p>\n<p>struct person</p>\n<p>{</p>\n<p>string name;</p>\n<p>int, age;</p>\n<p>};</p>\n<p>person.name = &#8220;Billy the Kid&#8221;;</p>\n<p>person.age = 26;</p>\n<p>This code defines a structure and gives it an arbitrary name of person. Inside the structure, it defines a name variable that can hold a string and an age variable that can hold an integer.</p>\n<p>To store a string in the name variable, you need to define the structure name (person) and the string variable name to hold it (name). Thus, person.name specifies the structure (person) and the string variable (name) to hold &#8220;Billy the Kid&#8221;.</p>\n<p>To store an integer in the age variable, you need to define the structure name (person) and the integer variable name to hold it (age). Thus, person.age specifies the structure (person) and the integer variable (age) to hold 26.</p>\n<h3>Arrays or lists</h3>\n<p>Arrays store one type of data in a list, which is why some languages refer to arrays as <em>lists.</em> Arrays/lists store multiple chunks of data within a single variable name. To identify a specific chunk of data, you must reference the array/list name followed by the position of the data inside that array/list.</p>\n<p>The position of items, stored in an array/list, is identified by an index number. In zero-based arrays, the first stored item in the array is assigned an index number of 0. In one-based arrays, the first stored item in the array is assigned an index number of 1.</p>\n<p>var arrayname = [-4, 90, 128, -57, 32, 306, -48]</p>\n<p>arrayname[4] = 32</p>\n<p>This code defines an array/list that holds multiple integers such as –4 and 90. To retrieve the number 32, you must reference the array/list name (arrayname) followed by the position or index number of the data you want to retrieve. If the index number of the first item is 0, then arrayname[0] would retrieve –4, arrayname[1] would retrieve 90, arrayname[2] would retrieve 128, arrayname[3] would retrieve –57, and arrayname[4] would retrieve 32.</p>\n<h3>Dictionaries, maps, or hashes</h3>\n<p>Also called <em>hashes,</em> dictionaries or maps store a key-value pair where a unique key is associated with specific data. To store data, you must store a key followed by the data you want linked to that key, like this:</p>\n<p>mydictionary = {&#8216;pi&#8217;: 3.14, &#8216;taxrate&#8217;: 0.75}</p>\n<p>This code stores the key &#8216;pi&#8217; that’s linked to the value 3.14. Then it stores the key &#8216;taxrate&#8217; that’s linked to the value 0.75. Notice that in a dictionary/map/hash, the keys must all be the same data type and the stored values must also be the same data type. In this example, the keys are all strings (&#8216;pi&#8217; and &#8216;taxrate&#8217;), while the values are all decimal numbers (3.14 and 0.75).</p>\n<p>To retrieve data, specify the dictionary/map/hash name followed by the key associated with the data to retrieve, like this:</p>\n<p>mydictionary[&#8216;pi&#8217;] = 3.14</p>\n<p>This code says to retrieve the value linked to the &#8216;pi&#8217; key stored in the dictionary/map/hash called mydictionary. In this example, the value linked to the &#8216;pi&#8217; key is 3.14.</p>\n<h3>Stacks</h3>\n<p>Stacks are known as “last in, first out” (LIFO) data structures because the last item stored is the first one that can be removed. Stacks can shrink and grow and store any data types. In the real world, stack data types behave like a stack of dishes. The first item you store in a stack gets placed at the bottom. Each additional item stored in a stack buries the first item further and further. To retrieve the bottom item (the first item stored) in a stack, you must retrieve all items stored above it.</p>\n<p>You can perform two types of operations on stacks:</p>\n<ul>\n<li><strong>Push</strong>: The Push command adds new data to a stack. When you push data onto a stack, you must also specify the data to push to the top of a stack.</li>\n<li><strong>Pop:</strong> The Pop command removes data from the top of the stack. Because the Pop command always removes the top item, you only need to specify that you want to pop the top item off the stack.</li>\n</ul>\n<p>By using a combination of Push and Pop commands, you can store and retrieve data from a stack.</p>\n<h3>Queues</h3>\n<p>Queues are known as “first in, first out” (FIFO) data structures because the first item stored is the first one that can be removed. Queues can shrink and grow and store any data types.</p>\n<p>You can perform two types of operations on queues:</p>\n<ul>\n<li><strong>Enqueue</strong>: The Enqueue command adds new data to the end of a queue. When you add data to a queue, you must also specify the data to add to the end of the queue.</li>\n<li><strong>Dequeue</strong>: The Dequeue command removes data from the beginning of a queue. Because the Dequeue always removes the first item, you only need to specify that you want to remove (dequeue) the first item from the queue.</li>\n</ul>\n<p>By using a combination of Enqueue and Dequeue commands, you can add and remove data from a queue.</p>\n"},{"title":"Making decisions with branching statements","thumb":null,"image":null,"content":"<p>Branching statements, often called if statements, let a program choose between different sets of instructions based on a true or false condition. By using branching statements, programs can make decisions based on ever-changing data.</p>\n<p>The simplest branching statement is called an if statement (or an if-then statement). If a Boolean condition is true, then the if (or if-then) statement runs a set of commands; if the Boolean condition is false, then the if (or if-then) statement doesn’t run anything.</p>\n<p>If (condition) Then command</p>\n<p>If (condition) Then</p>\n<p>Commands</p>\n<p>End If</p>\n<p>if (condition) {</p>\n<p>Commands</p>\n<p>}</p>\n<p>Another variation of the branching statement, called if-else, offers exactly two choices. If a Boolean condition is true, the if-else statement follows one set of commands. If a Boolean condition is false, the if-else statement follows a second set of commands.</p>\n<p>If (condition) Then</p>\n<p>Commands</p>\n<p>Else</p>\n<p>Commands</p>\n<p>End If</p>\n<p>if (condition) {</p>\n<p>Commands</p>\n<p>} else {</p>\n<p>More commands</p>\n<p>}</p>\n<p>Rather than check a single Boolean condition, the if-elseif statement can check multiple Boolean conditions.</p>\n<p>If (condition) Then</p>\n<p>Commands</p>\n<p>Else If (condition2) then</p>\n<p>Commands</p>\n<p>End if</p>\n<p>if (condition1) {</p>\n<p>Commands</p>\n<p>} else if (condition2) {</p>\n<p>More commands</p>\n<p>} else if (condition3) {</p>\n<p>Even more commands</p>\n<p>}</p>\n<p>The if-elseif statement can check multiple Boolean conditions, but the more Boolean conditions there are to check, the harder the entire if-elseif statement can be to read. That’s why programming languages offer an alternative to the if-elseif statement, called a Select or switch statement.</p>\n<p>Like the if-elseif statement, the Select or switch statement can also check multiple Boolean conditions, but in a shorter, simpler way that’s easier to read and understand.</p>\n<p>Select Case variable</p>\n<p>Case value1</p>\n<p>Commands</p>\n<p>Case value2</p>\n<p>Commands</p>\n<p>Else</p>\n<p>Commands</p>\n<p>End Select</p>\n<p>switch (variable) {</p>\n<p>case value1:</p>\n<p>Commands;</p>\n<p>break;</p>\n<p>case value2:</p>\n<p>Commands;</p>\n<p>break;</p>\n<p>default:</p>\n<p>commands;</p>\n<p>break;</p>\n<p>}</p>\n"},{"title":"Repeating commands in looping statements","thumb":null,"image":null,"content":"<p>Looping statements let a program repeat one or more instructions. A for loop repeats a fixed number of times where you must define exactly how many times the loop should run.</p>\n<p>For variable = startvalue to endvalue</p>\n<p>Commands</p>\n<p>Next</p>\n<p>for (initial variable value, final value, increment) {</p>\n<p>commands;</p>\n<p>}</p>\n<p>Often, you don’t know exactly how many times a loop should run. In those cases, you must use a while loop, which checks a Boolean condition. If this Boolean condition is true, then the while loop runs. As soon as this Boolean condition becomes false, the while loop stops running.</p>\n<p>while (condition) {</p>\n<p>commands;</p>\n<p>}</p>\n<p>If a Boolean condition is false from the beginning, a while loop will never run at all. On the other hand, a do-while loop always runs at least once and then checks a Boolean condition. In some programming languages, the do-while loop may be called a repeat-until loop.</p>\n<p>do {</p>\n<p>commands;</p>\n<p>} while (condition);</p>\n<p>repeat {</p>\n<p>commands;</p>\n<p>} until (condition);</p>\n<p>Because both a while and do-while loop won’t stop until a condition becomes false, you must change this Boolean condition within the loop so the loop will eventually stop.</p>\n"},{"title":"Truth tables","thumb":null,"image":null,"content":"<p>Truth tables show specific Boolean values for different Boolean operators: AND, OR, XOR, and NOT. The AND operator (shortened to &amp;&amp; in many programming languages) is true only if both Boolean values are true.</p>\n<p>The OR operator (shortened to || in many programming languages) is false only if both Boolean values are false. The XOR operator is false only if both Boolean values are either both true or both false. The NOT operator (shortened to ! in many programming languages) simply reverses a true value to false or a false value to true.</p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td width=\"33%\"><strong>Value1</strong></td>\n<td width=\"33%\"><strong>Value2</strong></td>\n<td width=\"33%\"><strong>AND (&amp;&amp;)</strong></td>\n</tr>\n<tr>\n<td width=\"33%\">True</td>\n<td width=\"33%\">True</td>\n<td width=\"33%\">True</td>\n</tr>\n<tr>\n<td width=\"33%\">True</td>\n<td width=\"33%\">False</td>\n<td width=\"33%\">False</td>\n</tr>\n<tr>\n<td width=\"33%\">False</td>\n<td width=\"33%\">True</td>\n<td width=\"33%\">False</td>\n</tr>\n<tr>\n<td width=\"33%\">False</td>\n<td width=\"33%\">False</td>\n<td width=\"33%\">False</td>\n</tr>\n</tbody>\n</table>\n<p>&nbsp;</p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td width=\"33%\"><strong>Value1</strong></td>\n<td width=\"33%\"><strong>Value2</strong></td>\n<td width=\"33%\"><strong>OR (||)</strong></td>\n</tr>\n<tr>\n<td width=\"33%\">True</td>\n<td width=\"33%\">True</td>\n<td width=\"33%\">True</td>\n</tr>\n<tr>\n<td width=\"33%\">True</td>\n<td width=\"33%\">False</td>\n<td width=\"33%\">True</td>\n</tr>\n<tr>\n<td width=\"33%\">False</td>\n<td width=\"33%\">True</td>\n<td width=\"33%\">True</td>\n</tr>\n<tr>\n<td width=\"33%\">False</td>\n<td width=\"33%\">False</td>\n<td width=\"33%\">False</td>\n</tr>\n</tbody>\n</table>\n<p>&nbsp;</p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td width=\"33%\"><strong>Value1</strong></td>\n<td width=\"33%\"><strong>Value2</strong></td>\n<td width=\"33%\"><strong>XOR</strong></td>\n</tr>\n<tr>\n<td width=\"33%\">True</td>\n<td width=\"33%\">True</td>\n<td width=\"33%\">False</td>\n</tr>\n<tr>\n<td width=\"33%\">True</td>\n<td width=\"33%\">False</td>\n<td width=\"33%\">True</td>\n</tr>\n<tr>\n<td width=\"33%\">False</td>\n<td width=\"33%\">True</td>\n<td width=\"33%\">True</td>\n</tr>\n<tr>\n<td width=\"33%\">False</td>\n<td width=\"33%\">False</td>\n<td width=\"33%\">False</td>\n</tr>\n</tbody>\n</table>\n<p>&nbsp;</p>\n<table width=\"66%\">\n<tbody>\n<tr>\n<td width=\"50%\"><strong>Value1</strong></td>\n<td width=\"50%\"><strong>Not (!)</strong></td>\n</tr>\n<tr>\n<td width=\"50%\">True</td>\n<td width=\"50%\">False</td>\n</tr>\n<tr>\n<td width=\"50%\">False</td>\n<td width=\"50%\">True</td>\n</tr>\n</tbody>\n</table>\n"},{"title":"Programming compilers and interpreters","thumb":null,"image":null,"content":"<p>Programming compilers and interpreters let you write code in different programming languages and then run your program on a computer. Most compilers and interpreters work on multiple operating systems, but some may work only on one or two operating systems.</p>\n<p>To learn programming, you need to practice writing code in a specific programming language to see what you’re doing right and wrong. As long as you use a popular operating system such as Linux, macOS, or Windows, you should have little trouble finding a compiler or interpreter for your favorite programming language.</p>\n<p>Here are some compilers and interpreters to consider:</p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td width=\"29%\"><strong>Compiler/Interpreter</strong></td>\n<td width=\"14%\"><strong>Chrome OS</strong></td>\n<td width=\"13%\"><strong>iPadOS</strong></td>\n<td width=\"11%\"><strong>Linux</strong></td>\n<td width=\"13%\"><strong>macOS</strong></td>\n<td width=\"16%\"><strong>Windows</strong></td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://developer.android.com/\" target=\"_blank\" rel=\"noopener\">Android Studio</a></td>\n<td width=\"14%\">X</td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://dart.dev/\" target=\"_blank\" rel=\"noopener\">Dart</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://flutter.dev/\" target=\"_blank\" rel=\"noopener\">Flutter</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://gcc.gnu.org/\" target=\"_blank\" rel=\"noopener\">GNU Compiler Collection (GCC)</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://go.dev/\" target=\"_blank\" rel=\"noopener\">Go</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://www.java.com/\" target=\"_blank\" rel=\"noopener\">Java</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://kotlinlang.org/\" target=\"_blank\" rel=\"noopener\">Kotlin</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://www.mathworks.com/\" target=\"_blank\" rel=\"noopener\">MATLAB</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://www.perl.org/\" target=\"_blank\" rel=\"noopener\">Perl</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://www.php.net/\" target=\"_blank\" rel=\"noopener\">PHP</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://www.r-project.org/\" target=\"_blank\" rel=\"noopener\">R</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://reactnative.dev/\" target=\"_blank\" rel=\"noopener\">React Native</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://www.ruby-lang.org/\" target=\"_blank\" rel=\"noopener\">Ruby</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://www.rust-lang.org/\" target=\"_blank\" rel=\"noopener\">Rust</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://scala-lang.org/\" target=\"_blank\" rel=\"noopener\">Scala</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://www.apple.com/swift/playgrounds/\" target=\"_blank\" rel=\"noopener\">Swift Playgrounds</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\">X</td>\n<td width=\"11%\"></td>\n<td width=\"13%\">X</td>\n<td width=\"16%\"></td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://visualstudio.microsoft.com/\" target=\"_blank\" rel=\"noopener\">Visual Studio</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\">X</td>\n<td width=\"13%\">X</td>\n<td width=\"16%\">X</td>\n</tr>\n<tr>\n<td width=\"29%\"><a href=\"https://developer.apple.com/xcode/\" target=\"_blank\" rel=\"noopener\">Xcode</a></td>\n<td width=\"14%\"></td>\n<td width=\"13%\"></td>\n<td width=\"11%\"></td>\n<td width=\"13%\">X</td>\n<td width=\"16%\"></td>\n</tr>\n</tbody>\n</table>\n"},{"title":"Free programming editors","thumb":null,"image":null,"content":"<p>Although most programming compilers and interpreters come with an editor, many programmers prefer using a different editor that provides unique features or shortcuts that make writing code faster and easier.</p>\n<p>Here are some free programming editors worth checking out (they all work on Linux, macOS, and Windows):</p>\n<p>*  <a href=\"https://netbeans.apache.org/\" target=\"_blank\" rel=\"noopener\">Apache NetBeans</a></p>\n<p>*  <a href=\"https://atom.io/\" target=\"_blank\" rel=\"noopener\">Atom</a></p>\n<p>*  <a href=\"https://www.eclipse.org/eclipseide\" target=\"_blank\" rel=\"noopener\">Eclipse IDE</a></p>\n<p>*  <a href=\"https://www.gnu.org/software/emacs\" target=\"_blank\" rel=\"noopener\">GNU Emacs</a></p>\n<p>*  <a href=\"https://www.jetbrains.com/idea\">IntelliJ IDEA</a></p>\n<p>*  <a href=\"https://www.vim.org/\">Vim</a></p>\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":"One year","lifeExpectancySetFrom":"2022-05-03T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":208608},{"headers":{"creationTime":"2018-04-15T23:07:07+00:00","modifiedTime":"2022-04-20T20:53:15+00:00","timestamp":"2022-09-14T18:19:39+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"Virtual & Augmented Reality For Dummies Cheat Sheet","strippedTitle":"virtual & augmented reality for dummies cheat sheet","slug":"virtual-augmented-reality-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Virtual and augmented reality are rapidly changing fields, so learn where they are today and where they may be headed in the future.","noIndex":0,"noFollow":0},"content":"The terms <em>virtual reality</em> and <em>augmented reality</em> (and others, like <em>mixed reality</em> and <em>extended reality</em>) are thrown about everywhere today, but do you really know what they mean? Virtual and augmented reality are rapidly changing fields, so it helps to know where they are today and where they may be headed in the future. Finally, seeing how virtual and augmented reality are being used in a variety of industries and how exactly you can experience these technologies is key to your enjoyment.","description":"The terms <em>virtual reality</em> and <em>augmented reality</em> (and others, like <em>mixed reality</em> and <em>extended reality</em>) are thrown about everywhere today, but do you really know what they mean? Virtual and augmented reality are rapidly changing fields, so it helps to know where they are today and where they may be headed in the future. Finally, seeing how virtual and augmented reality are being used in a variety of industries and how exactly you can experience these technologies is key to your enjoyment.","blurb":"","authors":[{"authorId":11302,"name":"Paul Mealy","slug":"paul-mealy","description":" <p><b>Paul Mealy</b> has worked with virtual reality since the release of the Oculus Rift DK1 in 2013. He has architected, designed and developed applications for Oculus Rift, HTC Vive, Samsung Gear VR, Windows Mixed Reality, Google Daydream, and Google Cardboard. He has worked with numerous augmented reality hardware and technologies including the Microsoft HoloLens, ARKit for iOS, ARCore for Android and cross&#45;platform solutions such as Vuforia. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/11302"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":256467,"title":"Augmented Reality App Design: Starting Up and User Environment","slug":"augmented-reality-app-design-starting-up-and-user-environment","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/256467"}},{"articleId":256462,"title":"Designing Augmented Reality Apps: Comfort Zones, Interfaces, and Text","slug":"designing-augmented-reality-apps-comfort-zones-interfaces-and-text","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/256462"}},{"articleId":256456,"title":"Designing Augmented Reality Apps: Interacting with Objects","slug":"designing-augmented-reality-apps-interacting-with-objects","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/256456"}},{"articleId":256447,"title":"Best Practices and Virtual Reality Design Principles","slug":"best-practices-and-virtual-reality-design-principles","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/256447"}},{"articleId":256440,"title":"Virtual Reality Design Principles: Starting Up, User Attention, and Comfort Zones","slug":"virtual-reality-design-principles-starting-up-user-attention-and-comfort-zones","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/256440"}}],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281887,"slug":"virtual-augmented-reality-for-dummies","isbn":"9781119481348","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1119481341/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119481341/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/1119481341-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119481341/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119481341/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/virtual-and-augmented-reality-for-dummies-cover-9781119481348-203x255.jpg","width":203,"height":255},"title":"Virtual & Augmented Reality For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"11302\">Paul Mealy</b> has worked with virtual reality since the release of the Oculus Rift DK1 in 2013. He has architected, designed and developed applications for Oculus Rift, HTC Vive, Samsung Gear VR, Windows Mixed Reality, Google Daydream, and Google Cardboard. He has worked with numerous augmented reality hardware and technologies including the Microsoft HoloLens, ARKit for iOS, ARCore for Android and cross-platform solutions such as Vuforia. </p>","authors":[{"authorId":11302,"name":"Paul Mealy","slug":"paul-mealy","description":" <p><b>Paul Mealy</b> has worked with virtual reality since the release of the Oculus Rift DK1 in 2013. He has architected, designed and developed applications for Oculus Rift, HTC Vive, Samsung Gear VR, Windows Mixed Reality, Google Daydream, and Google Cardboard. He has worked with numerous augmented reality hardware and technologies including the Microsoft HoloLens, ARKit for iOS, ARCore for Android and cross&#45;platform solutions such as Vuforia. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/11302"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119481348&quot;]}]\" id=\"du-slot-63221b3b75948\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119481348&quot;]}]\" id=\"du-slot-63221b3b761e4\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":251717,"title":"What Are Virtual Reality, Augmented Reality, Mixed Reality, and Extended Reality?","slug":"virtual-reality-augmented-reality-mixed-reality-extended-reality","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/251717"}},{"articleId":251720,"title":"The Current State of Virtual and Augmented Reality","slug":"current-state-virtual-augmented-reality","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/251720"}},{"articleId":251723,"title":"Consuming Virtual and Augmented Reality","slug":"consuming-virtual-augmented-reality","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/251723"}},{"articleId":251726,"title":"Virtual and Augmented Reality Use Cases","slug":"virtual-augmented-reality-use-cases","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/251726"}},{"articleId":251729,"title":"The Future of Virtual and Augmented Reality","slug":"future-virtual-augmented-reality","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/251729"}}],"content":[{"title":"What are virtual reality, augmented reality, mixed reality, and extended reality?","thumb":null,"image":null,"content":"<p>If you’ve been paying attention to the tech world recently, you’ve likely heard a number of new terms being thrown around — <em>virtual reality, augmented reality, extended reality,</em> and <em>mixed reality</em> — and you may have wondered what they mean. To help make sense of it all, here’s a breakdown of each of those terms, how they’re alike, and how they’re different.</p>\n<ul>\n<li><strong>Virtual reality (VR): </strong>A computer-simulated reality that simulates a fully artificial environment that does not physically exist. Users within VR are closed off from the real world. Consumer VR executions typically consist of a headset and some sort of controller.</li>\n<li><strong>Augmented reality (AR):</strong> A way of viewing the real world in which your view of the real world is “augmented” by computer-generated input, such as still images, audio, or video. AR differs from VR in that AR <em>augments</em> (adds to) a real-world scene, instead of creating something from scratch. AR headsets aren’t quite commonplace yet, but you may have an AR device in your pocket: Newer generations of both iOS and Android devices have been enabled with AR capabilities.</li>\n<li><strong>Mixed reality (MR):</strong> MR may take your view of the real world and integrate computer-generated content that can interact with that view of the real world. Or it may take a fully digital environment and connect it to real-world objects. In this way, MR can sometimes function similarly to VR and sometimes function similarly to AR. You’ll often hear the terms being used interchangeably, which can be confusing. Here’s a quick glance at the differences.</li>\n</ul>\n<p style=\"padding-left: 30px;\">In MR, you may have a view of the real world, and a digital basketball may appear to bounce off the real world floor and walls, or a digital rocket ship may appear to land on your coffee table. This is AR-based MR, and you’ll often just hear these experiences referred to as AR.</p>\n<p style=\"padding-left: 30px;\">In other MR instances, you may only see a completely digital environment with no view of the real world, but that digital environment is connected to real-world objects around you. In your virtual world, real-world tables or chairs may digitally appear as rocks or trees. Real-world office walls may appear as moss-covered cave walls. This is VR-based MR, sometimes called <em>augmented virtuality.</em></p>\n<p style=\"padding-left: 30px;\">Mixed reality is gaining traction in the industry, especially AR-based mixed reality. Remember that it is not uncommon for the terms <em>augmented reality</em> and <em>mixed reality</em> to be used synonymously.</p>\n<ul>\n<li><strong>Extended reality (XR): </strong>The umbrella term used for all these technologies. It can cover everything from VR to MR to AR technologies. People sometimes use the term <em>virtual reality</em> to refer to all of the above, but the correct umbrella term is <em>extended reality.</em></li>\n</ul>\n"},{"title":"The current state of virtual and augmented reality","thumb":null,"image":null,"content":"<p>Virtual reality (VR) and augmented reality (AR) have some similar core technologies but differ in a number of ways. These differences have likely contributed to their current state of technological maturity.</p>\n<p>Neither technology has advanced far enough to be considered “mature,” but VR has made large strides over the past few years. VR has seen the release of a large number of headsets for mass consumption, from low-cost devices powered by users’ mobile devices to high-end headsets that require a large amount of external computing power. VR has reached a decent consumer install base, VR consumer software is easy to come by, and we’re rapidly approaching what could be considered the second generation of consumer-based VR headsets.</p>\n<p>AR, on the other hand, is still fairly new technology. AR headsets exist, but they are all fairly expensive, are limited in number, and generally focus on release for developers or enterprise rather than for mass consumption. VR’s form factor appears to be generally set, but how AR will be experienced isn’t quite settled yet.</p>\n<p>AR does have a unique option: Both Apple and Google have released technologies (ARKit and ARCore, respectively) that allow consumers to experience smaller, mobile-device AR experiences. These technologies allow users to view the real world via their mobile-device cameras and augment those cameras’ video with digital holograms. Device restrictions such as the small video window and having to hold the device make mobile-based AR a less than optimal experience, but it’s a good introduction for most users as to just what AR is.</p>\n"},{"title":"Consuming virtual and augmented reality","thumb":null,"image":null,"content":"<p>Options for consuming content are readily available for virtual reality (VR). VR devices cover a spectrum from high-end options to low-end options to everything in between, with more devices being released every day.</p>\n<p>High-end consumption devices for VR include headsets such as the HTC Vive, the Oculus Rift, or Windows Mixed Reality headsets. These options all require powerful external hardware to power the headset experience and include options such as a “room-scale” experience, or the ability to move around in physical space and have that movement translated into the virtual environment. Midrange options for VR consumption include headsets such as the Samsung Gear VR or Google Daydream. These VR headsets are powered by higher-end mobile devices. They allow users to look around in VR, but not physically move about as if a user were there. Google Cardboard is an example of a low-end VR device. Released as a low-cost way of democratizing VR, almost any reasonably powerful mobile device can run the Google Cardboard software. Unlike the midrange VR options, user input in Google Cardboard devices is extremely limited.</p>\n<p>Augmented reality (AR) devices such as headsets or goggles remain beyond most consumer budgets for now. High-end AR devices such as the Microsoft HoloLens, the Meta 2, or the upcoming Magic Leap One are targeted toward enterprise customers or developers only. We’re likely a generation or two of AR devices away before we can expect to see AR headsets released to consumers, though you may encounter some devices being utilized in commercial settings. There are also a few potential “midrange” AR headsets such as the Mira Prism that are powered by users’ mobile devices. These headsets are currently targeted toward developers but may see release to consumers in the near future.</p>\n<p>Many consumers can experience a lower-end AR experience right now, however. Newer iOS and Android mobile devices come equipped with AR capabilities. Simply searching either the Apple App Store or Google Play Store for “ARKit” or “ARCore,” respectively, will reveal a large number of applications built specifically for AR experiences on mobile devices. For example, the <em>New York Times</em> mobile app allows users to browse news stories featuring augmented content, and Amazon’s ARView allows users to place digital holograms in their physical spaces and walk around them as if they were truly there.</p>\n"},{"title":"Virtual and augmented reality use cases","thumb":null,"image":null,"content":"<p>Virtual reality (VR) and augmented reality (AR) have a large number of use cases spread across any number of industries. VR lends itself readily to the entertainment industry.</p>\n<p>VR has very strong roots in gaming. Gamers tend to be early technology adopters. Plus, they often have the powerful computer systems needed to run the highest-end VR headsets. But VR is not limited to gaming and entertainment. VR has made inroads into the education market. Classrooms have utilized VR applications such as Google Expeditions to facilitate virtual field trips or applications such as <a href=\"https://www.with.in/watch/clouds-over-sidra\" target=\"_blank\" rel=\"noopener\">Clouds Over Sidra</a> to educate on events as far ranging as the Syrian refugee crisis. VR has found inroads in the art world as a tool to create and educate, the healthcare industry to train surgeons and treat psychological issues, and the retail industry to advertise and shop in new ways. Name an industry, and VR likely has an applicable use case.</p>\n<p>AR is similar, though the maturity level of the technology means consumer use cases are a bit fewer and further between as AR focuses on enterprise-level executions. These enterprise-level executions cover a gamut of uses:</p>\n<ul>\n<li>Industrial applications for training workers on the factory floor for steps to utilize equipment or display via digital holograms where to find various parts in a physical warehouse</li>\n<li>Entertainment applications where users battle digital holograms projected into real-world space</li>\n<li>Utility applications for connecting users and allowing them to work in a shared virtual 3D space projected into a real-world environment</li>\n</ul>\n<p>That’s not to say consumers are left out in the cold. Apple’s and Google’s release of ARKit and ARCore, respectively, mean mobile executions for retail (such as Ikea’s Place app, which allows you to preview full-size digital holograms of Ikea furniture) and utility applications such as Google Translate (which can translate images of more than 30 different languages on the fly through your mobile device’s camera) can be utilized by anyone with a supported mobile device.</p>\n"},{"title":"The future of virtual and augmented reality","thumb":null,"image":null,"content":"<p>The future of virtual reality (VR) and augmented reality (AR) looks to be an interesting one. Although both VR and AR have been utilized in small doses in various industries in the past, both have experienced a resurgence in interest both publicly and within commercial industries in the past few years. VR rose to public prominence with the Kickstarter release of the Oculus Development Kit 1 in 2013, and AR saw a large boost with the announced releases of ARKit and ARCore in late 2017.</p>\n<p>VR is further ahead in its product development life cycle than AR. It has seen hardware releases directly to the mass consumer market, and many headset manufacturers have released their plans for the second generation of VR devices. The first generation of VR devices, especially the high-end devices, have been lauded by critics and consumers for the level of immersive experience they can provide. However, adoption by consumers was focused far more on the lower-end VR devices, due in part to high costs and the newness of the technology. That has yet to dull manufacturers’ push for VR adoption. At the Oculus Connect conference in October 2017, Facebook CEO Mark Zuckerberg said, “We’re setting a goal: We want to get a billion people in virtual reality.” A lofty goal. Only time will tell if such a goal is truly attainable, but many experts see VR as having the potential to hit mass adoption levels within the next two to five years.</p>\n<p>AR is trending behind VR. The technological challenges of augmenting real-world environments are many: realistic digital display, comfortable wearable computing power, world-sensing technology, and so on. And AR needs to be able to handle all these potential speed bumps at a price attainable for consumers in order to hit mass adoption numbers. But like VR, AR has its share of advocates in high places. “We believe augmented reality is going to change the way we use technology forever,” claimed Apple CEO Tim Cook in a 2017 call with analysts. “We’re already seeing things that will transform the way you work, play, connect, and learn. Augmented reality is going to change everything.”</p>\n<p>With the challenges AR faces, technology research predictions put AR’s adoption level further out than that of VR. Most analysts see AR’s mainstream adoption somewhere between five to ten years out. In the meantime, however, many expect to see AR make large inroads into enterprise sectors such as industrial and commercial industries, where utilizing AR promises to save industries time and money by minimizing costly errors and mistakes.</p>\n<p>No one knows for sure just how big the VR and AR markets will be, but many research firms predict a combined market cap of up to $150 billion for VR and AR by 2021, potentially with AR leading the way — an interesting development for a technology that started “behind” VR.</p>\n<p>No one can predict just how explosive growth for VR and AR will be, but the future of both these technologies appears promising.</p>\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":"One year","lifeExpectancySetFrom":"2022-04-20T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":251732},{"headers":{"creationTime":"2018-02-01T03:45:03+00:00","modifiedTime":"2022-04-20T18:48:57+00:00","timestamp":"2022-09-14T18:19:39+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"PHP, MySQL & JavaScript All-in-One For Dummies Cheat Sheet","strippedTitle":"php, mysql & javascript all-in-one for dummies cheat sheet","slug":"php-mysql-javascript-one-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Learn how to extract data in your PHP programs, filter out data from web forms, and quickly find data stored in your MySQL database.","noIndex":0,"noFollow":0},"content":"Working with PHP, MySQL, and JavaScript to create dynamic web applications can be difficult, but if you know a few programming tricks, you can make that job a lot easier. This Cheat Sheet shows you how to extract data from different databases in your PHP programs, filter out unwanted or potentially dangerous data from web forms, quickly find data stored in your MySQL database, and trigger timed events in your JavaScript programs.","description":"Working with PHP, MySQL, and JavaScript to create dynamic web applications can be difficult, but if you know a few programming tricks, you can make that job a lot easier. This Cheat Sheet shows you how to extract data from different databases in your PHP programs, filter out unwanted or potentially dangerous data from web forms, quickly find data stored in your MySQL database, and trigger timed events in your JavaScript programs.","blurb":"","authors":[{"authorId":10600,"name":"Richard Blum","slug":"richard-blum","description":" <p><b>Richard Blum</b> has more than 30 years of experience as a systems administrator and programmer. He teaches online courses in PHP, JavaScript, HTML5, and CSS3 programming, and authored the latest edition of <i>Linux For Dummies</i>. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/10600"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":253381,"title":"Using XMLHttpRequest Class Properties","slug":"using-xmlhttprequest-class-properties","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253381"}},{"articleId":253378,"title":"Making Sure Your MySQL Database is ACID Compliant","slug":"making-sure-mysql-database-acid-compliant","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253378"}},{"articleId":253374,"title":"MySQL Features","slug":"mysql-features","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253374"}},{"articleId":253362,"title":"How to Set Cookies with PHP","slug":"set-cookies-php","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253362"}},{"articleId":253250,"title":"What are Accessor Magic Methods in PHP?","slug":"accessor-magic-methods-php","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253250"}}],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281821,"slug":"php-mysql-javascript-all-in-one-for-dummies","isbn":"9781119468387","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1119468388/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119468388/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/1119468388-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119468388/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119468388/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/php-mysql-and-javascript-all-in-one-for-dummies-cover-9781119468387-203x255.jpg","width":203,"height":255},"title":"PHP, MySQL, & JavaScript All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"10600\">Richard Blum</b> has more than 30 years of experience as a systems administrator and programmer. He teaches online courses in PHP, JavaScript, HTML5, and CSS3 programming, and authored the latest edition of <i>Linux For Dummies</i>. </p>","authors":[{"authorId":10600,"name":"Richard Blum","slug":"richard-blum","description":" <p><b>Richard Blum</b> has more than 30 years of experience as a systems administrator and programmer. He teaches online courses in PHP, JavaScript, HTML5, and CSS3 programming, and authored the latest edition of <i>Linux For Dummies</i>. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/10600"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119468387&quot;]}]\" id=\"du-slot-63221b3b08ed5\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119468387&quot;]}]\" id=\"du-slot-63221b3b09974\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":249463,"title":"Using the PHP Database Object Library Functions","slug":"using-php-database-object-library-functions","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/249463"}},{"articleId":249466,"title":"Filtering Data in PHP","slug":"filtering-data-php","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/249466"}},{"articleId":249471,"title":"Using Regular Expressions in MySQL","slug":"using-regular-expressions-mysql","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/249471"}},{"articleId":249474,"title":"Working with Timers in JavaScript","slug":"working-timers-javascript","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/249474"}}],"content":[{"title":"Using the PHP database object library functions","thumb":null,"image":null,"content":"<p>When you know your application will run in a MySQL environment, it makes sense to use the php_mysqli library functions to interact with the database. However, there may come a time when you want to write an application that can work using other databases as well. PHP supports quite a few database libraries, each of which interacts with a specific database server. The downside, though, is that you&#8217;d need to create a different version of your application for each database server.</p>\n<p>Alternatively, you can use the PHP Database Object (PDO) library functions. PDO allows you to use the same code to interact with any type of underlying database server. You just need to specify the database server used for the connection, and PDO does the rest!</p>\n<p>To open a PDO connection to a database, you instantiate a PDO object:</p>\n<p><code>$con = new PDO(</code></p>\n<p><code>\"mysql:host=localhost;dbname=<em>mydata</em>;charset=utf8',</code></p>\n<p><code>'<em>username</em>', '<em>password</em>');</code></p>\n<p>The databases your application can connect to depends on which PDO database drivers are loaded in the PHP server. To determine which drivers are available, use the <code>getAvailableDrivers()</code> static method:</p>\n<p><code>$list = PDO::getAvailableDrivers();</code></p>\n<p><code>foreach ($list as $db) {<br />\n</code><br />\n<code>echo \"$db&lt;br&gt;\\n\";</code></p>\n<p><code>}</code></p>\n<p>After you connect to the database, to submit a simple query, use the <code>query()</code> method:</p>\n<p><code>$query = \"SELECT bidderid, lastname, firstname, address</code></p>\n<p><code>FROM bidders\";</code></p>\n<p><code>foreach($con-&gt;query($query) as $row) {</code></p>\n<p><code>$bidderid = $row['bidderid'];<br />\n</code><br />\n<code>$lastname = $row['lastname'];</code></p>\n<p><code>$firstname = $row['firstname'];<br />\n</code><br />\n<code>$address = $row['address'];</code></p>\n<p><code>echo \"$bidderid - $lastname, $firstname&lt;br&gt;$adress&lt;br&gt;&lt;br&gt;\\n\";</code></p>\n<p><code>}</code></p>\n<p>Unlike the php_mysqli library, the PDO library <code>query() </code>method returns the actual data records from the result set. You don&#8217;t need to fetch the results. Each time you call the <code>query() </code>method, it returns the next data record from the result set.</p>\n<p>You can also use prepared statements with the PDO library to help filter input data:</p>\n<p><code>$sql = \"INSERT INTO bidders (bidderid, lastname,</code></p>\n<p><code>firstname, address) VALUES (?, ?, ?, ?)\";</code></p>\n<p><code>$stmt = $con-&gt;prepare($sql);</code></p>\n<p><code>$stmt-&gt;bindParam(1, 100, PDO::PARAM_INT);</code></p>\n<p><code>$stmt-&gt;bindParam(2, 'Blum', PDO::PARAM_STR);</code></p>\n<p><code>$stmt-&gt;bindParam(3, 'Rich', PDO::PARAM_STR);</code></p>\n<p><code>$stmt-&gt;bindParam(4, \"123 Main St.; Chicago, IL 60633\",</code></p>\n<p><code>PDO::PARAM_STR);</code></p>\n<p><code>$stmt-&gt;execute();</code></p>\n<p>Using this method, you can submit multiple data records by binding each data set to the prepared statement and executing them individually.</p>\n<p>With the PDO library, you can now write a single application that will work with any underlying database server your customers need to use!</p>\n"},{"title":"Filtering data in PHP","thumb":null,"image":null,"content":"<p>Validating input data is crucial to any PHP application. You don&#8217;t want an attacker trying to attack your system by submitting improper form data. Fortunately, the PHP developers have provided some help with that process.</p>\n<p>PHP provides several filter functions that allow you to easily check for valid data or sanitize the data if any unwanted data is present. The following table lists the different functions available in the filter family.</p>\n<table>\n<caption>The PHP Filter Functions</caption>\n<tbody>\n<tr>\n<td width=\"293\"><strong>Function</strong></td>\n<td width=\"445\"><strong>Description</strong></td>\n</tr>\n<tr>\n<td width=\"293\"><code>filter_has_var()</code></td>\n<td width=\"445\">Checks if a variable of the specified type exists</td>\n</tr>\n<tr>\n<td width=\"293\"><code>filter_id()</code></td>\n<td width=\"445\">Returns the filter ID of the specified filter</td>\n</tr>\n<tr>\n<td width=\"293\"><code>filter_input()</code></td>\n<td width=\"445\">Retrieves a value passed by GET, POST, sessions, or cookies and filters it</td>\n</tr>\n<tr>\n<td width=\"293\"><code>filter_input_array()</code></td>\n<td width=\"445\">Retrieves multiple values passed to the PHP program and filters them</td>\n</tr>\n<tr>\n<td width=\"293\"><code>filter_list()</code></td>\n<td width=\"445\">Returns a list of supported filters</td>\n</tr>\n<tr>\n<td width=\"293\"><code>filter_var()</code></td>\n<td width=\"445\">Filters a variable</td>\n</tr>\n<tr>\n<td width=\"293\"><code>filter_var_array()</code></td>\n<td width=\"445\">Filters a list of variables</td>\n</tr>\n</tbody>\n</table>\n<p>These functions allow you to specify a variable to check and the type of check to perform. There are two main groups of filter:</p>\n<ul>\n<li><strong>Validation:</strong> Checks if the specified data is present</li>\n<li><strong>Sanitation:</strong> Checks if the specified data is present and removes it</li>\n</ul>\n<p>The following table shows the different validation filters available.</p>\n<table>\n<caption>PHP Validation Filters</caption>\n<tbody>\n<tr>\n<td width=\"369\"><strong>Filter</strong></td>\n<td width=\"369\"><strong>Description</strong></td>\n</tr>\n<tr>\n<td width=\"369\"><code>FILTER_VALIDATE_BOOLEAN</code></td>\n<td width=\"369\">Checks for a valid Boolean value</td>\n</tr>\n<tr>\n<td width=\"369\"><code>FILTER_VALIDATE_EMAIL</code></td>\n<td width=\"369\">Checks for a valid email address</td>\n</tr>\n<tr>\n<td width=\"369\"><code>FILTER_VALIDATE_FLOAT</code></td>\n<td width=\"369\">Checks for a valid float value</td>\n</tr>\n<tr>\n<td width=\"369\"><code>FILTER_VALIDATE_INT</code></td>\n<td width=\"369\">Checks for a valid integer value</td>\n</tr>\n<tr>\n<td width=\"369\"><code>FILTER_VALIDATE_IP</code></td>\n<td width=\"369\">Checks for a valid IP address value</td>\n</tr>\n<tr>\n<td width=\"369\"><code>FILTER_VALIDATE_REGEXP</code></td>\n<td width=\"369\">Checks for a valid regular expression value</td>\n</tr>\n<tr>\n<td width=\"369\"><code>FILTER_VALIDATE_URL</code></td>\n<td width=\"369\">Checks for a valid URL string</td>\n</tr>\n</tbody>\n</table>\n<p>The validation checks return a <code>TRUE </code>value if the data contains the data type being checked, or a <code>FALSE </code>value if not.</p>\n<p>The following table shows the different sanitation filters available.</p>\n<table>\n<caption>PHP Sanitation Filters</caption>\n<tbody>\n<tr>\n<td width=\"362\"><strong>Filter</strong></td>\n<td width=\"377\"><strong>Description</strong></td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_EMAIL</code></td>\n<td width=\"377\">Removes illegal characters from an email address</td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_ENCODED</code></td>\n<td width=\"377\">Encodes special characters in the string</td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_MAGIC_QUOTES</code></td>\n<td width=\"377\">Apply the <code>addslashes()</code> function</td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_NUMBER_FLOAT</code></td>\n<td width=\"377\">Remove all characters, except digits, +, –, and <code>E</code></td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_NUMBER_INT</code></td>\n<td width=\"377\">Removes all characters except digits and + or –</td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_SPECIAL_CHARS</code></td>\n<td width=\"377\">Removes any special characters in the string</td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_FULL_SPECIAL_CHARS</code></td>\n<td width=\"377\">Same as <code>htmlspecialchars()</code></td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_STRING</code></td>\n<td width=\"377\">Removes HTML tags and special characters from a string</td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_STRIPPED</code></td>\n<td width=\"377\">Same as <code>FILTER_SANITIZE_STRING</code></td>\n</tr>\n<tr>\n<td width=\"362\"><code>FILTER_SANITIZE_URL</code></td>\n<td width=\"377\">Removes all illegal characters from a URL string</td>\n</tr>\n</tbody>\n</table>\n<p>You can combine both the sanitizing and validating features in your code to ensure the data you receive from an HTML form is valid:</p>\n<p><code>$address = $_POST['email'];</code></p>\n<p><code>$address = filter_var($address, FILTER_SANITIZE_EMAIL);<br />\n</code><br />\n<code>if (!filter_var($address, FILTER_VALIDATE_EMAIL)) {</code></p>\n<p><code>echo \"&lt;h2&gt;Sorry, you have entered an incorrect address&lt;/h2\";</code></p>\n<p><code>} else {</code></p>\n<p><code>echo \"&lt;h2&gt;Thank you for submitting your data&lt;/h2&gt;\";</code></p>\n<p><code>}</code></p>\n<p>Using the PHP filter functions will help you safely process any type of input data received in your application HTML forms.</p>\n"},{"title":"Using regular expressions in MySQL","thumb":null,"image":null,"content":"<p>Searching for data in a MySQL <code>SELECT </code>statement means incorporating a <code>WHERE </code>clause. It&#8217;s easy to search for a single item:</p>\n<p><code>SELECT prodid, product WHERE prodid = 100;</code></p>\n<p>What gets tricky is if you need to search for an item based on search pattern. MySQL uses the <code>LIKE </code>clause to help out with that:</p>\n<p><code>SELECT prodid, product WHERE product LIKE 'apple%';</code></p>\n<p>The percent sign works as a wildcard character, matching zero or more characters in the string. So this will return <code>apples</code>, as well as <code>apple juice</code>.</p>\n<p>The wildcard character in the LIKE operator is handy, but it&#8217;s somewhat limited. A more advanced way of searching for data is using a <em>regular expression</em> pattern match. Regular expressions use their own language to define a template used to match data patterns.</p>\n<p>MySQL supports regular expressions using the <code>REGEXP </code>operator. You specify the matching pattern similar to how you do it with the <code>LIKE </code>operator:</p>\n<p><code>SELECT prodid, product WHERE product REGEXP 'apple';</code></p>\n<p>In the regular expression, by default any text you enter is matched anywhere in the data field. So, this query will return <code>apple</code>, <code>apple juice</code>, or <code>candy apple</code>.</p>\n<p>You can specify exactly where in the string the text pattern should appear by using anchor characters. The caret character (<code>^</code>) indicates the start of the string. So, the following query matches only <code>apple </code>and <code>apple juice</code>:</p>\n<p><code>SELECT prodid, product WHERE product REGEXP '^apple';</code></p>\n<p>The dollar sign indicates the end of the string and would return <code>apple </code>or <code>candy apple</code>:</p>\n<p><code>SELECT prodid, product WHERE product REGEXP 'apple$';</code></p>\n<p>The MySQL regular expression languages uses lots of special characters to define the matching template. The following table shows the more popular ones.</p>\n<table>\n<caption>The MySQL Regular Expression Characters</caption>\n<tbody>\n<tr>\n<td width=\"129\"><strong>Character</strong></td>\n<td width=\"609\"><strong>Description</strong></td>\n</tr>\n<tr>\n<td width=\"129\"><code>^string</code></td>\n<td width=\"609\">Matches the text at the beginning of the string</td>\n</tr>\n<tr>\n<td width=\"129\"><code>string$</code></td>\n<td width=\"609\">Matches the text at the end of the string</td>\n</tr>\n<tr>\n<td width=\"129\"><code>.</code></td>\n<td width=\"609\">Matches any single character (including special characters)</td>\n</tr>\n<tr>\n<td width=\"129\"><code>a*</code></td>\n<td width=\"609\">Matches the sequence of zero or more of the specified character</td>\n</tr>\n<tr>\n<td width=\"129\"><code>a+</code></td>\n<td width=\"609\">Matches the sequence of one or more of the specified character</td>\n</tr>\n<tr>\n<td width=\"129\"><code>a?</code></td>\n<td width=\"609\">Matches zero or one occurrence of the specified character</td>\n</tr>\n<tr>\n<td width=\"129\"><code>abc|def</code></td>\n<td width=\"609\">Matches either one of the specified strings</td>\n</tr>\n<tr>\n<td width=\"129\"><code>[abc]</code></td>\n<td width=\"609\">Matches any one of the specified characters</td>\n</tr>\n</tbody>\n</table>\n<p>With the <code>LIKE </code>and <code>REGEXP </code>operators in the <code>WHERE </code>clause, you can customize your <code>SELECT </code>statement to look for just about any type of data that you need for your application!</p>\n"},{"title":"Working with timers in JavaScript","thumb":null,"image":null,"content":"<p>Often you&#8217;ll run into a situation where you need to trigger an event dynamically in a web page, without the website visitor doing anything. JavaScript provides two simple functions that allow you to schedule an event to trigger at a preselected time.</p>\n<p>The <code>setTimeout() </code>function allows you to schedule a specified function to trigger at a specific time from the current time:</p>\n<p><code>setTimeout(<em>function</em>, <em>time</em>);</code></p>\n<p>The <code>function </code>parameter specifies the name of the function to trigger, while the <code>time </code>parameter specifies the amount of time (in milliseconds) for the browser to wait until triggering the function. An example would be the following, which triggers the <code>myfunction()</code> function after waiting five seconds:</p>\n<p><code>setTimeout(myfunction, 5000);<br />\n</code><br />\nYou may also run into situations where you need a specific function to trigger repeatedly at a specific time interval, such as if your application needs to refresh data from the application database on the server. Instead of having to set multiple <code>setTimeout()</code> functions, you can use the <code>setInterval() </code>function:</p>\n<p><code>setInterval(function, time);</code></p>\n<p>With the <code>setInterval() </code>function, JavaScript repeats the event trigger for the specified number of milliseconds, and repeats the function for each interval.</p>\n<p>If you need to disable the timer functions before they trigger, you use the <code>clearTimeout()</code> and <code>clearInterval()</code> functions. You&#8217;ll need to include the value returned by the individual functions when they&#8217;re set as the parameter:</p>\n<p><code>$timer = setInterval(myfunction, 5000);<br />\n</code><br />\n<code>clearInterval($timer);</code></p>\n<p>With the use of the timer functions in PHP, you can trigger automatic updates to a web page at a regular interval, checking for updated data. This comes in handy when working with Ajax applications.</p>\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":"2022-04-20T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":249477},{"headers":{"creationTime":"2019-07-24T19:43:42+00:00","modifiedTime":"2022-03-02T18:57:30+00:00","timestamp":"2022-09-14T18:19:19+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"DevOps For Dummies Cheat Sheet","strippedTitle":"devops for dummies cheat sheet","slug":"devops-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Discover what DevOps is and how it focuses on the people and processes of an organization. Also find a list of DevOps resources.","noIndex":0,"noFollow":0},"content":"A surprising facet of the DevOps engineering practice for software development is that it focuses more on the people and process of an organization than the specific tools or technologies that the engineers choose to utilize.\r\n\r\nDevOps offers no silver bullet, but it can have a massive impact on your organization and your products as an engineering culture of collaboration, ownership, and learning with the purpose of accelerating the software development lifecycle from ideation to production.\r\n\r\n ","description":"A surprising facet of the DevOps engineering practice for software development is that it focuses more on the people and process of an organization than the specific tools or technologies that the engineers choose to utilize.\r\n\r\nDevOps offers no silver bullet, but it can have a massive impact on your organization and your products as an engineering culture of collaboration, ownership, and learning with the purpose of accelerating the software development lifecycle from ideation to production.\r\n\r\n ","blurb":"","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281681,"slug":"devops-for-dummies","isbn":"9781119552222","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119552222/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/1119552222-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/devops-for-dummies-cover-9781119552222-203x255.jpg","width":203,"height":255},"title":"DevOps For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"30388\">Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren't technical, but human. She's worked with both cutting-edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. </p>","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119552222&quot;]}]\" id=\"du-slot-63221b27f10b6\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119552222&quot;]}]\" id=\"du-slot-63221b27f198d\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":262990,"title":"What is DevOps and Why DevOps?","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/262990"}},{"articleId":262994,"title":"Core DevOps Values for Your Company Culture","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/262994"}},{"articleId":262997,"title":"DevOps Resources Online and On Twitter","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/262997"}}],"content":[{"title":"Why use DevOps in your organization?","thumb":null,"image":null,"content":"<p>DevOps is an engineering practice that emerged from Agile due to the tension between developers and operations engineers in traditional engineering organizations.</p>\n<p>The friction originates in two areas:</p>\n<ul>\n<li><strong>Each team exists in a silo.</strong> Developers and operations engineers both have skill sets and experiences unique to their work. In traditional organizations, information is not shared between these teams. Instead, code is tossed over the “wall of confusion” from developers to operations folks to deploy and maintain.</li>\n<li><strong>Developers and engineers are measured by different criteria.</strong> Developers are traditionally measured for success by the number of features they ship, or the number of bugs they eliminate. Operations engineers, by contrast, are evaluated using indicators like site reliability and uptime.</li>\n</ul>\n<p>The most common cause of incidents and outages are new releases of code. Developers are motivated to release more code; operations folks are motivated to control for error and prevent developers from deploying bug-filled software.</p>\n<p>The DevOps approach seeks to do the following:</p>\n<ul>\n<li>Reduce interpersonal friction</li>\n<li>Eliminate bottlenecks</li>\n<li>Improve collaboration</li>\n<li>Increase job satisfaction through engineer empowerment</li>\n<li>Accelerate team productivity</li>\n</ul>\n<p>Beyond the human component, which enables faster delivery, improved functionality and fearless innovation, DevOps offers technical benefits:</p>\n<ul>\n<li><strong>CI/CD:</strong> Continuous integration and continuous delivery, which is closely aligned with DevOps, removes many of the bottlenecks often seen in teams that deploy infrequently. If you create automated pipelines that pass new code through a robust test suite, you can feel more confident in your deployments.</li>\n<li><strong>Faster recovery from incidents:</strong> It’s inevitable that you will experience a customer-impacting service disruption at some point — no matter how well-tested your code is. But teams who work in a DevOps methodology find resolutions faster through better coordination, more open accessibility, shared learning, and better performance monitoring.</li>\n<li><strong>Do more with the resources you already have:</strong> DevOps accepts the reality of constraints and shows you how to succeed within your unique environment.</li>\n</ul>\n"},{"title":"Core DevOps values for your company culture","thumb":null,"image":null,"content":"<p>DevOps is a cultural shift that empowers engineers to learn freely, share responsibility, and succeed — as well as occasionally fail — together.</p>\n<p>DevOps is centered around a few core principles. Although the principles may vary from organization to organization, you would do well to focus on these:</p>\n<ul>\n<li>Encourage teamwork</li>\n<li>Reduce silos</li>\n<li>Practice systems thinking</li>\n<li>Learn from failure</li>\n<li>Communicate</li>\n<li>Accept feedback</li>\n<li>Iterate rapidly</li>\n<li>Automate where appropriate</li>\n</ul>\n"},{"title":"DevOps resources online and on Twitter","thumb":null,"image":null,"content":"<p>Here are links to some of the members, events, and resources of the DevOps community:</p>\n<ul>\n<li><strong><a href=\"https://devopsdays.org/\" target=\"_blank\" rel=\"noopener\">DevOpsDays</a>:</strong> Local DevOps-focused conferences across the globe.</li>\n<li><strong><a href=\"https://events.itrevolution.com/\" target=\"_blank\" rel=\"noopener\">DevOps Enterprise Summit</a>:</strong> A conference designed to discuss the DevOps for the enterprise.</li>\n<li><strong><a href=\"https://www.devops-research.com/research.html#reports\" target=\"_blank\" rel=\"noopener\">State of DevOps Report</a>:</strong> Released by the DevOps Research and Assessment (DORA) organization at Google every year, the State of DevOps Report digs into how organizations are adopting and implementing DevOps.</li>\n<li><strong><a href=\"https://medium.com/netflix-techblog\" target=\"_blank\" rel=\"noopener\">Netflix Tech Blog</a>:</strong> Some of the best DevOps and SRE advice in the industry.</li>\n<li><strong><a href=\"https://devopsish.com/\" target=\"_blank\" rel=\"noopener\">DevOps’ish</a>:</strong> A weekly newsletter by Chris Short focused on the DevOps ecosystem.</li>\n<li><strong><a href=\"https://emilyfreeman.io/newsletter\" target=\"_blank\" rel=\"noopener\">Delivering DevOps</a>:</strong> A monthly newsletter on everything DevOps from the author of DevOps for Dummies, Emily Freeman.</li>\n<li><strong><a href=\"https://www.meetup.com/topics/devops/\" target=\"_blank\" rel=\"noopener\">DevOps Meetups</a>:</strong> Meetups focused on DevOps in your neighborhood.</li>\n</ul>\n<h2>People to Follow on Twitter</h2>\n<ul>\n<li>Emily Freeman (@editingemily)</li>\n<li>Nicole Forsgren (@nicolefv)</li>\n<li>John Allspaw (@allspaw)</li>\n<li>Paul Reed (@jpaulreed)</li>\n<li>Andrew Clay Shafer (@littleidea)</li>\n<li>Patrick Debois (@patrickdebois)</li>\n<li>Gene Kim (@RealGeneKim)</li>\n<li>Jez Humble (@jezhumble)</li>\n<li>Corey Quinn (@quinnypig)</li>\n<li>David Blank-Edelman (@otterbook)</li>\n<li>Matty Stratton (@mattstratton)</li>\n<li>Bridget Kromhout (@bridgetkromhout)</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":"One year","lifeExpectancySetFrom":"2022-03-02T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":263000},{"headers":{"creationTime":"2019-05-31T03:00:11+00:00","modifiedTime":"2022-02-23T21:58:59+00:00","timestamp":"2022-09-14T18:19:13+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"GitHub For Dummies Cheat Sheet","strippedTitle":"github for dummies cheat sheet","slug":"github-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"To be a part of the Github community, communicate within its repositories and learn how to navigate through open source projects.","noIndex":0,"noFollow":0},"content":"When you first log in to GitHub.com, it can feel overwhelming. What is GitHub? GitHub is more than a place to store your code; it’s a community and a philosophy about how code should be written. When you’re first learning and navigating the website, you should always remember that the goal of GitHub is to provide a secure, collaborative environment where newcomers and experts alike can design, develop, and deploy any software, from programs that say “Hello World” to code that sequences human proteins to help cure major infectious diseases around the world. To be a part of this community, you just have to be an effective communicator, find and create collaborative projects, and know how to find the help you need, when you need it.","description":"When you first log in to GitHub.com, it can feel overwhelming. What is GitHub? GitHub is more than a place to store your code; it’s a community and a philosophy about how code should be written. When you’re first learning and navigating the website, you should always remember that the goal of GitHub is to provide a secure, collaborative environment where newcomers and experts alike can design, develop, and deploy any software, from programs that say “Hello World” to code that sequences human proteins to help cure major infectious diseases around the world. To be a part of this community, you just have to be an effective communicator, find and create collaborative projects, and know how to find the help you need, when you need it.","blurb":"","authors":[{"authorId":9091,"name":"Sarah Guthals","slug":"sarah-guthals","description":" <p><b>Camille McCue, PhD,</b> is Director of Curriculum Innovations at the Adelson Educational Campus in Las Vegas where she leads the Startup Incubator, teaches STEM, and kickstarts K&#45;12 learning initiatives. <b>Sarah Guthals, PhD,</b> co&#45;founded an ed&#45;tech company and now continues to build technology for kids to learn, create, and share safely online. She loves to teach teachers how to teach coding in the classroom. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9091"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":264779,"title":"Take Action with GitHub Actions","slug":"take-action-with-github-actions","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264779"}},{"articleId":264772,"title":"GitHub Apps and Probot","slug":"github-apps-and-probot","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264772"}},{"articleId":264767,"title":"Hackathons and Other Networking Events for GitHub Software Developers","slug":"hackathons-and-other-networking-events-for-github-software-developers","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264767"}},{"articleId":264756,"title":"The GitHub Marketplace","slug":"the-github-marketplace","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264756"}},{"articleId":264749,"title":"How to Write a Great GitHub Pull Request","slug":"how-to-write-a-great-github-pull-request","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264749"}}],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281730,"slug":"github-for-dummies","isbn":"9781119572671","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1119572673/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119572673/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/1119572673-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119572673/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119572673/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/github-for-dummies-cover-9781119572671-203x255.jpg","width":203,"height":255},"title":"GitHub For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"9091\">Sarah Guthals, PhD</b> is a social software engineer, entrepreneur, and former engineering manager at GitHub. She is coauthor of<i> Helping Kids with Coding For Dummies.</i><b></b> <b data-author-id=\"34460\">Phil Haack</b> is a former engineering director at GitHub and senior program manager at Microsoft. He is author of a number of books on ASP.NET. </p>","authors":[{"authorId":9091,"name":"Sarah Guthals","slug":"sarah-guthals","description":" <p><b>Camille McCue, PhD,</b> is Director of Curriculum Innovations at the Adelson Educational Campus in Las Vegas where she leads the Startup Incubator, teaches STEM, and kickstarts K&#45;12 learning initiatives. <b>Sarah Guthals, PhD,</b> co&#45;founded an ed&#45;tech company and now continues to build technology for kids to learn, create, and share safely online. She loves to teach teachers how to teach coding in the classroom. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9091"}},{"authorId":34460,"name":"Phil Haack","slug":"phil-haack","description":" <p><b>Camille McCue, PhD,</b> is Director of Curriculum Innovations at the Adelson Educational Campus in Las Vegas where she leads the Startup Incubator, teaches STEM, and kickstarts K&#45;12 learning initiatives. <b>Sarah Guthals, PhD,</b> co&#45;founded an ed&#45;tech company and now continues to build technology for kids to learn, create, and share safely online. She loves to teach teachers how to teach coding in the classroom. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/34460"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119572671&quot;]}]\" id=\"du-slot-63221b2106093\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119572671&quot;]}]\" id=\"du-slot-63221b2106b05\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":261917,"title":"Where to Find Out More on GitHub.com","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/261917"}},{"articleId":261922,"title":"Be an Effective Communicator in GitHub Repositories","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/261922"}},{"articleId":261925,"title":"Navigate an Open Source Software Project on GitHub","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/261925"}}],"content":[{"title":"Where to find out more on GitHub.com","thumb":null,"image":null,"content":"<p>One of the most important things to know how to do is to find more information on GitHub when you need it. GitHub is always evolving and changing, and by the time you’re reading this article, Git may have new features, new applications to integrate with, or new projects that are popular. It is important that you remember how to learn more about GitHub as a tool.</p>\n<h2>GitHub docs</h2>\n<p>GitHub has an <a href=\"https://help.github.com/en\" target=\"_blank\" rel=\"noopener\">extensive list of docs</a>. You can either use the search bar at the top of the page to find a specific topic, or you can choose the GitHub product that you have a question about (which includes GitHub.com) and then browse topics that are popular among GitHub users.</p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-261919\" src=\"https://www.dummies.com/wp-content/uploads/GitHub-contact-page.jpg\" alt=\"GitHub contact page\" width=\"535\" height=\"301\" /></p>\n<p>GitHub docs are often effective for folks who have a specific question. If you want to generally learn how to use the products, GitHub docs may be more difficult for you to navigate. At the bottom of each page on the Docs site, however, is a link to the <a href=\"https://github.com/contact\" target=\"_blank\" rel=\"noopener\">GitHub contact page</a> along with guidelines on when, who, and how to contact for various problems you may encounter.</p>\n<h2>GitHub guides</h2>\n<p>GitHub has also produced a number of guides to help with common getting started actions. If you go to <a href=\"https://guides.github.com/\" target=\"_blank\" rel=\"noopener\">GitHub.com</a>, you can find about ten guides ranging from 3 to 10 minutes of reading. Think of these guides as GitHub’s version of a cheat sheet. These guides can be really effective if you have a particular goal, as the topics range from how to fork a project to how to be social on the platform.</p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-261918\" src=\"https://www.dummies.com/wp-content/uploads/GitHub-flow-guide.jpg\" alt=\"GitHub flow guide\" width=\"535\" height=\"301\" /></p>\n<p>One of the most important guide on this page is the <a href=\"https://guides.github.com/introduction/flow\" target=\"_blank\" rel=\"noopener\">GitHub flow guide</a>. This interactive diagram explains the entire GitHub flow, from writing and committing code to creating and merging pull requests.</p>\n<h2>Try GitHub</h2>\n<p>You can find a list of fun, <a href=\"http://try.github.io/\" target=\"_blank\" rel=\"noopener\">interactive tools</a> on GitHub.com. This site includes interactive, visualized representations of git repositories, a list of handy cheat sheets that you can print, and links to the GitHub learning labs and professional training that <a href=\"https://services.github.com/\" target=\"_blank\" rel=\"noopener\">GitHub offers</a>.</p>\n<h2>GitHub Learning Labs</h2>\n<p>Probably one of the most effective learning tools on GitHub, the <a href=\"https://lab.github.com/\" target=\"_blank\" rel=\"noopener\">Learning Labs</a> are interactive experiences on the actual GitHub.com platform that allow you to try complex workflows, such as creating and reviewing pull requests, starting a community on GitHub, or even setting up continuous integration on your project.</p>\n"},{"title":"Be an effective communicator in GitHub repositories","thumb":null,"image":null,"content":"<p>Whether you’re contributing to a large GitHub open source project, working with a small group of people, or even working on a project completely by yourself, it is critical that you approach your GitHub repositories as living documents of your project. As repositories get larger and code gets more complex, learning how to communicate asynchronously through code, issues, and pull requests becomes a skill that is absolutely critical to succeeding not only on GitHub, but in the field of computer science as a whole.</p>\n<p>The number one thing to remember is to document. Document everything that you do, such as</p>\n<ul>\n<li><strong>Code comments:</strong> Comments throughout your code offer an English description of what your code should be doing. Comments can help you (or others) identify when the code written doesn’t accomplish what was expected. By keeping comments up-to-date as code changes, you make it easier for others (or your future self) to know what the code is meant to do and make it easier to identify where goal doesn’t meet actuality.</li>\n<li><strong>README: </strong>The README is the front page of your entire project. Anytime something changes about the way the code runs or how to contribute to the code, you should always update the README. The README is the first place people come when they’re new to your project, so you want to have a descriptive summary of the software from both a user’s and contributor’s perspective.</li>\n<li><strong>Docs:</strong> Writing docs on your software can be a very effective way to avoid confusion for both users and contributors. You can use documentation generators, such as Javadocs, or simply be disciplined about writing documentation about any new or modified code in your project. A project with impressive documentation is <a href=\"https://flight-manual.atom.io\" target=\"_blank\" rel=\"noopener\">Atom</a>.</li>\n<li><strong>Issue descriptions:</strong> If you’ve found a bug, the issue you create should always include a detailed description of exactly what error you found. You should include the version of the software or the branch that you were on, operating system version, and other relevant software versions, such as browser. It can also be useful to include screenshots. If you have an idea for a future feature or a modification in the software, make sure to be as detailed as possible. Be respectful with your asks and recognize that the main developers on the project may not agree with your suggestion, or it may not be a priority for them. In other words, don’t try demanding that something you want be made immediately, but rather focus on the goal of being a collaborative member of the project.</li>\n<li><strong>Pull request description:</strong> Pull request descriptions should reference issues that they’re fixing. You can directly reference the issues by specifically tagging them. If you add “Closes” before the issue link, then when the pull request is merged, the issue will be closed with it. In addition to the issue(s) that the pull request addresses, you should always have a clear, detailed description of the changes you made, how they may affect other parts of the software, unit tests you ran, and screenshots that show the changes made. You can also open a pull request when you first start tackling an issue and use the description as an outline for what you need to do to complete the task. You can have a literal checklist, which can help collaborators know where you are in the solution and have a better grasp on how quickly you may be done.</li>\n</ul>\n"},{"title":"Navigate an open source software project on GitHub","thumb":null,"image":null,"content":"<p>When you first come across a GitHub open source software (OSS) project, you should spend a good amount of time exploring the project, documentation, and guidelines before you attempt to contribute to the project. OSS maintainers spend a lot of their time and energy ensuring that documentation is kept up-to-date and the community is aware of the new features or bug fixes that are a priority. Spending time orienting yourself with the software and the community of a particular project will increase your chances of being able to actually contribute to the project.</p>\n<p>It is also an important part to becoming a member of that community. Coming in as an outsider suggesting changes (either through issues or pull requests) without having the background on the project will make it seem like you aren’t invested in the project. Approach projects as a learning experience, not an opportunity for you to teach. With time, you probably will have your chance to make an impactful change and probably teach others.</p>\n<p>There are a few places to start when you’re orienting yourself to a GitHub project:</p>\n<ul>\n<li><strong>README:</strong> Make sure you’ve read through the README, where you can find a lot of useful information about compatibility and how to get started as a user or contributor for the software.</li>\n<li><strong>Getting Started docs:</strong> Often, projects will have some guidelines on how to get started either using or contributing to the project. If your goal is to contribute to the software, fork the project and get it running on your local machine. If you have trouble, review docs or issues (even issues that may be closed) before opening a new issue with your question. It’s likely someone else has run into a similar problem, and the answer is already somewhere on the repo. If it seems to be a major issue, you may even make a suggestion to modify the docs to include the fix.</li>\n<li><strong>Contributing guideline:</strong> Most projects will have a contributing guideline doc, which often includes a Code of Conduct. You should take the this very seriously. Writing code isn’t enough; you have to be willing to join the community and be a positive member. Poor behavior will (and should) be reported to the maintainers. The contributing guidelines also often include naming conventions, the decision-making process, the workflow between maintainers and contributors, and general style guides.</li>\n<li><strong>Existing issues and pull requests:</strong> Finally, before getting started, read through some existing issues and pull requests to understand how the community communicates. This can both help you better interact with this particular community, as well as maybe make a decision that this community isn’t one that is right for you. You can also see what the workflow of top contributors on this project is. For example, are pull requests often large with a lot of major changes, or small with very focused goals?</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":"One year","lifeExpectancySetFrom":"2022-02-23T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":261928},{"headers":{"creationTime":"2016-03-27T16:49:41+00:00","modifiedTime":"2022-02-15T19:34:17+00:00","timestamp":"2022-09-14T18:19:07+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"PHP, MySQL, JavaScript, & HTML5 All-in-One For Dummies Cheat Sheet","strippedTitle":"php, mysql, javascript, & html5 all-in-one for dummies cheat sheet","slug":"php-mysql-javascript-html5-all-in-one-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Get the low-down on popular programming languages and you'll be well on your way to building dynamic websites with HTML5 and JavaScript.","noIndex":0,"noFollow":0},"content":"Create web documents and websites by knowing basic HTML elements, PHP statements and functions, and more. Become familiar with these special programming languages, which you can use to build dynamic websites that work with the MySQL database.","description":"Create web documents and websites by knowing basic HTML elements, PHP statements and functions, and more. Become familiar with these special programming languages, which you can use to build dynamic websites that work with the MySQL database.","blurb":"","authors":[{"authorId":9730,"name":"Steve Suehring","slug":"steve-suehring","description":"","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9730"}},{"authorId":9731,"name":"Janet Valade","slug":"janet-valade","description":" <b>Janet Valade</b> is the author of <i>PHP &amp; MySQL For Dummies.</i> In addition, she has authored and revised chapters for several Linux books and for a Webmaster certification book.<br /> Janet Valade has 20 years experience in the computing field. She worked as a Web designer/programmer for an engineering firm. Prior to that, Janet worked for several years in a university environment as a systems analyst. During her tenure, she supervised the installation and operation of computing resources, designed and developed a data archive, provided technical support for faculty and students, wrote numerous technical papers, and developed and presented seminars and workshops on a variety of technology topics.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9731"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}}]},"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;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]}]\" id=\"du-slot-63221b1b7a4ef\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]}]\" id=\"du-slot-63221b1b7af6c\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":169236,"title":"Basic HTML Elements","slug":"basic-html-elements","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/169236"}},{"articleId":169233,"title":"Common MySQL Queries","slug":"common-mysql-queries","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/169233"}},{"articleId":169239,"title":"PHP MySQL Functions","slug":"php-mysql-functions","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/169239"}},{"articleId":169237,"title":"PHP Statements","slug":"php-statements","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/169237"}},{"articleId":168993,"title":"Add Special Characters to Patterns in PHP Scripts","slug":"add-special-characters-to-patterns-in-php-scripts","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/168993"}}],"content":[{"title":"Basic HTML elements","thumb":null,"image":null,"content":"<p>HyperText Markup Language (HTML) is the language of the web, where <i>elements</i> dictate the formatting and style of your content. HTML elements compose the downloaded coding that you see when you go to a web page in your web browser (such as Internet Explorer, Firefox, or Safari). Here are some basic elements to get you started building a web page.</p>\n<table>\n<tbody>\n<tr>\n<th>Element</th>\n<th>Description</th>\n</tr>\n<tr>\n<td><span class=\"code\">&lt;a&gt;</span></td>\n<td>An anchor is typically used to create links.</td>\n</tr>\n<tr>\n<td><span class=\"code\">&lt;body&gt;</span></td>\n<td>Creates the body element for a page.</td>\n</tr>\n<tr>\n<td><span class=\"code\">&lt;br&gt;</span></td>\n<td>Creates a line break.</td>\n</tr>\n<tr>\n<td><span class=\"code\">&lt;div&gt;</span></td>\n<td>Creates a block to contain other HTML and text.</td>\n</tr>\n<tr>\n<td><span class=\"code\">&lt;doctype&gt;</span></td>\n<td>Declares a document type for the HTML page.</td>\n</tr>\n<tr>\n<td><span class=\"code\">&lt;html&gt;</span></td>\n<td>Creates the HTML element for a page.</td>\n</tr>\n<tr>\n<td><span class=\"code\">&lt;img&gt;</span></td>\n<td>Creates a place for an image.</td>\n</tr>\n<tr>\n<td><span class=\"code\">&lt;span&gt;</span></td>\n<td>Creates a space for an inline element within a page.</td>\n</tr>\n</tbody>\n</table>\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":"One year","lifeExpectancySetFrom":"2021-08-31T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":208022},{"headers":{"creationTime":"2019-11-12T18:55:54+00:00","modifiedTime":"2019-12-18T20:05:52+00:00","timestamp":"2022-09-14T18:17: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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","strippedTitle":"make more of your cloud tools: automating devops in the cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","canonicalUrl":"","seo":{"metaDescription":"If you are hoping to maximize your DevOps efforts, try automating tasks using your cloud tools. Use this guide to find out how, from Dummies.com.","noIndex":0,"noFollow":0},"content":"<a href=\"https://www.dummies.com/business/operations-management/choosing-the-best-cloud-service-provider-features-and-tools-for-devops/\">Marrying the cloud with your DevOps practice</a> can accelerate the work you’ve already accomplished. When used together, both DevOps and the cloud can drive your company’s digital transformation.\r\n\r\nYou’ll see results as long as you emphasize the priorities of DevOps: people, process, and technology. The cloud — along with other tooling — falls squarely into the technical part of your DevOps implementation.\r\n\r\n[caption id=\"attachment_265676\" align=\"aligncenter\" width=\"556\"]<img class=\"wp-image-265676 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops-cloud.jpg\" alt=\"DevOps and cloud computing\" width=\"556\" height=\"171\" /> ©Shutterstock/Trueffelpix[/caption]\r\n\r\nCloud computing enables automation for your developers and operations folks in a way that simply isn’t possible when you manage your own physical infrastructure. Provisioning infrastructure through code in the cloud — which is a system referred to as Infrastructure as Code (IaC) — enables you to create templates and repeatable processes.\r\n\r\nWhen you track changes to your infrastructure code through source control, you permit your team to operate seamlessly and track changes. IaC is much more repeatable and automated — not to mention faster — than having engineers click around a portal.\r\n<p class=\"article-tips warning\">Even instructions on the portal aren’t fool-proof. You risk making small, yet significant, changes to infrastructure setup if you consistently build the same setup through the portal rather than a YAML file.</p>\r\n\r\n<h2 id=\"tab1\" >Taking your DevOps culture to the cloud</h2>\r\nPeople often speak about DevOps <a href=\"https://www.dummies.com/programming/cloud-computing/managing-cloud-computing-resources/\">and cloud computing</a> as if they are intertwined and, in many ways, they are. Be aware, however, that you can adopt DevOps — or begin to transform your engineering organization — without going all in on the cloud. It’s perfectly reasonable that you first establish the standards, practices, and processes for your team before you shift your infrastructure to a cloud provider.\r\n\r\nAlthough people speak as though everyone is already on the cloud, you are still on the cutting edge of the shift to the cloud. Cloud providers are becoming more robust by the day, and engineering companies are slowly transitioning their self-hosted services to the cloud. With that in mind, an organization seeking to adopt DevOps would be wise to strongly consider utilizing the services of a major cloud provider.\r\n\r\nAnyone with DevOps experience wouldn’t likely call the cloud a NoOps solution, but they might call it OpsLite. Cloud services often abstract complex operations architecture in a way that makes that architecture more friendly to developers and empowers them to take more ownership of their components.\r\n\r\nIf you’ve ever grumbled that developers should be included in an on-call rotation, you’re right — they should be. Including developers in the on-call rotation is a great way to ramp up their knowledge of deploying code as well as managing and provisioning the infrastructure on which their services run. This reduces operational overhead and frees up the time of operations specialists to work on proactive solutions.\r\n<h2 id=\"tab2\" >Learning through DevOps adoption</h2>\r\nIf your team is capable of adopting DevOps and shifting toward utilizing cloud computing at the same time, you can use these shifts as learning opportunities for both developers and operations folks.\r\n\r\nWhile your team shifts to the cloud, developers have the opportunity to familiarize operations specialists with code — perhaps even specific languages — and source control, and operations folks can teach developers about infrastructure. When both groups are both the experts and the newbies, neither group has to deal much of an ego-damaging transfer of knowledge.\r\n\r\nThe trust, rapport, and healthy dynamic that emerge from these interactions will galvanize your team and last much longer than the immediate work took. In many ways, you’re reinforcing your DevOps culture through tooling your <a href=\"https://www.dummies.com/business/operations-management/why-devops-matters-11-ways-devops-benefits-your-organization/\">DevOps practice</a>.\r\n<h2 id=\"tab3\" >Benefitting from cloud services in your DevOps initiative</h2>\r\nModern operations is changing and evolving. Your competitors are already adopting new ways of innovating faster and accelerating their software delivery life cycles.\r\n\r\nCloud computing represents a big shift from the traditional way businesses think about IT resources. By outsourcing much of your infrastructure and operations requirements to a cloud provider, you reduce overhead and free your team to focus on delivering better software to your users.\r\n\r\nHere are six common reasons organizations are turning to cloud computing services:\r\n<ul>\r\n \t<li><strong>Improving affordability.</strong> Cloud providers allow you to select only the services you need, when you need them. Imagine if you could access cable TV but pay for only the channels you watch. You’d love that, wouldn’t you? Most DevOps team members would! Cloud providers do just that while also providing you with the most up-to-date computing hardware housed in physically secure datacenters.</li>\r\n \t<li><strong>Automating deployments.</strong> Changes to the system — deployments — are the most common contributors of outages or service disruptions. Cloud providers make releasing code an automated, repeatable process, significantly decreasing the probability of making mistakes in manual releases and introducing bugs. Automated deployments also enables developers to release their own code. Ultimately, automated deployments simplify the process while reducing site downtime and reactionary triaging in production.</li>\r\n \t<li><strong>Accelerating delivery.</strong> The cloud reduces friction along nearly every phase of the software delivery life cycle. Although set up is required, it often takes no more than double the time required to do the process manually, and you have to set up a service or process only once. Accelerated delivery gives you a ton of flexibility.</li>\r\n \t<li><strong>Increasing security. </strong>Cloud providers make security part of their offering. Microsoft Azure, Amazon web Services (AWS), and Google Cloud Platform (GCP) meet different compliance standards and provide policies, services, and controls that will help you reinforce your system’s security. In addition, if you utilize a deployment pipeline tool within the cloud, you can add security checks before new code is released to an environment, thereby reducing the possibility of security vulnerabilities.</li>\r\n \t<li><strong>Decreasing failure.</strong> Through cloud build and release pipelines, your team is capable of creating automated tests to confirm functionality, code quality, security, and compliance of any code introduced into your systems. This capability decreases the possibility of bugs while also reducing the risk of problematic deployments.</li>\r\n \t<li><strong>Building more resilient and scalable systems. </strong>The <a href=\"https://www.dummies.com/programming/cloud-computing/how-to-scale-the-cloud-in-cloud-computing/\">cloud allows organizations to scale up</a>, scale out, and increase capacity within seconds. This elastic scaling enables spinning up compute and storage resources as needed, no matter where in the world your users interact with your product. This approach permits you to better serve your customers and more efficiently manage infrastructure costs.</li>\r\n</ul>\r\n<p class=\"article-tips remember\"><a href=\"https://www.dummies.com/business/operations-management/moving-to-devops-processes-from-a-line-to-a-circuit/\">The DevOps approach is all about creating a cyclical method</a> where you benefit and learn from the process each time you go through it.</p>","description":"<a href=\"https://www.dummies.com/business/operations-management/choosing-the-best-cloud-service-provider-features-and-tools-for-devops/\">Marrying the cloud with your DevOps practice</a> can accelerate the work you’ve already accomplished. When used together, both DevOps and the cloud can drive your company’s digital transformation.\r\n\r\nYou’ll see results as long as you emphasize the priorities of DevOps: people, process, and technology. The cloud — along with other tooling — falls squarely into the technical part of your DevOps implementation.\r\n\r\n[caption id=\"attachment_265676\" align=\"aligncenter\" width=\"556\"]<img class=\"wp-image-265676 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops-cloud.jpg\" alt=\"DevOps and cloud computing\" width=\"556\" height=\"171\" /> ©Shutterstock/Trueffelpix[/caption]\r\n\r\nCloud computing enables automation for your developers and operations folks in a way that simply isn’t possible when you manage your own physical infrastructure. Provisioning infrastructure through code in the cloud — which is a system referred to as Infrastructure as Code (IaC) — enables you to create templates and repeatable processes.\r\n\r\nWhen you track changes to your infrastructure code through source control, you permit your team to operate seamlessly and track changes. IaC is much more repeatable and automated — not to mention faster — than having engineers click around a portal.\r\n<p class=\"article-tips warning\">Even instructions on the portal aren’t fool-proof. You risk making small, yet significant, changes to infrastructure setup if you consistently build the same setup through the portal rather than a YAML file.</p>\r\n\r\n<h2 id=\"tab1\" >Taking your DevOps culture to the cloud</h2>\r\nPeople often speak about DevOps <a href=\"https://www.dummies.com/programming/cloud-computing/managing-cloud-computing-resources/\">and cloud computing</a> as if they are intertwined and, in many ways, they are. Be aware, however, that you can adopt DevOps — or begin to transform your engineering organization — without going all in on the cloud. It’s perfectly reasonable that you first establish the standards, practices, and processes for your team before you shift your infrastructure to a cloud provider.\r\n\r\nAlthough people speak as though everyone is already on the cloud, you are still on the cutting edge of the shift to the cloud. Cloud providers are becoming more robust by the day, and engineering companies are slowly transitioning their self-hosted services to the cloud. With that in mind, an organization seeking to adopt DevOps would be wise to strongly consider utilizing the services of a major cloud provider.\r\n\r\nAnyone with DevOps experience wouldn’t likely call the cloud a NoOps solution, but they might call it OpsLite. Cloud services often abstract complex operations architecture in a way that makes that architecture more friendly to developers and empowers them to take more ownership of their components.\r\n\r\nIf you’ve ever grumbled that developers should be included in an on-call rotation, you’re right — they should be. Including developers in the on-call rotation is a great way to ramp up their knowledge of deploying code as well as managing and provisioning the infrastructure on which their services run. This reduces operational overhead and frees up the time of operations specialists to work on proactive solutions.\r\n<h2 id=\"tab2\" >Learning through DevOps adoption</h2>\r\nIf your team is capable of adopting DevOps and shifting toward utilizing cloud computing at the same time, you can use these shifts as learning opportunities for both developers and operations folks.\r\n\r\nWhile your team shifts to the cloud, developers have the opportunity to familiarize operations specialists with code — perhaps even specific languages — and source control, and operations folks can teach developers about infrastructure. When both groups are both the experts and the newbies, neither group has to deal much of an ego-damaging transfer of knowledge.\r\n\r\nThe trust, rapport, and healthy dynamic that emerge from these interactions will galvanize your team and last much longer than the immediate work took. In many ways, you’re reinforcing your DevOps culture through tooling your <a href=\"https://www.dummies.com/business/operations-management/why-devops-matters-11-ways-devops-benefits-your-organization/\">DevOps practice</a>.\r\n<h2 id=\"tab3\" >Benefitting from cloud services in your DevOps initiative</h2>\r\nModern operations is changing and evolving. Your competitors are already adopting new ways of innovating faster and accelerating their software delivery life cycles.\r\n\r\nCloud computing represents a big shift from the traditional way businesses think about IT resources. By outsourcing much of your infrastructure and operations requirements to a cloud provider, you reduce overhead and free your team to focus on delivering better software to your users.\r\n\r\nHere are six common reasons organizations are turning to cloud computing services:\r\n<ul>\r\n \t<li><strong>Improving affordability.</strong> Cloud providers allow you to select only the services you need, when you need them. Imagine if you could access cable TV but pay for only the channels you watch. You’d love that, wouldn’t you? Most DevOps team members would! Cloud providers do just that while also providing you with the most up-to-date computing hardware housed in physically secure datacenters.</li>\r\n \t<li><strong>Automating deployments.</strong> Changes to the system — deployments — are the most common contributors of outages or service disruptions. Cloud providers make releasing code an automated, repeatable process, significantly decreasing the probability of making mistakes in manual releases and introducing bugs. Automated deployments also enables developers to release their own code. Ultimately, automated deployments simplify the process while reducing site downtime and reactionary triaging in production.</li>\r\n \t<li><strong>Accelerating delivery.</strong> The cloud reduces friction along nearly every phase of the software delivery life cycle. Although set up is required, it often takes no more than double the time required to do the process manually, and you have to set up a service or process only once. Accelerated delivery gives you a ton of flexibility.</li>\r\n \t<li><strong>Increasing security. </strong>Cloud providers make security part of their offering. Microsoft Azure, Amazon web Services (AWS), and Google Cloud Platform (GCP) meet different compliance standards and provide policies, services, and controls that will help you reinforce your system’s security. In addition, if you utilize a deployment pipeline tool within the cloud, you can add security checks before new code is released to an environment, thereby reducing the possibility of security vulnerabilities.</li>\r\n \t<li><strong>Decreasing failure.</strong> Through cloud build and release pipelines, your team is capable of creating automated tests to confirm functionality, code quality, security, and compliance of any code introduced into your systems. This capability decreases the possibility of bugs while also reducing the risk of problematic deployments.</li>\r\n \t<li><strong>Building more resilient and scalable systems. </strong>The <a href=\"https://www.dummies.com/programming/cloud-computing/how-to-scale-the-cloud-in-cloud-computing/\">cloud allows organizations to scale up</a>, scale out, and increase capacity within seconds. This elastic scaling enables spinning up compute and storage resources as needed, no matter where in the world your users interact with your product. This approach permits you to better serve your customers and more efficiently manage infrastructure costs.</li>\r\n</ul>\r\n<p class=\"article-tips remember\"><a href=\"https://www.dummies.com/business/operations-management/moving-to-devops-processes-from-a-line-to-a-circuit/\">The DevOps approach is all about creating a cyclical method</a> where you benefit and learn from the process each time you go through it.</p>","blurb":"","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[{"label":"Taking your DevOps culture to the cloud","target":"#tab1"},{"label":"Learning through DevOps adoption","target":"#tab2"},{"label":"Benefitting from cloud services in your DevOps initiative","target":"#tab3"}],"relatedArticles":{"fromBook":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}},{"articleId":265651,"title":"Interview Techniques for Building a DevOps Team: Getting the Right Technical Skills","slug":"interview-techniques-for-building-a-devops-team-getting-the-right-technical-skills","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265651"}}],"fromCategory":[{"articleId":265680,"title":"Tips for Improving Engineering Performance with DevOps","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}},{"articleId":265651,"title":"Interview Techniques for Building a DevOps Team: Getting the Right Technical Skills","slug":"interview-techniques-for-building-a-devops-team-getting-the-right-technical-skills","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265651"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281681,"slug":"devops-for-dummies","isbn":"9781119552222","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119552222/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/1119552222-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/devops-for-dummies-cover-9781119552222-203x255.jpg","width":203,"height":255},"title":"DevOps For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"30388\">Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren't technical, but human. She's worked with both cutting-edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. </p>","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119552222&quot;]}]\" id=\"du-slot-63221ab729363\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119552222&quot;]}]\" id=\"du-slot-63221ab729bd6\"></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":null,"lifeExpectancySetFrom":null,"dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":265675},{"headers":{"creationTime":"2019-11-12T20:26:20+00:00","modifiedTime":"2019-11-12T20:26:20+00:00","timestamp":"2022-09-14T18:17:23+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":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"Tips for Improving Engineering Performance with DevOps","strippedTitle":"tips for improving engineering performance with devops","slug":"tips-for-improving-engineering-performance-with-devops","canonicalUrl":"","seo":{"metaDescription":"Improving your engineering peformance with DevOps can have organization-wide benefits. Use this guide to learn how to make those adjustments.","noIndex":0,"noFollow":0},"content":"<a href=\"https://www.dummies.com/business/operations-management/why-devops-matters-11-ways-devops-benefits-your-organization/\">Improving engineering performance as part of the DevOps process can have sweeping impacts on the entire business</a>. Streamlining the development life cycle and removing bottlenecks will serve to accelerate the overall performance of the business — ultimately increasing the bottom line. And if you think, as a DevOps engineer, that you shouldn’t have to care about the business performance, you’re wrong.\r\n\r\nAccording to DevOps Research and Assessment (DORA), high-performing DevOps teams consistently outpace their competitors in four key areas:\r\n<ul>\r\n \t<li><strong>Deployment frequency:</strong> This term refers to how often your engineers can deploy code. Improving performance aligns with deploying multiple times per day as desired.</li>\r\n \t<li><strong>Lead time:</strong> Lead time is how long you take to go from committing new code to running that code in a production environment. The highest performers, according to DORA, have a lead time of under an hour, whereas average performers need up to a month.</li>\r\n \t<li><strong>MTTR</strong> <strong>(Mean Time to Recover):</strong> MTTR refers to how long you take to restore a service after an incident or outage occurs. Ideally, you want to aim for under an hour. An outage costs serious money, especially when it impacts profit centers of the application. Long outages destroy trust, decrease morale, and imply additional organizational challenges.</li>\r\n \t<li><strong>Change failure:</strong> This term refers to the rate at which changes to your system negatively impact the performance. Although you will never reach a change failure rate of zero percent, you can absolutely approach zero by increasing your automated tests and relying on a deployment pipeline with continuous integration checks and gates — all of which ensure quality.</li>\r\n</ul>\r\n<h2 id=\"tab1\" >Eliminating perfection as a measure of DevOps success</h2>\r\n<a href=\"https://www.dummies.com/business/operations-management/devops-for-dummies-cheat-sheet/\">DevOps</a> relies on the mantra “Done is better than perfect.” It seems to be one of these impossible-to-attribute quotations, but the words nonetheless speak truth. Attempting to attain perfection is an enemy of effectiveness and productivity.\r\n\r\nMost engineers, including those of the DevOps variety, suffer from some version of analysis-paralysis — a mental affliction that limits your productivity in an attempt to overanalyze your work and sidestep any potential mishap.\r\n\r\nTraining imperfection into your work requires you to embrace the possibility of failure and the inevitability of refactoring. Creating feedback loops around the customer and looping back to various stages of the pipeline are primary tenants of DevOps. In DevOps, you’re connecting the ends to bend the line into a circle.\r\n\r\nWhen you think iteratively and circularly, pushing out code that’s not perfect seems a lot less scary because the code isn’t carved into stone. Instead, it’s in a temporary state that DevOps engineers improve frequently as you gather more data and feedback.\r\n<h2 id=\"tab2\" >Designing small teams for DevOps</h2>\r\nYou’ve likely heard of Amazon’s “two-pizza” teams. The concept broadly speaks to the importance of small-sized teams. Now, the exact number of people that comprise a two-pizza team varies according to your appetites.\r\n\r\nIt’s a good idea to keep teams under 12 people. When a group approaches 9, 10, or 11 people, try splitting it into two. The sweet spot for group size is around 4–6 people. Your exact number may vary depending on the people involved, but the point is this: When groups get too large, communication becomes challenging, cliques form, and the teamwork suffers.\r\n\r\nHere’s one other bonus goal when <a href=\"https://www.dummies.com/business/operations-management/how-to-form-devops-teams-in-your-organization/\">forming DevOps teams</a>: even numbers. It’s a good idea to give people a “buddy” at work — someone they can trust above all others. In even-numbered groups, everyone has a buddy and no one is left out. You can pair off evenly and it tends to work well. Forming even-numbered groups isn’t always achievable because of personnel numbers, but it’s something to keep in mind.\r\n<p class=\"article-tips tech\">A formula for measuring communication channels is n (n – 1) / 2, where n represents the number of people. You can estimate how complex your team’s communication will be by doing a simple calculation. For example, the formula for a two-pizza team of 10 would be 10 (10 – 1) / 2 = 45 communication channels. You can imagine how complex larger teams can become.</p>\r\n\r\n<h2 id=\"tab3\" >Tracking your DevOps work</h2>\r\nIf you can get over the small overhead of jotting down what you do every day, the outcomes will provide you with exceptional value. Having real data on how you use your time assists you in tracking you and your team’s efficacy. As Peter Drucker famously said, “If you can't measure it, you can't improve it.”\r\n\r\nHow many days do you leave work feeling like you did nothing? You just had meeting after meeting or random interruptions all day. You’re not alone. Many workers have the same problem. It can be difficult to track your progress and therefor your productivity. The divergence between our feelings of efficacy and the reality of our efficacy is dangerous territory for any DevOps team.\r\n\r\nTry using pen and paper rather than some automated tool for this. Yes, you can use software to track how you use your time on your computer. It can tell you when you’re reading email, when you’re slacking, and when you’re coding, but it lacks nuance and often misses or incorrectly categorizes large chunks of time.\r\n\r\nAfter you have an idea of what you’re doing and when, you can start to identify which activities fall into which quadrants of the <a href=\"https://www.eisenhower.me/eisenhower-matrix/\">Eisenhower Decision Matrix</a>. What busy work are you doing routinely that provides no value to you or the organization?\r\n<h2 id=\"tab4\" >Reducing friction in DevOps projects</h2>\r\nOne of the best things a manager can do for a DevOps engineering team is to leave them alone. Hire curious engineers who are capable of solving problems independently and then let them do their job. The more you can reduce the friction that slows their engineering work, the more effective your team will be.\r\n\r\nReducing friction includes the friction that exists between teams — especially operations and development. Don’t forget specialists like security, too.\r\n\r\nAligning goals and incentives increases velocity. If everyone is focused on achieving the same things, they can join together as a team and move methodically toward those goals.\r\n<h2 id=\"tab5\" >Humanizing alerting for DevOps success</h2>\r\nEvery engineering team has alerts on actions or events that don’t matter. Having all those alerts desensitizes engineers to the truly important alerts. Many engineers have becomes conditioned to ignore email alerts because of an overabundance of messages.\r\n\r\nAlert fatigue ails many engineering organizations and comes at a high cost. If you’re inundated daily, picking out the important from a sea of the unimportant is impossible. You could even say that these messages are urgent but not important . . . .\r\n<p class=\"article-tips warning\">Email is not an ideal vehicle for alerting because it’s not time sensitive (many people check email only a few times a day) and it’s easily buried in other minutiae.</p>\r\nApplying what you’ve learned about rapid iteration, reevaluate your alerting thresholds regularly to ensure an appropriate amount of coverage without too many false positives. Identifying which alerts aren’t necessary takes time and work. And it’ll probably be a little scary, right? Deleting an alert or increasing a threshold always comes with a bit of risk.\r\n\r\nWhat if the alert is actually important? If it is, you’ll figure it out. Remember, you can’t <a href=\"https://www.dummies.com/business/operations-management/top-10-devops-pitfalls-why-your-software-projects-fail/\">fear failure in a DevOps organization</a>. You must embrace it so that you can push forward and continuously improve. If you let fear guide your decisions, you stagnate — as an engineer and as an organization.","description":"<a href=\"https://www.dummies.com/business/operations-management/why-devops-matters-11-ways-devops-benefits-your-organization/\">Improving engineering performance as part of the DevOps process can have sweeping impacts on the entire business</a>. Streamlining the development life cycle and removing bottlenecks will serve to accelerate the overall performance of the business — ultimately increasing the bottom line. And if you think, as a DevOps engineer, that you shouldn’t have to care about the business performance, you’re wrong.\r\n\r\nAccording to DevOps Research and Assessment (DORA), high-performing DevOps teams consistently outpace their competitors in four key areas:\r\n<ul>\r\n \t<li><strong>Deployment frequency:</strong> This term refers to how often your engineers can deploy code. Improving performance aligns with deploying multiple times per day as desired.</li>\r\n \t<li><strong>Lead time:</strong> Lead time is how long you take to go from committing new code to running that code in a production environment. The highest performers, according to DORA, have a lead time of under an hour, whereas average performers need up to a month.</li>\r\n \t<li><strong>MTTR</strong> <strong>(Mean Time to Recover):</strong> MTTR refers to how long you take to restore a service after an incident or outage occurs. Ideally, you want to aim for under an hour. An outage costs serious money, especially when it impacts profit centers of the application. Long outages destroy trust, decrease morale, and imply additional organizational challenges.</li>\r\n \t<li><strong>Change failure:</strong> This term refers to the rate at which changes to your system negatively impact the performance. Although you will never reach a change failure rate of zero percent, you can absolutely approach zero by increasing your automated tests and relying on a deployment pipeline with continuous integration checks and gates — all of which ensure quality.</li>\r\n</ul>\r\n<h2 id=\"tab1\" >Eliminating perfection as a measure of DevOps success</h2>\r\n<a href=\"https://www.dummies.com/business/operations-management/devops-for-dummies-cheat-sheet/\">DevOps</a> relies on the mantra “Done is better than perfect.” It seems to be one of these impossible-to-attribute quotations, but the words nonetheless speak truth. Attempting to attain perfection is an enemy of effectiveness and productivity.\r\n\r\nMost engineers, including those of the DevOps variety, suffer from some version of analysis-paralysis — a mental affliction that limits your productivity in an attempt to overanalyze your work and sidestep any potential mishap.\r\n\r\nTraining imperfection into your work requires you to embrace the possibility of failure and the inevitability of refactoring. Creating feedback loops around the customer and looping back to various stages of the pipeline are primary tenants of DevOps. In DevOps, you’re connecting the ends to bend the line into a circle.\r\n\r\nWhen you think iteratively and circularly, pushing out code that’s not perfect seems a lot less scary because the code isn’t carved into stone. Instead, it’s in a temporary state that DevOps engineers improve frequently as you gather more data and feedback.\r\n<h2 id=\"tab2\" >Designing small teams for DevOps</h2>\r\nYou’ve likely heard of Amazon’s “two-pizza” teams. The concept broadly speaks to the importance of small-sized teams. Now, the exact number of people that comprise a two-pizza team varies according to your appetites.\r\n\r\nIt’s a good idea to keep teams under 12 people. When a group approaches 9, 10, or 11 people, try splitting it into two. The sweet spot for group size is around 4–6 people. Your exact number may vary depending on the people involved, but the point is this: When groups get too large, communication becomes challenging, cliques form, and the teamwork suffers.\r\n\r\nHere’s one other bonus goal when <a href=\"https://www.dummies.com/business/operations-management/how-to-form-devops-teams-in-your-organization/\">forming DevOps teams</a>: even numbers. It’s a good idea to give people a “buddy” at work — someone they can trust above all others. In even-numbered groups, everyone has a buddy and no one is left out. You can pair off evenly and it tends to work well. Forming even-numbered groups isn’t always achievable because of personnel numbers, but it’s something to keep in mind.\r\n<p class=\"article-tips tech\">A formula for measuring communication channels is n (n – 1) / 2, where n represents the number of people. You can estimate how complex your team’s communication will be by doing a simple calculation. For example, the formula for a two-pizza team of 10 would be 10 (10 – 1) / 2 = 45 communication channels. You can imagine how complex larger teams can become.</p>\r\n\r\n<h2 id=\"tab3\" >Tracking your DevOps work</h2>\r\nIf you can get over the small overhead of jotting down what you do every day, the outcomes will provide you with exceptional value. Having real data on how you use your time assists you in tracking you and your team’s efficacy. As Peter Drucker famously said, “If you can't measure it, you can't improve it.”\r\n\r\nHow many days do you leave work feeling like you did nothing? You just had meeting after meeting or random interruptions all day. You’re not alone. Many workers have the same problem. It can be difficult to track your progress and therefor your productivity. The divergence between our feelings of efficacy and the reality of our efficacy is dangerous territory for any DevOps team.\r\n\r\nTry using pen and paper rather than some automated tool for this. Yes, you can use software to track how you use your time on your computer. It can tell you when you’re reading email, when you’re slacking, and when you’re coding, but it lacks nuance and often misses or incorrectly categorizes large chunks of time.\r\n\r\nAfter you have an idea of what you’re doing and when, you can start to identify which activities fall into which quadrants of the <a href=\"https://www.eisenhower.me/eisenhower-matrix/\">Eisenhower Decision Matrix</a>. What busy work are you doing routinely that provides no value to you or the organization?\r\n<h2 id=\"tab4\" >Reducing friction in DevOps projects</h2>\r\nOne of the best things a manager can do for a DevOps engineering team is to leave them alone. Hire curious engineers who are capable of solving problems independently and then let them do their job. The more you can reduce the friction that slows their engineering work, the more effective your team will be.\r\n\r\nReducing friction includes the friction that exists between teams — especially operations and development. Don’t forget specialists like security, too.\r\n\r\nAligning goals and incentives increases velocity. If everyone is focused on achieving the same things, they can join together as a team and move methodically toward those goals.\r\n<h2 id=\"tab5\" >Humanizing alerting for DevOps success</h2>\r\nEvery engineering team has alerts on actions or events that don’t matter. Having all those alerts desensitizes engineers to the truly important alerts. Many engineers have becomes conditioned to ignore email alerts because of an overabundance of messages.\r\n\r\nAlert fatigue ails many engineering organizations and comes at a high cost. If you’re inundated daily, picking out the important from a sea of the unimportant is impossible. You could even say that these messages are urgent but not important . . . .\r\n<p class=\"article-tips warning\">Email is not an ideal vehicle for alerting because it’s not time sensitive (many people check email only a few times a day) and it’s easily buried in other minutiae.</p>\r\nApplying what you’ve learned about rapid iteration, reevaluate your alerting thresholds regularly to ensure an appropriate amount of coverage without too many false positives. Identifying which alerts aren’t necessary takes time and work. And it’ll probably be a little scary, right? Deleting an alert or increasing a threshold always comes with a bit of risk.\r\n\r\nWhat if the alert is actually important? If it is, you’ll figure it out. Remember, you can’t <a href=\"https://www.dummies.com/business/operations-management/top-10-devops-pitfalls-why-your-software-projects-fail/\">fear failure in a DevOps organization</a>. You must embrace it so that you can push forward and continuously improve. If you let fear guide your decisions, you stagnate — as an engineer and as an organization.","blurb":"","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[{"label":"Eliminating perfection as a measure of DevOps success","target":"#tab1"},{"label":"Designing small teams for DevOps","target":"#tab2"},{"label":"Tracking your DevOps work","target":"#tab3"},{"label":"Reducing friction in DevOps projects","target":"#tab4"},{"label":"Humanizing alerting for DevOps success","target":"#tab5"}],"relatedArticles":{"fromBook":[{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}},{"articleId":265651,"title":"Interview Techniques for Building a DevOps Team: Getting the Right Technical Skills","slug":"interview-techniques-for-building-a-devops-team-getting-the-right-technical-skills","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265651"}}],"fromCategory":[{"articleId":265675,"title":"Make More of Your Cloud Tools: Automating DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"Choosing the Best Cloud Service Provider, Features, and Tools for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}},{"articleId":265651,"title":"Interview Techniques for Building a DevOps Team: Getting the Right Technical Skills","slug":"interview-techniques-for-building-a-devops-team-getting-the-right-technical-skills","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265651"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281681,"slug":"devops-for-dummies","isbn":"9781119552222","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119552222/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/1119552222-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119552222/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/devops-for-dummies-cover-9781119552222-203x255.jpg","width":203,"height":255},"title":"DevOps For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"30388\">Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren't technical, but human. She's worked with both cutting-edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. </p>","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"_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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119552222&quot;]}]\" id=\"du-slot-63221ab35d31c\"></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;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119552222&quot;]}]\" id=\"du-slot-63221ab35db78\"></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":null,"lifeExpectancySetFrom":null,"dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":265680}],"_links":{"self":{"self":"https://dummies-api.dummies.com/v2/categories/33610/categoryArticles?sortField=time&sortOrder=1&size=10&offset=0"},"next":{"self":"https://dummies-api.dummies.com/v2/categories/33610/categoryArticles?sortField=time&sortOrder=1&size=10&offset=10"},"last":{"self":"https://dummies-api.dummies.com/v2/categories/33610/categoryArticles?sortField=time&sortOrder=1&size=10&offset=196"}}},"objectTitle":"","status":"success","pageType":"article-category","objectId":"33610","page":1,"sortField":"time","sortOrder":1,"categoriesIds":[],"articleTypes":[],"filterData":{"categoriesFilter":[{"itemId":0,"itemName":"All Categories","count":206}],"articleTypeFilter":[{"articleType":"All Types","count":206},{"articleType":"Articles","count":189},{"articleType":"Cheat Sheet","count":9},{"articleType":"Step by Step","count":8}]},"filterDataLoadedStatus":"success","pageSize":10},"adsState":{"pageScripts":{"headers":{"timestamp":"2023-02-03T05: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":291934,"title":"For the Exam-Season Crammer","hasSubCategories":false,"url":"/collection/for-the-exam-season-crammer-291934"},{"collectionId":287569,"title":"For the Hopeless Romantic","hasSubCategories":false,"url":"/collection/for-the-hopeless-romantic-287569"},{"collectionId":296450,"title":"For the Spring Term Learner","hasSubCategories":false,"url":"/collection/for-the-spring-term-student-296450"}],"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/general-programming-web-design-33610/","hash":"","query":{},"params":{"category":"general-programming-web-design-33610"},"fullPath":"/category/articles/general-programming-web-design-33610/","meta":{"routeType":"category","breadcrumbInfo":{"suffix":"Articles","baseRoute":"/category/articles"},"prerenderWithAsyncData":true},"from":{"name":null,"path":"/","hash":"","query":{},"params":{},"fullPath":"/","meta":{}}},"sfmcState":{"status":"initial"},"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 Exam-Season Crammer
For the Hopeless Romantic
For the Spring Term Learner
Log In
  • Home
  • Technology Articles
  • Programming & Web Design Articles
  • General Programming & Web Design Articles

General Programming & Web Design Articles

How do you customize a PHP server? What is an integrated development environment? Find these and other scattered coding details here.

Articles From General Programming & Web Design

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

Filter Results

206 results
206 results
General Programming & Web Design 11 Ways DevOps Benefits Your Organization

Article / Updated 07-29-2022

When done correctly, DevOps offers significant advantages for your organization. This article presents the key points to know about how DevOps benefits your organization. Use it as a reference to help you persuade your colleagues or to reinforce your understanding of why you chose to go the DevOps route when the road gets bumpy. DevOps helps you accept constant change The tech landscape is an ever-changing environment. Some languages evolve and new ones are created. Frameworks come and go. Infrastructure tooling changes to meet the ever-growing demands for hosting applications more efficiently and delivering services more quickly. Tools continue to abstract low-level computing to reduce engineering overhead. The only constant is change. Your ability to adapt to that change will determine your success as an individual contributor, manager, or executive. Regardless of the role you currently fill at your company or hope to eventually play, it is vital to adapt quickly and remove as much friction from growth as possible. DevOps enables you to adapt and grow by improving communication and collaboration. DevOps embraces the cloud The cloud isn’t the future; it’s now. Although you may still be transitioning or not yet ready to move, realize that the cloud is the way forward for all but a few companies. It gives you more flexibility than traditional infrastructure, lowers the stress of operations, and (usually) costs significantly less because of a pay-as-you-go pricing structure. Public, private, and hybrid clouds give you endless possibilities to run your business better. The ability to spin up (launch) resources within minutes is something most companies have never experienced prior to the cloud. This agility provided by the cloud goes hand in hand with DevOps. Omri Gazitt from Puppet, a company focused on automation and configuration management, put it best: “As organizations move to the cloud, they are revisiting their core assumptions about how they deliver software.” With the cloud, APIs connect every service, platform, and infrastructure tool so that you can manage your resources and application seamlessly. As you migrate to the cloud, you can reevaluate past architecture decisions and slowly transition your application and system to be cloud-native, or designed with the cloud in mind. DevOps helps you hire the best Because of increased demand, great engineers are scarce. There simply aren’t enough engineers to fill all the jobs currently open or to meet market demand over the next decade and beyond. Although finding engineers can be difficult, it’s not impossible, especially if you focus on discovering engineers who embrace curiosity and aren’t afraid to fail. If you implement DevOps in your overall engineering culture, you can level up engineers and train them in the methodology and technology that supports continuous improvement. It’s difficult to measure potential in an interview. Usually, talent whispers. The most talented engineers typically aren’t gregarious or braggarts; they let their work speak for them. DevOps enables you to listen more closely to the personal and professional interests of the engineers you interview. Try choosing candidates based on their level of curiosity, communication skills, and enthusiasm. Those qualities can see your team through the troughs of fear, uncertainty, and doubt. They can carry the team through hard decisions, made within constraints, in their attempt to solve difficult problems. You can teach someone a skill, but teaching someone how to learn is an entirely different matter. The learning culture you create in your DevOps organization enables you to prioritize a growth mindset over technical prowess. In DevOps, hiring for the team is critical. Every individual is a piece of a whole, and the team must have balance holistically. Achieving this balance means that sometimes you don’t hire the “best” engineer, you hire the best engineer for the team. When you hire for the DevOps team you can, like draft horses yoked together, pull more weight than you could individually. With DevOps, you can multiply the individual components of your team and, as a whole, create a powerhouse of a team. DevOps keeps you competitive The yearly State of DevOps Report released by DevOps Research and Assessment (DORA) makes it clear: Companies across the world are using DevOps to adjust their engineering practices and are reaping the benefits. They see increases in engineering production and reductions in cost. With DevOps, these companies are shifting from clunky processes and systems to a streamlined way of developing software focused on the end user. DevOps enables companies to create reliable infrastructure and utilize that infrastructure to release software more quickly and more reliably. The bottom line is this: High-performing organizations use DevOps, and they’re crushing their competition by increasing their deployment frequency and significantly decreasing their failures that occur because of changes in the system. If you want to compete, you must adopt the solid DevOps methodologies. Maybe not all of them, and definitely not all at one time — but the time to wait and see whether DevOps is worthwhile has passed. DevOps helps solve human problems Humans have reached a point in our evolution at which technology is evolving faster than our brains. Thus the greatest challenges humans face are due to human limitations — not the limitations of software or infrastructure. Unlike other software development methodologies, DevOps focuses holistically on your sociotechnical system. Embracing DevOps requires a shift in culture and mindset. But if you achieve a DevOps culture and mindset, you and your organization reap almost limitless benefits. When engineers are empowered to explore, free of the pressure and fear of failure, amazing things happen. Engineers discover new ways to solve problems. They approach projects and problems with a healthy mindset and work together more fluidly, without needless and negative competition. DevOps challenges employees DevOps accelerates the growth of individual engineers as well as that of the engineering team as a whole. Engineers are smart people. They’re also naturally curious. A great engineer who embraces a growth mindset needs new challenges after mastering a particular technology, tool, or methodology or they often feel stagnant. They need to feel as if their brain and skill sets are being stretched — not to the point of being overwhelmed or stressed, but enough to feel that they’re growing. That is the tension described by Dan Pink in Drive. If you can strike that balance, your engineers will thrive — as individuals and as a team. The methodology of DevOps promotes T-shaped skills, which means that engineers specialize in one area with deep knowledge and have a broad understanding of many other areas. This approach allows engineers to explore other areas of interest. Perhaps a Python engineer has an interest in cloud infrastructure, for example. No other engineering methodology permits and encourages engineers to explore as much as DevOps does, and it’s a huge contributor to hiring and retaining talent. DevOps bridges gaps One of challenges of modern technology companies is this gap between the needs of the business and the needs of engineering. In a traditional company, with traditional management strategies, a natural friction exists between engineering and departments like marketing, sales, and business development. This friction stems from a lack of alignment. Each department is measured by different indicators of success. DevOps seeks to unify each department of a business and create a shared understanding and respect. That respect for each other’s jobs and contributions is what allows every person in the company to thrive. It removes the friction and improves acceleration. Think about a team of sled dogs. If each dog is moving in separate directions, the sled goes nowhere. Now imagine the dogs working together, focused on moving forward — together. When you lack friction internally, the only challenges you face are external, and external challenges are almost always more manageable than internal strife. DevOps lets you fail well Failure is inevitable. It’s simply unavoidable. Predicting every way in which your system can fail is impossible because of all the unknowns. (And it can fail spectacularly, can’t it?) Instead of avoiding failure at all costs and feeling crushed when failure does occur, you can prepare for it. DevOps prepares organizations to respond to failure, but not in a panicky, stress-induced way. Incidents will always involve some level of stress. At some point along your command structure, an executive is likely to scream at the money being lost during a service outage. But you can reduce the stress your team experiences by using failure as a way of learning and adapting your system to become more resilient. Each incident is an opportunity to improve and grow, as individuals and as a team. DevOps embraces kaizen, the art of continuous improvement. When your team experiences flow in their work, they can make tiny choices every day that contribute to long-term growth and, ultimately, a better product. DevOps lets you continuously improve Continuous improvement is a key ingredient in DevOps. Use the visualization of a never-ending cycle when applying DevOps to your organization. The cycle shouldn’t invoke fears through thoughts of Sisyphus, pushing a boulder up a hill for all eternity. Instead, think of this cycle as movement, like a snowball rolling downhill, gathering momentum and mass. As you adopt DevOps and integrate more and more of its core tenets into your everyday workflow, you’ll witness this acceleration first-hand. The cycle of continuous improvement should always center around the customer. You must continuously think about the end user and integrate feedback into your software delivery life cycle. Fundamental to this cycle is CI/CD. Adopting CI/CD isn’t an all-or-nothing requirement of DevOps; instead, it’s a slow process of implementation. You should focus on mastering continuous integration first. Encourage engineers to share code freely and merge code frequently. This approach prevents isolation and silos from becoming blockers in your engineering organization. After your organization masters continuous integration, move on to continuous delivery, the practice of automating software delivery. This step requires automation because code will move through multiple checks to ensure quality. After all your code is secure and accessible in a source code repository, you can begin to implement small changes continuously. Your goal is to remove manual barriers and improve your team’s ability to discover and fix bugs without customer impact. DevOps automates toil Acceleration and increased efficacy are at the core of the DevOps methodology. By automating labor-intensive manual processes, DevOps frees engineers to work on projects that make the software and systems more reliable and easily maintained — without the chaos of unexpected service interruptions. Site reliability engineering (SRE) deals with toil, which is the work required to keep services up and running but is manual and repetitive. Toil can be automated and lacks long-term value. Perhaps most important of all, toil scales linearly, which limits growth. Note that toil doesn’t refer to the overhead of administrative necessities such as meetings and planning. This type of work, if implemented with a DevOps mentality, is beneficial to the long-term acceleration of your team. One of the core tenets of tooling your DevOps practice is automation. You can automate your deployment pipeline to include a verbose test suite as well as other gates through which code must pass to be released. In many ways, SRE is the next logical step in the evolution of DevOps and should be your next step after you and your organization master the core concepts of DevOps and implement the practice in your team. DevOps accelerates delivery The software delivery life cycle has evolved from the slow and linear Waterfall process to an agile and continuous loop of DevOps. You no longer think up a product, develop it fully, and then release it to customers, hoping for its success. Instead, you create a feedback loop around the customer and continuously deliver iterative changes to your products. This connected circuit enables you to continuously improve your features and ensure that the customer is satisfied with what you’re delivering. When you connect all the dots and fully adopt DevOps in your organization, you watch as your team can deliver better software faster. The changes will be small at first, just like the changes you release. But over time, those seemingly insignificant changes add up and create a team that accelerates its delivery of quality software.

View Article
General Programming & Web Design How to Fix Noncompliant Code on Your Web Page

Article / Updated 05-31-2022

For each web coding issue identified by a validator, you need to determine what course of action to take. Although some culprits that repeatedly crop up are easy to fix, such as missing alt text and </span> tags, you’re bound to find coding issues that completely baffle and stump you. For instance, if you get an error message that reads <span class="code">XML Parsing Error: Opening and ending tag mismatch: br line 52 and body</span>, it might be difficult to figure out what that means, let alone why it was caused and how you should fix it. As a strategy then, try to fix the issues within the code from the top down, as they’re listed in the validation results, because sometimes fixing one issue resolves another. With the XML parsing error, that issue might disappear when you correct for an omitted closing element on a <span class="code"><br /></span> tag listed earlier in the error results. The best way to find out how to code better and make fewer mistakes before validation testing is to make lots of honest mistakes and figure out how to correct them on your own. Most often, you can fix noncompliant code by hand or with the help of a good HTML editor. To help you identify some of the more common coding mistakes, here several code issues along with suggestions about how to fix them. <table> <tbody> <tr> <th>Problem</th> <th>Solution</th> </tr> <tr> <td> <pre class="code">alt</pre> text attribute missing from <pre class="code">&lt;img&gt;</pre> tag</td> <td>Add the alternative text attribute, either with or without a description, as in <pre class="code">&lt;img src="images/logo.gif" width="150" height="150" alt="Pete’s Pizza"&gt; &lt;img src="images/flourish.gif" width="200" height="150" alt=""&gt;</pre> .</td> </tr> <tr> <td> <pre class="code">&lt;noscript&gt;</pre> tags missing from code</td> <td>Add <pre class="code">&lt;noscript&gt;</pre> tags below each instance when JavaScript is present in in-line JavaScript or at the end of the content before the closing body tag. Between the <pre class="code">&lt;noscript&gt;</pre> tags, insert HTML content (text, graphics, media files, and so on) that describes the function of the JavaScript and, when appropriate, how visitors can access the information revealed by it, as shown here: <pre class="code">&lt;script language="JavaScript" src="bookmark.js" type="text/javascript"&gt;&lt;/script&gt;&lt;noscript&gt;The JavaScript used on this page provides a quick link that allows visitors to automatically bookmark this page. As an alternative, please use your browser’s Bookmark This Page feature.&lt;/noscript&gt;</pre> </td> </tr> <tr> <td>Flashing or flickering element(s) detected, such as animated GIFs, Java applets, and other multimedia plug-ins</td> <td>Adjust the speed of any animations to avoid causing the screen to flicker with a frequency between 2 Hz and 55 Hz. Animations that exceed these two measures may cause seizures in visitors with photosensitive epilepsy.</td> </tr> <tr> <td>No <pre class="code">DOCTYPE</pre> specified</td> <td>Add a valid <pre class="code">DOCTYPE</pre> above the opening <pre class="code">&lt;head&gt;</pre> tag.</td> </tr> <tr> <td>No HTTP charset parameter specified</td> <td>This special meta tag specifies the character set used in the HTML code. Some HTML editors include it automatically when generating new blank web pages. If validation finds that this tag is missing from your HTML or XHTML code, insert the following code by hand: <pre class="code">&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;</pre> . For HTML5, insert <pre class="code">&lt;meta charset="utf-8"&gt;</pre> .</td> </tr> <tr> <td>No <pre class="code">&lt;title&gt;</pre> tag specified</td> <td>Add a unique title between <pre class="code">&lt;title&gt;</pre> tags in the head area on each page.</td> </tr> <tr> <td>No <pre class="code">&lt;meta&gt;</pre> tags specified</td> <td>Add meta keywords and meta description tags to the head of each page. These can be identical on every page on the site. If desired, you may also add additional meta tags as needed.</td> </tr> <tr> <td>No Robots tags specified</td> <td>Add the <pre class="code">Robots</pre> <pre class="code">&lt;meta&gt;</pre> tag in the head of the page to instruct web spiders and robots whether to index the page and follow any hyperlinks, such as <pre class="code">&lt;meta name="Robots" content="All"&gt;</pre> .</td> </tr> <tr> <td>Deprecated <pre class="code">&lt;font&gt;</pre> tags detected</td> <td>Move all the presentation markup of the HTML (page, fonts, tables, links, and so on) to an external CSS file and remove all <pre class="code">&lt;font&gt;</pre> tags and HTML and inline formatting attributes.</td> </tr> <tr> <td>Deprecated table height attribute detected</td> <td>Control table cell heights, when necessary, with CSS styles.</td> </tr> <tr> <td>Style attributes detected in the opening <pre class="code">&lt;body&gt;</pre> tag</td> <td>Move <span class="code">body</span> attributes, like margin attributes and background page color, to a BODY tag redefine style in an external CSS file.</td> </tr> <tr> <td> <pre class="code">type</pre> attribute not specified for JavaScript or CSS</td> <td>Add the <pre class="code">type="text/css"</pre> attribute for <pre class="code">&lt;style&gt;</pre> tags and the <pre class="code">type="text/javascript"</pre> attribute for <pre class="code">&lt;script&gt;</pre> tags: <pre class="code">&lt;style type="text/css" &gt;&lt;script type="text/javascript"&gt;</pre> .</td> </tr> <tr> <td>Entity name used instead of entity number</td> <td>Change the entity name to an entity number, such as using <pre class="code">$#169;</pre> instead of <pre class="code">&copy;</pre> to create the copyright symbol (c).</td> </tr> <tr> <td>No background color attribute was specified for a CSS style that specifies text color</td> <td>Provide each style that contains a text <pre class="code">color</pre> attribute with an attending background <pre class="code">color</pre> attribute. The background color should match, or closely match, the background color upon which the text will display on.</td> </tr> </tbody> </table> When you’re finished identifying and adjusting all the noncompliant code identified by the validation tools, and have fixed everything that needed fixing, move on to the retesting and acceptable failure phase of the testing process.

View Article
General Programming & Web Design Beginning Programming All-In-One For Dummies Cheat Sheet

Cheat Sheet / Updated 05-03-2022

If you're just getting started writing computer programs, you need to learn programming branching and looping statements to perform the specific jobs you need for an effective program. Keeping a list of computer programming resources for useful information handy can help, too.

View Cheat Sheet
General Programming & Web Design Virtual & Augmented Reality For Dummies Cheat Sheet

Cheat Sheet / Updated 04-20-2022

The terms virtual reality and augmented reality (and others, like mixed reality and extended reality) are thrown about everywhere today, but do you really know what they mean? Virtual and augmented reality are rapidly changing fields, so it helps to know where they are today and where they may be headed in the future. Finally, seeing how virtual and augmented reality are being used in a variety of industries and how exactly you can experience these technologies is key to your enjoyment.

View Cheat Sheet
General Programming & Web Design PHP, MySQL & JavaScript All-in-One For Dummies Cheat Sheet

Cheat Sheet / Updated 04-20-2022

Working with PHP, MySQL, and JavaScript to create dynamic web applications can be difficult, but if you know a few programming tricks, you can make that job a lot easier. This Cheat Sheet shows you how to extract data from different databases in your PHP programs, filter out unwanted or potentially dangerous data from web forms, quickly find data stored in your MySQL database, and trigger timed events in your JavaScript programs.

View Cheat Sheet
General Programming & Web Design DevOps For Dummies Cheat Sheet

Cheat Sheet / Updated 03-02-2022

A surprising facet of the DevOps engineering practice for software development is that it focuses more on the people and process of an organization than the specific tools or technologies that the engineers choose to utilize. DevOps offers no silver bullet, but it can have a massive impact on your organization and your products as an engineering culture of collaboration, ownership, and learning with the purpose of accelerating the software development lifecycle from ideation to production.

View Cheat Sheet
General Programming & Web Design GitHub For Dummies Cheat Sheet

Cheat Sheet / Updated 02-23-2022

When you first log in to GitHub.com, it can feel overwhelming. What is GitHub? GitHub is more than a place to store your code; it’s a community and a philosophy about how code should be written. When you’re first learning and navigating the website, you should always remember that the goal of GitHub is to provide a secure, collaborative environment where newcomers and experts alike can design, develop, and deploy any software, from programs that say “Hello World” to code that sequences human proteins to help cure major infectious diseases around the world. To be a part of this community, you just have to be an effective communicator, find and create collaborative projects, and know how to find the help you need, when you need it.

View Cheat Sheet
General Programming & Web Design PHP, MySQL, JavaScript, & HTML5 All-in-One For Dummies Cheat Sheet

Cheat Sheet / Updated 02-15-2022

Create web documents and websites by knowing basic HTML elements, PHP statements and functions, and more. Become familiar with these special programming languages, which you can use to build dynamic websites that work with the MySQL database.

View Cheat Sheet
General Programming & Web Design Make More of Your Cloud Tools: Automating DevOps in the Cloud

Article / Updated 12-18-2019

Marrying the cloud with your DevOps practice can accelerate the work you’ve already accomplished. When used together, both DevOps and the cloud can drive your company’s digital transformation. You’ll see results as long as you emphasize the priorities of DevOps: people, process, and technology. The cloud — along with other tooling — falls squarely into the technical part of your DevOps implementation. Cloud computing enables automation for your developers and operations folks in a way that simply isn’t possible when you manage your own physical infrastructure. Provisioning infrastructure through code in the cloud — which is a system referred to as Infrastructure as Code (IaC) — enables you to create templates and repeatable processes. When you track changes to your infrastructure code through source control, you permit your team to operate seamlessly and track changes. IaC is much more repeatable and automated — not to mention faster — than having engineers click around a portal. Even instructions on the portal aren’t fool-proof. You risk making small, yet significant, changes to infrastructure setup if you consistently build the same setup through the portal rather than a YAML file. Taking your DevOps culture to the cloud People often speak about DevOps and cloud computing as if they are intertwined and, in many ways, they are. Be aware, however, that you can adopt DevOps — or begin to transform your engineering organization — without going all in on the cloud. It’s perfectly reasonable that you first establish the standards, practices, and processes for your team before you shift your infrastructure to a cloud provider. Although people speak as though everyone is already on the cloud, you are still on the cutting edge of the shift to the cloud. Cloud providers are becoming more robust by the day, and engineering companies are slowly transitioning their self-hosted services to the cloud. With that in mind, an organization seeking to adopt DevOps would be wise to strongly consider utilizing the services of a major cloud provider. Anyone with DevOps experience wouldn’t likely call the cloud a NoOps solution, but they might call it OpsLite. Cloud services often abstract complex operations architecture in a way that makes that architecture more friendly to developers and empowers them to take more ownership of their components. If you’ve ever grumbled that developers should be included in an on-call rotation, you’re right — they should be. Including developers in the on-call rotation is a great way to ramp up their knowledge of deploying code as well as managing and provisioning the infrastructure on which their services run. This reduces operational overhead and frees up the time of operations specialists to work on proactive solutions. Learning through DevOps adoption If your team is capable of adopting DevOps and shifting toward utilizing cloud computing at the same time, you can use these shifts as learning opportunities for both developers and operations folks. While your team shifts to the cloud, developers have the opportunity to familiarize operations specialists with code — perhaps even specific languages — and source control, and operations folks can teach developers about infrastructure. When both groups are both the experts and the newbies, neither group has to deal much of an ego-damaging transfer of knowledge. The trust, rapport, and healthy dynamic that emerge from these interactions will galvanize your team and last much longer than the immediate work took. In many ways, you’re reinforcing your DevOps culture through tooling your DevOps practice. Benefitting from cloud services in your DevOps initiative Modern operations is changing and evolving. Your competitors are already adopting new ways of innovating faster and accelerating their software delivery life cycles. Cloud computing represents a big shift from the traditional way businesses think about IT resources. By outsourcing much of your infrastructure and operations requirements to a cloud provider, you reduce overhead and free your team to focus on delivering better software to your users. Here are six common reasons organizations are turning to cloud computing services: Improving affordability. Cloud providers allow you to select only the services you need, when you need them. Imagine if you could access cable TV but pay for only the channels you watch. You’d love that, wouldn’t you? Most DevOps team members would! Cloud providers do just that while also providing you with the most up-to-date computing hardware housed in physically secure datacenters. Automating deployments. Changes to the system — deployments — are the most common contributors of outages or service disruptions. Cloud providers make releasing code an automated, repeatable process, significantly decreasing the probability of making mistakes in manual releases and introducing bugs. Automated deployments also enables developers to release their own code. Ultimately, automated deployments simplify the process while reducing site downtime and reactionary triaging in production. Accelerating delivery. The cloud reduces friction along nearly every phase of the software delivery life cycle. Although set up is required, it often takes no more than double the time required to do the process manually, and you have to set up a service or process only once. Accelerated delivery gives you a ton of flexibility. Increasing security. Cloud providers make security part of their offering. Microsoft Azure, Amazon web Services (AWS), and Google Cloud Platform (GCP) meet different compliance standards and provide policies, services, and controls that will help you reinforce your system’s security. In addition, if you utilize a deployment pipeline tool within the cloud, you can add security checks before new code is released to an environment, thereby reducing the possibility of security vulnerabilities. Decreasing failure. Through cloud build and release pipelines, your team is capable of creating automated tests to confirm functionality, code quality, security, and compliance of any code introduced into your systems. This capability decreases the possibility of bugs while also reducing the risk of problematic deployments. Building more resilient and scalable systems. The cloud allows organizations to scale up, scale out, and increase capacity within seconds. This elastic scaling enables spinning up compute and storage resources as needed, no matter where in the world your users interact with your product. This approach permits you to better serve your customers and more efficiently manage infrastructure costs. The DevOps approach is all about creating a cyclical method where you benefit and learn from the process each time you go through it.

View Article
General Programming & Web Design Tips for Improving Engineering Performance with DevOps

Article / Updated 11-12-2019

Improving engineering performance as part of the DevOps process can have sweeping impacts on the entire business. Streamlining the development life cycle and removing bottlenecks will serve to accelerate the overall performance of the business — ultimately increasing the bottom line. And if you think, as a DevOps engineer, that you shouldn’t have to care about the business performance, you’re wrong. According to DevOps Research and Assessment (DORA), high-performing DevOps teams consistently outpace their competitors in four key areas: Deployment frequency: This term refers to how often your engineers can deploy code. Improving performance aligns with deploying multiple times per day as desired. Lead time: Lead time is how long you take to go from committing new code to running that code in a production environment. The highest performers, according to DORA, have a lead time of under an hour, whereas average performers need up to a month. MTTR (Mean Time to Recover): MTTR refers to how long you take to restore a service after an incident or outage occurs. Ideally, you want to aim for under an hour. An outage costs serious money, especially when it impacts profit centers of the application. Long outages destroy trust, decrease morale, and imply additional organizational challenges. Change failure: This term refers to the rate at which changes to your system negatively impact the performance. Although you will never reach a change failure rate of zero percent, you can absolutely approach zero by increasing your automated tests and relying on a deployment pipeline with continuous integration checks and gates — all of which ensure quality. Eliminating perfection as a measure of DevOps success DevOps relies on the mantra “Done is better than perfect.” It seems to be one of these impossible-to-attribute quotations, but the words nonetheless speak truth. Attempting to attain perfection is an enemy of effectiveness and productivity. Most engineers, including those of the DevOps variety, suffer from some version of analysis-paralysis — a mental affliction that limits your productivity in an attempt to overanalyze your work and sidestep any potential mishap. Training imperfection into your work requires you to embrace the possibility of failure and the inevitability of refactoring. Creating feedback loops around the customer and looping back to various stages of the pipeline are primary tenants of DevOps. In DevOps, you’re connecting the ends to bend the line into a circle. When you think iteratively and circularly, pushing out code that’s not perfect seems a lot less scary because the code isn’t carved into stone. Instead, it’s in a temporary state that DevOps engineers improve frequently as you gather more data and feedback. Designing small teams for DevOps You’ve likely heard of Amazon’s “two-pizza” teams. The concept broadly speaks to the importance of small-sized teams. Now, the exact number of people that comprise a two-pizza team varies according to your appetites. It’s a good idea to keep teams under 12 people. When a group approaches 9, 10, or 11 people, try splitting it into two. The sweet spot for group size is around 4–6 people. Your exact number may vary depending on the people involved, but the point is this: When groups get too large, communication becomes challenging, cliques form, and the teamwork suffers. Here’s one other bonus goal when forming DevOps teams: even numbers. It’s a good idea to give people a “buddy” at work — someone they can trust above all others. In even-numbered groups, everyone has a buddy and no one is left out. You can pair off evenly and it tends to work well. Forming even-numbered groups isn’t always achievable because of personnel numbers, but it’s something to keep in mind. A formula for measuring communication channels is n (n – 1) / 2, where n represents the number of people. You can estimate how complex your team’s communication will be by doing a simple calculation. For example, the formula for a two-pizza team of 10 would be 10 (10 – 1) / 2 = 45 communication channels. You can imagine how complex larger teams can become. Tracking your DevOps work If you can get over the small overhead of jotting down what you do every day, the outcomes will provide you with exceptional value. Having real data on how you use your time assists you in tracking you and your team’s efficacy. As Peter Drucker famously said, “If you can't measure it, you can't improve it.” How many days do you leave work feeling like you did nothing? You just had meeting after meeting or random interruptions all day. You’re not alone. Many workers have the same problem. It can be difficult to track your progress and therefor your productivity. The divergence between our feelings of efficacy and the reality of our efficacy is dangerous territory for any DevOps team. Try using pen and paper rather than some automated tool for this. Yes, you can use software to track how you use your time on your computer. It can tell you when you’re reading email, when you’re slacking, and when you’re coding, but it lacks nuance and often misses or incorrectly categorizes large chunks of time. After you have an idea of what you’re doing and when, you can start to identify which activities fall into which quadrants of the Eisenhower Decision Matrix. What busy work are you doing routinely that provides no value to you or the organization? Reducing friction in DevOps projects One of the best things a manager can do for a DevOps engineering team is to leave them alone. Hire curious engineers who are capable of solving problems independently and then let them do their job. The more you can reduce the friction that slows their engineering work, the more effective your team will be. Reducing friction includes the friction that exists between teams — especially operations and development. Don’t forget specialists like security, too. Aligning goals and incentives increases velocity. If everyone is focused on achieving the same things, they can join together as a team and move methodically toward those goals. Humanizing alerting for DevOps success Every engineering team has alerts on actions or events that don’t matter. Having all those alerts desensitizes engineers to the truly important alerts. Many engineers have becomes conditioned to ignore email alerts because of an overabundance of messages. Alert fatigue ails many engineering organizations and comes at a high cost. If you’re inundated daily, picking out the important from a sea of the unimportant is impossible. You could even say that these messages are urgent but not important . . . . Email is not an ideal vehicle for alerting because it’s not time sensitive (many people check email only a few times a day) and it’s easily buried in other minutiae. Applying what you’ve learned about rapid iteration, reevaluate your alerting thresholds regularly to ensure an appropriate amount of coverage without too many false positives. Identifying which alerts aren’t necessary takes time and work. And it’ll probably be a little scary, right? Deleting an alert or increasing a threshold always comes with a bit of risk. What if the alert is actually important? If it is, you’ll figure it out. Remember, you can’t fear failure in a DevOps organization. You must embrace it so that you can push forward and continuously improve. If you let fear guide your decisions, you stagnate — as an engineer and as an organization.

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

Quick Links

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

Connect

Opt in to our newsletter!

By entering your email address and clicking the “Submit” button, you agree to the Terms of Use and Privacy Policy & to receive electronic communications from Dummies.com, which may include marketing promotions, news and updates.

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.

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