CINXE.COM
No Starch Press | "The finest in geek entertainment"
<!DOCTYPE html> <html lang="en" dir="ltr" xmlns:og="https://ogp.me/ns#"> <head> <link rel="profile" href="https://www.w3.org/1999/xhtml/vocab" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="shortcut icon" href="https://nostarch.com/sites/default/files/favicon.ico" type="image/vnd.microsoft.icon" /> <meta name="generator" content="Drupal 7 (http://drupal.org)" /> <link rel="image_src" href="https://nostarch.com/sites/all/themes/nostarch/images/nsp_logo_long.jpg" /> <link rel="canonical" href="https://nostarch.com/" /> <link rel="shortlink" href="https://nostarch.com/" /> <meta property="og:image" content="https://nostarch.com/sites/all/themes/nostarch/images/nsp_logo_long.jpg" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="@nostarch" /> <meta name="twitter:url" content="https://nostarch.com/index.htm" /> <meta name="twitter:title" content="No Starch Press" /> <meta name="twitter:image" content="https://nostarch.com/sites/all/themes/nostarch/images/nsp_logo_long.jpg" /> <meta name="google-site-verification" content="ViV16lqPie7uxpbKDKUhf0C-4zTO8i68SG-QzJfREe8" /> <title>No Starch Press | "The finest in geek entertainment"</title> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_lQaZfjVpwP_oGNqdtWCSpJT1EMqXdMiU84ekLLxQnc4.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_guSWpwqRBCVb2J7ivC8BaNuaPffCXmbkGB5xDBqKKu8.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_Dw0rmhFX_owMmlf1HH5Y-_BnOHcMlkri1yMjYHD4ffs.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_XJm3Wqia1GUjoI4j54duSLNZVR3Kxhbwy0s3UwuhhHg.css" media="all" /> <!-- HTML5 element support for IE6-8 --> <!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> <![endif]--> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script>window.jQuery || document.write("<script src='/sites/all/modules/contrib/jquery_update/replace/jquery/2.2/jquery.min.js'>\x3C/script>")</script> <script src="https://nostarch.com/misc/jquery-extend-3.4.0.js?v=2.2.4"></script> <script src="https://nostarch.com/misc/jquery-html-prefilter-3.5.0-backport.js?v=2.2.4"></script> <script src="https://nostarch.com/misc/jquery.once.js?v=1.2"></script> <script src="https://nostarch.com/misc/drupal.js?stduay"></script> <script src="https://nostarch.com/sites/all/modules/contrib/jquery_update/js/jquery_browser.js?v=0.0.1"></script> <script src="https://nostarch.com/sites/all/modules/contrib/jquery_update/replace/ui/external/jquery.cookie.js?v=67fb34f6a866c40d0570"></script> <script src="https://nostarch.com/sites/all/modules/contrib/jquery_update/replace/jquery.form/4/jquery.form.min.js?v=4.2.1"></script> <script src="https://nostarch.com/misc/form-single-submit.js?v=7.103"></script> <script src="https://nostarch.com/misc/ajax.js?v=7.103"></script> <script src="https://nostarch.com/sites/all/modules/contrib/jquery_update/js/jquery_update.js?v=0.0.1"></script> <script src="https://nostarch.com/sites/all/modules/contrib/ubercart/uc_file/uc_file.js?stduay"></script> <script src="https://nostarch.com/sites/all/libraries/colorbox/jquery.colorbox-min.js?stduay"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox.js?stduay"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/styles/plain/colorbox_style.js?stduay"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox_load.js?stduay"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox_inline.js?stduay"></script> <script src="https://nostarch.com/sites/all/modules/contrib/views/js/base.js?stduay"></script> <script src="https://nostarch.com/sites/all/themes/contrib/bootstrap/js/misc/_progress.js?v=7.103"></script> <script src="https://nostarch.com/sites/all/modules/contrib/views/js/ajax_view.js?stduay"></script> <script src="https://nostarch.com/sites/all/modules/contrib/ubercart/uc_cart/uc_cart_block.js?stduay"></script> <script src="https://nostarch.com/sites/all/modules/contrib/google_analytics/googleanalytics.js?stduay"></script> <script src="https://www.googletagmanager.com/gtag/js?id=UA-5027625-1"></script> <script>window.google_analytics_uacct = "UA-5027625-1";window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments)};gtag("js", new Date());gtag("set", "developer_id.dMDhkMT", true);gtag("config", "UA-5027625-1", {"groups":"default","anonymize_ip":true});gtag("config", "G-51XGZT9Y4H", {"groups":"default","anonymize_ip":true});</script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/bootstrap.min.js?stduay"></script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/main.js?stduay"></script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/front_grid_height.js?stduay"></script> <script src="https://nostarch.com/sites/all/themes/contrib/bootstrap/js/misc/ajax.js?stduay"></script> <script src="https://nostarch.com/sites/all/themes/contrib/bootstrap/js/modules/views/js/ajax_view.js?stduay"></script> <script>jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"ajaxPageState":{"theme":"nostarch","theme_token":"qLo71_Z_eWKFo80hQhS0IGCbiZUbMmBwWnwpLNl4kng","jquery_version":"2.1","jquery_version_token":"f6x9FQccaFdlsOLoyxOkYYF_tm2wzACt6X5HdffWC34","js":{"sites\/all\/modules\/contrib\/addthis\/addthis.js":1,"sites\/all\/libraries\/shariff\/shariff.min.js":1,"sites\/all\/themes\/contrib\/bootstrap\/js\/bootstrap.js":1,"\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/2.2.4\/jquery.min.js":1,"0":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery-html-prefilter-3.5.0-backport.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/contrib\/jquery_update\/js\/jquery_browser.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/ui\/external\/jquery.cookie.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/jquery.form\/4\/jquery.form.min.js":1,"misc\/form-single-submit.js":1,"misc\/ajax.js":1,"sites\/all\/modules\/contrib\/jquery_update\/js\/jquery_update.js":1,"sites\/all\/modules\/contrib\/ubercart\/uc_file\/uc_file.js":1,"sites\/all\/libraries\/colorbox\/jquery.colorbox-min.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox.js":1,"sites\/all\/modules\/contrib\/colorbox\/styles\/plain\/colorbox_style.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox_load.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox_inline.js":1,"sites\/all\/modules\/contrib\/views\/js\/base.js":1,"sites\/all\/themes\/contrib\/bootstrap\/js\/misc\/_progress.js":1,"sites\/all\/modules\/contrib\/views\/js\/ajax_view.js":1,"sites\/all\/modules\/contrib\/ubercart\/uc_cart\/uc_cart_block.js":1,"sites\/all\/modules\/contrib\/google_analytics\/googleanalytics.js":1,"https:\/\/www.googletagmanager.com\/gtag\/js?id=UA-5027625-1":1,"1":1,"sites\/all\/themes\/nostarch\/js\/bootstrap.min.js":1,"sites\/all\/themes\/nostarch\/js\/main.js":1,"sites\/all\/themes\/nostarch\/js\/front_grid_height.js":1,"sites\/all\/themes\/contrib\/bootstrap\/js\/misc\/ajax.js":1,"sites\/all\/themes\/contrib\/bootstrap\/js\/modules\/views\/js\/ajax_view.js":1},"css":{"modules\/system\/system.base.css":1,"modules\/field\/theme\/field.css":1,"sites\/all\/modules\/contrib\/logintoboggan\/logintoboggan.css":1,"modules\/node\/node.css":1,"sites\/all\/modules\/contrib\/uc_fedex\/uc_fedex.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_file\/uc_file.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_order\/uc_order.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_product\/uc_product.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_store\/uc_store.css":1,"sites\/all\/modules\/contrib\/views\/css\/views.css":1,"sites\/all\/modules\/contrib\/ckeditor\/css\/ckeditor.css":1,"sites\/all\/modules\/contrib\/uc_discounts_alt\/uc_discounts\/uc_discounts.css":1,"sites\/all\/modules\/contrib\/colorbox\/styles\/plain\/colorbox_style.css":1,"sites\/all\/modules\/contrib\/ctools\/css\/ctools.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_cart\/uc_cart_block.css":1,"sites\/all\/libraries\/shariff\/shariff.complete.css":1,"sites\/all\/themes\/nostarch\/css\/en_styles.css":1,"sites\/all\/themes\/nostarch\/css\/custom.css":1,"sites\/all\/themes\/nostarch\/css\/bootstrap-3-vert-offset.css":1,"sites\/all\/themes\/nostarch\/css\/bootstrap-3-autoclear.css":1,"sites\/all\/themes\/nostarch\/css\/glyphicons.css":1}},"colorbox":{"opacity":"0.85","current":"{current} of {total}","previous":"\u00ab Prev","next":"Next \u00bb","close":"Close","maxWidth":"98%","maxHeight":"98%","fixed":true,"mobiledetect":true,"mobiledevicewidth":"480px","file_public_path":"\/sites\/default\/files","specificPagesDefaultValue":"admin*\nimagebrowser*\nimg_assist*\nimce*\nnode\/add\/*\nnode\/*\/edit\nprint\/*\nprintpdf\/*\nsystem\/ajax\nsystem\/ajax\/*"},"better_exposed_filters":{"views":{"frontpage_new":{"displays":{"block_frontpage":{"filters":[]}}},"frontpage_comingsoon":{"displays":{"block_frontpage":{"filters":[]}}},"topics":{"displays":{"block":{"filters":[]}}}}},"views":{"ajax_path":"\/views\/ajax","ajaxViews":{"views_dom_id:bc9fe5daf0d29d5e45f47c32a1dfbfb5":{"view_name":"frontpage_comingsoon","view_display_id":"block_frontpage","view_args":"","view_path":"node\/14","view_base_path":"frontpage_comingsoon","view_dom_id":"bc9fe5daf0d29d5e45f47c32a1dfbfb5","pager_element":0}}},"urlIsAjaxTrusted":{"\/views\/ajax":true,"\/":true},"googleanalytics":{"account":["UA-5027625-1","G-51XGZT9Y4H"],"trackOutbound":1,"trackMailto":1,"trackDownload":1,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip","trackColorbox":1},"bootstrap":{"anchorsFix":"0","anchorsSmoothScrolling":"0","formHasError":1,"popoverEnabled":1,"popoverOptions":{"animation":1,"html":0,"placement":"right","selector":"","trigger":"click","triggerAutoclose":1,"title":"","content":"","delay":0,"container":"body"},"tooltipEnabled":1,"tooltipOptions":{"animation":1,"html":0,"placement":"auto left","selector":"","trigger":"hover focus","delay":0,"container":"body"}}});</script> </head> <body class="html front not-logged-in two-sidebars page-node page-node- page-node-14 node-type-page"> <div id="skip-link"> <a href="#main-content" class="element-invisible element-focusable">Skip to main content</a> </div> <header id="" class="header" role="banner" class="navbar navbar-default"> <div class="container"> <div class="row"> <nav role="navigation" class="navbar navbar-default visible-xs"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand text-uppercase" href="/"><img src="https://nostarch.com/sites/all/themes/nostarch/logo.png" alt="Home" class="img-responsive"/></a> </div> <div id="navbar" class="navbar-collapse collapse text-center"> <ul class="menu nav navbar-nav"><li class="first leaf"><a href="/catalog.htm" title="Explore our catalog">Catalog</a></li> <li class="leaf"><a href="https://nostarch.com/merchandise-0" title="Merchandise">Merchandise</a></li> <li class="leaf"><a href="/blog" title="The No Starch Press blog">Blog</a></li> <li class="leaf"><a href="https://nostarch.com/early-access-program" title="Media contact">Early Access</a></li> <li class="leaf"><a href="/writeforus" title="Submit a book proposal">Write for Us</a></li> <li class="leaf"><a href="/about" title="About No Starch Press">About Us</a></li> <li class="last leaf"><a href="/contactus" title="Contact Us">Contact Us</a></li> </ul> <div class="region region-navigation"> <section id="block-uc-cart-cart" class="block block-uc-cart clearfix"> <h2 class="block-title"><a href="/cart"><span class="cart-block-icon-empty" title="View your shopping cart."></span></a><span class="cart-block-title-bar" title="Show/hide shopping cart contents.">Shopping cart<span class="cart-block-arrow arrow-down"></span></span></h2> <p class="cart-block-items collapsed uc-cart-empty">There are no products in your shopping cart.</p><table class="cart-block-summary"><tbody><tr><td class="cart-block-summary-items"><span class="num-items">0</span> Items</td><td class="cart-block-summary-total"><label>Total:</label> <span class="uc-price">$0.00</span></td></tr></tbody></table> </section> <section id="block-search-api-page-site-search" class="block block-search-api-page clearfix"> <form action="/" method="post" id="search-api-page-search-form-site-search" accept-charset="UTF-8"><div><div class="form-item form-item-keys-2 form-type-textfield form-group"><input placeholder="Search" class="form-control form-text" type="text" id="edit-keys-2" name="keys_2" value="" size="15" maxlength="128" /> <label class="control-label element-invisible" for="edit-keys-2">Enter your keywords</label> </div><input type="hidden" name="id" value="2" /> <button class="icon glyphicon glyphicon-search btn-primary form-control btn form-submit" type="submit" id="edit-submit-2" name="op" value=""></button> <input type="hidden" name="form_build_id" value="form-8WX3XAL7hoUAZ6z7uodXLt8kYmFo6BiExUEv5gVt0e4" /> <input type="hidden" name="form_id" value="search_api_page_search_form_site_search" /> </div></form> </section> </div> </div> </nav> <div class="navbar-header"> <div class="logo-wrapper col-sm-6 hidden-xs"> <a class="logo navbar-btn pull-left" href="/" title="Home"> <img src="https://nostarch.com/sites/all/themes/nostarch/logo.png" alt="Home" class="img-responsive"/> </a> </div> <div class="logo-wrapper col-sm-6 hidden-xs"> <div class="region region-navigation"> <div class="region region-navigation"> <section id="block-uc-cart-cart" class="block block-uc-cart clearfix"> <h2 class="block-title"><a href="/cart"><span class="cart-block-icon-empty" title="View your shopping cart."></span></a><span class="cart-block-title-bar" title="Show/hide shopping cart contents.">Shopping cart<span class="cart-block-arrow arrow-down"></span></span></h2> <p class="cart-block-items collapsed uc-cart-empty">There are no products in your shopping cart.</p><table class="cart-block-summary"><tbody><tr><td class="cart-block-summary-items"><span class="num-items">0</span> Items</td><td class="cart-block-summary-total"><label>Total:</label> <span class="uc-price">$0.00</span></td></tr></tbody></table> </section> <section id="block-search-api-page-site-search" class="block block-search-api-page clearfix"> <form action="/" method="post" id="search-api-page-search-form-site-search" accept-charset="UTF-8"><div><div class="form-item form-item-keys-2 form-type-textfield form-group"><input placeholder="Search" class="form-control form-text" type="text" id="edit-keys-2" name="keys_2" value="" size="15" maxlength="128" /> <label class="control-label element-invisible" for="edit-keys-2">Enter your keywords</label> </div><input type="hidden" name="id" value="2" /> <button class="icon glyphicon glyphicon-search btn-primary form-control btn form-submit" type="submit" id="edit-submit-2" name="op" value=""></button> <input type="hidden" name="form_build_id" value="form-8WX3XAL7hoUAZ6z7uodXLt8kYmFo6BiExUEv5gVt0e4" /> <input type="hidden" name="form_id" value="search_api_page_search_form_site_search" /> </div></form> </section> </div> </div> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="navbar-collapse collapse"> <nav role="navigation"> <ul class="menu nav navbar-nav"><ul class="menu nav navbar-nav"><li class="first leaf"><a href="/catalog.htm" title="Explore our catalog">Catalog</a></li> <li class="leaf"><a href="https://nostarch.com/merchandise-0" title="Merchandise">Merchandise</a></li> <li class="leaf"><a href="/blog" title="The No Starch Press blog">Blog</a></li> <li class="leaf"><a href="https://nostarch.com/early-access-program" title="Media contact">Early Access</a></li> <li class="leaf"><a href="/writeforus" title="Submit a book proposal">Write for Us</a></li> <li class="leaf"><a href="/about" title="About No Starch Press">About Us</a></li> <li class="last leaf"><a href="/contactus" title="Contact Us">Contact Us</a></li> </ul></ul> </nav> </div> </div> </div> </header> <div class="main-container container"> <header role="banner" id="page-header"> <div class="region region-header"> <section id="block-block-159" class="block block-block clearfix"> <style> <!--/*--><![CDATA[/* ><!--*/ #banner { height: 120px; } #banner-graphic { width: 700px; } #banner-countdown { width: 240px; } #banner-cta { width: 200px; text-align: center; margin-top: 19px; } .banner-column { float: left; } .banner_image { max-width: 100% } @media (max-width: 1199px) { #banner-graphic { width: 500px; } } @media (max-width: 991px) { #banner { height: 160px; } #banner-graphic { float: none; width: 100%; } #banner-countdown { width: 50%; } #banner-cta { width: 50%; } } @media (max-width: 422px) { #banner { height: 200px; } #banner-countdown { float: none; width: 100%; } #banner-cta { float: none; width: 100%; margin-top: 10px; } } .time-left { margin: 1em; font-size: .75em; font-weight: bold; text-transform: uppercase; font-family: Arial, Helvetica, Verdana, sans-serif; text-align: center; } .countdown-container { display: flex; justify-content: center; } .countdown-timer { font-family: Arial, Helvetica, Verdana, sans-serif; color: white; } .countdown-timer .countdown-timer-counter { background-color: #222; display: inline-flex; flex-direction: column; justify-content: space-around; text-align: center; border-radius: 0.2em; width: 3em; line-height: 1.3; margin: 0 0.2em; padding: .6em 0.15em 0.75em; text-shadow: 1px 1px 1px rgba(0,0,0,0.85); } .countdown-timer .countdown-timer-counter .countdown-timer-number { font-weight: bold; font-size: 1em; } .countdown-timer .countdown-timer-counter .countdown-label { font-size: 0.75em; } .cta-parent { text-align: center; } .cta-button { font-family: Arial, Helvetica, Verdana, sans-serif; color: white; display: inline-block; font-weight: bold; text-decoration: none; background-color: #ec6352; border: 1px solid #ec6352; cursor: pointer; padding: 0.8em 1.25em 1em; margin: 0.75em auto 0; font-size: 1.15em; text-rendering: optimizeLegibility; border-radius: 0.3em; text-shadow: 1px 1px 1px rgba(0,0,0,0.65); text-transform: uppercase; transition-duration: 0.2s; transition-property: background-color, border, color, box-shadow, text-shadow; transition-timing-function: ease-in-out; white-space: nowrap; } .cta-button:hover { background-color: #ec6352; border: 1px solid #ec6352; } /*--><!]]>*/ </style><div id="banner1"> <div class="banner-column" id="banner-graphic"> <p><a href="https://www.humblebundle.com/books/computer-science-fun-way-no-starch-books" target="_blank"><img src="https://nostarch.com/images/banners/HumbleBundleWebsiteBanner_March2025.png" class="banner_image" /></a></p> </div> <div class="banner-column" id="banner-countdown"> <div class="time-left">time left</div> <div class="countdown-container"> <div class="countdown-timer"> <div class="countdown-timer-counter" data-unit="days"> <div class="countdown-timer-number"></div> <div class="countdown-label">days</div> </div> <div class="countdown-timer-counter" data-unit="hours"> <div class="countdown-timer-number"></div> <div class="countdown-label">hours</div> </div> <div class="countdown-timer-counter" data-unit="minutes"> <div class="countdown-timer-number"></div> <div class="countdown-label">min</div> </div> <div class="countdown-timer-counter" data-unit="seconds"> <div class="countdown-timer-number"></div> <div class="countdown-label">sec</div> </div> </div> </div> </div> <div class="banner-column" id="banner-cta"><a href="https://www.humblebundle.com/books/computer-science-fun-way-no-starch-books" target="_blank"><span class="cta-button">Get The Bundle</span></a></div> </div> <script> <!--//--><![CDATA[// ><!-- function initCountdown(bannerId, endDate) { var countdownTime = new Date(endDate); var banner = document.getElementById(bannerId); var x = setInterval(function() { var now = new Date(); var distance = countdownTime - now; var days = Math.max(Math.floor(distance / (1000 * 60 * 60 * 24)), 0); var hours = Math.max(Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)), 0); var minutes = Math.max(Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)), 0); var seconds = Math.max(Math.floor((distance % (1000 * 60)) / 1000), 0); function padZero(num) { return num.toString().padStart(2, '0'); } banner.querySelector('[data-unit="days"] .countdown-timer-number').textContent = padZero(days); banner.querySelector('[data-unit="hours"] .countdown-timer-number').textContent = padZero(hours); banner.querySelector('[data-unit="minutes"] .countdown-timer-number').textContent = padZero(minutes); banner.querySelector('[data-unit="seconds"] .countdown-timer-number').textContent = padZero(seconds); if (distance < 0) { clearInterval(x); banner.querySelector('.countdown-container').textContent = "Event has ended"; } }, 1000); } // Initialize the countdown for banner1 initCountdown('banner1', '2025-03-24T19:00:00Z'); //--><!]]> </script> </section> </div> </header> <!-- /#page-header --> <div class="row"> <aside class="col-sm-3" role="complementary"> <div class="region region-sidebar-first well"> <section id="block-views-topics-block" class="block block-views clearfix"> <button class="btn btn-primary btn-block visible-xs vert-offset-top-2" data-toggle="collapse" data-target="#topics"><span class="glyphicon glyphicon-menu-down pull-left"></span> <span class="btn-text">Topics</span><span class="glyphicon glyphicon-menu-down pull-right"></span></button> <h2 class="block-title hidden-xs">Topics</h2> <div id="topics" class="view-content collapse dont-collapse animateCollapse"> <div class="view view-topics view-id-topics view-display-id-block view-dom-id-0a1f98d5cb29db5b7d2e5a096fbddb45"> <div class="view-content"> <div class="item-list"> <ul> <li class="views-row views-row-1 views-row-odd views-row-first"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/art-photography-design">Art & Design</a></span> </div></li> <li class="views-row views-row-2 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/general-computing">General Computing</a></span> </div></li> <li class="views-row views-row-3 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/security">Hacking & Computer Security</a></span> </div></li> <li class="views-row views-row-4 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/hardware-and-diy">Hardware / DIY</a></span> </div></li> <li class="views-row views-row-5 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/kids">Kids</a></span> </div></li> <li class="views-row views-row-6 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/lego">LEGO®</a></span> </div></li> <li class="views-row views-row-7 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/linux-bsd-unix">Linux & BSD</a></span> </div></li> <li class="views-row views-row-8 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/manga">Manga</a></span> </div></li> <li class="views-row views-row-9 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/programming">Programming</a></span> </div></li> <li class="views-row views-row-10 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/python">Python</a></span> </div></li> <li class="views-row views-row-11 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/rforall">R for All</a></span> </div></li> <li class="views-row views-row-12 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/science-math">Science & Math</a></span> </div></li> <li class="views-row views-row-13 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/scratch">Scratch</a></span> </div></li> <li class="views-row views-row-14 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/system-administration">System Administration</a></span> </div></li> <li class="views-row views-row-15 views-row-odd views-row-last"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/early-access">Early Access</a></span> </div></li> </ul></div> </div> <div class="view-footer"> <style> <!--/*--><![CDATA[/* ><!--*/ .view-topics .item-list a {font-weight: bold;} .view-topics ul {padding-left: 20px;} /*--><!]]>*/ </style> </div> </div> </div> </section><section id="block-block-12" class="block block-block clearfix"> <div class="rounded_border_block"><span style="font-family:Arial,Helvetica,sans-serif"><strong><span style="font-size:12px"><span style="color:#c0392b"><a href="https://nostarch.com/about_ebooks.htm">FREE ebook edition with every print book purchased from nostarch.com!</a></span></span></strong></span></div> <p class="rtecenter"><span style="font-size:22px">+</span></p> <div class="rounded_border_block"><span style="font-family:Arial,Helvetica,sans-serif"><strong><span style="font-size:12px"><a href="https://nostarch.com/early-access-program"><span style="color:#c0392b">EARLY ACCESS lets you read full chapters months before a title's release date!</span></a></span></strong></span></div> </section> <section id="block-nostarch-custom-login-block" class="block block-nostarch-customclearfix"> <h2 class="block-title">User login</h2> <ul> <li><a href="/user">Log in</a></a></li> <li><a href="/user/register">Create account</a></a></li> </ul> </section> <section id="block-nostarch-custom-bestsellers" class="block block-nostarch-customclearfix"> <h2 class="block-title">This Month's Bestsellers</h2> <div align="center"> <div class="view view-favorites view-id-favorites view-display-id-default auto-clear view-dom-id-63c72a8215fb8b2a76d540061c6135d2"> <div class="view-content"> <div class="views-row views-row-1 views-row-odd views-row-first col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/automatestuff2"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/automate_cover-blurb_2B.png?itok=Qwb4yCmO" width="90" height="120" alt="Automate the Boring Stuff with Python, 2nd Edition" title="Automate the Boring Stuff with Python, 2nd Edition" /></a></div> </div> </div> <div class="views-row views-row-2 views-row-even col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/windows-security-internals"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/9781718501980.png?itok=SdaiK_vC" width="90" height="118" alt="Windows Security Internals cover" title="Windows Security Internals cover" /></a></div> </div> </div> <div class="views-row views-row-3 views-row-odd col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/linuxbasicsforhackers"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/LinuxBasicsforHackers_cover-front.png?itok=loG0GtJf" width="90" height="119" alt="Linux Basics for Hackers" title="Linux Basics for Hackers" /></a></div> </div> </div> <div class="views-row views-row-4 views-row-even col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/powershellsysadmins"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/automatePS_frontcvr.png?itok=vc0LK7V2" width="90" height="119" alt="PowerShell for Sysadmins" title="PowerShell for Sysadmins" /></a></div> </div> </div> <div class="views-row views-row-5 views-row-odd col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/evading-edr"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/EvadingEDR_cover.png?itok=mTttZke_" width="90" height="119" alt="Evading EDR cover" title="Evading EDR cover" /></a></div> </div> </div> <div class="views-row views-row-6 views-row-even views-row-last col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/engineering-plain-sight"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/Hillhouse_cover.png?itok=PQe1U9N4" width="90" height="112" alt="Engineering in Plain Sight Cover" title="Engineering in Plain Sight Cover" /></a></div> </div> </div> </div> </div> </div> </section> <section id="block-block-78" class="block block-block clearfix"> <script data-account="eeqOpWOUyZ" src="https://cdn.userway.org/widget.js"></script> </section> </div> </aside> <!-- /#sidebar-first --> <section class="col-sm-6" style=""> <a id="main-content"></a> <h1 class="page-header">No Starch Press</h1> <div class="region region-content"> <section id="block-system-main" class="block block-system clearfix"> <div class="ds-1col node node-page view-mode-full clearfix"> <div class="col-md-6 col-xs-12 product-teaser product-teaser-new auto-clear"> <h2 class="title"><b>New!</b></h2> <section id="block-views-frontpage-new-block-frontpage" class="block block-views clearfix"> <div class="view view-frontpage-new view-id-frontpage_new view-display-id-block_frontpage view-dom-id-a4aee1e0a44f1fdec20add764f02a4a8"> <div class="view-content"> <div class="views-row views-row-1 views-row-odd views-row-first"> <article id="node-683" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/practical-sdr"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/PracticalSRD_placeholder_0.png?itok=3VGORydq" width="170" height="225" alt="Practical SDR cover" title="Practical SDR cover" /></a></div></div></div> <header> <h2><a href="/practical-sdr">Practical SDR</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">David Clark and Paul Clark</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Discover the exciting world of software-defined radio (SDR) through this fun, project-based introduction.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-2 views-row-even"> <article id="node-758" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/math-programming"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/MathProgramming_frontcover.png?itok=yQ5JjAg6" width="170" height="225" alt="Math for Programming cover" title="Math for Programming cover" /></a></div></div></div> <header> <h2><a href="/math-programming">Math for Programming</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Ronald T. Kneusel</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">A one-stop-shop for all the math you should have learned for your programming career.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-3 views-row-odd"> <article id="node-767" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/art-arm-assembly-volume-1"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/ArtARM_frontcover.png?itok=qkz8olFJ" width="170" height="225" alt="The Art of ARM Assembly cover" title="The Art of ARM Assembly cover" /></a></div></div></div> <header> <h2><a href="/art-arm-assembly-volume-1">The Art of ARM Assembly, Volume 1</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Randall Hyde</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Add valuable skills to your programming toolkit by learning to write complete applications in ARM, a popular low-level assembly language.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-4 views-row-even"> <article id="node-778" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/art-mac-malware-v2"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/ArtMacMalwarev2_frontcover.png?itok=yC6y7p3e" width="170" height="225" alt="The Art of Mac Malware, Volume 2 cover" title="The Art of Mac Malware, Volume 2 cover" /></a></div></div></div> <header> <h2><a href="/art-mac-malware-v2">The Art of Mac Malware, Volume 2</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Patrick Wardle</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>This first-of-its-kind guide to detecting stealthy Mac malware gives you the tools and techniques to counter even the most sophisticated threats targeting the Apple ecosystem.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-5 views-row-odd"> <article id="node-711" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/introcomputerorgforarm"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/IntroCompOrgARM_frontcover.png?itok=d4bqT7-A" width="169" height="225" alt="Introduction to Computer Organization: ARM Edition" title="Introduction to Computer Organization: ARM Edition" /></a></div></div></div> <header> <h2><a href="/introcomputerorgforarm">Introduction to Computer Organization: ARM Edition</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Robert G. Plantz</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>See How the Magic Happens</p> <p>Built with ARM A64 Assembly Language</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-6 views-row-even"> <article id="node-716" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/metasploit-2nd-edition"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/metasploit2e_frontcover_0.png?itok=syxwdg0l" width="169" height="225" alt="Metasploit, 2nd Edition cover" title="Metasploit, 2nd Edition cover" /></a></div></div></div> <header> <h2><a href="/metasploit-2nd-edition">Metasploit, 2nd Edition</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"> David Kennedy, Mati Aharoni, Devon Kearns, Jim O’Gorman, and Daniel Graham</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Arial"><span style="color:#000000">The second edition of the international bestseller </span></span></span><span style="font-size:10pt"><span style="font-family:Arial"><span style="color:#000000"><em>Metasploit</em></span></span></span><span style="font-size:10pt"><span style="font-family:Arial"><span style="color:#000000"> is written by some of the world’s best hackers and is the only introduction you’ll ever need to the legendary Framework. </span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-7 views-row-odd"> <article id="node-680" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/php-crash-course"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/PHPCC_frontcover.png?itok=7dUz-lrC" width="169" height="225" alt="PHP Crash Course Cover" title="PHP Crash Course Cover" /></a></div></div></div> <header> <h2><a href="/php-crash-course">PHP Crash Course</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Matt Smith</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>From First Script to Full Website—Fast!</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-8 views-row-even"> <article id="node-717" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/data-structures-and-algorithms-javascript"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/DataStructuresAlgorithmsJavaScript_frontcover.png?itok=ZldiKj8b" width="170" height="225" alt="Data Structures and Algorithms in JavaScript front cover" title="Data Structures and Algorithms in JavaScript front cover" /></a></div></div></div> <header> <h2><a href="/data-structures-and-algorithms-javascript">Data Structures and Algorithms in JavaScript</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even"> Federico Kereki</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Not the Same Old JavaScript.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-9 views-row-odd"> <article id="node-759" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/kotlin-scratch"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/KotlinScratch_frontcover.png?itok=5WkBn7Xb" width="169" height="225" alt="Kotlin from Scratch placeholder cover" title="Kotlin from Scratch placeholder cover" /></a></div></div></div> <header> <h2><a href="/kotlin-scratch">Kotlin from Scratch</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Faisal Islam</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Learn to code in Kotlin by starting from scratch and gradually building skills to tackle a wide range of fun and challenging problems. </span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-10 views-row-even"> <article id="node-786" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/graph-algorithms-fun-way"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/GraphAlgorithmsFW_frontcover.png?itok=9DXcNi8m" width="170" height="225" alt="Graph Algorithms the Fun Way placeholder cover" title="Graph Algorithms the Fun Way placeholder cover" /></a></div></div></div> <header> <h2><a href="/graph-algorithms-fun-way">Graph Algorithms the Fun Way</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Jeremy Kubica</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Enter the wonderful world of graph algorithms, where you’ll learn when and how to apply these highly useful data structures to solve a wide range of fascinating (and fantastical) computational problems.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-11 views-row-odd"> <article id="node-789" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/eloquent-javascript-4th-edition"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/EJS4e_Comp.png?itok=YEs1Twv2" width="170" height="225" alt="Eloquent JavaScript, 4th Edition placeholder cover" title="Eloquent JavaScript, 4th Edition placeholder cover" /></a></div></div></div> <header> <h2><a href="/eloquent-javascript-4th-edition">Eloquent JavaScript, 4th Edition</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Marijn Haverbeke</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Start building beautiful web applications in JavaScript with the bestselling introduction to the language, updated with new features, fresh exercises, and fun projects.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-12 views-row-even"> <article id="node-783" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/lego-handbook"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/LegoBH_frontcover.png?itok=Xazl-FZw" width="181" height="225" alt="The LEGO Builder's Handbook cover" title="The LEGO Builder's Handbook cover" /></a></div></div></div> <header> <h2><a href="/lego-handbook">The LEGO Builder’s Handbook</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Deepak Shenoy</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Forget step-by-step instructions — you’re ready to design your own LEGO® creations! <em>The </em></span></span></span><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000"><em>LEGO® Builder’s Handbook</em></span></span></span><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000"> is the only guide you need for building totally out-of-this-world, wholly original models.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-13 views-row-odd"> <article id="node-790" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/effective-c-2nd-edition"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/EffectiveC2e_frontcover_0.png?itok=bzs8RwSt" width="170" height="225" alt="Effective C, 2nd Edition cover" title="Effective C, 2nd Edition cover" /></a></div></div></div> <header> <h2><a href="/effective-c-2nd-edition">Effective C, 2nd Edition</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Robert C. Seacord</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Is an introduction to essential C language programming that will soon have you writing programs, solving problems, and building working systems.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-14 views-row-even"> <article id="node-736" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/math-hacks-scratch"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/MathHacksScratch_frontcover.png?itok=vyPlns4b" width="170" height="225" alt="Math Hacks for Scratch cover" title="Math Hacks for Scratch cover" /></a></div></div></div> <header> <h2><a href="/math-hacks-scratch">Math Hacks for Scratch</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Michael Mays</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Push Scratch programming to the limits as you explore mathematical curiosities through hands-on coding projects.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-15 views-row-odd"> <article id="node-784" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/cybersecurity-tabletop-exercises"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/CybersecutiryTabletopExercises_frontcover.png?itok=kpHzLSXv" width="170" height="225" alt="Cybersecurity Tabletop Exercises cover" title="Cybersecurity Tabletop Exercises cover" /></a></div></div></div> <header> <h2><a href="/cybersecurity-tabletop-exercises">Cybersecurity Tabletop Exercises</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Robert Lelewski and John Hollenberger</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>The complete start-to-finish guide for planning and delivering successful cybersecurity tabletop exercises.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-16 views-row-even"> <article id="node-785" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/serious-cryptography-2nd-edition"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/SeriousCryptography2e_frontcover.png?itok=2AFD540W" width="170" height="225" alt="Serious Cryptography, 2nd Edition placeholder cover" title="Serious Cryptography, 2nd Edition placeholder cover" /></a></div></div></div> <header> <h2><a href="/serious-cryptography-2nd-edition">Serious Cryptography, 2nd Edition</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Jean-Philippe Aumasson</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><h4><span style="font-size:10pt"><span style="font-family:Arial,sans-serif"><span style="color:#000000"><span style="background-color:#ffffff"><em>Serious Cryptography</em></span></span></span></span><span style="font-size:10pt"><span style="font-family:Arial,sans-serif"><span style="color:#333333"><span style="background-color:#ffffff">, 2nd edition, is a practical guide to the past, present, and future of cryptographic systems and algorithms.</span></span></span></span></h4> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-17 views-row-odd views-row-last"> <article id="node-636" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/writing-c-compiler"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/Writing_a_C_Compilercover.jpg?itok=Uez0c43p" width="170" height="225" alt="Writing a C Compiler Cover" title="Writing a C Compiler Cover" /></a></div></div></div> <header> <h2><a href="/writing-c-compiler">Writing a C Compiler</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Nora Sandler</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>A fun, hands-on guide to writing your own compiler for a real-world programming language.</p> </div></div></div> <footer> </footer> </article> </div> </div> <div class="view-footer"> <div class="feed-icon"> <a href="/feeds/newbooks.xml" class="feed-icon" title="Subscribe to No Starch Press - New Books"><img class="img-responsive" src="/misc/feed.png" width="16" height="16" alt="Subscribe to No Starch Press - New Books"></a> </div> </div> </div> </section> </div> <div class="col-md-6 col-xs-12 product-teaser product-teaser-soon auto-clear"> <a href="/upcoming.htm"><h2 class="title"><b>Coming Soon</b></h2></a> <section id="block-views-frontpage-comingsoon-block-frontpage" class="block block-views clearfix"> <div class="view view-frontpage-comingsoon view-id-frontpage_comingsoon view-display-id-block_frontpage view-dom-id-bc9fe5daf0d29d5e45f47c32a1dfbfb5"> <div class="view-content"> <div class="views-row views-row-1 views-row-odd views-row-first"> <article id="node-772" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/automate-boring-stuff-python-3rd-edition"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/Automate3e_frontcover.png?itok=l7xP3NL_" width="169" height="225" alt="Automate the Boring Stuff with Python, 3rd Edition cover" title="Automate the Boring Stuff with Python, 3rd Edition cover" /></a></div></div></div> <header> <h2><a href="/automate-boring-stuff-python-3rd-edition">Automate the Boring Stuff with Python, 3rd Edition</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Al Sweigart </div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Revised to include the latest Python features, even better explanations, and new chapters about databases and sound files.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-2 views-row-even"> <article id="node-792" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/building-a-debugger"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/BuildingDebugger_frontcover_0.png?itok=FbFePt5c" width="169" height="225" alt="Building a Debugger cover" title="Building a Debugger cover" /></a></div></div></div> <header> <h2><a href="/building-a-debugger">Building a Debugger</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Sy Brand</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Master the inner workings of your x64 Linux system and expand your OS expertise by writing your very own debugger using C++.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-3 views-row-odd"> <article id="node-791" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/effective-shell"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/Effective%20Shell_frontcover.png?itok=7jew62Og" width="170" height="225" alt="Effective Shell placeholder cover" title="Effective Shell placeholder cover" /></a></div></div></div> <header> <h2><a href="/effective-shell">Effective Shell</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Dave Kerr</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Teaches you how to navigate the command line so you can work faster and smarter and have more fun while you’re at it.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-4 views-row-even"> <article id="node-803" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/practical-deep-learning-python-2E"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/PracticalDeepLearning2e_Comp_0.png?itok=_Go0oxaP" width="170" height="225" alt="Practical Deep Learning, 2nd Edition cover" title="Practical Deep Learning, 2nd Edition cover" /></a></div></div></div> <header> <h2><a href="/practical-deep-learning-python-2E">Practical Deep Learning, 2nd Edition</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Ronald T. Kneusel</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><em>Practical Deep Learning, 2nd Edition</em> is your gateway into AI, equipping you with the knowledge and confidence to build powerful AI models using the latest architectures and techniques.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-5 views-row-odd"> <article id="node-797" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/zero-day"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/ZeroDay_placeholder_0.png?itok=-r8VZ7eZ" width="170" height="225" alt="From Day Zero to Zero Day placeholder cover" title="From Day Zero to Zero Day placeholder cover" /></a></div></div></div> <header> <h2><a href="/zero-day">From Day Zero to Zero Day</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Eugene Lim</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Find security holes before the bad guys do. </p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-6 views-row-even"> <article id="node-798" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/game-boy-coding-adventure"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/GameBoy_CV_placeholder.png?itok=NGr_Om0J" width="170" height="225" alt="Game Boy Coding Adventure placeholder cover" title="Game Boy Coding Adventure placeholder cover" /></a></div></div></div> <header> <h2><a href="/game-boy-coding-adventure">Game Boy Coding Adventure</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Maximilien Dagois</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>A comprehensive tutorial on programming in assembly using the iconic Game Boy, teaching the basics of computer science in a fun and engaging way.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-7 views-row-odd"> <article id="node-764" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/linux-basics-hackers-2nd-edition"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/9781718503540.jpg?itok=-XSQiqHQ" width="170" height="225" alt="Linux Basics for Hackers, 2nd Edition placeholder cover" title="Linux Basics for Hackers, 2nd Edition placeholder cover" /></a></div></div></div> <header> <h2><a href="/linux-basics-hackers-2nd-edition">Linux Basics for Hackers, 2nd Edition</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">OccupyTheWeb</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">The second edition of this bestselling introduction to the Linux operating system for hackers and penetration testers has been fully updated and revised, covering the latest version of Kali.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-8 views-row-even"> <article id="node-796" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/deep-learning-crash-course"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/DeepLearningCC_placeholder.png?itok=e2pzpT8F" width="170" height="225" alt="Deep Learning Crash Course placeholder cover" title="Deep Learning Crash Course placeholder cover" /></a></div></div></div> <header> <h2><a href="/deep-learning-crash-course">Deep Learning Crash Course</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Giovanni Volpe, Benjamin Midtvedt, Jesús Pineda, Henrik Klein Moberg, Harshith Bachimanchi, Joana B. Pereira, and Carlo Manzo</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>A complete guide to deep neural networks – the technology behind AI – covering fundamental and advanced techniques to apply machine learning in real-world scenarios.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-9 views-row-odd"> <article id="node-799" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/quantum-computing"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/QuantumComp_placeholder.png?itok=X6bY8nYI" width="170" height="225" alt="Quantum Computing placeholder cover" title="Quantum Computing placeholder cover" /></a></div></div></div> <header> <h2><a href="/quantum-computing">Quantum Computing</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Andrew Glassner</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Learn to program tomorrow’s technology with this accessible exploration of quantum computing, requiring only high school math and a basic understanding of coding concepts.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-10 views-row-even"> <article id="node-802" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/python-excel"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/PythonExcel_placeholder_0.png?itok=D_NlpYan" width="170" height="225" alt="Python for Excel Users placeholder cover" title="Python for Excel Users placeholder cover" /></a></div></div></div> <header> <h2><a href="/python-excel">Python for Excel Users</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Tracy Stephens</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Boost your productivity and expand beyond the limits of Microsoft Excel with this Python primer written for users of the ubiquitous spreadsheet software.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-11 views-row-odd"> <article id="node-817" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/purple-teaming"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/PracticalPurpleTeaming_placeholder.png?itok=82r0WLtS" width="170" height="225" alt="Practical Purple Teaming placeholder cover" title="Practical Purple Teaming placeholder cover" /></a></div></div></div> <header> <h2><a href="/purple-teaming">Practical Purple Teaming</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Alfie Champion</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>This practical introduction to collaborative security testing, or “purple teaming,” is a hands-on, lab-based guide to key methodologies for cybersecurity practitioners in any field.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-12 views-row-even"> <article id="node-811" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/computer-science-from-scratch"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/CompScienceScratch_placeholder.png?itok=d6KxBviS" width="170" height="225" alt="Computer Science From Scratch placeholder cover" title="Computer Science From Scratch placeholder cover" /></a></div></div></div> <header> <h2><a href="/computer-science-from-scratch">Computer Science From Scratch</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">David Kopec</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Test and sharpen your Python skills with seven guided projects that explore popular computer science challenges.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-13 views-row-odd"> <article id="node-805" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/data-engineering-cybersecurity"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/DataEngCyber_placeholder_0.png?itok=EkluzkFU" width="170" height="225" alt="Data Engineering for Cybersecurity placeholder cover" title="Data Engineering for Cybersecurity placeholder cover" /></a></div></div></div> <header> <h2><a href="/data-engineering-cybersecurity">Data Engineering for Cybersecurity</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">James Bonifield</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Learn beginner-friendly strategies and free tools for streamlining your organization's data processes to support and strengthen cybersecurity.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-14 views-row-even"> <article id="node-774" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/introduction-system-programming-linux"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/IntroSysProgLinux_placeholder.png?itok=dOMpudPC" width="170" height="225" alt="Introduction to System Programming in Linux placeholder cover" title="Introduction to System Programming in Linux placeholder cover" /></a></div></div></div> <header> <h2><a href="/introduction-system-programming-linux">Introduction to System Programming in Linux</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Stewart N. Weiss</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">This comprehensive, Linux-focused introduction to system programming teaches how to write code for Linux and Unix – among the world’s most widely used operating systems.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-15 views-row-odd"> <article id="node-744" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/designingelectronics"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/designingelectronics_cover.png?itok=mlfsif3l" width="170" height="225" alt="Designing Electronics That Work " title="Designing Electronics That Work " /></a></div></div></div> <header> <h2><a href="/designingelectronics">Designing Electronics That Work </a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Hunter Scott</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>A holistic, end-to-end guide to DIY electronics full of tips and strategies developed by a renowned expert and designed to answer every conceivable question.</p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-16 views-row-even"> <article id="node-813" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/linux-memory-manager"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/LinuxMemoryManager_placeholder.png?itok=fAgwYqW6" width="170" height="225" alt="The Linux Memory Manager placeholder cover" title="The Linux Memory Manager placeholder cover" /></a></div></div></div> <header> <h2><a href="/linux-memory-manager">The Linux Memory Manager</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Lorenzo Stoakes</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">This exhaustive guide to the Linux memory subsystem is the first major resource since 2004 to cover key concepts and essential techniques for developers.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-17 views-row-odd"> <article id="node-793" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/total-typescript"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/TotalTypescript_placeholder.png?itok=h4l-LtXf" width="170" height="225" alt="Total Typescript placeholder cover" title="Total Typescript placeholder cover" /></a></div></div></div> <header> <h2><a href="/total-typescript">Total TypeScript</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Matt Pocock with Taylor Bell</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>If you're an experienced JavaScript developer or want to level up your TypeScript skills, with <em>Total TypeScript</em> you'll learn everything you need to build a TypeScript product from scratch.</p></div></div></div> <footer> </footer> </article> </div> <div class="views-row views-row-18 views-row-even views-row-last"> <article id="node-761" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/social-media-observatory"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/Cover_Placeholder.png?itok=MECDIybl" width="170" height="225" alt="Cover coming soon" /></a></div></div></div> <header> <h2><a href="/social-media-observatory">Social Media Observatory</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Alexei Sisulu Abrahams</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Learn to build a web app that can monitor millions of posts across all social media platforms to chart public opinion in real time</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> </div> <div class="view-footer"> <div class="feed-icon"> <a href="/feeds/comingsoon.xml" class="feed-icon" title="Subscribe to No Starch Press - Coming Soon"><img class="img-responsive" src="/misc/feed.png" width="16" height="16" alt="Subscribe to No Starch Press - Coming Soon"></a> </div> </div> </div> </section> </div></div> </section> <section id="block-shariff-shariff-block" class="block block-shariff clearfix"> <div class="shariff" data-services="["facebook","print","twitter"]" data-theme="colored" data-orientation="horizontal" data-twitter-via="nostarch" data-lang="en"></div> </section> </div> </section> <aside class="col-sm-3" role="complementary"> <div class="region region-sidebar-second"> <section id="block-system-navigation" class="block block-system block-menu clearfix"> <h2 class="block-title">Navigation</h2> <ul class="menu nav"><li class="first last leaf"><a href="/user" title="">My account</a></li> </ul> </section> <section id="block-block-7" class="block block-block clearfix"> <h2 class="block-title">Follow Us</h2> <p><a href="/mailchimp/subscribe"><img src="/sites/default/files/email-16.png" alt="Newsletter" border="0" style="padding-bottom:8px;padding-right:8px;" align="left" />Subscribe to our mailing list</a></p> <p><a href="https://www.twitter.com/nostarch"><img src="/sites/default/files/twitter-16x16.png" alt="Twitter" border="0" style="padding-bottom:8px;padding-right:8px;" align="left" />Twitter</a></p> <p><a href="https://www.facebook.com/NoStarchPress/"><img src="/sites/default/files/facebook_small.png" alt="Facebook" border="0" style="padding-bottom:8px;padding-right:8px;" align="left" />Facebook</a></p> <p><a href="https://www.instagram.com/nostarchpress/"><img src="/sites/default/files/Instagram_16px.png" alt="Instagram" border="0" style="padding-bottom:8px;padding-right:8px;" align="left" />Instagram</a></p> <p><a href="https://www.linkedin.com/company/no-starch-press/"><img src="/images/LinkedIn_16px.png" alt="LinkedIn" border="0" style="padding-bottom:8px;padding-right:8px;" align="left" />LinkedIn</a></p> <p><a href="https://mastodon.social/@nostarch/"><img src="/images/Mastadone.png" alt="Mastodon" border="0" style="padding-bottom:8px;padding-right:8px;" align="left" />Mastodon</a></p> <p><a href="https://www.pinterest.com/nostarchpress/"><img src="/sites/default/files/PinterestNEW_16px.png" alt="Pinterest" border="0" style="padding-bottom:8px;padding-right:8px;" align="left" />Pinterest</a></p> </section> <section id="block-block-52" class="block block-block clearfix"> <p><a href="/mailchimp/subscribe">Want sweet deals? <br />Sign up for our newsletter.</a></p> </section> </div> </aside> <!-- /#sidebar-second --> </div> </div> <footer class="footer container"> <div class="region region-footer"> <section id="block-block-16" class="block block-block clearfix"> <div id="footer-links"> <br> <a class="footer-links" href="/about.htm">About Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/Jobs.htm">Jobs!</a> <span class="footer-divider">|</span> <a class="footer-links" href="/distribution.htm">Sales and Distribution</a> <span class="footer-divider">|</span> <a class="footer-links" href="/rights">Rights</a> <span class="footer-divider">|</span> <a class="footer-links" href="/media.htm">Media</a> <span class="footer-divider">|</span> <a class="footer-links" href="/academic.htm">Academic Requests</a> <span class="footer-divider">|</span> <a class="footer-links" href="/conferences.htm">Conferences</a> <span class="footer-divider">|</span> <a class="footer-links" href="/orderfaq.htm">FAQ</a> <span class="footer-divider">|</span> <a class="footer-links" href="/contactus">Contact Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/writeforus">Write for Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/privacypolicy.htm">Privacy</a> </div> </section> <section id="block-nostarch-custom-custom-footer-copyright" class="block block-nostarch-custom clearfix"> <div class="block-block"> <p>Copyright 2025. No Starch Press, Inc</p> </div> </section> </div> </footer> <script src="https://nostarch.com/sites/all/modules/contrib/addthis/addthis.js?stduay"></script> <script src="https://nostarch.com/sites/all/libraries/shariff/shariff.min.js?stduay"></script> <script src="https://nostarch.com/sites/all/themes/contrib/bootstrap/js/bootstrap.js?stduay"></script> <!-- Reddit Pixel --> <script> !function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document);rdt('init','t2_6acpsf9y');rdt('track', 'PageVisit'); </script> <!-- DO NOT MODIFY UNLESS TO REPLACE A USER IDENTIFIER --> <!-- End Reddit Pixel --> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'92304ad04e3540d7',t:'MTc0MjQyMjE0Ni4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>