{"appState":{"pageLoadApiCallsStatus":true},"categoryState":{"relatedCategories":{"headers":{"timestamp":"2023-09-15T12:01:05+00:00"},"categoryId":33592,"data":{"title":"Programming & Web Design","slug":"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}],"parentCategory":{"categoryId":33512,"title":"Technology","slug":"technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"}},"childCategories":[{"categoryId":34511,"title":"Go Programming Language","slug":"go-programming-language","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34511"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":1,"bookCount":1},{"categoryId":33593,"title":"3D Printing","slug":"3d-printing","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33593"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":33,"bookCount":1},{"categoryId":33594,"title":"App Development","slug":"app-development","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33594"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":85,"bookCount":6},{"categoryId":33595,"title":"C","slug":"c","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33595"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":17,"bookCount":3},{"categoryId":33596,"title":"C#","slug":"csharp","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33596"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":29,"bookCount":4},{"categoryId":33597,"title":"C++","slug":"cplusplus","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33597"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":63,"bookCount":2},{"categoryId":33598,"title":"Cisco Programming","slug":"cisco-programming","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33598"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":false,"articleCount":1,"bookCount":0},{"categoryId":33599,"title":"Coding","slug":"coding","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33599"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":106,"bookCount":5},{"categoryId":33600,"title":"HTML","slug":"html","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33600"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":false,"articleCount":8,"bookCount":0},{"categoryId":33601,"title":"HTML5","slug":"html5","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33601"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":265,"bookCount":2},{"categoryId":33602,"title":"Java","slug":"java","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33602"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":122,"bookCount":6},{"categoryId":33603,"title":"JavaScript","slug":"javascript","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33603"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":87,"bookCount":4},{"categoryId":33604,"title":"MATLAB","slug":"matlab","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33604"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":83,"bookCount":1},{"categoryId":33606,"title":"Python","slug":"python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":83,"bookCount":5},{"categoryId":33607,"title":"R","slug":"r","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33607"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":99,"bookCount":4},{"categoryId":33608,"title":"SQL","slug":"sql","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33608"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":26,"bookCount":3},{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":207,"bookCount":34},{"categoryId":34324,"title":"CSS3","slug":"css3","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34324"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":false,"articleCount":4,"bookCount":0},{"categoryId":34338,"title":"Web Hosting","slug":"web-hosting","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34338"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":6,"bookCount":1},{"categoryId":34376,"title":"Blogging & Website Platforms","slug":"blogging-website-platforms","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34376"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":66,"bookCount":9}],"description":"Ever wonder what makes the software, websites, and blogs you use every day function properly (or improperly)? It's programming. Our articles reveal the ins and outs of programming and web design.","relatedArticles":{"self":"https://dummies-api.dummies.com/v2/articles?category=33592&offset=0&size=5"},"hasArticle":true,"hasBook":true,"articleCount":1393,"bookCount":94},"_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"}},"relatedCategoriesLoadedStatus":"success"},"listState":{"list":{"count":10,"total":1395,"items":[{"headers":{"creationTime":"2016-03-26T10:52:17+00:00","modifiedTime":"2023-09-13T18:43:31+00:00","timestamp":"2023-09-13T21:01:03+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"},"slug":"python","categoryId":33606}],"title":"8 Major Uses of Python","strippedTitle":"8 major uses of python","slug":"10-major-uses-of-python","canonicalUrl":"","seo":{"metaDescription":"Python programming language continues to play an important role in many companies' technology systems and applications.","noIndex":0,"noFollow":0},"content":"Many organizations are using Python these days to perform major tasks. You don't necessarily hear about them because organizations are usually reserved about giving out their trade secrets. However, Python is still there making a big difference in the way organizations work and toward keeping the bottom line from bottoming out.\r\n\r\nFollowing, are some major ways in which Python is used commercially that will make it easier to argue for using Python in your own organization. (Or you can read about some <a href=\"https://www.python.org/about/success/\" target=\"_blank\" rel=\"noopener\">Python success stories</a>.)\r\n<ul class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.paintshoppro.com/en/\" target=\"_blank\" rel=\"noopener\">Corel</a>: PaintShop Pro is a product that many people have used over the years to grab screenshots, modify their pictures, draw new images, and perform a lot of other graphics-oriented tasks. The amazing thing about this product is that it relies heavily on Python scripting. In other words, to automate tasks in PaintShop Pro, you need to know Python.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"https://us.dlink.com/en/consumer\" target=\"_blank\" rel=\"noopener\">D-Link</a>: Upgrading firmware over a network connection can be problematic, and D-Link was encountering a situation in which each upgrade was tying up a machine — a poor use of resources. In addition, some upgrades required additional work because of problems with the target device. Using Python to create a multithreaded application to drive updates to the devices allows one machine to service multiple devices, and a new methodology allowed by Python reduces the number of reboots to just one after that new firmware is installed. D-Link chose Python over other languages, such as Java, because it provides an easier-to-use serial communication code.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.eveonline.com/\" target=\"_blank\" rel=\"noopener\">Eve-Online</a>: Games are a major business because so many people enjoy playing them. Eve-Online is a Massively Multiplayer Online Role Playing Game (MMORPG) that relies heavily on Python for both the client and server ends of the game. It actually relies on a Python variant named <a href=\"https://wiki.python.org/moin/StacklessPython\" target=\"_blank\" rel=\"noopener\">StacklessPython</a>, which is important because you encounter these variants all the time when working with Python. Think of them as Python on steroids. These variants have all the advantages of Python, plus a few extra perks. The thing to take away from this particular company is that running an MMORPG takes major horsepower, and the company wouldn't have chosen Python unless it were actually up to the task.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.forecastwatch.com/\" target=\"_blank\" rel=\"noopener\">ForecastWatch.com</a>: If you have ever wondered whether someone reviews the performance of your weatherman, look no further than ForecastWatch.com. This company compares the forecasts produced by thousands of weather forecasters each day against actual climatological data to determine their accuracy. The resulting reports are used to help improve weather forecasts. In this case, the software used to make the comparisons is written in pure Python because it comes with standard libraries useful in collecting, parsing, and storing data from online sources. In addition, Python's enhanced multithreading capabilities makes it possible to collect the forecasts from around 5,000 online sources each day. Most important of all, the code is much smaller than would have been needed by other languages such as Java or PHP.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.frequentis.com/\" target=\"_blank\" rel=\"noopener\">Frequentis</a>: The next time you fly somewhere, you might be relying on Python to get you to the ground safely again. It turns out that Frequentis is the originator of TAPTools, a software product that is used for air traffic control in many airports. This particular tool provides updates on the weather and runway conditions to air traffic controllers.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://honeywell.com/Pages/Home.aspx\">Honeywell</a>: Documenting large systems is expensive and error prone. Honeywell uses Python to perform automated testing of applications, but it also uses Python to control a cooperative environment between applications used to generate documentation for the applications. The result is that Python helps generate the reports that form the documentation for the setup.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.ilm.com/\" target=\"_blank\" rel=\"noopener\">Industrial Light & Magic</a>: In this case, you find Python used in the production process for scripting complex, computer graphic-intensive films. Originally, Industrial Light & Magic relied on Unix shell scripting, but it was found that this solution just couldn't do the job. Python was compared to other languages, such as Tcl and Perl, and chosen because it's an easier-to-learn language that the organization can implement incrementally. In addition, Python can be embedded within a larger software system as a scripting language, even if the system is written in a language such as C/C++. It turns out that Python can successfully interact with these other languages in situations in which some languages can't.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.usa.philips.com/\" target=\"_blank\" rel=\"noopener\">Philips</a>: Automation is essential in the semiconductor industry, so imagine trying to coordinate the effort of thousands of robots. After a number of solutions, Philips decided to go with Python for the sequencing language (the language that tells what steps each robot should take). The low-level code is written in C++, which is another reason to use Python, because Python works well with C++.</p>\r\n</li>\r\n</ul>","description":"Many organizations are using Python these days to perform major tasks. You don't necessarily hear about them because organizations are usually reserved about giving out their trade secrets. However, Python is still there making a big difference in the way organizations work and toward keeping the bottom line from bottoming out.\r\n\r\nFollowing, are some major ways in which Python is used commercially that will make it easier to argue for using Python in your own organization. (Or you can read about some <a href=\"https://www.python.org/about/success/\" target=\"_blank\" rel=\"noopener\">Python success stories</a>.)\r\n<ul class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.paintshoppro.com/en/\" target=\"_blank\" rel=\"noopener\">Corel</a>: PaintShop Pro is a product that many people have used over the years to grab screenshots, modify their pictures, draw new images, and perform a lot of other graphics-oriented tasks. The amazing thing about this product is that it relies heavily on Python scripting. In other words, to automate tasks in PaintShop Pro, you need to know Python.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"https://us.dlink.com/en/consumer\" target=\"_blank\" rel=\"noopener\">D-Link</a>: Upgrading firmware over a network connection can be problematic, and D-Link was encountering a situation in which each upgrade was tying up a machine — a poor use of resources. In addition, some upgrades required additional work because of problems with the target device. Using Python to create a multithreaded application to drive updates to the devices allows one machine to service multiple devices, and a new methodology allowed by Python reduces the number of reboots to just one after that new firmware is installed. D-Link chose Python over other languages, such as Java, because it provides an easier-to-use serial communication code.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.eveonline.com/\" target=\"_blank\" rel=\"noopener\">Eve-Online</a>: Games are a major business because so many people enjoy playing them. Eve-Online is a Massively Multiplayer Online Role Playing Game (MMORPG) that relies heavily on Python for both the client and server ends of the game. It actually relies on a Python variant named <a href=\"https://wiki.python.org/moin/StacklessPython\" target=\"_blank\" rel=\"noopener\">StacklessPython</a>, which is important because you encounter these variants all the time when working with Python. Think of them as Python on steroids. These variants have all the advantages of Python, plus a few extra perks. The thing to take away from this particular company is that running an MMORPG takes major horsepower, and the company wouldn't have chosen Python unless it were actually up to the task.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.forecastwatch.com/\" target=\"_blank\" rel=\"noopener\">ForecastWatch.com</a>: If you have ever wondered whether someone reviews the performance of your weatherman, look no further than ForecastWatch.com. This company compares the forecasts produced by thousands of weather forecasters each day against actual climatological data to determine their accuracy. The resulting reports are used to help improve weather forecasts. In this case, the software used to make the comparisons is written in pure Python because it comes with standard libraries useful in collecting, parsing, and storing data from online sources. In addition, Python's enhanced multithreading capabilities makes it possible to collect the forecasts from around 5,000 online sources each day. Most important of all, the code is much smaller than would have been needed by other languages such as Java or PHP.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.frequentis.com/\" target=\"_blank\" rel=\"noopener\">Frequentis</a>: The next time you fly somewhere, you might be relying on Python to get you to the ground safely again. It turns out that Frequentis is the originator of TAPTools, a software product that is used for air traffic control in many airports. This particular tool provides updates on the weather and runway conditions to air traffic controllers.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://honeywell.com/Pages/Home.aspx\">Honeywell</a>: Documenting large systems is expensive and error prone. Honeywell uses Python to perform automated testing of applications, but it also uses Python to control a cooperative environment between applications used to generate documentation for the applications. The result is that Python helps generate the reports that form the documentation for the setup.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.ilm.com/\" target=\"_blank\" rel=\"noopener\">Industrial Light & Magic</a>: In this case, you find Python used in the production process for scripting complex, computer graphic-intensive films. Originally, Industrial Light & Magic relied on Unix shell scripting, but it was found that this solution just couldn't do the job. Python was compared to other languages, such as Tcl and Perl, and chosen because it's an easier-to-learn language that the organization can implement incrementally. In addition, Python can be embedded within a larger software system as a scripting language, even if the system is written in a language such as C/C++. It turns out that Python can successfully interact with these other languages in situations in which some languages can't.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><a href=\"http://www.usa.philips.com/\" target=\"_blank\" rel=\"noopener\">Philips</a>: Automation is essential in the semiconductor industry, so imagine trying to coordinate the effort of thousands of robots. After a number of solutions, Philips decided to go with Python for the sequencing language (the language that tells what steps each robot should take). The low-level code is written in C++, which is another reason to use Python, because Python works well with C++.</p>\r\n</li>\r\n</ul>","blurb":"","authors":[{"authorId":9109,"name":"John Paul Mueller","slug":"john-paul-mueller","description":" <p><b> John Mueller</b> has published more than 100 books on technology, data, and programming. John has a website and blog where he writes articles on technology and offers assistance alongside his published books.</p> <p><b>Luca Massaron</b> is a data scientist specializing in insurance and finance. A Google Developer Expert in machine learning, he has been involved in quantitative analysis and algorithms since 2000. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9109"}}],"primaryCategoryTaxonomy":{"categoryId":33606,"title":"Python","slug":"python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":250588,"title":"How to Get Additional Python Libraries","slug":"get-additional-python-libraries","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/250588"}},{"articleId":250582,"title":"Printing Lists Using Python","slug":"printing-lists-using-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/250582"}},{"articleId":250578,"title":"How Permanent Storage Works for Python Programming","slug":"understanding-permanent-storage-works-python-programming","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/250578"}},{"articleId":250575,"title":"Extending Python Classes to Make New Classes","slug":"extending-python-classes-make-new-classes","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/250575"}},{"articleId":250571,"title":"Understanding the Python Class as a Packaging Method","slug":"understanding-python-class-packaging-method","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/250571"}}],"fromCategory":[{"articleId":264919,"title":"How to Define and Use Python Lists","slug":"how-to-define-and-use-python-lists","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264919"}},{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281830,"slug":"beginning-programming-with-python-for-dummies-2nd-edition","isbn":"9781119913771","categoryList":["technology","programming-web-design","python"],"amazon":{"default":"https://www.amazon.com/gp/product/1119913772/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119913772/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/1119913772-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119913772/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119913772/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/beginning-programming-with-python-for-dummies-3rd-edition-cover-9781119913771-203x255.jpg","width":203,"height":255},"title":"Beginning Programming with Python For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><p><b> John Mueller</b> has published more than 100 books on technology, data, and programming. John has a website and blog where he writes articles on technology and offers assistance alongside his published books.</p> <p><b>Luca Massaron</b> is a data scientist specializing in insurance and finance. A Google Developer Expert in machine learning, he has been involved in quantitative analysis and algorithms since 2000.</p>","authors":[{"authorId":9109,"name":"John Paul Mueller","slug":"john-paul-mueller","description":" <p><b> John Mueller</b> has published more than 100 books on technology, data, and programming. John has a website and blog where he writes articles on technology and offers assistance alongside his published books.</p> <p><b>Luca Massaron</b> is a data scientist specializing in insurance and finance. A Google Developer Expert in machine learning, he has been involved in quantitative analysis and algorithms since 2000. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9109"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[{"title":"Pondering the Pi Possibilities","slug":"pondering-the-pi-possibilities","collectionId":297524}],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119913771&quot;]}]\" id=\"du-slot-6502230f39d23\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119913771&quot;]}]\" id=\"du-slot-6502230f3a26b\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Six months","lifeExpectancySetFrom":"2021-12-27T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":148755},{"headers":{"creationTime":"2016-03-27T16:48:30+00:00","modifiedTime":"2023-09-06T20:12:43+00:00","timestamp":"2023-09-06T21:01:02+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":"3D Printing","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33593"},"slug":"3d-printing","categoryId":33593}],"title":"3D Printing For Dummies Cheat Sheet","strippedTitle":"3d printing for dummies cheat sheet","slug":"3d-printing-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"You don't have to wait on manufacturers or fancy molds anymore. Learn how to build your own 3D printer using the RepRap family of designs.","noIndex":0,"noFollow":0},"content":"Unlike traditional manufacturing, which involves injecting material into a pre-formed mold or removing material from base material objects, 3D printing starts with a virtual 3D model that is transformed into solid form one layer at a time. Each layer is built on top of the layer before, creating a solid form representing the virtual 3D model in all of its complexity and detail without requiring additional forms of machining and treatment necessary in traditional forms of manufacturing.\r\n\r\nYou can buy an off-the-shelf desktop 3D printer or build your own 3D printer using the open-source self-REPlicating RAPid-prototyper (RepRap) family of designs. Check out these helpful articles to guide you toward selecting the right RepRap design for you.","description":"Unlike traditional manufacturing, which involves injecting material into a pre-formed mold or removing material from base material objects, 3D printing starts with a virtual 3D model that is transformed into solid form one layer at a time. Each layer is built on top of the layer before, creating a solid form representing the virtual 3D model in all of its complexity and detail without requiring additional forms of machining and treatment necessary in traditional forms of manufacturing.\r\n\r\nYou can buy an off-the-shelf desktop 3D printer or build your own 3D printer using the open-source self-REPlicating RAPid-prototyper (RepRap) family of designs. Check out these helpful articles to guide you toward selecting the right RepRap design for you.","blurb":"","authors":[{"authorId":9516,"name":"Richard Horne","slug":"richard-horne","description":"<b>Richard Horne</b> is an electronics engineer, product designer, technical salesman, and problem solver with more than 30 years of experience and innovation across industries. Known in the community as RichRap, his blog makes 3D printing easier for everyone to understand.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9516"}}],"primaryCategoryTaxonomy":{"categoryId":33593,"title":"3D Printing","slug":"3d-printing","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33593"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":244638,"title":"Cooling 3D Printer Extruders with Fans","slug":"cooling-3d-printer-extruders-fans","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244638"}},{"articleId":244634,"title":"Acquire an Assortment of Extruders for Your 3D Printer","slug":"acquire-assortment-extruders-3d-printer","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244634"}},{"articleId":244631,"title":"3D Printers: Fixing a Blocked Hot-End or Extruder","slug":"3d-printers-fixing-blocked-hot-end-extruder","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244631"}},{"articleId":244626,"title":"Tips for 3D Printer Thermoplastic Extruder Operation","slug":"tips-3d-printer-thermoplastic-extruder-operation","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244626"}},{"articleId":244617,"title":"Multicolor 3D Print Methods","slug":"multicolor-3d-print-methods","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244617"}}],"fromCategory":[{"articleId":244638,"title":"Cooling 3D Printer Extruders with Fans","slug":"cooling-3d-printer-extruders-fans","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244638"}},{"articleId":244634,"title":"Acquire an Assortment of Extruders for Your 3D Printer","slug":"acquire-assortment-extruders-3d-printer","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244634"}},{"articleId":244631,"title":"3D Printers: Fixing a Blocked Hot-End or Extruder","slug":"3d-printers-fixing-blocked-hot-end-extruder","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244631"}},{"articleId":244626,"title":"Tips for 3D Printer Thermoplastic Extruder Operation","slug":"tips-3d-printer-thermoplastic-extruder-operation","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244626"}},{"articleId":244617,"title":"Multicolor 3D Print Methods","slug":"multicolor-3d-print-methods","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244617"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281612,"slug":"3d-printing-for-dummies-2nd-edition","isbn":"9781394169474","categoryList":["technology","programming-web-design","3d-printing"],"amazon":{"default":"https://www.amazon.com/gp/product/1394169477/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394169477/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/1394169477-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394169477/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394169477/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/9781394169474-205x255.jpg","width":205,"height":255},"title":"3D Printing For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><b><b data-author-id=\"9516\">Richard Horne</b></b> is an electronics engineer, product designer, technical salesman, and problem solver with more than 30 years of experience and innovation across industries. Known in the community as RichRap, his blog makes 3D printing easier for everyone to understand.</p>","authors":[{"authorId":9516,"name":"Richard Horne","slug":"richard-horne","description":"<b>Richard Horne</b> is an electronics engineer, product designer, technical salesman, and problem solver with more than 30 years of experience and innovation across industries. Known in the community as RichRap, his blog makes 3D printing easier for everyone to understand.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9516"}}],"_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;3d-printing&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394169474&quot;]}]\" id=\"du-slot-64f8e88ebec4a\"></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;3d-printing&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394169474&quot;]}]\" id=\"du-slot-64f8e88ebf1a0\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":158754,"title":"Deciding on a RepRap of Your Own for 3D Printing","slug":"deciding-on-a-reprap-of-your-own-for-3d-printing","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/158754"}},{"articleId":158752,"title":"Understanding RepRap 3D Printer Control Electronics","slug":"understanding-reprap-3d-printer-control-electronics","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/158752"}},{"articleId":158755,"title":"Assembling the RepRap Extruder and RepRap Upgrades on a 3D Printer","slug":"assembling-the-reprap-extruder-and-reprap-upgrades-on-a-3d-printer","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/158755"}},{"articleId":158753,"title":"Identifying 3D Printer Software and Machine Calibration","slug":"identifying-3d-printer-software-and-machine-calibration","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/158753"}}],"content":[{"title":"Deciding on a RepRap of your own for 3D printing","thumb":null,"image":null,"content":"<p>When it comes to desktop 3D printing, selecting a RepRap printer for personal use begins with an analysis of your particular needs in terms of the type, size, and other qualities of the printer.</p>\n<p>Do you, for example, want a turnkey off-the-shelf model or a build-it-yourself creation? Total cost is also a factor, along with source licensing preferences such as the determination of open versus closed source technologies.</p>\n<p>Some of the RepRap designs include:</p>\n<ul>\n<li><strong>Mendel, Prusa Mendel, Mendel90, Prusa i3:</strong> One of the more common branches of Cartesian design, this printer has spawned many variations including the miniaturized Huxley.</li>\n<li><strong>Wallace and Printrbot:</strong> Common educational-sector alternatives for kit construction.</li>\n<li><strong>MendelMax:</strong> This is the derivative of the Prusa Mendel that’s an example of Cartesian RepRaps.</li>\n<li><strong>Ultimaker:</strong> A box-frame RepRap using Cartesian movement.</li>\n<li><strong>Tantillus:</strong> A miniature box-frame RepRap; it has the most 3D printable parts of current RepRap variations.</li>\n<li>Several RepRap options exist beyond the standard Cartesian format, including:</li>\n<li><strong>Rostock, RostockMax:</strong> A Delta-format RepRap printer that provides a tall build volume, the RostockMax is a laser-cut kit form.</li>\n<li><strong>Voron 3D:</strong> A core XY design, the Voron 3D is most often bought as a complete build kit of parts. It&#8217;s a very capable and advanced machine but can be a challenge to build.</li>\n<li><strong>3DR:</strong> An alternative delta-style RepRap designed by Richard Horne, based on the Rostock format with inspiration from the Tantillus for self-replication.</li>\n</ul>\n<p>After identifying the type of printer, you will need to select the proper type of plastic filament you wish to print with and the components that will be used in building the printer itself, including the framework, extruder, build plate, control electronics, and software that will be used.</p>\n"},{"title":"Understanding RepRap 3D printer control electronics","thumb":null,"image":null,"content":"<p>A RepRap 3D printer is an example of a purpose-built robot, using the popular open-source Arduino microcontroller at its heart, together with stepper motor controllers, motors, and sensors to control its movements.</p>\n<p>Some custom 3D printer boards have been created to integrate an Arduino’s functions and the related items typically found on a 3D printing shield that attaches to the basic format. Some of these options include:</p>\n<ul>\n<li><strong>RAMPS:</strong> The original Arduino shield designed for multiple stepper motor control and management of the extruder and build plate heaters.</li>\n<li><strong>RAMBo:</strong> A modular all-in-one combination of the Arduino board and RAMPS shield.</li>\n<li><strong>Sanguinololu:</strong> A popular build-it-yourself all-in-one board integrating both microcontroller and stepper motor controllers</li>\n<li><strong>Minitronics:</strong> A reduced size variation of the Sanguinololu.</li>\n<li><strong>RUMBA:</strong> A modular integrated board with modules supporting LCD panels, external memory cards and other add-on capabilities.</li>\n<li><strong>ELEFU-RA:</strong> An expandable development platform that can plug in standard ATX computer power supplies and connect up a wide range of sensors and motors.</li>\n<li><strong>Prusa MINI:</strong> Its electronics uses a 32bit ARM &#8216;buddy board&#8217; integrated motherboard and color LCD screen.</li>\n<li><strong>Megatronics:</strong> The “big brother” of the Minitronics board, which allows the use of higher-temperature thermocouple thermal sensors in place of the more common thermistor type sensors.</li>\n</ul>\n<p>Many components have multiple options such as the selection of contact switches or magnetic hall-type sensors for the end-stops or the use of different fans to meet the type of plastic you are using. Even the type of motor controllers and wire connections (soldered vs. crimped) will affect options available upon completion of your RepRap.</p>\n"},{"title":"Assembling the RepRap extruder and RepRap upgrades on a 3D printer","thumb":null,"image":null,"content":"<p>Once the framework for a 3D printer has been assembled and the electronics selected, the final component needed is the extruder and hot-end that melt and deposit plastic to create your object. The extruder slides the plastic filament incrementally into the heated hot-end, where it pushes a small amount of the molten plastic out with each step. The extruder can be made in many ways, including:</p>\n<ul>\n<li><strong>Geared:</strong> Some extruders include additional gears to slow the advance of filament with each step to gain greater control, and to increase the force with which the filament can be advanced into the hot-end.</li>\n<li><strong>Hobbed:</strong> Smooth plastic filament can be held by the extruder using interlocking gears or a hobbed bolt (one with teeth cut along the axis around the bolt’s girth) to hold the filament against an idler wheel so its advance and retraction can be carefully controlled.</li>\n<li><strong>Bowden:</strong> This type of extruder forces the filament through a tube connecting the extruder and hot-end rather than forcing the filament directly into the hot-end, separating the two and allowing the hot-end to be lighter without the (directly attached) extruder motor for non-Cartesian formats.</li>\n<li><strong>Syringe:</strong> For designs like the Fab@Home printer or RepRaps equipped with my Universal Paste Extruder, a syringe can be used with a constrained strap to incrementally extrude paste or gel materials instead of the usual melted plastic.</li>\n<li><strong>Multi-color:</strong> Advanced extruders include multiple gearboxes and motors to advance multiple filaments into the hot end at the same time. By varying the rate of each color using additional electronics, the end result is a multi-colored print that varies throughout.</li>\n<li><strong>Dual:</strong> A common variation with more limited color mixing involves a dual extruder, which is simply two extruders side by side. This is useful for prints that include PVA (polyvinyl alcohol) or other soluble support material integrated into the same print as the object filament material.</li>\n</ul>\n"},{"title":"Identifying 3D printer software and machine calibration","thumb":null,"image":null,"content":"<p>The software chain for a RepRap 3D printer begins with the products used to create and prepare the virtual 3D model for printing. However, once an object model has been created or obtained, the model must be processed through several steps before the solid object can be created by the RepRap printer:</p>\n<ul>\n<li><strong>Support:</strong> Unlike granular binding systems, fused plastic extruders cannot deposit plastic in mid-air and have it remain there. For overhangs and wide spans, support material must be added to the design and later removed after printing.</li>\n<li><strong>Raft:</strong> Depending on the type of material and build plate used, it may be useful to add a <em>raft</em> — a flat printed layer that forms a base on the build plate for your model. As in the case of support, the raft is later removed when finishing the object.</li>\n<li><strong>Fill:</strong> Because additive systems like the RepRap are unaffected by the complexity of an object&#8217;s internal design when it comes to the layer-printing process, it is possible to define any solid object as a solid outer shell and an interior space that can be completely solid (100% fill), empty (0% fill) or some midway point in which a regular pattern of thin walls provide support with voids interspersed. The amount of volume that includes plastic is defined as its “fill” and allows you to produce the same object printout using far less plastic than solid equivalents.</li>\n<li><strong> Slicing: </strong>The virtual model is calculated as a series of layers, with each slice then translated into code that will direct the printer to move a particular distance while extruding (or not) and then repeating the process until that layer is done and the Z-axis can be moved to the next layer where the process begins again. This code, known as <em>g-code</em>, allows many slicers to add support and raft elements automatically, along with an automatic “fill” pattern to reduce the amount of plastic needed for each print.</li>\n</ul>\n<p>After your model has been prepared and sliced, a few final details are handled by the printer control software.</p>\n<p>Settings for the hot-end and heated build plate control the melted plastic viscosity and layer adhesion, while the movement rate of the extruder controls the thickness of the extruded material and the rate of the printer’s movement. Additional factors can be adjusted for finer control of each feature.</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":"Two years","lifeExpectancySetFrom":"2023-09-06T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":207783},{"headers":{"creationTime":"2019-11-07T15:28:05+00:00","modifiedTime":"2023-08-16T16:15:08+00:00","timestamp":"2023-08-16T18:01:22+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":"What Is DevOps?","strippedTitle":"what is devops?","slug":"what-is-devops","canonicalUrl":"","seo":{"metaDescription":"What is DevOps? DevOps is an agile-derived approach that helps guide software development to prioritize people over process. Find out more from Dummies.com.","noIndex":0,"noFollow":0},"content":"What is DevOps? It’s difficult to provide you with an exact DevOps prescription — because none exists. <strong>DevOps</strong> is a philosophy that guides software development, one that that prioritizes people over process and process over tooling. DevOps builds a culture of trust, collaboration, and continuous improvement.\r\n\r\n[caption id=\"attachment_265612\" align=\"aligncenter\" width=\"556\"]<img class=\"wp-image-265612 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops_cycle.jpg\" alt=\"DevOps cycle\" width=\"556\" height=\"312\" /> ©Shutterstock/Phakawan Wongpetanan[/caption]\r\n\r\nAs a culture, the DevOps philosophy views the development process in a holistic way, taking into account everyone involved: developers, testers, operations folks, security, and infrastructure engineers. DevOps doesn’t put any one of these groups above the others, nor does it rank the importance of their work. Instead, a DevOps company treats the entire team of engineers as critical to ensuring that the customer has the best experience possible.\r\n<h2 id=\"tab1\" >DevOps evolved from Agile</h2>\r\nIn 2001, 17 software engineers met and published the “<a href=\"https://agilemanifesto.org/\">Manifesto for Agile Software Development</a>,” which spelled out the 12 principles of Agile project management. This new workflow was a response to the frustration and inflexibility of teams working in a waterfall (linear) process.\r\n\r\nWorking within <a href=\"https://www.dummies.com/careers/project-management/the-12-agile-principles/\">Agile principles</a>, engineers aren’t required to adhere to original requirements or follow a linear development workflow in which each team hands off work to the next. Instead, they’re capable of adapting to the ever-changing needs of the business or the market, and sometimes even the changing technology and tools.\r\n\r\nAlthough Agile revolutionized software development in many ways, it failed to address the conflict between developers and operations specialists. Silos still developed around technical skill sets and specialties, and developers still handed off code to operations folks to deploy and support.\r\n\r\nIn 2008, Andrew Clay Shafer talked to Patrick Debois about his frustrations with the constant conflict between developers and operations folks. Together, they launched the first DevOpsDays event in Belgium to create a better — and more agile — way of approaching software development. This evolution of Agile took hold, and DevOps has since enabled companies around the globe to produce better software faster (and usually cheaper). DevOps is not a fad. It’s a widely accepted engineering philosophy.\r\n<h2 id=\"tab2\" >DevOps focuses on people</h2>\r\nAnyone who says that DevOps is all about tooling wants to sell you something. Above all else, DevOps is a philosophy that focuses on engineers and how they can better work together to produce great software. You could spend millions on every DevOps tool in the world and still be no closer to DevOps nirvana.\r\n\r\nInstead, focus on your most important engineering asset: engineers. Happy engineers make great software. How do you make happy engineers? Well, you create a collaborative work environment in which mutual respect, shared knowledge, and acknowledgement of hard work can thrive.\r\n<h2 id=\"tab3\" >Company culture is the foundation of DevOps</h2>\r\nYour company has a culture, even if it has been left to develop through inertia. That culture has more influence on your job satisfaction, productivity, and team velocity than you probably realize.\r\n\r\n<a href=\"https://www.dummies.com/business/management/pay-attention-to-invisible-forces-in-your-company-culture/\">Company culture</a> is best described as the unspoken expectations, behavior, and values of an organization. Culture is what tells your employees whether company leadership is open to new ideas. It’s what informs an employee’s decision as to whether to come forward with a problem or to sweep it under the rug.\r\n\r\nCulture is something to be designed and refined, not something to leave to chance. Though the actual definition varies from company to company and person to person, DevOps is a cultural approach to engineering at its core.\r\n\r\nA toxic company culture will kill your DevOps journey before it even starts. Even if your engineering team adopts a DevOps mindset, the attitudes and challenges of the larger company will bleed into your environment.\r\n\r\nWith DevOps, you avoid blame, grow trust, and focus on the customer. You give your engineers autonomy and empower them to do what they do best: engineer solutions. As you begin to implement DevOps, you give your engineers the time and space to adjust to it, allowing them the opportunities to get to know each other better and build rapport with engineers with different specialties.\r\n\r\nAlso, you measure progress and reward achievements. Never blame individuals for failures. Instead, the team should continuously improve together, and achievements should be celebrated and rewarded.\r\n<h2 id=\"tab4\" >You learn by observing your process and collecting data</h2>\r\nObserving your workflow without expectation is a powerful technique to use to see the successes and challenges of your workflow realistically. This observation is the only way to find the correct solution to the areas and issues that create bottlenecks in your processes.\r\n\r\nJust as with software, slapping some Kubernetes (or other new tool) on a problem doesn’t necessarily fix it. You have to know where the problems are before you go about fixing them. As you continue, you collect data — not to measure success or failure but to track the team’s performance. You determine what works, what doesn’t work, and what to try next time.\r\n<h2 id=\"tab5\" >Persuasion is key to DevOps adoption</h2>\r\nSelling the idea of DevOps to your leaders, peers, and employees isn’t easy. The process isn’t always intuitive to engineers, either. Shouldn’t a great idea simply sell itself? If only it were that easy. However, a key concept to always keep in mind as you implement DevOps is that it emphasizes people.\r\n\r\nhe so-called “soft skills” of communication and collaboration are central to your DevOps transformation. Persuading other folks on your team and within your company to adopt DevOps requires practicing <a href=\"https://www.dummies.com/business/human-resources/employee-engagement/how-good-communication-affects-employee-engagement/\">good communication skills</a>. Early conversations that you have with colleagues about DevOps can set you up for success down the road — especially when you hit an unexpected speed bump.\r\n<h2 id=\"tab6\" >Small, incremental changes are priceless in DevOps</h2>\r\nThe aspect of DevOps that emphasizes making changes in small, incremental ways has its roots in lean manufacturing, which embraces accelerated feedback, continuous improvement, and swifter time to market.\r\n\r\nWater is a good metaphor for DevOps transformations. Water is one of the world’s most powerful elements. Unless people are watching the flood waters rise in front of them, they think of it as relatively harmless. The Colorado River carved the Grand Canyon. Slowly, over millions of years, water cut through stone to expose nearly two billion years of soil and rock.\r\n\r\nYou can be like water. Be the slow, relentless change in your organization. Here’s that famous quote from a <a href=\"https://www.youtube.com/watch?v=cJMwBwFj5nQ\">Bruce Lee interview</a> to inspire you:\r\n\r\nBe formless, shapeless, like water. Now you put water into a cup, it becomes the cup. You put water into a bottle, it becomes the bottle. You put it in a teapot, it becomes the teapot. Now, water can flow or it can crash. Be water, my friend.\r\n\r\nMaking incremental changes means, for example, that you find a problem and you fix that problem. Then you fix the next one. You don’t take on too much too fast and you don’t pick every battle to fight. You understand that some fights aren’t worth the energy or social capital that they can cost you.\r\n\r\nUltimately, DevOps isn’t a list of steps you can take, but is rather an approach that should guide the decisions you make as you develop.","description":"What is DevOps? It’s difficult to provide you with an exact DevOps prescription — because none exists. <strong>DevOps</strong> is a philosophy that guides software development, one that that prioritizes people over process and process over tooling. DevOps builds a culture of trust, collaboration, and continuous improvement.\r\n\r\n[caption id=\"attachment_265612\" align=\"aligncenter\" width=\"556\"]<img class=\"wp-image-265612 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops_cycle.jpg\" alt=\"DevOps cycle\" width=\"556\" height=\"312\" /> ©Shutterstock/Phakawan Wongpetanan[/caption]\r\n\r\nAs a culture, the DevOps philosophy views the development process in a holistic way, taking into account everyone involved: developers, testers, operations folks, security, and infrastructure engineers. DevOps doesn’t put any one of these groups above the others, nor does it rank the importance of their work. Instead, a DevOps company treats the entire team of engineers as critical to ensuring that the customer has the best experience possible.\r\n<h2 id=\"tab1\" >DevOps evolved from Agile</h2>\r\nIn 2001, 17 software engineers met and published the “<a href=\"https://agilemanifesto.org/\">Manifesto for Agile Software Development</a>,” which spelled out the 12 principles of Agile project management. This new workflow was a response to the frustration and inflexibility of teams working in a waterfall (linear) process.\r\n\r\nWorking within <a href=\"https://www.dummies.com/careers/project-management/the-12-agile-principles/\">Agile principles</a>, engineers aren’t required to adhere to original requirements or follow a linear development workflow in which each team hands off work to the next. Instead, they’re capable of adapting to the ever-changing needs of the business or the market, and sometimes even the changing technology and tools.\r\n\r\nAlthough Agile revolutionized software development in many ways, it failed to address the conflict between developers and operations specialists. Silos still developed around technical skill sets and specialties, and developers still handed off code to operations folks to deploy and support.\r\n\r\nIn 2008, Andrew Clay Shafer talked to Patrick Debois about his frustrations with the constant conflict between developers and operations folks. Together, they launched the first DevOpsDays event in Belgium to create a better — and more agile — way of approaching software development. This evolution of Agile took hold, and DevOps has since enabled companies around the globe to produce better software faster (and usually cheaper). DevOps is not a fad. It’s a widely accepted engineering philosophy.\r\n<h2 id=\"tab2\" >DevOps focuses on people</h2>\r\nAnyone who says that DevOps is all about tooling wants to sell you something. Above all else, DevOps is a philosophy that focuses on engineers and how they can better work together to produce great software. You could spend millions on every DevOps tool in the world and still be no closer to DevOps nirvana.\r\n\r\nInstead, focus on your most important engineering asset: engineers. Happy engineers make great software. How do you make happy engineers? Well, you create a collaborative work environment in which mutual respect, shared knowledge, and acknowledgement of hard work can thrive.\r\n<h2 id=\"tab3\" >Company culture is the foundation of DevOps</h2>\r\nYour company has a culture, even if it has been left to develop through inertia. That culture has more influence on your job satisfaction, productivity, and team velocity than you probably realize.\r\n\r\n<a href=\"https://www.dummies.com/business/management/pay-attention-to-invisible-forces-in-your-company-culture/\">Company culture</a> is best described as the unspoken expectations, behavior, and values of an organization. Culture is what tells your employees whether company leadership is open to new ideas. It’s what informs an employee’s decision as to whether to come forward with a problem or to sweep it under the rug.\r\n\r\nCulture is something to be designed and refined, not something to leave to chance. Though the actual definition varies from company to company and person to person, DevOps is a cultural approach to engineering at its core.\r\n\r\nA toxic company culture will kill your DevOps journey before it even starts. Even if your engineering team adopts a DevOps mindset, the attitudes and challenges of the larger company will bleed into your environment.\r\n\r\nWith DevOps, you avoid blame, grow trust, and focus on the customer. You give your engineers autonomy and empower them to do what they do best: engineer solutions. As you begin to implement DevOps, you give your engineers the time and space to adjust to it, allowing them the opportunities to get to know each other better and build rapport with engineers with different specialties.\r\n\r\nAlso, you measure progress and reward achievements. Never blame individuals for failures. Instead, the team should continuously improve together, and achievements should be celebrated and rewarded.\r\n<h2 id=\"tab4\" >You learn by observing your process and collecting data</h2>\r\nObserving your workflow without expectation is a powerful technique to use to see the successes and challenges of your workflow realistically. This observation is the only way to find the correct solution to the areas and issues that create bottlenecks in your processes.\r\n\r\nJust as with software, slapping some Kubernetes (or other new tool) on a problem doesn’t necessarily fix it. You have to know where the problems are before you go about fixing them. As you continue, you collect data — not to measure success or failure but to track the team’s performance. You determine what works, what doesn’t work, and what to try next time.\r\n<h2 id=\"tab5\" >Persuasion is key to DevOps adoption</h2>\r\nSelling the idea of DevOps to your leaders, peers, and employees isn’t easy. The process isn’t always intuitive to engineers, either. Shouldn’t a great idea simply sell itself? If only it were that easy. However, a key concept to always keep in mind as you implement DevOps is that it emphasizes people.\r\n\r\nhe so-called “soft skills” of communication and collaboration are central to your DevOps transformation. Persuading other folks on your team and within your company to adopt DevOps requires practicing <a href=\"https://www.dummies.com/business/human-resources/employee-engagement/how-good-communication-affects-employee-engagement/\">good communication skills</a>. Early conversations that you have with colleagues about DevOps can set you up for success down the road — especially when you hit an unexpected speed bump.\r\n<h2 id=\"tab6\" >Small, incremental changes are priceless in DevOps</h2>\r\nThe aspect of DevOps that emphasizes making changes in small, incremental ways has its roots in lean manufacturing, which embraces accelerated feedback, continuous improvement, and swifter time to market.\r\n\r\nWater is a good metaphor for DevOps transformations. Water is one of the world’s most powerful elements. Unless people are watching the flood waters rise in front of them, they think of it as relatively harmless. The Colorado River carved the Grand Canyon. Slowly, over millions of years, water cut through stone to expose nearly two billion years of soil and rock.\r\n\r\nYou can be like water. Be the slow, relentless change in your organization. Here’s that famous quote from a <a href=\"https://www.youtube.com/watch?v=cJMwBwFj5nQ\">Bruce Lee interview</a> to inspire you:\r\n\r\nBe formless, shapeless, like water. Now you put water into a cup, it becomes the cup. You put water into a bottle, it becomes the bottle. You put it in a teapot, it becomes the teapot. Now, water can flow or it can crash. Be water, my friend.\r\n\r\nMaking incremental changes means, for example, that you find a problem and you fix that problem. Then you fix the next one. You don’t take on too much too fast and you don’t pick every battle to fight. You understand that some fights aren’t worth the energy or social capital that they can cost you.\r\n\r\nUltimately, DevOps isn’t a list of steps you can take, but is rather an approach that should guide the decisions you make as you develop.","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 evolved from Agile","target":"#tab1"},{"label":"DevOps focuses on people","target":"#tab2"},{"label":"Company culture is the foundation of DevOps","target":"#tab3"},{"label":"You learn by observing your process and collecting data","target":"#tab4"},{"label":"Persuasion is key to DevOps adoption","target":"#tab5"},{"label":"Small, incremental changes are priceless in DevOps","target":"#tab6"}],"relatedArticles":{"fromBook":[{"articleId":265680,"title":"Using DevOps To Improve Engineering","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":"How To Automate 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":"How To Choose a Cloud Service Provider 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":299575,"title":"HTML, CSS, & JavaScript All-in-One For Dummies Cheat Sheet","slug":"html-css-javascript-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/299575"}},{"articleId":265680,"title":"Using DevOps To Improve Engineering","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":"How To Automate 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":"How To Choose a Cloud Service Provider 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"}}]},"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-64dd0ef2deea9\"></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-64dd0ef2df611\"></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":"2023-08-16T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":265584},{"headers":{"creationTime":"2019-11-12T17:48:55+00:00","modifiedTime":"2023-08-16T16:14:34+00:00","timestamp":"2023-08-16T18:01:22+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 Form DevOps Teams in Your Organization","strippedTitle":"how to form devops teams in your organization","slug":"how-to-form-devops-teams-in-your-organization","canonicalUrl":"","seo":{"metaDescription":"Want to know how to structure teams in your organization to succeed with DevOps? FInd out with this guide from Dummies.com.","noIndex":0,"noFollow":0},"content":"<a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/what-is-devops-265584/\">DevOps</a> has no ideal organizational structure. Like everything in tech, the “right” answer concerning your company’s structure depends on your unique situation: your current team, your plans for growth, your team’s size, your team’s available skill sets, your product, and on and on.\r\n\r\nAligning your DevOps team’s vision should be your first mission. Only after you’ve removed the low-hanging fruit of obvious friction between people should you begin rearranging teams. Even then, allow some flexibility.\r\n\r\nIf you approach a reorganization with openness and flexibility, you send the message that you’re willing to listen and give your team autonomy — a basic tenet of DevOps.\r\n\r\nYou may already have a Python or Go developer who’s passionate and curious about infrastructure and configuration management. Maybe that person can switch into a more ops-focused role in your new organization. Put yourself in that person’s shoes. Wouldn’t you be loyal to an organization that took a risk on you? Wouldn’t you be excited to work hard? And that excitement is contagious.\r\n\r\nHere, you learn how to align the teams you already have in place, dedicate a team to DevOps practices, and create cross-functional teams — all approaches from which you can choose to orient your teams toward DevOps.\r\n<p class=\"article-tips remember\">You can choose one approach and allow it to evolve from there. Don’t feel that this decision is permanent and unmovable. DevOps focuses on rapid iteration and continual improvement and that’s the <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/why-devops-matters-11-ways-devops-benefits-your-organization-265626/\">prime benefit of this methodology</a>. That philosophy applies to teams as well.</p>\r\n\r\n<h2 id=\"tab1\" >Aligning functional teams for DevOps</h2>\r\nIn this approach, you create strong collaboration between your traditional development and operations teams. The teams remain functional in nature — one focused on ops, one focused on code. But their incentives are aligned. They will grow to trust each other and work as two teams yoked together.\r\n\r\nFor smaller engineering organizations, aligning functional teams is a solid choice. Even as a first step, this alignment can reinforce the positive changes you’ve made so far. You typically start the alignment by taking the time to build rapport. Ensure that each person on both teams not only intellectually understands the other team’s role and constraints but also empathizes with the pain points.\r\n\r\nFor this approach, it’s a good idea to promote a policy of “You build it, you support it.” This policy means that everyone — developer and operations person alike —participates in your on-call rotation.\r\n\r\nThis participation allows developers to start understanding the frustrations of being called in the middle of the night and struggling while foggy-eyed and caffeine-deprived to fix a bug that’s impacting customers. Operations folks also begin to trust your developers’ commitment to their work. Even this small change builds an extraordinary amount of trust.\r\n<p class=\"article-tips remember\">A word of caution: If developers fight hard against being on call, a larger problem is at play in your organization. The pushback is not uncommon because being on call is wildly different from their normal day-to-day responsibilities. The pushback often comes from a place of discomfort and fear. You can help mitigate this reaction by addressing the fact that your developers may not know what to do the first few times they’re on call.</p>\r\nThey may not be familiar with the infrastructure, and that’s okay. Encourage them to escalate the incident and page someone with more experience. Finally, create a runbook with common alerts and what actions to take. Providing this resource will help to assuage some fear until they begin to get the hang of things.\r\n\r\nAnother tactic to help spur collaboration to form a more cohesive DevOps team is to introduce a day of shadowing, with each team “trading” a colleague. The traded person simply shadows someone else on the team, sits at their desk (or in their area), and assists in their day-to-day responsibilities. They may help with work, discuss problems as a team (pair programming), and learn more about the system from a different point of view. This style of teaching isn’t prescriptive.\r\n\r\nInstead, it lends itself to curiosity and building trust. Colleagues should feel free to ask questions — even the “stupid” variety — and learn freely. No performance expectations exist. The time should be spent simply getting to know each other and appreciating each other’s work. Any productive output is a bonus!\r\n\r\nIn this alignment approach, both teams absolutely must be involved in the planning, architecture, and development processes. They must share responsibilities and accountability throughout the entire development life cycle.\r\n<h2 id=\"tab2\" >Dedicating a DevOps team</h2>\r\nA dedicated DevOps team is more an evolution of the Sys Admin than a true DevOps team. It is an operations team with a mix of skill sets. Perhaps some engineers are familiar with configuration management, others IaC (infrastructure as code) and perhaps others are experts in containers or cloud native infrastructure or CI/CD (continuous integration and continuous delivery/development).\r\n<p class=\"article-tips warning\">If you think that putting a group of humans into an official team is enough to break down silos, you’re mistaken. Humans are more complex than spreadsheets. Hierarchy doesn’t mean anything if your silos have entered a phase in which they are unhealthy and tribal. In toxic cultures, a strongman style of leadership can emerge that is almost always followed by people taking sides. If you see this on your own team, you have work to do.</p>\r\nAlthough any approach may work for your team, this <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/top-10-devops-pitfalls-why-your-software-projects-fail-265616/\">dedicated team approach is the one you should think through the most.</a> The greatest disadvantage of a dedicated DevOps team is that it easily becomes a continuation of traditional engineering teams without acknowledging the need to align teams, reduce silos, and remove friction. The risks of continuing friction (or creating more) are high in this approach. Tread carefully to ensure you’re choosing this team organization for a specific reason.\r\n\r\nThe <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/why-devops-matters-11-ways-devops-benefits-your-organization-265626/\">benefits of this DevOps approach</a> is having a dedicated team to address major infrastructure changes or adjustments. If you’re struggling with operations-centered issues that are slowing down your deployments or causing site reliability concerns, this might be a good approach — even temporarily.\r\n\r\nA dedicated team if you’re planning on moving a legacy application to the cloud. But rather than calling this team a <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/interview-techniques-for-building-a-devops-team-getting-the-right-technical-skills-265651/\">DevOps team</a>, you might try labeling it an automation team.\r\n\r\nThis dedicated group of engineers can focus completely on ensuring that you’ve set up the correct infrastructure and automation tools. You can then proceed with confidence that your application will land in the cloud without major disruption. Still, this approach is temporary. If you keep the team isolated for too long, you risk going down a slippery slope from rapid growth to embedded silo.\r\n<h2 id=\"tab3\" >Creating cross-functional product teams for DevOps</h2>\r\nA <em>cross-functional team</em> is a team formed around a single product focus. Rather than have separate teams for development, user interface and user experience (UI/UX), quality assurance (QA), and operations, you combine people from each of these teams.\r\n\r\nA cross-functional team works best in medium to large organizations. You need enough developers and operations folks to fill in the positions of each product team. Each cross-functional team looks a bit different.\r\n\r\nIt’s a good idea to have, at a minimum, one operations person per team. Do not ask an operations person to split their responsibilities between two teams. This scenario is unfair to them and will quickly create friction between the two product teams. Give your engineers the privilege of being able to focus and dig deep into their work.\r\n<p class=\"article-tips remember\">If you’re organization is still small or in the startup phase, you can think of your entire engineering organization as a cross-functional team. Keep it small and focused. When you begin to approach having 10–12 people, start thinking about how you can reorganize engineers.</p>\r\nThe image below shows what your cross-functional teams could look like. But keep in mind that their composition varies from team to team and from organization to organization. Some products have a strong design focus, which means that you may have multiple designers in each team. Other products are technical ones designed for engineers who don’t care much for aesthetics. Teams for that kind of product may have one designer — or none at all.\r\n\r\n[caption id=\"attachment_265665\" align=\"aligncenter\" width=\"342\"]<img class=\"wp-image-265665 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops-product-team.png\" alt=\"DevOps product team\" width=\"342\" height=\"450\" /> Forming product teams.[/caption]\r\n\r\nIf your organization is large enough, you can certainly create multiple teams using different DevOps ideas and approaches. Remember that your organization is unique. Feel empowered to make decisions based on your current circumstances and adjust from there. Here are some possible combinations of various types of product teams.\r\n<ul>\r\n \t<li><strong>Legacy Product Team:</strong> Project Manager (PM), Front-end Developer, Back-end Developer, Back-end Developer, Site Reliability Engineer (SRE), Automation Engineer, QA Tester</li>\r\n \t<li><strong>Cloud Transformation Team:</strong> SRE, SRE, Operations Engineer, Automation Engineer, Back-end Developer</li>\r\n \t<li><strong>MVP Team:</strong> PM, Designer, UX Engineer, Front-end Developer, Backend Developer, Operations Engineer</li>\r\n</ul>\r\nThe downside of a cross-functional product team is that engineers lose the camaraderie of engineers with their same skill sets and passions. Having a group of like-minded individuals with whom you can socialize and from whom you can learn is an important aspect of job satisfaction. Check out a solution to this issue below.\r\n\r\nAs shown below, you can give your engineers dedicated work time to spend with their tribes. You can do something as generous as paying for lunch once every week so that they can get together and talk. Or you might provide 10–20 percent of work time for them to work on projects as a tribe. Either way, you need your engineers to stay sharp.\r\n\r\nTribes share industry knowledge, provide sound feedback, and support career growth. Provide time for your engineers to learn from people with whom they share education, experience, and goals. This time provides a safe place where they can relax and feel at home.\r\n\r\n[caption id=\"attachment_265666\" align=\"aligncenter\" width=\"494\"]<img class=\"wp-image-265666 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops-tribes.png\" alt=\"DevOps tribes\" width=\"494\" height=\"450\" /> Making space for tribes.[/caption]\r\n\r\nNo amount of perfect finagling will overcome the shortfalls of a bad <a href=\"https://www.dummies.com/article/business-careers-money/business/general-business/assess-your-companys-mindset-148007/\">organizational culture</a>. But if you’ve paid attention so far and made the appropriate strides, the next step is to form teams that reinforce the cultural ideals you’ve already put in place.","description":"<a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/what-is-devops-265584/\">DevOps</a> has no ideal organizational structure. Like everything in tech, the “right” answer concerning your company’s structure depends on your unique situation: your current team, your plans for growth, your team’s size, your team’s available skill sets, your product, and on and on.\r\n\r\nAligning your DevOps team’s vision should be your first mission. Only after you’ve removed the low-hanging fruit of obvious friction between people should you begin rearranging teams. Even then, allow some flexibility.\r\n\r\nIf you approach a reorganization with openness and flexibility, you send the message that you’re willing to listen and give your team autonomy — a basic tenet of DevOps.\r\n\r\nYou may already have a Python or Go developer who’s passionate and curious about infrastructure and configuration management. Maybe that person can switch into a more ops-focused role in your new organization. Put yourself in that person’s shoes. Wouldn’t you be loyal to an organization that took a risk on you? Wouldn’t you be excited to work hard? And that excitement is contagious.\r\n\r\nHere, you learn how to align the teams you already have in place, dedicate a team to DevOps practices, and create cross-functional teams — all approaches from which you can choose to orient your teams toward DevOps.\r\n<p class=\"article-tips remember\">You can choose one approach and allow it to evolve from there. Don’t feel that this decision is permanent and unmovable. DevOps focuses on rapid iteration and continual improvement and that’s the <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/why-devops-matters-11-ways-devops-benefits-your-organization-265626/\">prime benefit of this methodology</a>. That philosophy applies to teams as well.</p>\r\n\r\n<h2 id=\"tab1\" >Aligning functional teams for DevOps</h2>\r\nIn this approach, you create strong collaboration between your traditional development and operations teams. The teams remain functional in nature — one focused on ops, one focused on code. But their incentives are aligned. They will grow to trust each other and work as two teams yoked together.\r\n\r\nFor smaller engineering organizations, aligning functional teams is a solid choice. Even as a first step, this alignment can reinforce the positive changes you’ve made so far. You typically start the alignment by taking the time to build rapport. Ensure that each person on both teams not only intellectually understands the other team’s role and constraints but also empathizes with the pain points.\r\n\r\nFor this approach, it’s a good idea to promote a policy of “You build it, you support it.” This policy means that everyone — developer and operations person alike —participates in your on-call rotation.\r\n\r\nThis participation allows developers to start understanding the frustrations of being called in the middle of the night and struggling while foggy-eyed and caffeine-deprived to fix a bug that’s impacting customers. Operations folks also begin to trust your developers’ commitment to their work. Even this small change builds an extraordinary amount of trust.\r\n<p class=\"article-tips remember\">A word of caution: If developers fight hard against being on call, a larger problem is at play in your organization. The pushback is not uncommon because being on call is wildly different from their normal day-to-day responsibilities. The pushback often comes from a place of discomfort and fear. You can help mitigate this reaction by addressing the fact that your developers may not know what to do the first few times they’re on call.</p>\r\nThey may not be familiar with the infrastructure, and that’s okay. Encourage them to escalate the incident and page someone with more experience. Finally, create a runbook with common alerts and what actions to take. Providing this resource will help to assuage some fear until they begin to get the hang of things.\r\n\r\nAnother tactic to help spur collaboration to form a more cohesive DevOps team is to introduce a day of shadowing, with each team “trading” a colleague. The traded person simply shadows someone else on the team, sits at their desk (or in their area), and assists in their day-to-day responsibilities. They may help with work, discuss problems as a team (pair programming), and learn more about the system from a different point of view. This style of teaching isn’t prescriptive.\r\n\r\nInstead, it lends itself to curiosity and building trust. Colleagues should feel free to ask questions — even the “stupid” variety — and learn freely. No performance expectations exist. The time should be spent simply getting to know each other and appreciating each other’s work. Any productive output is a bonus!\r\n\r\nIn this alignment approach, both teams absolutely must be involved in the planning, architecture, and development processes. They must share responsibilities and accountability throughout the entire development life cycle.\r\n<h2 id=\"tab2\" >Dedicating a DevOps team</h2>\r\nA dedicated DevOps team is more an evolution of the Sys Admin than a true DevOps team. It is an operations team with a mix of skill sets. Perhaps some engineers are familiar with configuration management, others IaC (infrastructure as code) and perhaps others are experts in containers or cloud native infrastructure or CI/CD (continuous integration and continuous delivery/development).\r\n<p class=\"article-tips warning\">If you think that putting a group of humans into an official team is enough to break down silos, you’re mistaken. Humans are more complex than spreadsheets. Hierarchy doesn’t mean anything if your silos have entered a phase in which they are unhealthy and tribal. In toxic cultures, a strongman style of leadership can emerge that is almost always followed by people taking sides. If you see this on your own team, you have work to do.</p>\r\nAlthough any approach may work for your team, this <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/top-10-devops-pitfalls-why-your-software-projects-fail-265616/\">dedicated team approach is the one you should think through the most.</a> The greatest disadvantage of a dedicated DevOps team is that it easily becomes a continuation of traditional engineering teams without acknowledging the need to align teams, reduce silos, and remove friction. The risks of continuing friction (or creating more) are high in this approach. Tread carefully to ensure you’re choosing this team organization for a specific reason.\r\n\r\nThe <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/why-devops-matters-11-ways-devops-benefits-your-organization-265626/\">benefits of this DevOps approach</a> is having a dedicated team to address major infrastructure changes or adjustments. If you’re struggling with operations-centered issues that are slowing down your deployments or causing site reliability concerns, this might be a good approach — even temporarily.\r\n\r\nA dedicated team if you’re planning on moving a legacy application to the cloud. But rather than calling this team a <a href=\"https://www.dummies.com/article/technology/programming-web-design/general-programming-web-design/interview-techniques-for-building-a-devops-team-getting-the-right-technical-skills-265651/\">DevOps team</a>, you might try labeling it an automation team.\r\n\r\nThis dedicated group of engineers can focus completely on ensuring that you’ve set up the correct infrastructure and automation tools. You can then proceed with confidence that your application will land in the cloud without major disruption. Still, this approach is temporary. If you keep the team isolated for too long, you risk going down a slippery slope from rapid growth to embedded silo.\r\n<h2 id=\"tab3\" >Creating cross-functional product teams for DevOps</h2>\r\nA <em>cross-functional team</em> is a team formed around a single product focus. Rather than have separate teams for development, user interface and user experience (UI/UX), quality assurance (QA), and operations, you combine people from each of these teams.\r\n\r\nA cross-functional team works best in medium to large organizations. You need enough developers and operations folks to fill in the positions of each product team. Each cross-functional team looks a bit different.\r\n\r\nIt’s a good idea to have, at a minimum, one operations person per team. Do not ask an operations person to split their responsibilities between two teams. This scenario is unfair to them and will quickly create friction between the two product teams. Give your engineers the privilege of being able to focus and dig deep into their work.\r\n<p class=\"article-tips remember\">If you’re organization is still small or in the startup phase, you can think of your entire engineering organization as a cross-functional team. Keep it small and focused. When you begin to approach having 10–12 people, start thinking about how you can reorganize engineers.</p>\r\nThe image below shows what your cross-functional teams could look like. But keep in mind that their composition varies from team to team and from organization to organization. Some products have a strong design focus, which means that you may have multiple designers in each team. Other products are technical ones designed for engineers who don’t care much for aesthetics. Teams for that kind of product may have one designer — or none at all.\r\n\r\n[caption id=\"attachment_265665\" align=\"aligncenter\" width=\"342\"]<img class=\"wp-image-265665 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops-product-team.png\" alt=\"DevOps product team\" width=\"342\" height=\"450\" /> Forming product teams.[/caption]\r\n\r\nIf your organization is large enough, you can certainly create multiple teams using different DevOps ideas and approaches. Remember that your organization is unique. Feel empowered to make decisions based on your current circumstances and adjust from there. Here are some possible combinations of various types of product teams.\r\n<ul>\r\n \t<li><strong>Legacy Product Team:</strong> Project Manager (PM), Front-end Developer, Back-end Developer, Back-end Developer, Site Reliability Engineer (SRE), Automation Engineer, QA Tester</li>\r\n \t<li><strong>Cloud Transformation Team:</strong> SRE, SRE, Operations Engineer, Automation Engineer, Back-end Developer</li>\r\n \t<li><strong>MVP Team:</strong> PM, Designer, UX Engineer, Front-end Developer, Backend Developer, Operations Engineer</li>\r\n</ul>\r\nThe downside of a cross-functional product team is that engineers lose the camaraderie of engineers with their same skill sets and passions. Having a group of like-minded individuals with whom you can socialize and from whom you can learn is an important aspect of job satisfaction. Check out a solution to this issue below.\r\n\r\nAs shown below, you can give your engineers dedicated work time to spend with their tribes. You can do something as generous as paying for lunch once every week so that they can get together and talk. Or you might provide 10–20 percent of work time for them to work on projects as a tribe. Either way, you need your engineers to stay sharp.\r\n\r\nTribes share industry knowledge, provide sound feedback, and support career growth. Provide time for your engineers to learn from people with whom they share education, experience, and goals. This time provides a safe place where they can relax and feel at home.\r\n\r\n[caption id=\"attachment_265666\" align=\"aligncenter\" width=\"494\"]<img class=\"wp-image-265666 size-full\" src=\"https://www.dummies.com/wp-content/uploads/devops-tribes.png\" alt=\"DevOps tribes\" width=\"494\" height=\"450\" /> Making space for tribes.[/caption]\r\n\r\nNo amount of perfect finagling will overcome the shortfalls of a bad <a href=\"https://www.dummies.com/article/business-careers-money/business/general-business/assess-your-companys-mindset-148007/\">organizational culture</a>. But if you’ve paid attention so far and made the appropriate strides, the next step is to form teams that reinforce the cultural ideals you’ve already put in place.","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":"Aligning functional teams for DevOps","target":"#tab1"},{"label":"Dedicating a DevOps team","target":"#tab2"},{"label":"Creating cross-functional product teams for DevOps","target":"#tab3"}],"relatedArticles":{"fromBook":[{"articleId":265680,"title":"Using DevOps To Improve Engineering","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":"How To Automate 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":"How To Choose a Cloud Service Provider 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":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":299575,"title":"HTML, CSS, & JavaScript All-in-One For Dummies Cheat Sheet","slug":"html-css-javascript-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/299575"}},{"articleId":265680,"title":"Using DevOps To Improve Engineering","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":"How To Automate 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":"How To Choose a Cloud Service Provider 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":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-64dd0ef2d6485\"></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-64dd0ef2d6ba7\"></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":"2023-08-16T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":265664},{"headers":{"creationTime":"2016-03-26T07:16:01+00:00","modifiedTime":"2023-08-10T16:10:30+00:00","timestamp":"2023-08-10T18:01:03+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"},"slug":"python","categoryId":33606}],"title":"Write a Simple Program in Python","strippedTitle":"write a simple program in python","slug":"write-a-simple-program-in-python","canonicalUrl":"","seo":{"metaDescription":"Just getting started with Python? Learn how to write your first program and follow in the footsteps of many great programmers.","noIndex":0,"noFollow":0},"content":"Tradition dictates that Hello World! be the first program that you write when you're learning a <a href=\"https://www.dummies.com/article/technology/programming-web-design/python/10-major-uses-of-python-148755/\" target=\"_blank\" rel=\"noopener\">new programming language like Python</a>. You're following in the footsteps of many great programmers when you create this project.\r\n\r\nTo create your Hello World! program, follow these steps:\r\n<ol class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\">Open your Start menu and choose Python (command line).</p>\r\n<p class=\"child-para\">You should get a prompt that looks like <span class=\"code\">>>></span>.</p>\r\n<p class=\"child-para\">At the moment, you're doing everything in interactive mode in the Python interpreter. That's where the <span class=\"code\">>>></span> comes in. Python shows you <span class=\"code\">>>></span> when you're supposed to type something.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">At the prompt, type the following. Use a single quote at the start and the end — it's beside the Enter key:</p>\r\n\r\n<pre class=\"code\">print('Hello World!')</pre>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Press the Enter key.</p>\r\n<p class=\"child-para\">Python runs the code you typed.</p>\r\n</li>\r\n</ol>\r\nYou see the output shown in Figure 1. Congratulations — you've written your first program. Welcome to the <a href=\"https://www.dummies.com/article/technology/programming-web-design/python/how-to-install-python-on-your-computer-139548/\" target=\"_blank\" rel=\"noopener\">Python</a>-programmers-in-training club.\r\n<div class=\"imageBlock\" style=\"width: 535px;\">\r\n\r\n[caption id=\"\" align=\"alignnone\" width=\"535\"]<img src=\"https://www.dummies.com/wp-content/uploads/497387.image0.png\" alt=\"<b>Figure </b><b>1:</b> Your Hello World! program is ready for more instructions.\" width=\"535\" height=\"267\" /> Figure 1: Your Hello World! program is ready for more instructions.[/caption]\r\n\r\n<div></div>\r\n<div class=\"imageCaption\">If you don't see what's in Figure 1, check that you typed in the text from Step 2 exactly as it's written:</div>\r\n</div>\r\n<ul class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\">Check that the parentheses and single quotes are in the right places.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Check that for each opening parenthesis there is a closing parenthesis. (Otherwise, you're left hanging.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Check that for each opening quote there's a closing quote.</p>\r\n</li>\r\n</ul>\r\n<p class=\"Remember\">Programming languages have their own grammar and punctuation rules. These rules are the language's <i>syntax</i>. Humans, can work most stuff out even if perfect not you're is grammar (See? You figured out what that sentence was trying to say), but Python pretty much freaks out if you get the syntax wrong.</p>","description":"Tradition dictates that Hello World! be the first program that you write when you're learning a <a href=\"https://www.dummies.com/article/technology/programming-web-design/python/10-major-uses-of-python-148755/\" target=\"_blank\" rel=\"noopener\">new programming language like Python</a>. You're following in the footsteps of many great programmers when you create this project.\r\n\r\nTo create your Hello World! program, follow these steps:\r\n<ol class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\">Open your Start menu and choose Python (command line).</p>\r\n<p class=\"child-para\">You should get a prompt that looks like <span class=\"code\">>>></span>.</p>\r\n<p class=\"child-para\">At the moment, you're doing everything in interactive mode in the Python interpreter. That's where the <span class=\"code\">>>></span> comes in. Python shows you <span class=\"code\">>>></span> when you're supposed to type something.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">At the prompt, type the following. Use a single quote at the start and the end — it's beside the Enter key:</p>\r\n\r\n<pre class=\"code\">print('Hello World!')</pre>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Press the Enter key.</p>\r\n<p class=\"child-para\">Python runs the code you typed.</p>\r\n</li>\r\n</ol>\r\nYou see the output shown in Figure 1. Congratulations — you've written your first program. Welcome to the <a href=\"https://www.dummies.com/article/technology/programming-web-design/python/how-to-install-python-on-your-computer-139548/\" target=\"_blank\" rel=\"noopener\">Python</a>-programmers-in-training club.\r\n<div class=\"imageBlock\" style=\"width: 535px;\">\r\n\r\n[caption id=\"\" align=\"alignnone\" width=\"535\"]<img src=\"https://www.dummies.com/wp-content/uploads/497387.image0.png\" alt=\"<b>Figure </b><b>1:</b> Your Hello World! program is ready for more instructions.\" width=\"535\" height=\"267\" /> Figure 1: Your Hello World! program is ready for more instructions.[/caption]\r\n\r\n<div></div>\r\n<div class=\"imageCaption\">If you don't see what's in Figure 1, check that you typed in the text from Step 2 exactly as it's written:</div>\r\n</div>\r\n<ul class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\">Check that the parentheses and single quotes are in the right places.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Check that for each opening parenthesis there is a closing parenthesis. (Otherwise, you're left hanging.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Check that for each opening quote there's a closing quote.</p>\r\n</li>\r\n</ul>\r\n<p class=\"Remember\">Programming languages have their own grammar and punctuation rules. These rules are the language's <i>syntax</i>. Humans, can work most stuff out even if perfect not you're is grammar (See? You figured out what that sentence was trying to say), but Python pretty much freaks out if you get the syntax wrong.</p>","blurb":"","authors":[{"authorId":9026,"name":"Brendan Scott","slug":"brendan-scott","description":" <p>Brendan Scott is a dad who loves Python and wants kids to get some of its magic too. He started pythonforkids.brendanscott.com to help teach his oldest child to code. He maintains it to help other young people learn Python.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9026"}}],"primaryCategoryTaxonomy":{"categoryId":33606,"title":"Python","slug":"python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":207407,"title":"Python For Kids For Dummies Cheat Sheet","slug":"python-for-kids-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/207407"}},{"articleId":141581,"title":"Use Python to Help with Your Math Homework","slug":"use-python-to-help-with-your-math-homework","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/141581"}},{"articleId":141474,"title":"Python 2.7 Keyword Subset and Examples","slug":"python-2-7-keyword-subset-and-examples","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/141474"}},{"articleId":141443,"title":"Using Tkinter Widgets in Python","slug":"using-tkinter-widgets-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/141443"}},{"articleId":139551,"title":"How to Interrupt a Program in Python","slug":"how-to-interrupt-a-program-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/139551"}}],"fromCategory":[{"articleId":264919,"title":"How to Define and Use Python Lists","slug":"how-to-define-and-use-python-lists","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264919"}},{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281835,"slug":"python-for-kids-for-dummies","isbn":"9781119093107","categoryList":["technology","programming-web-design","python"],"amazon":{"default":"https://www.amazon.com/gp/product/1119093104/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119093104/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/1119093104-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119093104/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119093104/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/python-for-kids-for-dummies-cover-9781119093107-203x255.jpg","width":203,"height":255},"title":"Python For Kids For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p>Brendan Scott is a dad who loves Python and wants kids to get some of its magic too. He started pythonforkids.brendanscott.com to help teach his oldest child to code. He maintains it to help other young people learn Python.</p>","authors":[{"authorId":9026,"name":"Brendan Scott","slug":"brendan-scott","description":" <p>Brendan Scott is a dad who loves Python and wants kids to get some of its magic too. He started pythonforkids.brendanscott.com to help teach his oldest child to code. He maintains it to help other young people learn Python.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9026"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119093107&quot;]},{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;For Kids&quot;]}]\" id=\"du-slot-64d525df11adc\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119093107&quot;]},{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;For Kids&quot;]}]\" id=\"du-slot-64d525df1208d\"></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":"Explore","lifeExpectancy":"One year","lifeExpectancySetFrom":"2022-01-25T00:00:00+00:00","dummiesForKids":"yes","sponsoredContent":"no","adInfo":"","adPairKey":[{"adPairKey":"cat","adPairValue":"For Kids"}]},"status":"publish","visibility":"public","articleId":139547},{"headers":{"creationTime":"2016-03-26T07:15:31+00:00","modifiedTime":"2023-08-10T16:08:09+00:00","timestamp":"2023-08-10T18:01:02+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"},"slug":"python","categoryId":33606}],"title":"How to Spot and Fix Errors in Python","strippedTitle":"how to spot and fix errors in python","slug":"how-to-spot-and-fix-errors-in-python","canonicalUrl":"","seo":{"metaDescription":"The Python interpreter takes in each line and operates on it immediately (more or less) after you press the Enter key. In Hello World! you use Python's print fe","noIndex":0,"noFollow":0},"content":"<p>The Python interpreter takes in each line and operates on it immediately (more or less) after you press the Enter key. In <a href=\"https://www.dummies.com/article/technology/programming-web-design/python/write-a-simple-program-in-python-139547/\">Hello World!</a> you use Python's print feature. print takes what's inside the parentheses and outputs it to the command line (also called the <i>console</i>).</p>\r\n<p>Python is sensitive to both the grammar and punctuation. If you misspell something, the program won't work. If Python is expecting special characters and you don't put them in, then Python will fail. Some Python issues are shown here. Can you work out how you would fix them?</p>\r\n<pre class=\"code\"> &gt;&gt;&gt; pritn('Hello World!')\r\n Traceback (most recent call last):\r\n File \"&lt;stdin&gt;\", line 1, in &lt;module&gt;\r\n NameError: name 'pritn' is not defined</pre>\r\n<p>Here's another:</p>\r\n<pre class=\"code\"> &gt;&gt;&gt; print('Hello World!)\r\n File \"&lt;stdin&gt;\", line 1\r\n print('Hello World!)\r\n SyntaxError: EOL while scanning string literal</pre>\r\n<p>Here's another:</p>\r\n<pre class=\"code\"> &gt;&gt;&gt; print 'Hello World!')\r\n File \"&lt;stdin&gt;\", line 1\r\n print 'Hello World!')\r\n ^\r\n SyntaxError: invalid syntax</pre>\r\n<p>Python tries to give you the reason it failed (that is, <span class=\"code\">NameError</span> and <span class=\"code\">SyntaxError</span>).</p>\r\n<p>Check each of these things:</p>\r\n<ul class=\"level-one\">\r\n <li><p class=\"first-para\">Opening parenthesis has a closing parenthesis</p>\r\n </li>\r\n <li><p class=\"first-para\">Every opening quote mark has a matching closing quote mark</p>\r\n </li>\r\n <li><p class=\"first-para\">All commands are correctly spelled</p>\r\n </li>\r\n</ul>","description":"<p>The Python interpreter takes in each line and operates on it immediately (more or less) after you press the Enter key. In <a href=\"https://www.dummies.com/article/technology/programming-web-design/python/write-a-simple-program-in-python-139547/\">Hello World!</a> you use Python's print feature. print takes what's inside the parentheses and outputs it to the command line (also called the <i>console</i>).</p>\r\n<p>Python is sensitive to both the grammar and punctuation. If you misspell something, the program won't work. If Python is expecting special characters and you don't put them in, then Python will fail. Some Python issues are shown here. Can you work out how you would fix them?</p>\r\n<pre class=\"code\"> &gt;&gt;&gt; pritn('Hello World!')\r\n Traceback (most recent call last):\r\n File \"&lt;stdin&gt;\", line 1, in &lt;module&gt;\r\n NameError: name 'pritn' is not defined</pre>\r\n<p>Here's another:</p>\r\n<pre class=\"code\"> &gt;&gt;&gt; print('Hello World!)\r\n File \"&lt;stdin&gt;\", line 1\r\n print('Hello World!)\r\n SyntaxError: EOL while scanning string literal</pre>\r\n<p>Here's another:</p>\r\n<pre class=\"code\"> &gt;&gt;&gt; print 'Hello World!')\r\n File \"&lt;stdin&gt;\", line 1\r\n print 'Hello World!')\r\n ^\r\n SyntaxError: invalid syntax</pre>\r\n<p>Python tries to give you the reason it failed (that is, <span class=\"code\">NameError</span> and <span class=\"code\">SyntaxError</span>).</p>\r\n<p>Check each of these things:</p>\r\n<ul class=\"level-one\">\r\n <li><p class=\"first-para\">Opening parenthesis has a closing parenthesis</p>\r\n </li>\r\n <li><p class=\"first-para\">Every opening quote mark has a matching closing quote mark</p>\r\n </li>\r\n <li><p class=\"first-para\">All commands are correctly spelled</p>\r\n </li>\r\n</ul>","blurb":"","authors":[{"authorId":9026,"name":"Brendan Scott","slug":"brendan-scott","description":" <p>Brendan Scott is a dad who loves Python and wants kids to get some of its magic too. He started pythonforkids.brendanscott.com to help teach his oldest child to code. He maintains it to help other young people learn Python.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9026"}}],"primaryCategoryTaxonomy":{"categoryId":33606,"title":"Python","slug":"python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":207407,"title":"Python For Kids For Dummies Cheat Sheet","slug":"python-for-kids-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/207407"}},{"articleId":141581,"title":"Use Python to Help with Your Math Homework","slug":"use-python-to-help-with-your-math-homework","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/141581"}},{"articleId":141474,"title":"Python 2.7 Keyword Subset and Examples","slug":"python-2-7-keyword-subset-and-examples","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/141474"}},{"articleId":141443,"title":"Using Tkinter Widgets in Python","slug":"using-tkinter-widgets-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/141443"}},{"articleId":139551,"title":"How to Interrupt a Program in Python","slug":"how-to-interrupt-a-program-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/139551"}}],"fromCategory":[{"articleId":264919,"title":"How to Define and Use Python Lists","slug":"how-to-define-and-use-python-lists","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264919"}},{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281835,"slug":"python-for-kids-for-dummies","isbn":"9781119093107","categoryList":["technology","programming-web-design","python"],"amazon":{"default":"https://www.amazon.com/gp/product/1119093104/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119093104/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/1119093104-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119093104/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119093104/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/python-for-kids-for-dummies-cover-9781119093107-203x255.jpg","width":203,"height":255},"title":"Python For Kids For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p>Brendan Scott is a dad who loves Python and wants kids to get some of its magic too. He started pythonforkids.brendanscott.com to help teach his oldest child to code. He maintains it to help other young people learn Python.</p>","authors":[{"authorId":9026,"name":"Brendan Scott","slug":"brendan-scott","description":" <p>Brendan Scott is a dad who loves Python and wants kids to get some of its magic too. He started pythonforkids.brendanscott.com to help teach his oldest child to code. He maintains it to help other young people learn Python.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9026"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119093107&quot;]},{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;For Kids&quot;]}]\" id=\"du-slot-64d525debf9ba\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119093107&quot;]},{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;For Kids&quot;]}]\" id=\"du-slot-64d525dec0400\"></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":"2023-08-10T00:00:00+00:00","dummiesForKids":"yes","sponsoredContent":"no","adInfo":"","adPairKey":[{"adPairKey":"cat","adPairValue":"For Kids"}]},"status":"publish","visibility":"public","articleId":139493},{"headers":{"creationTime":"2018-06-14T17:52:16+00:00","modifiedTime":"2023-08-02T13:52:55+00:00","timestamp":"2023-08-02T15:01:02+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":"Using XMLHttpRequest Class Properties","strippedTitle":"using xmlhttprequest class properties","slug":"using-xmlhttprequest-class-properties","canonicalUrl":"","seo":{"metaDescription":"The XMLHttpRequest object contains several class properties that you’ll need to know about to handle the HTTP response from the web server. The XMLHttpRequest C","noIndex":0,"noFollow":0},"content":"The <code>XMLHttpRequest</code> object contains several class properties that you’ll need to know about to handle the HTTP response from the web server.\r\n<h2 id=\"tab1\" >The XMLHttpRequest Class Properties</h2>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><code>Property</code></td>\r\n<td>Description</td>\r\n</tr>\r\n<tr>\r\n<td><code>onreadystatechange</code></td>\r\n<td>Defines a callback function that the browser triggers when the HTTP connection changes state</td>\r\n</tr>\r\n<tr>\r\n<td><code>readyState</code></td>\r\n<td>Contains the connection status of the HTTP connection</td>\r\n</tr>\r\n<tr>\r\n<td><code>responseText</code></td>\r\n<td>Contains the response sent by the web server in text format</td>\r\n</tr>\r\n<tr>\r\n<td><code>responseXML</code></td>\r\n<td>Contains the response sent by the web server in XML format</td>\r\n</tr>\r\n<tr>\r\n<td><code>status</code></td>\r\n<td>Contains the numeric HTTP response code from the web server</td>\r\n</tr>\r\n<tr>\r\n<td><code>statusText</code></td>\r\n<td>Contains the text HTTP response string from the web server</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\nAfter you use the <code>send()</code> method to send a connection request to a web server, the HTTP connection process works through five connection states, as tracked by the <code>readyState</code> property:\r\n<ul>\r\n \t<li><strong>State 0:</strong> The connection has not been initialized.</li>\r\n \t<li><strong>State 1:</strong> The connection to the server has been established.</li>\r\n \t<li><strong>State 2:</strong> The server received the HTTP request message.</li>\r\n \t<li><strong>State 3:</strong> The server is processing the HTTP request.</li>\r\n \t<li><strong>State 4:</strong> The server sent the response.</li>\r\n</ul>\r\nAs the HTTP connection works through these five connection states, the value contained in the <code>readyState</code> property changes. This causes the function you define in the <code>onreadystatechange</code> property to trigger for each state change. When the <code>readyState</code> property contains a value of 4, the final result from the request is available for processing.\r\n\r\nWhen the <code>readyState</code> property value is 4, you know the communication is complete, but you don’t know how it turned out. To determine that, you check the HTTP response returned by the web server using the <code>status</code> property. If the <code>status</code> property contains the 200 numeric HTTP result code, that indicates the connection was successful, and any data returned by the web server is available in the <code>responseText</code> and <code>responseXML</code> properties. If the status property contains some other HTTP result code (such as 403 or 404), that indicates there was an error communicating with the web server.\r\n\r\nBecause these values are standard, it has become somewhat common practice to start out the <code>onreadystatechange</code> callback function code checking for them:\r\n<pre class=\"code\">con.onreadystatechange = function() {\r\n if (this.readyState == 4 && this.status == 200) {\r\n var result = this.responseText;\r\n }\r\n};</pre>\r\nThe function only retrieves the data when the connection is complete and has returned valid data. This method of defining the callback function inline is referred to as creating an <em>anonymous callback function, </em>because you don’t define a name for the function. It only exists inside the <code>onreadystatechange</code> property, so you can’t reference it anywhere else in your JavaScript code.\r\n<p class=\"article-tips tip\">Although using an anonymous function is a popular way of defining the callback function, you can define the function as a standard named JavaScript function and then reference that function name in the <code>onreadystatechange</code> property.</p>","description":"The <code>XMLHttpRequest</code> object contains several class properties that you’ll need to know about to handle the HTTP response from the web server.\r\n<h2 id=\"tab1\" >The XMLHttpRequest Class Properties</h2>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><code>Property</code></td>\r\n<td>Description</td>\r\n</tr>\r\n<tr>\r\n<td><code>onreadystatechange</code></td>\r\n<td>Defines a callback function that the browser triggers when the HTTP connection changes state</td>\r\n</tr>\r\n<tr>\r\n<td><code>readyState</code></td>\r\n<td>Contains the connection status of the HTTP connection</td>\r\n</tr>\r\n<tr>\r\n<td><code>responseText</code></td>\r\n<td>Contains the response sent by the web server in text format</td>\r\n</tr>\r\n<tr>\r\n<td><code>responseXML</code></td>\r\n<td>Contains the response sent by the web server in XML format</td>\r\n</tr>\r\n<tr>\r\n<td><code>status</code></td>\r\n<td>Contains the numeric HTTP response code from the web server</td>\r\n</tr>\r\n<tr>\r\n<td><code>statusText</code></td>\r\n<td>Contains the text HTTP response string from the web server</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\nAfter you use the <code>send()</code> method to send a connection request to a web server, the HTTP connection process works through five connection states, as tracked by the <code>readyState</code> property:\r\n<ul>\r\n \t<li><strong>State 0:</strong> The connection has not been initialized.</li>\r\n \t<li><strong>State 1:</strong> The connection to the server has been established.</li>\r\n \t<li><strong>State 2:</strong> The server received the HTTP request message.</li>\r\n \t<li><strong>State 3:</strong> The server is processing the HTTP request.</li>\r\n \t<li><strong>State 4:</strong> The server sent the response.</li>\r\n</ul>\r\nAs the HTTP connection works through these five connection states, the value contained in the <code>readyState</code> property changes. This causes the function you define in the <code>onreadystatechange</code> property to trigger for each state change. When the <code>readyState</code> property contains a value of 4, the final result from the request is available for processing.\r\n\r\nWhen the <code>readyState</code> property value is 4, you know the communication is complete, but you don’t know how it turned out. To determine that, you check the HTTP response returned by the web server using the <code>status</code> property. If the <code>status</code> property contains the 200 numeric HTTP result code, that indicates the connection was successful, and any data returned by the web server is available in the <code>responseText</code> and <code>responseXML</code> properties. If the status property contains some other HTTP result code (such as 403 or 404), that indicates there was an error communicating with the web server.\r\n\r\nBecause these values are standard, it has become somewhat common practice to start out the <code>onreadystatechange</code> callback function code checking for them:\r\n<pre class=\"code\">con.onreadystatechange = function() {\r\n if (this.readyState == 4 && this.status == 200) {\r\n var result = this.responseText;\r\n }\r\n};</pre>\r\nThe function only retrieves the data when the connection is complete and has returned valid data. This method of defining the callback function inline is referred to as creating an <em>anonymous callback function, </em>because you don’t define a name for the function. It only exists inside the <code>onreadystatechange</code> property, so you can’t reference it anywhere else in your JavaScript code.\r\n<p class=\"article-tips tip\">Although using an anonymous function is a popular way of defining the callback function, you can define the function as a standard named JavaScript function and then reference that function name in the <code>onreadystatechange</code> property.</p>","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":[{"label":"The XMLHttpRequest Class Properties","target":"#tab1"}],"relatedArticles":{"fromBook":[{"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"}},{"articleId":253246,"title":"What are Mutator Magic Methods in PHP?","slug":"mutator-magic-methods-php","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253246"}}],"fromCategory":[{"articleId":299575,"title":"HTML, CSS, & JavaScript All-in-One For Dummies Cheat Sheet","slug":"html-css-javascript-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/299575"}},{"articleId":265680,"title":"Using DevOps To Improve Engineering","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":"How To Automate 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":"How To Choose a Cloud Service Provider 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"}}]},"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-64ca6faebfca3\"></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-64ca6faec0661\"></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":"2023-08-02T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":253381},{"headers":{"creationTime":"2017-09-26T04:04:31+00:00","modifiedTime":"2023-07-24T14:33:42+00:00","timestamp":"2023-07-24T15:01:03+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":"3D Printing","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33593"},"slug":"3d-printing","categoryId":33593}],"title":"3D Printers: Fixing a Blocked Hot-End or Extruder","strippedTitle":"3d printers: fixing a blocked hot-end or extruder","slug":"3d-printers-fixing-blocked-hot-end-extruder","canonicalUrl":"","seo":{"metaDescription":"When your 3D printer's hot-end gets blocked or your extruder's filament drive fails, the warning signs are usually obvious. The stream of plastic starts to less","noIndex":0,"noFollow":0},"content":"When your 3D printer's hot-end gets blocked or your extruder's filament drive fails, the warning signs are usually obvious. The stream of plastic starts to lessen and then stops; the printer keeps trying to print but extrudes layer after layer of nothing.\r\n\r\nThe first things to do are stop the printer and ensure that the heater block on the hot-end is still at the expected temperature. (Ideally, for maximum safety, you should use a <a href=\"https://www.dummies.com/article/technology/programming-web-design/3d-printing/tips-3d-printer-thermoplastic-extruder-operation-244626/\">noncontact laser temperature sensor</a>.) If the heater temperature is significantly below 160 degrees C, the heater used in the hot-end or temperature sensor may have failed, or the wiring or electronics controlling the heaters may have developed a problem.\r\n<p class=\"article-tips tip\">Unfortunately, wires commonly break — and insulation wears away — on a home 3D printer due to the constant movement of the machine. Wiring should always have plenty of room to move around gently, with enough slack — not tightly bent or yanked back and forth as the machine moves. Using silicon-coated wire can help, especially if it has extra resistance to heat. Increasingly, new machines use gently curved ribbon cable — a ribbon of many parallel wires instead of a single thick wire — which tends to alleviate cable strain and damage.</p>\r\nIf your heater block is jammed but is at the expected temperature, follow these general steps to clear the jam:\r\n<ol>\r\n\t<li><strong>Keep the heater block turned on.</strong></li>\r\n\t<li><strong>Make sure that the filament drive isn't blocked and that the filament isn't buckled or wrapped around the extruder drive wheel.\r\n</strong>\r\nIf you think you may have a blockage, follow the steps here. If you have buckled filament wrapped around the drive wheel, first remove the buckled filament, and then follow the next steps to check if the cause of the buckle was a blockage.</li>\r\n\t<li><strong>Release the idler bearing, and gently pull out the filament.\r\n</strong>\r\nA filament rarely gets so jammed that it can't be pulled out while the hot-end is at temperature. More commonly, the removed filament shows signs of being overly compressed — a little fatter where it melted inside the hot-end. Usually, pulling out the melted filament removes contaminants from the hot-end nozzle.</li>\r\n\t<li><strong>Cut off the melted filament end, and push it into the hot-end.\r\n</strong>\r\nIf you can push down, and material is extruded from the nozzle, you've cleared the blockage. Otherwise, proceed to Step 5.</li>\r\n\t<li><strong>If you can't get the material to extrude, allow the end of the material to melt, and pull it out again.\r\n</strong>\r\nRepeating this step several times should clear most blockages. If not, proceed to Step 6.</li>\r\n\t<li><strong>If you still have a blockage, do either of the following things (extremely carefully):</strong>\r\n<ul>\r\n\t<li>Push a pin or small drill bit into the nozzle end while pulling out the melted filament.</li>\r\n\t<li>Allow the hot-end to cool, and <em>when it's cool,</em> use a chemical solvent (such as acetone) to dissolve any buildup.</li>\r\n</ul>\r\n</li>\r\n</ol>\r\n<p class=\"article-tips warning\">Before using any chemical cleaner, check with the supplier, and mention the type of material that you were using in the hot-end when the jam occurred.</p>\r\n<p class=\"article-tips tip\">You may be starting to think that having a few extruders is a good idea — and usually, it is. In the event of a blockage, a backup extruder can get you printing again while you repair. Another reason for having a choice of extruders is that your machine becomes much more capable of printing different types of objects, which can widen your selection of available printing materials.</p>","description":"When your 3D printer's hot-end gets blocked or your extruder's filament drive fails, the warning signs are usually obvious. The stream of plastic starts to lessen and then stops; the printer keeps trying to print but extrudes layer after layer of nothing.\r\n\r\nThe first things to do are stop the printer and ensure that the heater block on the hot-end is still at the expected temperature. (Ideally, for maximum safety, you should use a <a href=\"https://www.dummies.com/article/technology/programming-web-design/3d-printing/tips-3d-printer-thermoplastic-extruder-operation-244626/\">noncontact laser temperature sensor</a>.) If the heater temperature is significantly below 160 degrees C, the heater used in the hot-end or temperature sensor may have failed, or the wiring or electronics controlling the heaters may have developed a problem.\r\n<p class=\"article-tips tip\">Unfortunately, wires commonly break — and insulation wears away — on a home 3D printer due to the constant movement of the machine. Wiring should always have plenty of room to move around gently, with enough slack — not tightly bent or yanked back and forth as the machine moves. Using silicon-coated wire can help, especially if it has extra resistance to heat. Increasingly, new machines use gently curved ribbon cable — a ribbon of many parallel wires instead of a single thick wire — which tends to alleviate cable strain and damage.</p>\r\nIf your heater block is jammed but is at the expected temperature, follow these general steps to clear the jam:\r\n<ol>\r\n\t<li><strong>Keep the heater block turned on.</strong></li>\r\n\t<li><strong>Make sure that the filament drive isn't blocked and that the filament isn't buckled or wrapped around the extruder drive wheel.\r\n</strong>\r\nIf you think you may have a blockage, follow the steps here. If you have buckled filament wrapped around the drive wheel, first remove the buckled filament, and then follow the next steps to check if the cause of the buckle was a blockage.</li>\r\n\t<li><strong>Release the idler bearing, and gently pull out the filament.\r\n</strong>\r\nA filament rarely gets so jammed that it can't be pulled out while the hot-end is at temperature. More commonly, the removed filament shows signs of being overly compressed — a little fatter where it melted inside the hot-end. Usually, pulling out the melted filament removes contaminants from the hot-end nozzle.</li>\r\n\t<li><strong>Cut off the melted filament end, and push it into the hot-end.\r\n</strong>\r\nIf you can push down, and material is extruded from the nozzle, you've cleared the blockage. Otherwise, proceed to Step 5.</li>\r\n\t<li><strong>If you can't get the material to extrude, allow the end of the material to melt, and pull it out again.\r\n</strong>\r\nRepeating this step several times should clear most blockages. If not, proceed to Step 6.</li>\r\n\t<li><strong>If you still have a blockage, do either of the following things (extremely carefully):</strong>\r\n<ul>\r\n\t<li>Push a pin or small drill bit into the nozzle end while pulling out the melted filament.</li>\r\n\t<li>Allow the hot-end to cool, and <em>when it's cool,</em> use a chemical solvent (such as acetone) to dissolve any buildup.</li>\r\n</ul>\r\n</li>\r\n</ol>\r\n<p class=\"article-tips warning\">Before using any chemical cleaner, check with the supplier, and mention the type of material that you were using in the hot-end when the jam occurred.</p>\r\n<p class=\"article-tips tip\">You may be starting to think that having a few extruders is a good idea — and usually, it is. In the event of a blockage, a backup extruder can get you printing again while you repair. Another reason for having a choice of extruders is that your machine becomes much more capable of printing different types of objects, which can widen your selection of available printing materials.</p>","blurb":"","authors":[{"authorId":9516,"name":"Richard Horne","slug":"richard-horne","description":" <p><b>Richard Horne &#40;RichRap&#41;</b> has worked as an engineer, marketer, and product designer. He blogs and shares ideas on making 3D printing easier for everyone. <b>Kalani Kirk Hausman</b> has experience as an IT consultant, enterprise architect, auditor, and ISO. He conducts research on integrating 3D&#45;printed materials into educational curricula. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9516"}},{"authorId":9515,"name":"Kalani Kirk Hausman","slug":"kalani-kirk-hausman","description":" <p><b>Kalani Kirk Hausman</b> is a specialist in enterprise architecture, security, information assurance, business continuity, and regulatory compliance. <b>Susan L. Cook</b> is a Senior IT Policy and Security Programs Administrator and a former compliance auditor. Both are employed by Texas A&#38;M University. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9515"}}],"primaryCategoryTaxonomy":{"categoryId":33593,"title":"3D Printing","slug":"3d-printing","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33593"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":244638,"title":"Cooling 3D Printer Extruders with Fans","slug":"cooling-3d-printer-extruders-fans","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244638"}},{"articleId":244634,"title":"Acquire an Assortment of Extruders for Your 3D Printer","slug":"acquire-assortment-extruders-3d-printer","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244634"}},{"articleId":244626,"title":"Tips for 3D Printer Thermoplastic Extruder Operation","slug":"tips-3d-printer-thermoplastic-extruder-operation","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244626"}},{"articleId":244617,"title":"Multicolor 3D Print Methods","slug":"multicolor-3d-print-methods","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244617"}},{"articleId":244611,"title":"The Idler Wheel of Your 3D Printer's Thermoplastic Extruder","slug":"idler-wheel-3d-printers-thermoplastic-extruder","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244611"}}],"fromCategory":[{"articleId":244638,"title":"Cooling 3D Printer Extruders with Fans","slug":"cooling-3d-printer-extruders-fans","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244638"}},{"articleId":244634,"title":"Acquire an Assortment of Extruders for Your 3D Printer","slug":"acquire-assortment-extruders-3d-printer","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244634"}},{"articleId":244626,"title":"Tips for 3D Printer Thermoplastic Extruder Operation","slug":"tips-3d-printer-thermoplastic-extruder-operation","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244626"}},{"articleId":244617,"title":"Multicolor 3D Print Methods","slug":"multicolor-3d-print-methods","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244617"}},{"articleId":244611,"title":"The Idler Wheel of Your 3D Printer's Thermoplastic Extruder","slug":"idler-wheel-3d-printers-thermoplastic-extruder","categoryList":["technology","programming-web-design","3d-printing"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244611"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281612,"slug":"3d-printing-for-dummies-2nd-edition","isbn":"9781119386315","categoryList":["technology","programming-web-design","3d-printing"],"amazon":{"default":"https://www.amazon.com/gp/product/1119386314/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119386314/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/1119386314-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119386314/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119386314/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/3d-printing-for-dummies-2nd-edition-cover-9781119386315-203x255.jpg","width":203,"height":255},"title":"3D Printing For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"9516\">Richard Horne (RichRap)</b> has worked as an engineer, marketer, and product designer. He blogs and shares ideas on making 3D printing easier for everyone. <b data-author-id=\"9515\">Kalani Kirk Hausman</b> has experience as an IT consultant, enterprise architect, auditor, and ISO. He conducts research on integrating 3D-printed materials into educational curricula. </p>","authors":[{"authorId":9516,"name":"Richard Horne","slug":"richard-horne","description":" <p><b>Richard Horne &#40;RichRap&#41;</b> has worked as an engineer, marketer, and product designer. He blogs and shares ideas on making 3D printing easier for everyone. <b>Kalani Kirk Hausman</b> has experience as an IT consultant, enterprise architect, auditor, and ISO. He conducts research on integrating 3D&#45;printed materials into educational curricula. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9516"}},{"authorId":9515,"name":"Kalani Kirk Hausman","slug":"kalani-kirk-hausman","description":" <p><b>Kalani Kirk Hausman</b> is a specialist in enterprise architecture, security, information assurance, business continuity, and regulatory compliance. <b>Susan L. Cook</b> is a Senior IT Policy and Security Programs Administrator and a former compliance auditor. Both are employed by Texas A&#38;M University. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9515"}}],"_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;3d-printing&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119386315&quot;]}]\" id=\"du-slot-64be922f23299\"></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;3d-printing&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119386315&quot;]}]\" id=\"du-slot-64be922f23bed\"></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":"Explore","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2023-07-24T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":244631},{"headers":{"creationTime":"2018-06-11T20:58:30+00:00","modifiedTime":"2023-07-24T14:22:37+00:00","timestamp":"2023-07-24T15:01:02+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":"Using Integrated Development Environments for Program Development","strippedTitle":"using integrated development environments for program development","slug":"using-integrated-development-environments-program-development","canonicalUrl":"","seo":{"metaDescription":"The laser-guided miter tool for program development is the integrated development environment (IDE). IDE packages provide everything you could possibly need to ","noIndex":0,"noFollow":0},"content":"The laser-guided miter tool for program development is the <em>integrated development environment</em> (IDE). IDE packages provide everything you could possibly need to develop any size of web application.\r\n\r\nHere are some of the advanced features IDE packages provide:\r\n<ul>\r\n \t<li><strong>Code completion:</strong> Start typing a code statement, and the package will provide a pop-up list of statements that match what you’re typing. It also shows what parameters are required and optional for the statement.</li>\r\n \t<li><strong>Code formatting:</strong> The IDE automatically indents code blocks to help make your code more readable.</li>\r\n \t<li><strong>Program execution:</strong> You can run your code directly from the editor window without having to jump out to a web browser.</li>\r\n \t<li><strong>Debugging:</strong> You can step through the program code line by line, watch how variables are set, and see whether any error messages are generated.</li>\r\n \t<li><strong>Project and file management:</strong> Most IDE packages allow you to group your application files into projects. This allows you to open a project and see just the files associated with that application. Some will even upload the project files to your web-hosting site for you, similar to what the graphical desktop tools do.</li>\r\n</ul>\r\nUsing an IDE tool is not for the faint of heart. Because of all the fancy features, learning how to use the IDE interface can be almost as complicated as learning the programming language!\r\n\r\nThere are both commercial and open-source IDE packages available for the PHP environment. To give you a general idea of how IDE packages operate, check out two of the more popular ones: Netbeans and Eclipse.\r\n<h2 id=\"tab1\" >Netbeans</h2>\r\nThe Netbeans IDE package was originally developed by Sun Microsystems and released as an open-source IDE for its Java programming language environment (thus the “beans” part of the name). When Oracle acquired Sun, it maintained support for Netbeans, and continued development of it with updated releases.\r\n\r\nThe Netbeans IDE now contains support for several different programming languages besides Java by using additional plug-in modules. As you can guess, the reason I’m mentioning it here is because there’s a plug-in module for PHP.\r\n\r\nYou can download the Netbeans editor with the PHP module already installed, making it easy to install. Just go to <u><a href=\"https://netbeans.apache.org/download/\" target=\"_blank\" rel=\"noopener\">netbeans.apache.org/download/</a></u> and click the Download button under the PHP category.\r\n\r\nWhen you start Netbeans, it will prompt you to start a new project.\r\n\r\n[caption id=\"attachment_253202\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-253202 size-full\" src=\"https://www.dummies.com/wp-content/uploads/phpmysqljava-netbeans.jpg\" alt=\"Netbeans\" width=\"535\" height=\"307\" /> The Netbeans project dialog box.[/caption]\r\n\r\nNetbeans contains project templates for HTML and JavaScript applications, as well as PHP applications. When you start a new PHP project, Netbeans automatically creates an index.php file as the main program file for the project. It even builds a rough template for your code. As you would expect from an IDE, when you start typing a PHP function name, Netbeans opens a pop-up box that shows all the PHP functions that match what you're typing.\r\n\r\nNot only does it show the code completion list, but it also shows you the PHP manual definition of the function! This is certainly a handy tool to have available if you plan on doing any large-scale PHP development.\r\n<h2 id=\"tab2\" >Eclipse</h2>\r\nThe other big name in PHP IDE packages is the Eclipse PHP Development Tool (usually just called Eclipse PDT). Eclipse was also originally designed as a Java application IDE. Many open-source proponents didn’t trust Sun Microsystems maintaining the only IDE for Java, so they set out to develop their own. (The story goes that there was no intentional wordplay on the name Eclipse versus Sun Microsystems. If you can believe that, I may have a bridge to sell you.)\r\n\r\nJust like the Netbeans IDE, Eclipse evolved from a Java-only IDE to support many different programming languages via the use of plug-in modules. You can download the Eclipse PDT as an all-in-one package at <u><a href=\"https://www.eclipse.org/pdt\" target=_\"blank\">eclipse.org/pdt</a></u>.\r\n<p class=\"article-tips warning\">Just like the jEdit editor, Eclipse PDT is written as a Java application and requires that you have a JRE or JDK installed on your workstation.</p>\r\nWhen you start Eclipse, a menu system appears.\r\n\r\n[caption id=\"attachment_253203\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-253203 size-full\" src=\"https://www.dummies.com/wp-content/uploads/phpmysqljava-eclipse.jpg\" alt=\"Eclipse \" width=\"535\" height=\"402\" /> The Eclipse start menu.[/caption]\r\n\r\nThis allows you to easily change the IDE configuration, start a new project, or open an existing project. Eclipse has all the same features that Netbeans offers. Plus, it has one additional feature: Eclipse PDT contains the advanced PHP Debugger tool developed by Zend, the company that sponsors PHP. The Debugger tool can help point out errors in your PHP code immediately as you type, or it can debug your code as you run it in the Eclipse editor window.\r\n\r\n[caption id=\"attachment_253204\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-253204 size-full\" src=\"https://www.dummies.com/wp-content/uploads/phpmysqljava-php-debugger.jpg\" alt=\"PHP debugger\" width=\"535\" height=\"402\" /> The PHP debugger in action in Eclipse.[/caption]\r\n\r\nHaving an advanced PHP debugger at your fingertips can be a great time-saver when you’re developing large applications!","description":"The laser-guided miter tool for program development is the <em>integrated development environment</em> (IDE). IDE packages provide everything you could possibly need to develop any size of web application.\r\n\r\nHere are some of the advanced features IDE packages provide:\r\n<ul>\r\n \t<li><strong>Code completion:</strong> Start typing a code statement, and the package will provide a pop-up list of statements that match what you’re typing. It also shows what parameters are required and optional for the statement.</li>\r\n \t<li><strong>Code formatting:</strong> The IDE automatically indents code blocks to help make your code more readable.</li>\r\n \t<li><strong>Program execution:</strong> You can run your code directly from the editor window without having to jump out to a web browser.</li>\r\n \t<li><strong>Debugging:</strong> You can step through the program code line by line, watch how variables are set, and see whether any error messages are generated.</li>\r\n \t<li><strong>Project and file management:</strong> Most IDE packages allow you to group your application files into projects. This allows you to open a project and see just the files associated with that application. Some will even upload the project files to your web-hosting site for you, similar to what the graphical desktop tools do.</li>\r\n</ul>\r\nUsing an IDE tool is not for the faint of heart. Because of all the fancy features, learning how to use the IDE interface can be almost as complicated as learning the programming language!\r\n\r\nThere are both commercial and open-source IDE packages available for the PHP environment. To give you a general idea of how IDE packages operate, check out two of the more popular ones: Netbeans and Eclipse.\r\n<h2 id=\"tab1\" >Netbeans</h2>\r\nThe Netbeans IDE package was originally developed by Sun Microsystems and released as an open-source IDE for its Java programming language environment (thus the “beans” part of the name). When Oracle acquired Sun, it maintained support for Netbeans, and continued development of it with updated releases.\r\n\r\nThe Netbeans IDE now contains support for several different programming languages besides Java by using additional plug-in modules. As you can guess, the reason I’m mentioning it here is because there’s a plug-in module for PHP.\r\n\r\nYou can download the Netbeans editor with the PHP module already installed, making it easy to install. Just go to <u><a href=\"https://netbeans.apache.org/download/\" target=\"_blank\" rel=\"noopener\">netbeans.apache.org/download/</a></u> and click the Download button under the PHP category.\r\n\r\nWhen you start Netbeans, it will prompt you to start a new project.\r\n\r\n[caption id=\"attachment_253202\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-253202 size-full\" src=\"https://www.dummies.com/wp-content/uploads/phpmysqljava-netbeans.jpg\" alt=\"Netbeans\" width=\"535\" height=\"307\" /> The Netbeans project dialog box.[/caption]\r\n\r\nNetbeans contains project templates for HTML and JavaScript applications, as well as PHP applications. When you start a new PHP project, Netbeans automatically creates an index.php file as the main program file for the project. It even builds a rough template for your code. As you would expect from an IDE, when you start typing a PHP function name, Netbeans opens a pop-up box that shows all the PHP functions that match what you're typing.\r\n\r\nNot only does it show the code completion list, but it also shows you the PHP manual definition of the function! This is certainly a handy tool to have available if you plan on doing any large-scale PHP development.\r\n<h2 id=\"tab2\" >Eclipse</h2>\r\nThe other big name in PHP IDE packages is the Eclipse PHP Development Tool (usually just called Eclipse PDT). Eclipse was also originally designed as a Java application IDE. Many open-source proponents didn’t trust Sun Microsystems maintaining the only IDE for Java, so they set out to develop their own. (The story goes that there was no intentional wordplay on the name Eclipse versus Sun Microsystems. If you can believe that, I may have a bridge to sell you.)\r\n\r\nJust like the Netbeans IDE, Eclipse evolved from a Java-only IDE to support many different programming languages via the use of plug-in modules. You can download the Eclipse PDT as an all-in-one package at <u><a href=\"https://www.eclipse.org/pdt\" target=_\"blank\">eclipse.org/pdt</a></u>.\r\n<p class=\"article-tips warning\">Just like the jEdit editor, Eclipse PDT is written as a Java application and requires that you have a JRE or JDK installed on your workstation.</p>\r\nWhen you start Eclipse, a menu system appears.\r\n\r\n[caption id=\"attachment_253203\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-253203 size-full\" src=\"https://www.dummies.com/wp-content/uploads/phpmysqljava-eclipse.jpg\" alt=\"Eclipse \" width=\"535\" height=\"402\" /> The Eclipse start menu.[/caption]\r\n\r\nThis allows you to easily change the IDE configuration, start a new project, or open an existing project. Eclipse has all the same features that Netbeans offers. Plus, it has one additional feature: Eclipse PDT contains the advanced PHP Debugger tool developed by Zend, the company that sponsors PHP. The Debugger tool can help point out errors in your PHP code immediately as you type, or it can debug your code as you run it in the Eclipse editor window.\r\n\r\n[caption id=\"attachment_253204\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-253204 size-full\" src=\"https://www.dummies.com/wp-content/uploads/phpmysqljava-php-debugger.jpg\" alt=\"PHP debugger\" width=\"535\" height=\"402\" /> The PHP debugger in action in Eclipse.[/caption]\r\n\r\nHaving an advanced PHP debugger at your fingertips can be a great time-saver when you’re developing large applications!","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":[{"label":"Netbeans","target":"#tab1"},{"label":"Eclipse","target":"#tab2"}],"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":299575,"title":"HTML, CSS, & JavaScript All-in-One For Dummies Cheat Sheet","slug":"html-css-javascript-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/299575"}},{"articleId":265680,"title":"Using DevOps To Improve Engineering","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":"How To Automate 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":"How To Choose a Cloud Service Provider 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"}}]},"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-64be922ee1e02\"></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-64be922ee2cfc\"></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":"2023-07-24T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":253201},{"headers":{"creationTime":"2016-03-26T13:13:28+00:00","modifiedTime":"2023-07-10T18:44:09+00:00","timestamp":"2023-07-10T21:01:03+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":"HTML5","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33601"},"slug":"html5","categoryId":33601}],"title":"Making AJAX Requests with jQuery for HTML5 and CSS3","strippedTitle":"making ajax requests with jquery for html5 and css3","slug":"how-to-make-an-ajax-request-with-jquery-for-html5-and-css3-programming","canonicalUrl":"","seo":{"metaDescription":"The primary purpose of an AJAX library like jQuery is to simplify AJAX requests for HTML5 and CSS3 programmers. It's hard to believe how easy this can be with j","noIndex":0,"noFollow":0},"content":"The primary purpose of an AJAX library like jQuery is to simplify AJAX requests for HTML5 and CSS3 programmers. It's hard to believe how easy this can be with jQuery.\r\n\r\n<img src=\"https://www.dummies.com/wp-content/uploads/414071.image0.jpg\" alt=\"Preview of a HTML site using Ajax.\" width=\"533\" height=\"400\" />\r\n<h2 id=\"tab1\" >How to include a text file with AJAX</h2>\r\nCheck out this clean code:\r\n<pre class=\"code\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"en\"&gt;\r\n&lt;head&gt;\r\n &lt;meta charset=\"UTF-8\"&gt;\r\n &lt;title&gt;ajax.html&lt;/title&gt;\r\n &lt;script type = \"text/javascript\"\r\n src = \"jquery-1.10.2.min.js\"&gt;&lt;/script&gt;\r\n &lt;script type = \"text/javascript\"&gt;\r\n $(document).ready(getAJAX);\r\n function getAJAX(){\r\n $(\"#output\").load(\"hello.txt\");\r\n }\r\n &lt;/script&gt;\r\n &lt;/head&gt;\r\n &lt;body&gt;\r\n &lt;div id = \"output\"&gt;&lt;/div&gt;\r\n &lt;/body&gt;\r\n&lt;/html&gt;</pre>\r\nThe HTML is very clean. It simply creates an empty div called <span class=\"code\">output</span>.\r\n<p class=\"Remember\">This example does use AJAX, so if it isn't working, you might need to remember some details about how AJAX works. A program using AJAX should be run through a web server, not just from a local file. Also, the file being read should be on the same server as the program making the AJAX request.</p>\r\nThe <span class=\"code\">load()</span> mechanism described here is suitable for a basic situation where you want to load a plain-text or HTML code snippet into your pages.\r\n<h2 id=\"tab2\" >Building a poor man's CMS with AJAX</h2>\r\nAJAX and jQuery can be a very useful way to build efficient websites, even without server-side programming. Frequently a website is based on a series of smaller elements that can be swapped and reused. You can use AJAX to build a framework that allows easy reuse and modification of web content.\r\n\r\n<img src=\"https://www.dummies.com/wp-content/uploads/414072.image1.jpg\" alt=\"A website created with Ajax and JQuery.\" width=\"533\" height=\"400\" />\r\n\r\nAlthough nothing is all that shocking about the page from the user's perspective, a look at the code can show some surprises:\r\n<pre class=\"code\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang = \"en\"&gt;\r\n &lt;head&gt;\r\n &lt;meta charset = \"UTF-8\"&gt;\r\n &lt;title&gt;CMS Using AJAX&lt;/title&gt;\r\n &lt;link rel = \"stylesheet\"\r\n type = \"text/css\"\r\n href = \"cmsStd.css\" /&gt;\r\n &lt;script type = \"text/javascript\"\r\n src = \"jquery-1.10.2.min.js\"&gt;&lt;/script&gt;\r\n &lt;script type = \"text/javascript\"&gt;\r\n $(init);\r\n function init(){\r\n $(\"#heading\").load(\"head.html\");\r\n $(\"#menu\").load(\"menu.html\");\r\n $(\"#content1\").load(\"story1.html\");\r\n $(\"#content2\").load(\"story2.html\");\r\n $(\"#footer\").load(\"footer.html\");\r\n };\r\n &lt;/script&gt;\r\n &lt;/head&gt;\r\n &lt;body&gt;\r\n &lt;div id = \"all\"&gt;\r\n &lt;!-- This div centers a fixed-width layout →\r\n &lt;div id = \"heading\"&gt;\r\n &lt;/div&gt;&lt;!-- end heading div →\r\n &lt;div id = \"menu\"&gt;\r\n &lt;/div&gt; &lt;!-- end menu div →\r\n &lt;div class = \"content\"\r\n id = \"content1\"&gt;\r\n &lt;/div&gt; &lt;!-- end content div →\r\n &lt;div class = \"content\"\r\n id = \"content2\"&gt;\r\n &lt;/div&gt; &lt;!-- end content div →\r\n &lt;div id = \"footer\"&gt;\r\n &lt;/div&gt; &lt;!-- end footer div →\r\n &lt;/div&gt; &lt;!-- end all div →\r\n &lt;/body&gt;\r\n&lt;/html&gt;</pre>\r\nLook over the code, and you can see these interesting features:\r\n<ul class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\"><b>The page has no content!</b> All the divs are empty. None of the text shown in the screen shot is present in this document, but all is pulled from smaller files dynamically.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>The page consists of empty named divs.</b> Rather than any particular content, the page consists of placeholders with IDs.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>It uses jQuery.</b> The jQuery library is used to vastly simplify loading data through AJAX calls.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>All contents are in separate files.</b> Look through the directory, and you can see very simple HTML files that contain small parts of the page. For example, story1.html looks like this:</p>\r\n\r\n<pre class=\"code\">&lt;h2&gt;Book I - Creating the HTML Foundation&lt;/h3&gt;\r\n&lt;ol&gt;\r\n &lt;li&gt;Sound HTML Foundations&lt;/li&gt;\r\n &lt;li&gt;It's All About Validation&lt;/li&gt;\r\n &lt;li&gt;Choosing your Tools&lt;/li&gt;\r\n &lt;li&gt;Managing Information with Lists and Tables&lt;/li&gt;\r\n &lt;li&gt;Making Connections with Links&lt;/li&gt;\r\n &lt;li&gt;Adding Images&lt;/li&gt;\r\n &lt;li&gt;Creating forms&lt;/li&gt;\r\n&lt;/ol&gt;</pre>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>The </b><span class=\"code\"><b>init()</b></span><b> method runs on </b><span class=\"code\"><b>document.ready</b></span><b>.</b> When the document is ready, the page runs the <span class=\"code\">init()</span> method.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>The</b><span class=\"code\"><b> init() </b></span><b>method uses AJAX calls to dynamically load content.</b> It's nothing more than a series of jQuery <span class=\"code\">load()</span> methods.</p>\r\n</li>\r\n</ul>\r\nThis approach may seem like a lot of work, but it has some very interesting characteristics:\r\n<ul class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\">If you're building a large site with several pages, you usually want to design the visual appearance once and reuse the same general template repeatedly.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Also, you'll probably have some elements that will be consistent over several pages. You could simply create a default document and copy and paste it for each page, but this approach gets messy. What happens if you have created 100 pages according to a template and then need to change the header? You need to make the change on 100 different pages.</p>\r\n</li>\r\n</ul>\r\nThe advantage of the template-style approach is code reuse. Just like the use of an external style allows you to multiply a style sheet across hundreds of documents, designing a template without content allows you to store code snippets in smaller files and reuse them. All 100 pages point to the same menu file, so if you want to change the menu, change one file and everything changes with it.\r\n\r\nHere's how you use this sort of approach:\r\n<ol class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\">Create a single template for your entire site.</p>\r\n<p class=\"child-para\">Build basic HTML and CSS to manage the overall look and feel for your entire site. Don't worry about content yet. Just build placeholders for all the components of your page. Be sure to give each element an ID and write the CSS to get things positioned as you want.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Add jQuery support.</p>\r\n<p class=\"child-para\">Make a link to the jQuery library, and make a default <span class=\"code\">init()</span> method. Put in code to handle populating those parts of the page that will always be consistent.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Duplicate the template.</p>\r\n<p class=\"child-para\">After you have a sense of how the template will work, make a copy for each page of your site.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Customize each page by changing the<span class=\"code\"><b> init() </b></span>function.</p>\r\n<p class=\"child-para\">The only part of the template that changes is the <span class=\"code\">init()</span> function. All your pages will be identical, except they have customized <span class=\"code\">init()</span> functions that load different content.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Load custom content into the divs with AJAX.</p>\r\n<p class=\"child-para\">Use the <span class=\"code\">init()</span>function to load content into each div.</p>\r\n</li>\r\n</ol>\r\n<p class=\"Tip\">This is a great way to manage content, but it isn't quite a full-blown content-management system. Even AJAX can't quite allow you to <i>store</i> content on the web. More complex content management systems also use databases rather than files to handle content. You'll need some sort of server-side programming (like PHP) and usually a database (like mySQL) to handle this kind of work.</p>","description":"The primary purpose of an AJAX library like jQuery is to simplify AJAX requests for HTML5 and CSS3 programmers. It's hard to believe how easy this can be with jQuery.\r\n\r\n<img src=\"https://www.dummies.com/wp-content/uploads/414071.image0.jpg\" alt=\"Preview of a HTML site using Ajax.\" width=\"533\" height=\"400\" />\r\n<h2 id=\"tab1\" >How to include a text file with AJAX</h2>\r\nCheck out this clean code:\r\n<pre class=\"code\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"en\"&gt;\r\n&lt;head&gt;\r\n &lt;meta charset=\"UTF-8\"&gt;\r\n &lt;title&gt;ajax.html&lt;/title&gt;\r\n &lt;script type = \"text/javascript\"\r\n src = \"jquery-1.10.2.min.js\"&gt;&lt;/script&gt;\r\n &lt;script type = \"text/javascript\"&gt;\r\n $(document).ready(getAJAX);\r\n function getAJAX(){\r\n $(\"#output\").load(\"hello.txt\");\r\n }\r\n &lt;/script&gt;\r\n &lt;/head&gt;\r\n &lt;body&gt;\r\n &lt;div id = \"output\"&gt;&lt;/div&gt;\r\n &lt;/body&gt;\r\n&lt;/html&gt;</pre>\r\nThe HTML is very clean. It simply creates an empty div called <span class=\"code\">output</span>.\r\n<p class=\"Remember\">This example does use AJAX, so if it isn't working, you might need to remember some details about how AJAX works. A program using AJAX should be run through a web server, not just from a local file. Also, the file being read should be on the same server as the program making the AJAX request.</p>\r\nThe <span class=\"code\">load()</span> mechanism described here is suitable for a basic situation where you want to load a plain-text or HTML code snippet into your pages.\r\n<h2 id=\"tab2\" >Building a poor man's CMS with AJAX</h2>\r\nAJAX and jQuery can be a very useful way to build efficient websites, even without server-side programming. Frequently a website is based on a series of smaller elements that can be swapped and reused. You can use AJAX to build a framework that allows easy reuse and modification of web content.\r\n\r\n<img src=\"https://www.dummies.com/wp-content/uploads/414072.image1.jpg\" alt=\"A website created with Ajax and JQuery.\" width=\"533\" height=\"400\" />\r\n\r\nAlthough nothing is all that shocking about the page from the user's perspective, a look at the code can show some surprises:\r\n<pre class=\"code\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang = \"en\"&gt;\r\n &lt;head&gt;\r\n &lt;meta charset = \"UTF-8\"&gt;\r\n &lt;title&gt;CMS Using AJAX&lt;/title&gt;\r\n &lt;link rel = \"stylesheet\"\r\n type = \"text/css\"\r\n href = \"cmsStd.css\" /&gt;\r\n &lt;script type = \"text/javascript\"\r\n src = \"jquery-1.10.2.min.js\"&gt;&lt;/script&gt;\r\n &lt;script type = \"text/javascript\"&gt;\r\n $(init);\r\n function init(){\r\n $(\"#heading\").load(\"head.html\");\r\n $(\"#menu\").load(\"menu.html\");\r\n $(\"#content1\").load(\"story1.html\");\r\n $(\"#content2\").load(\"story2.html\");\r\n $(\"#footer\").load(\"footer.html\");\r\n };\r\n &lt;/script&gt;\r\n &lt;/head&gt;\r\n &lt;body&gt;\r\n &lt;div id = \"all\"&gt;\r\n &lt;!-- This div centers a fixed-width layout →\r\n &lt;div id = \"heading\"&gt;\r\n &lt;/div&gt;&lt;!-- end heading div →\r\n &lt;div id = \"menu\"&gt;\r\n &lt;/div&gt; &lt;!-- end menu div →\r\n &lt;div class = \"content\"\r\n id = \"content1\"&gt;\r\n &lt;/div&gt; &lt;!-- end content div →\r\n &lt;div class = \"content\"\r\n id = \"content2\"&gt;\r\n &lt;/div&gt; &lt;!-- end content div →\r\n &lt;div id = \"footer\"&gt;\r\n &lt;/div&gt; &lt;!-- end footer div →\r\n &lt;/div&gt; &lt;!-- end all div →\r\n &lt;/body&gt;\r\n&lt;/html&gt;</pre>\r\nLook over the code, and you can see these interesting features:\r\n<ul class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\"><b>The page has no content!</b> All the divs are empty. None of the text shown in the screen shot is present in this document, but all is pulled from smaller files dynamically.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>The page consists of empty named divs.</b> Rather than any particular content, the page consists of placeholders with IDs.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>It uses jQuery.</b> The jQuery library is used to vastly simplify loading data through AJAX calls.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>All contents are in separate files.</b> Look through the directory, and you can see very simple HTML files that contain small parts of the page. For example, story1.html looks like this:</p>\r\n\r\n<pre class=\"code\">&lt;h2&gt;Book I - Creating the HTML Foundation&lt;/h3&gt;\r\n&lt;ol&gt;\r\n &lt;li&gt;Sound HTML Foundations&lt;/li&gt;\r\n &lt;li&gt;It's All About Validation&lt;/li&gt;\r\n &lt;li&gt;Choosing your Tools&lt;/li&gt;\r\n &lt;li&gt;Managing Information with Lists and Tables&lt;/li&gt;\r\n &lt;li&gt;Making Connections with Links&lt;/li&gt;\r\n &lt;li&gt;Adding Images&lt;/li&gt;\r\n &lt;li&gt;Creating forms&lt;/li&gt;\r\n&lt;/ol&gt;</pre>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>The </b><span class=\"code\"><b>init()</b></span><b> method runs on </b><span class=\"code\"><b>document.ready</b></span><b>.</b> When the document is ready, the page runs the <span class=\"code\">init()</span> method.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\"><b>The</b><span class=\"code\"><b> init() </b></span><b>method uses AJAX calls to dynamically load content.</b> It's nothing more than a series of jQuery <span class=\"code\">load()</span> methods.</p>\r\n</li>\r\n</ul>\r\nThis approach may seem like a lot of work, but it has some very interesting characteristics:\r\n<ul class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\">If you're building a large site with several pages, you usually want to design the visual appearance once and reuse the same general template repeatedly.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Also, you'll probably have some elements that will be consistent over several pages. You could simply create a default document and copy and paste it for each page, but this approach gets messy. What happens if you have created 100 pages according to a template and then need to change the header? You need to make the change on 100 different pages.</p>\r\n</li>\r\n</ul>\r\nThe advantage of the template-style approach is code reuse. Just like the use of an external style allows you to multiply a style sheet across hundreds of documents, designing a template without content allows you to store code snippets in smaller files and reuse them. All 100 pages point to the same menu file, so if you want to change the menu, change one file and everything changes with it.\r\n\r\nHere's how you use this sort of approach:\r\n<ol class=\"level-one\">\r\n \t<li>\r\n<p class=\"first-para\">Create a single template for your entire site.</p>\r\n<p class=\"child-para\">Build basic HTML and CSS to manage the overall look and feel for your entire site. Don't worry about content yet. Just build placeholders for all the components of your page. Be sure to give each element an ID and write the CSS to get things positioned as you want.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Add jQuery support.</p>\r\n<p class=\"child-para\">Make a link to the jQuery library, and make a default <span class=\"code\">init()</span> method. Put in code to handle populating those parts of the page that will always be consistent.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Duplicate the template.</p>\r\n<p class=\"child-para\">After you have a sense of how the template will work, make a copy for each page of your site.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Customize each page by changing the<span class=\"code\"><b> init() </b></span>function.</p>\r\n<p class=\"child-para\">The only part of the template that changes is the <span class=\"code\">init()</span> function. All your pages will be identical, except they have customized <span class=\"code\">init()</span> functions that load different content.</p>\r\n</li>\r\n \t<li>\r\n<p class=\"first-para\">Load custom content into the divs with AJAX.</p>\r\n<p class=\"child-para\">Use the <span class=\"code\">init()</span>function to load content into each div.</p>\r\n</li>\r\n</ol>\r\n<p class=\"Tip\">This is a great way to manage content, but it isn't quite a full-blown content-management system. Even AJAX can't quite allow you to <i>store</i> content on the web. More complex content management systems also use databases rather than files to handle content. You'll need some sort of server-side programming (like PHP) and usually a database (like mySQL) to handle this kind of work.</p>","blurb":"","authors":[{"authorId":9189,"name":"Andy Harris","slug":"andy-harris","description":" <b>Andy Harris</b> earned a degree in Special Education from Indiana University/Purdue University&#8211;Indianapolis (IUPUI). He taught young adults with severe disabilities for several years. He also taught himself enough computer programming to support his teaching habit with freelance programming.<br /> Those were the exciting days when computers started to have hard drives, and some computers connected to each other with arcane protocols. He taught programming in those days because it was fun.<br /> Eventually, Andy decided to teach computer science full time, and he still teaches at IUPUI. He lectures in the applied computing program and runs the streaming media lab. He also teaches classes in whatever programming language is in demand at the time. He has developed a large number of online video-based courses and international distance education projects.<br /> Andy has written several books on various computing topics and languages including Java, C#, mobile computing, JavaScript, and PHP/MySQL.<br /> Andy welcomes comments and suggestions about his books. He can be reached at [email protected].","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9189"}}],"primaryCategoryTaxonomy":{"categoryId":33601,"title":"HTML5","slug":"html5","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33601"}},"secondaryCategoryTaxonomy":{"categoryId":34324,"title":"CSS3","slug":"css3","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34324"}},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":null,"inThisArticle":[{"label":"How to include a text file with AJAX","target":"#tab1"},{"label":"Building a poor man's CMS with AJAX","target":"#tab2"}],"relatedArticles":{"fromBook":[{"articleId":207788,"title":"HTML5 and CSS3 All-in-One For Dummies Cheat Sheet","slug":"html5-and-css3-all-in-one-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/207788"}},{"articleId":203865,"title":"How to Use IrfanView’s Built-In Effects for HTML5 and CSS3 Programming","slug":"how-to-use-irfanviews-built-in-effects-for-html5-and-css3-programming","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/203865"}},{"articleId":203862,"title":"How to Implement a Database in MySQL for HTML5 and CSS3 Programming","slug":"how-to-implement-a-database-in-mysql-for-html5-and-css3-programming","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/203862"}},{"articleId":203861,"title":"How to Run a Script with phpMyAdmin in SQL for HTML5and CSS3 Programming","slug":"how-to-run-a-script-with-phpmyadmin-in-sql-for-html5and-css3-programming","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/203861"}},{"articleId":203857,"title":"How to Register a Domain Name for Your HTML5 and CSS3 Site","slug":"how-to-register-a-domain-name-for-your-html5-and-css3-site","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/203857"}}],"fromCategory":[{"articleId":207867,"title":"Beginning HTML5 & CSS3 For Dummies Cheat Sheet","slug":"beginning-html5-css3-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/207867"}},{"articleId":207816,"title":"HTML5 & CSS3 For Dummies Cheat Sheet","slug":"html5-css3-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/207816"}},{"articleId":207788,"title":"HTML5 and CSS3 All-in-One For Dummies Cheat Sheet","slug":"html5-and-css3-all-in-one-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/207788"}},{"articleId":204537,"title":"How to Create a New JavaScript File in Komodo Edit","slug":"how-to-create-a-new-javascript-file-in-komodo-edit","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/204537"}},{"articleId":204532,"title":"How to Create Cascading Style Sheets (CSS) Simply and Easily","slug":"how-to-create-cascading-style-sheets-css-simply-and-easily","categoryList":["technology","programming-web-design","html5"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/204532"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281736,"slug":"html5-and-css3-all-in-one-for-dummies-3rd-edition","isbn":"9781118289389","categoryList":["technology","programming-web-design","html5"],"amazon":{"default":"https://www.amazon.com/gp/product/1118289382/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1118289382/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/1118289382-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1118289382/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1118289382/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/html5-and-css3-all-in-one-for-dummies-3rd-edition-cover-9781118289389-203x255.jpg","width":203,"height":255},"title":"HTML5 and CSS3 All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"9189\">Andy Harris</b> taught himself programming because it was fun. Today he teaches computer science, game development, and web programming at the university level; is a technology consultant for the state of Indiana; has helped people with disabilities to form their own web development companies; and works with families who wish to teach computing at home.</p>","authors":[{"authorId":9189,"name":"Andy Harris","slug":"andy-harris","description":" <b>Andy Harris</b> earned a degree in Special Education from Indiana University/Purdue University&#8211;Indianapolis (IUPUI). He taught young adults with severe disabilities for several years. He also taught himself enough computer programming to support his teaching habit with freelance programming.<br /> Those were the exciting days when computers started to have hard drives, and some computers connected to each other with arcane protocols. He taught programming in those days because it was fun.<br /> Eventually, Andy decided to teach computer science full time, and he still teaches at IUPUI. He lectures in the applied computing program and runs the streaming media lab. He also teaches classes in whatever programming language is in demand at the time. He has developed a large number of online video-based courses and international distance education projects.<br /> Andy has written several books on various computing topics and languages including Java, C#, mobile computing, JavaScript, and PHP/MySQL.<br /> Andy welcomes comments and suggestions about his books. He can be reached at ah[email protected].","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9189"}},{"authorId":11290,"name":"Paul McFedries","slug":"paul-mcfedries","description":" <p><b>Paul McFedries</b> is a true renaissance geek. He has been a programmer, consultant, database developer, and website builder. He&#39;s also the author of more than 90 books including top sellers covering Windows, Office, and macOS. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/11290"}}],"_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;html5&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781118289389&quot;]}]\" id=\"du-slot-64ac718f4115b\"></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;html5&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781118289389&quot;]}]\" id=\"du-slot-64ac718f418f8\"></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-09-19T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":156689}],"_links":{"self":{"self":"https://dummies-api.dummies.com/v2/categories/33592/categoryArticles?sortField=time&sortOrder=1&size=10&offset=0"},"next":{"self":"https://dummies-api.dummies.com/v2/categories/33592/categoryArticles?sortField=time&sortOrder=1&size=10&offset=10"},"last":{"self":"https://dummies-api.dummies.com/v2/categories/33592/categoryArticles?sortField=time&sortOrder=1&size=10&offset=1385"}}},"objectTitle":"","status":"success","pageType":"article-category","objectId":"33592","page":1,"sortField":"time","sortOrder":1,"categoriesIds":[],"articleTypes":[],"filterData":{"categoriesFilter":[{"itemId":0,"itemName":"All Categories","count":1393},{"itemId":33593,"itemName":"3D Printing","count":33},{"itemId":33594,"itemName":"App Development","count":85},{"itemId":34376,"itemName":"Blogging & Website Platforms","count":66},{"itemId":33595,"itemName":"C","count":17},{"itemId":33596,"itemName":"C#","count":29},{"itemId":33597,"itemName":"C++","count":63},{"itemId":33598,"itemName":"Cisco Programming","count":1},{"itemId":33599,"itemName":"Coding","count":106},{"itemId":34324,"itemName":"CSS3","count":4},{"itemId":33610,"itemName":"General Programming & Web Design","count":207},{"itemId":34511,"itemName":"Go Programming Language","count":1},{"itemId":33600,"itemName":"HTML","count":8},{"itemId":33601,"itemName":"HTML5","count":265},{"itemId":33602,"itemName":"Java","count":122},{"itemId":33603,"itemName":"JavaScript","count":87},{"itemId":33604,"itemName":"MATLAB","count":83},{"itemId":33592,"itemName":"Programming & Web Design","count":2},{"itemId":33606,"itemName":"Python","count":83},{"itemId":33607,"itemName":"R","count":99},{"itemId":33608,"itemName":"SQL","count":26},{"itemId":34338,"itemName":"Web Hosting","count":6}],"articleTypeFilter":[{"articleType":"All Types","count":1393},{"articleType":"Articles","count":1284},{"articleType":"Cheat Sheet","count":53},{"articleType":"Step by Step","count":56}]},"filterDataLoadedStatus":"success","pageSize":10},"adsState":{"pageScripts":{"headers":{"timestamp":"2023-09-15T10:50:01+00:00"},"adsId":0,"data":{"scripts":[{"pages":["all"],"location":"header","script":"<!--Optimizely Script-->\r\n<script src=\"https://cdn.optimizely.com/js/10563184655.js\"></script>","enabled":false},{"pages":["all"],"location":"header","script":"<!-- comScore Tag -->\r\n<script>var _comscore = _comscore || [];_comscore.push({ c1: \"2\", c2: \"15097263\" });(function() {var s = document.createElement(\"script\"), el = document.getElementsByTagName(\"script\")[0]; s.async = true;s.src = (document.location.protocol == \"https:\" ? \"https://sb\" : \"http://b\") + \".scorecardresearch.com/beacon.js\";el.parentNode.insertBefore(s, el);})();</script><noscript><img src=\"https://sb.scorecardresearch.com/p?c1=2&c2=15097263&cv=2.0&cj=1\" /></noscript>\r\n<!-- / comScore Tag -->","enabled":true},{"pages":["all"],"location":"footer","script":"<!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->\r\n<script type='text/javascript'>\r\n(function(){var g=function(e,h,f,g){\r\nthis.get=function(a){for(var a=a+\"=\",c=document.cookie.split(\";\"),b=0,e=c.length;b<e;b++){for(var d=c[b];\" \"==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};\r\nthis.set=function(a,c){var b=\"\",b=new Date;b.setTime(b.getTime()+6048E5);b=\"; expires=\"+b.toGMTString();document.cookie=a+\"=\"+c+b+\"; path=/; \"};\r\nthis.check=function(){var a=this.get(f);if(a)a=a.split(\":\");else if(100!=e)\"v\"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(\":\"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case \"v\":return!1;case \"r\":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(\":\")),!c}return!0};\r\nthis.go=function(){if(this.check()){var a=document.createElement(\"script\");a.type=\"text/javascript\";a.src=g;document.body&&document.body.appendChild(a)}};\r\nthis.start=function(){var t=this;\"complete\"!==document.readyState?window.addEventListener?window.addEventListener(\"load\",function(){t.go()},!1):window.attachEvent&&window.attachEvent(\"onload\",function(){t.go()}):t.go()};};\r\ntry{(new g(100,\"r\",\"QSI_S_ZN_5o5yqpvMVjgDOuN\",\"https://zn5o5yqpvmvjgdoun-wiley.siteintercept.qualtrics.com/SIE/?Q_ZID=ZN_5o5yqpvMVjgDOuN\")).start()}catch(i){}})();\r\n</script><div id='ZN_5o5yqpvMVjgDOuN'><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>\r\n<!--END WEBSITE FEEDBACK SNIPPET-->","enabled":false},{"pages":["all"],"location":"header","script":"<!-- Hotjar Tracking Code for http://www.dummies.com -->\r\n<script>\r\n (function(h,o,t,j,a,r){\r\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\r\n h._hjSettings={hjid:257151,hjsv:6};\r\n a=o.getElementsByTagName('head')[0];\r\n r=o.createElement('script');r.async=1;\r\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\r\n a.appendChild(r);\r\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\r\n</script>","enabled":false},{"pages":["article"],"location":"header","script":"<!-- //Connect Container: dummies --> <script src=\"//get.s-onetag.com/bffe21a1-6bb8-4928-9449-7beadb468dae/tag.min.js\" async defer></script>","enabled":true},{"pages":["homepage"],"location":"header","script":"<meta name=\"facebook-domain-verification\" content=\"irk8y0irxf718trg3uwwuexg6xpva0\" />","enabled":true},{"pages":["homepage","article","category","search"],"location":"footer","script":"<!-- Facebook Pixel Code -->\r\n<noscript>\r\n<img height=\"1\" width=\"1\" src=\"https://www.facebook.com/tr?id=256338321977984&ev=PageView&noscript=1\"/>\r\n</noscript>\r\n<!-- End Facebook Pixel Code -->","enabled":true}]}},"pageScriptsLoadedStatus":"success"},"navigationState":{"navigationCollections":[{"collectionId":287568,"title":"BYOB (Be Your Own Boss)","hasSubCategories":false,"url":"/collection/for-the-entry-level-entrepreneur-287568"},{"collectionId":293237,"title":"Be a Rad Dad","hasSubCategories":false,"url":"/collection/be-the-best-dad-293237"},{"collectionId":295890,"title":"Career Shifting","hasSubCategories":false,"url":"/collection/career-shifting-295890"},{"collectionId":294090,"title":"Contemplating the Cosmos","hasSubCategories":false,"url":"/collection/theres-something-about-space-294090"},{"collectionId":287563,"title":"For Those Seeking Peace of Mind","hasSubCategories":false,"url":"/collection/for-those-seeking-peace-of-mind-287563"},{"collectionId":287570,"title":"For the Aspiring Aficionado","hasSubCategories":false,"url":"/collection/for-the-bougielicious-287570"},{"collectionId":291903,"title":"For the Budding Cannabis Enthusiast","hasSubCategories":false,"url":"/collection/for-the-budding-cannabis-enthusiast-291903"},{"collectionId":299891,"title":"For the College Bound","hasSubCategories":false,"url":"/collection/for-the-college-bound-299891"},{"collectionId":291934,"title":"For the Exam-Season Crammer","hasSubCategories":false,"url":"/collection/for-the-exam-season-crammer-291934"},{"collectionId":287569,"title":"For the Hopeless Romantic","hasSubCategories":false,"url":"/collection/for-the-hopeless-romantic-287569"}],"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/programming-web-design-33592/","hash":"","query":{},"params":{"category":"programming-web-design-33592"},"fullPath":"/category/articles/programming-web-design-33592/","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 College Bound
For the Exam-Season Crammer
For the Hopeless Romantic
Log In
  • Home
  • Technology Articles
  • Programming & Web Design Articles

Programming & Web Design Articles

Ever wonder what makes the software, websites, and blogs you use every day function properly (or improperly)? It's programming. Our articles reveal the ins and outs of programming and web design.

Browse By Category

Go Programming Language

3D Printing

App Development

C

C#

C++

Cisco Programming

Coding

HTML

HTML5

Java

JavaScript

MATLAB

Python

R

SQL

General Programming & Web Design

CSS3

Web Hosting

Blogging & Website Platforms

Previous slideNext slide

Go Programming Language

3D Printing

App Development

C

C#

C++

Cisco Programming

Coding

HTML

HTML5

Java

JavaScript

MATLAB

Python

R

SQL

General Programming & Web Design

CSS3

Web Hosting

Blogging & Website Platforms

Articles From 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
page 22
page 23
page 24
page 25
page 26
page 27
page 28
page 29
page 30
page 31
page 32
page 33
page 34
page 35
page 36
page 37
page 38
page 39
page 40
page 41
page 42
page 43
page 44
page 45
page 46
page 47
page 48
page 49
page 50
page 51
page 52
page 53
page 54
page 55
page 56
page 57
page 58
page 59
page 60
page 61
page 62
page 63
page 64
page 65
page 66
page 67
page 68
page 69
page 70
page 71
page 72
page 73
page 74
page 75
page 76
page 77
page 78
page 79
page 80
page 81
page 82
page 83
page 84
page 85
page 86
page 87
page 88
page 89
page 90
page 91
page 92
page 93
page 94
page 95
page 96
page 97
page 98
page 99
page 100
page 101
page 102
page 103
page 104
page 105
page 106
page 107
page 108
page 109
page 110
page 111
page 112
page 113
page 114
page 115
page 116
page 117
page 118
page 119
page 120
page 121
page 122
page 123
page 124
page 125
page 126
page 127
page 128
page 129
page 130
page 131
page 132
page 133
page 134
page 135
page 136
page 137
page 138
page 139
page 140

Filter Results

1,395 results
1,395 results
Python 8 Major Uses of Python

Article / Updated 09-13-2023

Many organizations are using Python these days to perform major tasks. You don't necessarily hear about them because organizations are usually reserved about giving out their trade secrets. However, Python is still there making a big difference in the way organizations work and toward keeping the bottom line from bottoming out. Following, are some major ways in which Python is used commercially that will make it easier to argue for using Python in your own organization. (Or you can read about some Python success stories.) Corel: PaintShop Pro is a product that many people have used over the years to grab screenshots, modify their pictures, draw new images, and perform a lot of other graphics-oriented tasks. The amazing thing about this product is that it relies heavily on Python scripting. In other words, to automate tasks in PaintShop Pro, you need to know Python. D-Link: Upgrading firmware over a network connection can be problematic, and D-Link was encountering a situation in which each upgrade was tying up a machine — a poor use of resources. In addition, some upgrades required additional work because of problems with the target device. Using Python to create a multithreaded application to drive updates to the devices allows one machine to service multiple devices, and a new methodology allowed by Python reduces the number of reboots to just one after that new firmware is installed. D-Link chose Python over other languages, such as Java, because it provides an easier-to-use serial communication code. Eve-Online: Games are a major business because so many people enjoy playing them. Eve-Online is a Massively Multiplayer Online Role Playing Game (MMORPG) that relies heavily on Python for both the client and server ends of the game. It actually relies on a Python variant named StacklessPython, which is important because you encounter these variants all the time when working with Python. Think of them as Python on steroids. These variants have all the advantages of Python, plus a few extra perks. The thing to take away from this particular company is that running an MMORPG takes major horsepower, and the company wouldn't have chosen Python unless it were actually up to the task. ForecastWatch.com: If you have ever wondered whether someone reviews the performance of your weatherman, look no further than ForecastWatch.com. This company compares the forecasts produced by thousands of weather forecasters each day against actual climatological data to determine their accuracy. The resulting reports are used to help improve weather forecasts. In this case, the software used to make the comparisons is written in pure Python because it comes with standard libraries useful in collecting, parsing, and storing data from online sources. In addition, Python's enhanced multithreading capabilities makes it possible to collect the forecasts from around 5,000 online sources each day. Most important of all, the code is much smaller than would have been needed by other languages such as Java or PHP. Frequentis: The next time you fly somewhere, you might be relying on Python to get you to the ground safely again. It turns out that Frequentis is the originator of TAPTools, a software product that is used for air traffic control in many airports. This particular tool provides updates on the weather and runway conditions to air traffic controllers. Honeywell: Documenting large systems is expensive and error prone. Honeywell uses Python to perform automated testing of applications, but it also uses Python to control a cooperative environment between applications used to generate documentation for the applications. The result is that Python helps generate the reports that form the documentation for the setup. Industrial Light & Magic: In this case, you find Python used in the production process for scripting complex, computer graphic-intensive films. Originally, Industrial Light & Magic relied on Unix shell scripting, but it was found that this solution just couldn't do the job. Python was compared to other languages, such as Tcl and Perl, and chosen because it's an easier-to-learn language that the organization can implement incrementally. In addition, Python can be embedded within a larger software system as a scripting language, even if the system is written in a language such as C/C++. It turns out that Python can successfully interact with these other languages in situations in which some languages can't. Philips: Automation is essential in the semiconductor industry, so imagine trying to coordinate the effort of thousands of robots. After a number of solutions, Philips decided to go with Python for the sequencing language (the language that tells what steps each robot should take). The low-level code is written in C++, which is another reason to use Python, because Python works well with C++.

View Article
3D Printing 3D Printing For Dummies Cheat Sheet

Cheat Sheet / Updated 09-06-2023

Unlike traditional manufacturing, which involves injecting material into a pre-formed mold or removing material from base material objects, 3D printing starts with a virtual 3D model that is transformed into solid form one layer at a time. Each layer is built on top of the layer before, creating a solid form representing the virtual 3D model in all of its complexity and detail without requiring additional forms of machining and treatment necessary in traditional forms of manufacturing. You can buy an off-the-shelf desktop 3D printer or build your own 3D printer using the open-source self-REPlicating RAPid-prototyper (RepRap) family of designs. Check out these helpful articles to guide you toward selecting the right RepRap design for you.

View Cheat Sheet
General Programming & Web Design What Is DevOps?

Article / Updated 08-16-2023

What is DevOps? It’s difficult to provide you with an exact DevOps prescription — because none exists. DevOps is a philosophy that guides software development, one that that prioritizes people over process and process over tooling. DevOps builds a culture of trust, collaboration, and continuous improvement. As a culture, the DevOps philosophy views the development process in a holistic way, taking into account everyone involved: developers, testers, operations folks, security, and infrastructure engineers. DevOps doesn’t put any one of these groups above the others, nor does it rank the importance of their work. Instead, a DevOps company treats the entire team of engineers as critical to ensuring that the customer has the best experience possible. DevOps evolved from Agile In 2001, 17 software engineers met and published the “Manifesto for Agile Software Development,” which spelled out the 12 principles of Agile project management. This new workflow was a response to the frustration and inflexibility of teams working in a waterfall (linear) process. Working within Agile principles, engineers aren’t required to adhere to original requirements or follow a linear development workflow in which each team hands off work to the next. Instead, they’re capable of adapting to the ever-changing needs of the business or the market, and sometimes even the changing technology and tools. Although Agile revolutionized software development in many ways, it failed to address the conflict between developers and operations specialists. Silos still developed around technical skill sets and specialties, and developers still handed off code to operations folks to deploy and support. In 2008, Andrew Clay Shafer talked to Patrick Debois about his frustrations with the constant conflict between developers and operations folks. Together, they launched the first DevOpsDays event in Belgium to create a better — and more agile — way of approaching software development. This evolution of Agile took hold, and DevOps has since enabled companies around the globe to produce better software faster (and usually cheaper). DevOps is not a fad. It’s a widely accepted engineering philosophy. DevOps focuses on people Anyone who says that DevOps is all about tooling wants to sell you something. Above all else, DevOps is a philosophy that focuses on engineers and how they can better work together to produce great software. You could spend millions on every DevOps tool in the world and still be no closer to DevOps nirvana. Instead, focus on your most important engineering asset: engineers. Happy engineers make great software. How do you make happy engineers? Well, you create a collaborative work environment in which mutual respect, shared knowledge, and acknowledgement of hard work can thrive. Company culture is the foundation of DevOps Your company has a culture, even if it has been left to develop through inertia. That culture has more influence on your job satisfaction, productivity, and team velocity than you probably realize. Company culture is best described as the unspoken expectations, behavior, and values of an organization. Culture is what tells your employees whether company leadership is open to new ideas. It’s what informs an employee’s decision as to whether to come forward with a problem or to sweep it under the rug. Culture is something to be designed and refined, not something to leave to chance. Though the actual definition varies from company to company and person to person, DevOps is a cultural approach to engineering at its core. A toxic company culture will kill your DevOps journey before it even starts. Even if your engineering team adopts a DevOps mindset, the attitudes and challenges of the larger company will bleed into your environment. With DevOps, you avoid blame, grow trust, and focus on the customer. You give your engineers autonomy and empower them to do what they do best: engineer solutions. As you begin to implement DevOps, you give your engineers the time and space to adjust to it, allowing them the opportunities to get to know each other better and build rapport with engineers with different specialties. Also, you measure progress and reward achievements. Never blame individuals for failures. Instead, the team should continuously improve together, and achievements should be celebrated and rewarded. You learn by observing your process and collecting data Observing your workflow without expectation is a powerful technique to use to see the successes and challenges of your workflow realistically. This observation is the only way to find the correct solution to the areas and issues that create bottlenecks in your processes. Just as with software, slapping some Kubernetes (or other new tool) on a problem doesn’t necessarily fix it. You have to know where the problems are before you go about fixing them. As you continue, you collect data — not to measure success or failure but to track the team’s performance. You determine what works, what doesn’t work, and what to try next time. Persuasion is key to DevOps adoption Selling the idea of DevOps to your leaders, peers, and employees isn’t easy. The process isn’t always intuitive to engineers, either. Shouldn’t a great idea simply sell itself? If only it were that easy. However, a key concept to always keep in mind as you implement DevOps is that it emphasizes people. he so-called “soft skills” of communication and collaboration are central to your DevOps transformation. Persuading other folks on your team and within your company to adopt DevOps requires practicing good communication skills. Early conversations that you have with colleagues about DevOps can set you up for success down the road — especially when you hit an unexpected speed bump. Small, incremental changes are priceless in DevOps The aspect of DevOps that emphasizes making changes in small, incremental ways has its roots in lean manufacturing, which embraces accelerated feedback, continuous improvement, and swifter time to market. Water is a good metaphor for DevOps transformations. Water is one of the world’s most powerful elements. Unless people are watching the flood waters rise in front of them, they think of it as relatively harmless. The Colorado River carved the Grand Canyon. Slowly, over millions of years, water cut through stone to expose nearly two billion years of soil and rock. You can be like water. Be the slow, relentless change in your organization. Here’s that famous quote from a Bruce Lee interview to inspire you: Be formless, shapeless, like water. Now you put water into a cup, it becomes the cup. You put water into a bottle, it becomes the bottle. You put it in a teapot, it becomes the teapot. Now, water can flow or it can crash. Be water, my friend. Making incremental changes means, for example, that you find a problem and you fix that problem. Then you fix the next one. You don’t take on too much too fast and you don’t pick every battle to fight. You understand that some fights aren’t worth the energy or social capital that they can cost you. Ultimately, DevOps isn’t a list of steps you can take, but is rather an approach that should guide the decisions you make as you develop.

View Article
General Programming & Web Design How to Form DevOps Teams in Your Organization

Article / Updated 08-16-2023

DevOps has no ideal organizational structure. Like everything in tech, the “right” answer concerning your company’s structure depends on your unique situation: your current team, your plans for growth, your team’s size, your team’s available skill sets, your product, and on and on. Aligning your DevOps team’s vision should be your first mission. Only after you’ve removed the low-hanging fruit of obvious friction between people should you begin rearranging teams. Even then, allow some flexibility. If you approach a reorganization with openness and flexibility, you send the message that you’re willing to listen and give your team autonomy — a basic tenet of DevOps. You may already have a Python or Go developer who’s passionate and curious about infrastructure and configuration management. Maybe that person can switch into a more ops-focused role in your new organization. Put yourself in that person’s shoes. Wouldn’t you be loyal to an organization that took a risk on you? Wouldn’t you be excited to work hard? And that excitement is contagious. Here, you learn how to align the teams you already have in place, dedicate a team to DevOps practices, and create cross-functional teams — all approaches from which you can choose to orient your teams toward DevOps. You can choose one approach and allow it to evolve from there. Don’t feel that this decision is permanent and unmovable. DevOps focuses on rapid iteration and continual improvement and that’s the prime benefit of this methodology. That philosophy applies to teams as well. Aligning functional teams for DevOps In this approach, you create strong collaboration between your traditional development and operations teams. The teams remain functional in nature — one focused on ops, one focused on code. But their incentives are aligned. They will grow to trust each other and work as two teams yoked together. For smaller engineering organizations, aligning functional teams is a solid choice. Even as a first step, this alignment can reinforce the positive changes you’ve made so far. You typically start the alignment by taking the time to build rapport. Ensure that each person on both teams not only intellectually understands the other team’s role and constraints but also empathizes with the pain points. For this approach, it’s a good idea to promote a policy of “You build it, you support it.” This policy means that everyone — developer and operations person alike —participates in your on-call rotation. This participation allows developers to start understanding the frustrations of being called in the middle of the night and struggling while foggy-eyed and caffeine-deprived to fix a bug that’s impacting customers. Operations folks also begin to trust your developers’ commitment to their work. Even this small change builds an extraordinary amount of trust. A word of caution: If developers fight hard against being on call, a larger problem is at play in your organization. The pushback is not uncommon because being on call is wildly different from their normal day-to-day responsibilities. The pushback often comes from a place of discomfort and fear. You can help mitigate this reaction by addressing the fact that your developers may not know what to do the first few times they’re on call. They may not be familiar with the infrastructure, and that’s okay. Encourage them to escalate the incident and page someone with more experience. Finally, create a runbook with common alerts and what actions to take. Providing this resource will help to assuage some fear until they begin to get the hang of things. Another tactic to help spur collaboration to form a more cohesive DevOps team is to introduce a day of shadowing, with each team “trading” a colleague. The traded person simply shadows someone else on the team, sits at their desk (or in their area), and assists in their day-to-day responsibilities. They may help with work, discuss problems as a team (pair programming), and learn more about the system from a different point of view. This style of teaching isn’t prescriptive. Instead, it lends itself to curiosity and building trust. Colleagues should feel free to ask questions — even the “stupid” variety — and learn freely. No performance expectations exist. The time should be spent simply getting to know each other and appreciating each other’s work. Any productive output is a bonus! In this alignment approach, both teams absolutely must be involved in the planning, architecture, and development processes. They must share responsibilities and accountability throughout the entire development life cycle. Dedicating a DevOps team A dedicated DevOps team is more an evolution of the Sys Admin than a true DevOps team. It is an operations team with a mix of skill sets. Perhaps some engineers are familiar with configuration management, others IaC (infrastructure as code) and perhaps others are experts in containers or cloud native infrastructure or CI/CD (continuous integration and continuous delivery/development). If you think that putting a group of humans into an official team is enough to break down silos, you’re mistaken. Humans are more complex than spreadsheets. Hierarchy doesn’t mean anything if your silos have entered a phase in which they are unhealthy and tribal. In toxic cultures, a strongman style of leadership can emerge that is almost always followed by people taking sides. If you see this on your own team, you have work to do. Although any approach may work for your team, this dedicated team approach is the one you should think through the most. The greatest disadvantage of a dedicated DevOps team is that it easily becomes a continuation of traditional engineering teams without acknowledging the need to align teams, reduce silos, and remove friction. The risks of continuing friction (or creating more) are high in this approach. Tread carefully to ensure you’re choosing this team organization for a specific reason. The benefits of this DevOps approach is having a dedicated team to address major infrastructure changes or adjustments. If you’re struggling with operations-centered issues that are slowing down your deployments or causing site reliability concerns, this might be a good approach — even temporarily. A dedicated team if you’re planning on moving a legacy application to the cloud. But rather than calling this team a DevOps team, you might try labeling it an automation team. This dedicated group of engineers can focus completely on ensuring that you’ve set up the correct infrastructure and automation tools. You can then proceed with confidence that your application will land in the cloud without major disruption. Still, this approach is temporary. If you keep the team isolated for too long, you risk going down a slippery slope from rapid growth to embedded silo. Creating cross-functional product teams for DevOps A cross-functional team is a team formed around a single product focus. Rather than have separate teams for development, user interface and user experience (UI/UX), quality assurance (QA), and operations, you combine people from each of these teams. A cross-functional team works best in medium to large organizations. You need enough developers and operations folks to fill in the positions of each product team. Each cross-functional team looks a bit different. It’s a good idea to have, at a minimum, one operations person per team. Do not ask an operations person to split their responsibilities between two teams. This scenario is unfair to them and will quickly create friction between the two product teams. Give your engineers the privilege of being able to focus and dig deep into their work. If you’re organization is still small or in the startup phase, you can think of your entire engineering organization as a cross-functional team. Keep it small and focused. When you begin to approach having 10–12 people, start thinking about how you can reorganize engineers. The image below shows what your cross-functional teams could look like. But keep in mind that their composition varies from team to team and from organization to organization. Some products have a strong design focus, which means that you may have multiple designers in each team. Other products are technical ones designed for engineers who don’t care much for aesthetics. Teams for that kind of product may have one designer — or none at all. If your organization is large enough, you can certainly create multiple teams using different DevOps ideas and approaches. Remember that your organization is unique. Feel empowered to make decisions based on your current circumstances and adjust from there. Here are some possible combinations of various types of product teams. Legacy Product Team: Project Manager (PM), Front-end Developer, Back-end Developer, Back-end Developer, Site Reliability Engineer (SRE), Automation Engineer, QA Tester Cloud Transformation Team: SRE, SRE, Operations Engineer, Automation Engineer, Back-end Developer MVP Team: PM, Designer, UX Engineer, Front-end Developer, Backend Developer, Operations Engineer The downside of a cross-functional product team is that engineers lose the camaraderie of engineers with their same skill sets and passions. Having a group of like-minded individuals with whom you can socialize and from whom you can learn is an important aspect of job satisfaction. Check out a solution to this issue below. As shown below, you can give your engineers dedicated work time to spend with their tribes. You can do something as generous as paying for lunch once every week so that they can get together and talk. Or you might provide 10–20 percent of work time for them to work on projects as a tribe. Either way, you need your engineers to stay sharp. Tribes share industry knowledge, provide sound feedback, and support career growth. Provide time for your engineers to learn from people with whom they share education, experience, and goals. This time provides a safe place where they can relax and feel at home. No amount of perfect finagling will overcome the shortfalls of a bad organizational culture. But if you’ve paid attention so far and made the appropriate strides, the next step is to form teams that reinforce the cultural ideals you’ve already put in place.

View Article
Python Write a Simple Program in Python

Article / Updated 08-10-2023

Tradition dictates that Hello World! be the first program that you write when you're learning a new programming language like Python. You're following in the footsteps of many great programmers when you create this project. To create your Hello World! program, follow these steps: Open your Start menu and choose Python (command line). You should get a prompt that looks like >>>. At the moment, you're doing everything in interactive mode in the Python interpreter. That's where the >>> comes in. Python shows you >>> when you're supposed to type something. At the prompt, type the following. Use a single quote at the start and the end — it's beside the Enter key: print('Hello World!') Press the Enter key. Python runs the code you typed. You see the output shown in Figure 1. Congratulations — you've written your first program. Welcome to the Python-programmers-in-training club. If you don't see what's in Figure 1, check that you typed in the text from Step 2 exactly as it's written: Check that the parentheses and single quotes are in the right places. Check that for each opening parenthesis there is a closing parenthesis. (Otherwise, you're left hanging. Check that for each opening quote there's a closing quote. Programming languages have their own grammar and punctuation rules. These rules are the language's syntax. Humans, can work most stuff out even if perfect not you're is grammar (See? You figured out what that sentence was trying to say), but Python pretty much freaks out if you get the syntax wrong.

View Article
Python How to Spot and Fix Errors in Python

Article / Updated 08-10-2023

The Python interpreter takes in each line and operates on it immediately (more or less) after you press the Enter key. In Hello World! you use Python's print feature. print takes what's inside the parentheses and outputs it to the command line (also called the console). Python is sensitive to both the grammar and punctuation. If you misspell something, the program won't work. If Python is expecting special characters and you don't put them in, then Python will fail. Some Python issues are shown here. Can you work out how you would fix them? >>> pritn('Hello World!') Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'pritn' is not defined Here's another: >>> print('Hello World!) File "<stdin>", line 1 print('Hello World!) SyntaxError: EOL while scanning string literal Here's another: >>> print 'Hello World!') File "<stdin>", line 1 print 'Hello World!') ^ SyntaxError: invalid syntax Python tries to give you the reason it failed (that is, NameError and SyntaxError). Check each of these things: Opening parenthesis has a closing parenthesis Every opening quote mark has a matching closing quote mark All commands are correctly spelled

View Article
General Programming & Web Design Using XMLHttpRequest Class Properties

Article / Updated 08-02-2023

The XMLHttpRequest object contains several class properties that you’ll need to know about to handle the HTTP response from the web server. The XMLHttpRequest Class Properties Property Description onreadystatechange Defines a callback function that the browser triggers when the HTTP connection changes state readyState Contains the connection status of the HTTP connection responseText Contains the response sent by the web server in text format responseXML Contains the response sent by the web server in XML format status Contains the numeric HTTP response code from the web server statusText Contains the text HTTP response string from the web server After you use the send() method to send a connection request to a web server, the HTTP connection process works through five connection states, as tracked by the readyState property: State 0: The connection has not been initialized. State 1: The connection to the server has been established. State 2: The server received the HTTP request message. State 3: The server is processing the HTTP request. State 4: The server sent the response. As the HTTP connection works through these five connection states, the value contained in the readyState property changes. This causes the function you define in the onreadystatechange property to trigger for each state change. When the readyState property contains a value of 4, the final result from the request is available for processing. When the readyState property value is 4, you know the communication is complete, but you don’t know how it turned out. To determine that, you check the HTTP response returned by the web server using the status property. If the status property contains the 200 numeric HTTP result code, that indicates the connection was successful, and any data returned by the web server is available in the responseText and responseXML properties. If the status property contains some other HTTP result code (such as 403 or 404), that indicates there was an error communicating with the web server. Because these values are standard, it has become somewhat common practice to start out the onreadystatechange callback function code checking for them: con.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var result = this.responseText; } }; The function only retrieves the data when the connection is complete and has returned valid data. This method of defining the callback function inline is referred to as creating an anonymous callback function, because you don’t define a name for the function. It only exists inside the onreadystatechange property, so you can’t reference it anywhere else in your JavaScript code. Although using an anonymous function is a popular way of defining the callback function, you can define the function as a standard named JavaScript function and then reference that function name in the onreadystatechange property.

View Article
3D Printing 3D Printers: Fixing a Blocked Hot-End or Extruder

Article / Updated 07-24-2023

When your 3D printer's hot-end gets blocked or your extruder's filament drive fails, the warning signs are usually obvious. The stream of plastic starts to lessen and then stops; the printer keeps trying to print but extrudes layer after layer of nothing. The first things to do are stop the printer and ensure that the heater block on the hot-end is still at the expected temperature. (Ideally, for maximum safety, you should use a noncontact laser temperature sensor.) If the heater temperature is significantly below 160 degrees C, the heater used in the hot-end or temperature sensor may have failed, or the wiring or electronics controlling the heaters may have developed a problem. Unfortunately, wires commonly break — and insulation wears away — on a home 3D printer due to the constant movement of the machine. Wiring should always have plenty of room to move around gently, with enough slack — not tightly bent or yanked back and forth as the machine moves. Using silicon-coated wire can help, especially if it has extra resistance to heat. Increasingly, new machines use gently curved ribbon cable — a ribbon of many parallel wires instead of a single thick wire — which tends to alleviate cable strain and damage. If your heater block is jammed but is at the expected temperature, follow these general steps to clear the jam: Keep the heater block turned on. Make sure that the filament drive isn't blocked and that the filament isn't buckled or wrapped around the extruder drive wheel. If you think you may have a blockage, follow the steps here. If you have buckled filament wrapped around the drive wheel, first remove the buckled filament, and then follow the next steps to check if the cause of the buckle was a blockage. Release the idler bearing, and gently pull out the filament. A filament rarely gets so jammed that it can't be pulled out while the hot-end is at temperature. More commonly, the removed filament shows signs of being overly compressed — a little fatter where it melted inside the hot-end. Usually, pulling out the melted filament removes contaminants from the hot-end nozzle. Cut off the melted filament end, and push it into the hot-end. If you can push down, and material is extruded from the nozzle, you've cleared the blockage. Otherwise, proceed to Step 5. If you can't get the material to extrude, allow the end of the material to melt, and pull it out again. Repeating this step several times should clear most blockages. If not, proceed to Step 6. If you still have a blockage, do either of the following things (extremely carefully): Push a pin or small drill bit into the nozzle end while pulling out the melted filament. Allow the hot-end to cool, and when it's cool, use a chemical solvent (such as acetone) to dissolve any buildup. Before using any chemical cleaner, check with the supplier, and mention the type of material that you were using in the hot-end when the jam occurred. You may be starting to think that having a few extruders is a good idea — and usually, it is. In the event of a blockage, a backup extruder can get you printing again while you repair. Another reason for having a choice of extruders is that your machine becomes much more capable of printing different types of objects, which can widen your selection of available printing materials.

View Article
General Programming & Web Design Using Integrated Development Environments for Program Development

Article / Updated 07-24-2023

The laser-guided miter tool for program development is the integrated development environment (IDE). IDE packages provide everything you could possibly need to develop any size of web application. Here are some of the advanced features IDE packages provide: Code completion: Start typing a code statement, and the package will provide a pop-up list of statements that match what you’re typing. It also shows what parameters are required and optional for the statement. Code formatting: The IDE automatically indents code blocks to help make your code more readable. Program execution: You can run your code directly from the editor window without having to jump out to a web browser. Debugging: You can step through the program code line by line, watch how variables are set, and see whether any error messages are generated. Project and file management: Most IDE packages allow you to group your application files into projects. This allows you to open a project and see just the files associated with that application. Some will even upload the project files to your web-hosting site for you, similar to what the graphical desktop tools do. Using an IDE tool is not for the faint of heart. Because of all the fancy features, learning how to use the IDE interface can be almost as complicated as learning the programming language! There are both commercial and open-source IDE packages available for the PHP environment. To give you a general idea of how IDE packages operate, check out two of the more popular ones: Netbeans and Eclipse. Netbeans The Netbeans IDE package was originally developed by Sun Microsystems and released as an open-source IDE for its Java programming language environment (thus the “beans” part of the name). When Oracle acquired Sun, it maintained support for Netbeans, and continued development of it with updated releases. The Netbeans IDE now contains support for several different programming languages besides Java by using additional plug-in modules. As you can guess, the reason I’m mentioning it here is because there’s a plug-in module for PHP. You can download the Netbeans editor with the PHP module already installed, making it easy to install. Just go to netbeans.apache.org/download/ and click the Download button under the PHP category. When you start Netbeans, it will prompt you to start a new project. Netbeans contains project templates for HTML and JavaScript applications, as well as PHP applications. When you start a new PHP project, Netbeans automatically creates an index.php file as the main program file for the project. It even builds a rough template for your code. As you would expect from an IDE, when you start typing a PHP function name, Netbeans opens a pop-up box that shows all the PHP functions that match what you're typing. Not only does it show the code completion list, but it also shows you the PHP manual definition of the function! This is certainly a handy tool to have available if you plan on doing any large-scale PHP development. Eclipse The other big name in PHP IDE packages is the Eclipse PHP Development Tool (usually just called Eclipse PDT). Eclipse was also originally designed as a Java application IDE. Many open-source proponents didn’t trust Sun Microsystems maintaining the only IDE for Java, so they set out to develop their own. (The story goes that there was no intentional wordplay on the name Eclipse versus Sun Microsystems. If you can believe that, I may have a bridge to sell you.) Just like the Netbeans IDE, Eclipse evolved from a Java-only IDE to support many different programming languages via the use of plug-in modules. You can download the Eclipse PDT as an all-in-one package at eclipse.org/pdt. Just like the jEdit editor, Eclipse PDT is written as a Java application and requires that you have a JRE or JDK installed on your workstation. When you start Eclipse, a menu system appears. This allows you to easily change the IDE configuration, start a new project, or open an existing project. Eclipse has all the same features that Netbeans offers. Plus, it has one additional feature: Eclipse PDT contains the advanced PHP Debugger tool developed by Zend, the company that sponsors PHP. The Debugger tool can help point out errors in your PHP code immediately as you type, or it can debug your code as you run it in the Eclipse editor window. Having an advanced PHP debugger at your fingertips can be a great time-saver when you’re developing large applications!

View Article
HTML5 Making AJAX Requests with jQuery for HTML5 and CSS3

Article / Updated 07-10-2023

The primary purpose of an AJAX library like jQuery is to simplify AJAX requests for HTML5 and CSS3 programmers. It's hard to believe how easy this can be with jQuery. How to include a text file with AJAX Check out this clean code: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax.html</title> <script type = "text/javascript" src = "jquery-1.10.2.min.js"></script> <script type = "text/javascript"> $(document).ready(getAJAX); function getAJAX(){ $("#output").load("hello.txt"); } </script> </head> <body> <div id = "output"></div> </body> </html> The HTML is very clean. It simply creates an empty div called output. This example does use AJAX, so if it isn't working, you might need to remember some details about how AJAX works. A program using AJAX should be run through a web server, not just from a local file. Also, the file being read should be on the same server as the program making the AJAX request. The load() mechanism described here is suitable for a basic situation where you want to load a plain-text or HTML code snippet into your pages. Building a poor man's CMS with AJAX AJAX and jQuery can be a very useful way to build efficient websites, even without server-side programming. Frequently a website is based on a series of smaller elements that can be swapped and reused. You can use AJAX to build a framework that allows easy reuse and modification of web content. Although nothing is all that shocking about the page from the user's perspective, a look at the code can show some surprises: <!DOCTYPE html> <html lang = "en"> <head> <meta charset = "UTF-8"> <title>CMS Using AJAX</title> <link rel = "stylesheet" type = "text/css" href = "cmsStd.css" /> <script type = "text/javascript" src = "jquery-1.10.2.min.js"></script> <script type = "text/javascript"> $(init); function init(){ $("#heading").load("head.html"); $("#menu").load("menu.html"); $("#content1").load("story1.html"); $("#content2").load("story2.html"); $("#footer").load("footer.html"); }; </script> </head> <body> <div id = "all"> <!-- This div centers a fixed-width layout → <div id = "heading"> </div><!-- end heading div → <div id = "menu"> </div> <!-- end menu div → <div class = "content" id = "content1"> </div> <!-- end content div → <div class = "content" id = "content2"> </div> <!-- end content div → <div id = "footer"> </div> <!-- end footer div → </div> <!-- end all div → </body> </html> Look over the code, and you can see these interesting features: The page has no content! All the divs are empty. None of the text shown in the screen shot is present in this document, but all is pulled from smaller files dynamically. The page consists of empty named divs. Rather than any particular content, the page consists of placeholders with IDs. It uses jQuery. The jQuery library is used to vastly simplify loading data through AJAX calls. All contents are in separate files. Look through the directory, and you can see very simple HTML files that contain small parts of the page. For example, story1.html looks like this: <h2>Book I - Creating the HTML Foundation</h3> <ol> <li>Sound HTML Foundations</li> <li>It's All About Validation</li> <li>Choosing your Tools</li> <li>Managing Information with Lists and Tables</li> <li>Making Connections with Links</li> <li>Adding Images</li> <li>Creating forms</li> </ol> The init() method runs on document.ready. When the document is ready, the page runs the init() method. The init() method uses AJAX calls to dynamically load content. It's nothing more than a series of jQuery load() methods. This approach may seem like a lot of work, but it has some very interesting characteristics: If you're building a large site with several pages, you usually want to design the visual appearance once and reuse the same general template repeatedly. Also, you'll probably have some elements that will be consistent over several pages. You could simply create a default document and copy and paste it for each page, but this approach gets messy. What happens if you have created 100 pages according to a template and then need to change the header? You need to make the change on 100 different pages. The advantage of the template-style approach is code reuse. Just like the use of an external style allows you to multiply a style sheet across hundreds of documents, designing a template without content allows you to store code snippets in smaller files and reuse them. All 100 pages point to the same menu file, so if you want to change the menu, change one file and everything changes with it. Here's how you use this sort of approach: Create a single template for your entire site. Build basic HTML and CSS to manage the overall look and feel for your entire site. Don't worry about content yet. Just build placeholders for all the components of your page. Be sure to give each element an ID and write the CSS to get things positioned as you want. Add jQuery support. Make a link to the jQuery library, and make a default init() method. Put in code to handle populating those parts of the page that will always be consistent. Duplicate the template. After you have a sense of how the template will work, make a copy for each page of your site. Customize each page by changing the init() function. The only part of the template that changes is the init() function. All your pages will be identical, except they have customized init() functions that load different content. Load custom content into the divs with AJAX. Use the init()function to load content into each div. This is a great way to manage content, but it isn't quite a full-blown content-management system. Even AJAX can't quite allow you to store content on the web. More complex content management systems also use databases rather than files to handle content. You'll need some sort of server-side programming (like PHP) and usually a database (like mySQL) to handle this kind of work.

View Article
page 1
page 2
page 3
page 4
page 5
page 6
page 7
page 8
page 9
page 10
page 11
page 12
page 13
page 14
page 15
page 16
page 17
page 18
page 19
page 20
page 21
page 22
page 23
page 24
page 25
page 26
page 27
page 28
page 29
page 30
page 31
page 32
page 33
page 34
page 35
page 36
page 37
page 38
page 39
page 40
page 41
page 42
page 43
page 44
page 45
page 46
page 47
page 48
page 49
page 50
page 51
page 52
page 53
page 54
page 55
page 56
page 57
page 58
page 59
page 60
page 61
page 62
page 63
page 64
page 65
page 66
page 67
page 68
page 69
page 70
page 71
page 72
page 73
page 74
page 75
page 76
page 77
page 78
page 79
page 80
page 81
page 82
page 83
page 84
page 85
page 86
page 87
page 88
page 89
page 90
page 91
page 92
page 93
page 94
page 95
page 96
page 97
page 98
page 99
page 100
page 101
page 102
page 103
page 104
page 105
page 106
page 107
page 108
page 109
page 110
page 111
page 112
page 113
page 114
page 115
page 116
page 117
page 118
page 119
page 120
page 121
page 122
page 123
page 124
page 125
page 126
page 127
page 128
page 129
page 130
page 131
page 132
page 133
page 134
page 135
page 136
page 137
page 138
page 139
page 140

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