CINXE.COM

Content Marketing Solutions - O'Reilly Media

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Content Marketing Solutions - O'Reilly Media</title> <meta name="description" content="Drive new leads, expand your customer base, and surpass your marketing goals." /> <meta name="date" content="2025-02-23" /> <meta name="search_date" content="2020-04-20" /> <meta name="search-title" content="Content Marketing Solutions - O'Reilly Media" /> <meta name="pagename" content="Content Marketing Solutions - O'Reilly Media" /> <meta name="site" content="O'Reilly" /> <meta name="twitter:title" content="Content Marketing Solutions - O'Reilly Media" /> <meta name="twitter:description" content="Drive new leads, expand your customer base, and surpass your marketing goals." /> <meta name="twitter:site" content="@OReillyMedia" /> <meta property="og:type" content="website" /> <meta property="og:title" content="Content Marketing Solutions - O'Reilly Media" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:image" content="https://cdn.oreillystatic.com/oreilly/images/social_ol_teams_1200x630.jpg" /> <meta property="og:image" content="https://cdn.oreillystatic.com/oreilly/images/social_ol_teams_1200x630.jpg" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="language_name" content="English"> <meta name="native_language_name" content="English"> <meta name="format-detection" content="telephone=no"> <link rel="icon" type="image/png" href="//www.oreilly.com/favicon.ico"> <!--[if lte IE 9]> <script> 'article aside footer header main nav section time'.replace(/\w+/g,function(n){document.createElement(n)}) </script> <![endif]--> <link rel="stylesheet" type="text/css" href="https://cdn.oreillystatic.com/assets/css/2018_font_face.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.oreillystatic.com/assets/css/odot-layout-20240226.css" /> <!--[if IE 9]> <style type="text/css"> #menu-toggle:checked ~ .mobile-nav { display:block; } .mobile-nav { display: none; } </style> <![endif]--> <!-- Initiate dataLayer for GA --> <script> loggedInObject = new Object(); var dataLayer = window.dataLayer || []; //Check for O'Reilly Unified logged-in status if (document.cookie.split(';').filter(function(item) { return item.indexOf('orm-jwt=') >= 0 }).length) { loggedInObject.unifiedLoggedIn = 'yes'; loggedInObject.loggedIn = 'yes'; dataLayer.push(loggedInObject); //Add 'loggedIn class to html tag const htmlTag = document.querySelector('html'); if (htmlTag !== null) { htmlTag.classList.add('loggedIn'); } } </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5P4V6Z');</script> <!-- End Google Tag Manager --> <!-- Start Google reCAPTCHA Code --> <script src="https://www.google.com/recaptcha/api.js"></script> <script> function timestamp() { var response = document.getElementById("g-recaptcha-response"); if (response == null || response.value.trim() == "") {var elems = JSON.parse(document.getElementsByName("captcha_settings")[0].value);elems["ts"] = JSON.stringify(new Date().getTime());document.getElementsByName("captcha_settings")[0].value = JSON.stringify(elems); } } setInterval(timestamp, 500); </script> <!-- End Google reCAPTCHA Code --> <!-- Start VWO Async SmartCode --> <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" /> <script type='text/javascript' id='vwoCode'> window._vwo_code || (function() { var account_id=27087, version=2.1, settings_tolerance=2000, hide_element='body', hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important', /* DO NOT EDIT BELOW THIS LINE */ f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){if(performance.getEntriesByName('first-contentful-paint')[0]){return''}return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){if(!f){f=true;var t=d.getElementById('_vis_opt_path_hides');if(t)t.parentNode.removeChild(t);if(e)(new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e}},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript';if(e.src){t.src=e.src}else{t.text=e.text}d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){var i=this.getSettings(),n=d.createElement('script'),r=this;t=t||{};if(i){n.textContent=i;d.getElementsByTagName('head')[0].appendChild(n);if(!w.VWO||VWO.caE){stT.removeItem(cK);r.load(e)}}else{var o=new XMLHttpRequest;o.open('GET',e,true);o.withCredentials=!t.dSC;o.responseType=t.responseType||'text';o.onload=function(){if(t.onloadCb){return t.onloadCb(o,e)}if(o.status===200){_vwo_code.addScript({text:o.responseText})}else{_vwo_code.finish('&e=loading_failure:'+e)}};o.onerror=function(){if(t.onerrorCb){return t.onerrorCb(e)}_vwo_code.finish('&e=loading_failure:'+e)};o.send()}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t;if(this.hide_element()!=='body'){t=d.createElement('style');var i=this.hide_element(),n=i?i+this.hide_element_style():'',r=d.getElementsByTagName('head')[0];t.setAttribute('id','_vis_opt_path_hides');v&&t.setAttribute('nonce',v.nonce);t.setAttribute('type','text/css');if(t.styleSheet)t.styleSheet.cssText=n;else t.appendChild(d.createTextNode(n));r.appendChild(t)}else{t=d.getElementsByTagName('head')[0];var n=d.createElement('div');n.style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;';n.setAttribute('id','_vis_opt_path_hides');n.classList.add('_vis_hide_layer');t.parentNode.insertBefore(n,t.nextSibling)}var o='https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&vn='+version;if(w.location.search.indexOf('_vwo_xhr')!==-1){this.addScript({src:o})}else{this.load(o+'&x=true')}}};w._vwo_code=code;code.init();})(); </script> <!-- End VWO Async SmartCode --> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5P4V6Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="skipToMain" id="skipToMain"><a href="#maincontent"><span class="skipToMain-text">Skip to main content</span></a></div> <header role="banner"> <div class="content"> <nav role="navigation" aria-label="site sections"> <a href="https://www.oreilly.com" class="logo" title="home page"><img src="https://cdn.oreillystatic.com/images/sitewide-headers/oreilly_logo_mark_red.svg" onerror="this.src='https://cdn.oreillystatic.com/images/sitewide-headers/oreilly_logo_mark_red_@2x.png'; this.onerror=null;" alt="O'Reilly home"></a> <button id="mobileNavButton" class="mobileNavButton mobileNavButton--collapse mobileNavButton--3dx" type="button" aria-expanded="false" aria-controls="menuList"> <span class="mobileNavButton-box"> <span class="mobileNavButton-inner"></span> </span> </button> <ul id="menuList" class="menuList mobileHidden "> <li class="menuList-itemsP1"> <ul> <li class="menuList-item menuList-signIn"><a id="nav-signIn" href="https://www.oreilly.com/member/login/">Sign In</a></li> <li class="menuList-item menuList-tryNow"><a id="nav-tryNow" class="menuList-cta" href="https://www.oreilly.com/online-learning/try-now.html">Try Now</a></li> <li class="menuList-item menuList-platform"><a id="nav-platform" class="menuList-cta" href="https://www.oreilly.com/member/login/">O&rsquo;Reilly Platform</a></li> </ul> </li> <li class="menuList-itemsP2"> <ul> <li class="menuList-item menuList-itemWithSub"><a href="https://www.oreilly.com/online-learning/teams.html">Teams</a> <ul class="menuList-subList"> <li class="menuList-subItem menuList-extra"><a href="https://www.oreilly.com/online-learning/teams.html">For business</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/government.html">For government</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/academic.html">For higher ed</a></li> </ul> </li> <li class="menuList-item"><a href="https://www.oreilly.com/online-learning/individuals.html">Individuals</a></li> <li class="menuList-item menuList-itemWithSub"><a href="https://www.oreilly.com/online-learning/features.html">Features</a> <ul class="menuList-subList"> <li class="menuList-subItem menuList-extra"><a href="https://www.oreilly.com/online-learning/features.html">All features</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/courses.html">Courses</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/feature-certification.html">Certifications</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/intro-interactive-learning.html">Interactive learning</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/live-events.html">Live events</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/feature-answers.html">Answers</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/insights-dashboard.html">Insights reporting</a></li> </ul> </li> <li class="menuList-item"><a href="https://www.oreilly.com/online-learning/pricing.html">Plans</a></li> <li class="menuList-item"><a href="https://www.oreilly.com/radar/">Blog</a></li> <li class="menuList-item" id="nav-forMarketers"><a href="https://www.oreilly.com/content-marketing-solutions.html" aria-current="page">Content sponsorship</a></li> <li class="menuList-item menuList-item-search" id="nav-search"> <form id="js-searchForm" class="searchForm" action="https://www.oreilly.com/search/"><input id="search" type="search" name="query" placeholder="Explore our content" autocomplete="off" required=""><button id="js-searchCloseButton" class="navSearchCloseButton">Close</button></form> <button id="js-searchButton" class="navSearchButton">Search</button> </li> </ul> </li> </ul> </nav> </div> </header> <main role="main" id="maincontent"> <style> .hero.hero-onlineLearning-teams { height: auto; } .hero.hero-onlineLearning-teams:before { background: transparent linear-gradient(135deg, #d30000 0%, #f18901 100%); } .hero.hero-onlineLearning-teams:after { display: none; } .hero.hero-onlineLearning-teams > .content h1 { max-width: 100%; margin-bottom: 20px; } .contentAfter { margin-bottom: 0 !important; } .shortDescription-col h3 { margin: 0 0 8px; max-width: 880px; font-family: 'gilroy', Arial, sans-serif; font-weight: 300; font-size: 1.75rem; line-height: 1.3em; } @media (min-width: 30em) { .hero.hero-onlineLearning-teams > .content h1 { max-width: 100%; margin-bottom: 20px; } .hero.hero-onlineLearning-teams > .content p { max-width: 100%; } } @media (min-width: 37.5em) { .hero.hero-onlineLearning-teams { padding-bottom: 0; } } @media (min-width: 40em) { .hero.hero-onlineLearning-teams { height: auto; } .hero.hero-onlineLearning-teams > .content h1 { max-width: 100%; margin-top: 34px !important; margin-bottom: 20px; } .hero.hero-onlineLearning-teams > .content p { margin-bottom: 20px; } } @media (min-width: 50em) { .hero.hero-onlineLearning-teams:before { background: transparent linear-gradient(135deg, #d30000 0%, #f18901 100%); } .hero.hero-onlineLearning-teams > .content h1 { max-width: 100%; margin-top: 54px !important; margin-bottom: 54px; font-size: 52px !important; font-size: 3.25rem !important; line-height: 1.2em !important; } } @media (min-width: 58em) { /* 928px */ .hero.hero-onlineLearning-teams:before { background-image: url('https://cdn.oreillystatic.com/oreilly/images/odot_teams_1368x605.jpg'); background-repeat: no-repeat; background-position: right top; background-size: cover; } .hero.hero-onlineLearning-teams > .content h1 { max-width: 50%; } .hero.hero-onlineLearning-teams > .content p { max-width: 50%; } } @media (min-width: 65em) { .hero.hero-onlineLearning-teams { height: auto; } .hero.hero-onlineLearning-teams > .content h1 { margin-top: 54px !important; margin-bottom: 54px; font-size: 52px !important; font-size: 3.25rem !important; line-height: 1.2em !important; } .hero.hero-onlineLearning-teams > .content p { max-width: 40%; margin-bottom: 20px; font-size: 28px !important; font-size: 1.75rem !important; line-height: 1.3em; } } @media (min-width: 71em) { .hero.hero-onlineLearning-teams > .content p { font-size: 32px !important; font-size: 2rem !important; line-height: 1.3em; } .shortDescription-col h3 { font-family: 'gilroy', Arial, sans-serif; font-weight: 300; font-size: 2.5rem; line-height: 1.2em; } } @media (min-width: 85em) { .hero.hero-onlineLearning-teams { height: auto; } .hero.hero-onlineLearning-teams > .content h1 { font-size: 52px !important; font-size: 3.25rem !important; line-height: 1.2em !important; max-width: 50%; } .hero.hero-onlineLearning-teams > .content p { font-size: 40px !important; font-size: 2.5rem !important; line-height: 1.2em; max-width: 50%; } } @media (min-width: 71em) { .shortDescription-col:nth-of-type(odd) { width: calc(60% - 10px); padding:right 75px;} .shortDescription-col { width: calc(40% - 10px); } .shortDescription-col.formCol { width: calc(40% - 10px); } } @media (max-width: 71em) { .shortDescription-col.formCol { width: calc(100% - 10px); } .shortDescription-col:nth-of-type(odd) { width: calc(100% - 10px); } } .videoContainer iframe { width: 100%; height: 100%; } .videoContainer { margin-top:40px; } table { font-size: 1.3rem; line-height: 1.6rem; vertical-align: top; 34px 0 16px; } .topFive { margin-bottom: 25px; } .job-functionsTable { margin: 60px 0 30px 0; font-size: 16px; font-size: 1rem; margin-right: 10px; width: calc(50% - 40px); } .industriesTable { margin: 60px 0 30px 0; font-size: 16px; font-size: 1rem; margin-left: 25px; width: calc(50% - 40px); } .job-functionsTable td, .job-functionsTable th, .industriesTable td, .industriesTable th { } td, th { text-align: left; vertical-align: top; font-size: font-size: 16px; font-size: 1rem; padding: 20px;} td a { font-weight: bold; } th { background-color: #222; color: #fff; font-weight: normal; } th.dayHeading { background-color: #444; font-weight: 500; padding: 18px; font-size: 23px; font-size: 1.4375rem;} .job-functionsTable th.dayHeading, .industriesTable th.dayHeading { height: 32px; } th:not(:last-child), td:not(:last-child) { border-right: 1px solid #aaa; } td { background-color: #fff; border-bottom: 1px solid #aaa; } .tableCol { width: 100%; display: flex; flex-direction: row; justify-content: space-between; } @media (max-width: 56.250em) { /* 900px */ .tableCol { flex-direction: column; } .industriesTable {margin: 10px 0 10px; width: 100%; } .job-functionsTable {margin: 30px 0 10px; width: 100%;} } p.headingSmall {font-size: 1.75rem; font-size: 28px; line-height: 1.3; } .sectionQuote { padding-top: 40px; } .formCol { margin: 0 0 0 0;} /* contentMarketingForm */ .contentMarketingForm, .contentMarketingForm-thankyou { font-family: 'guardian-text-oreilly', Arial, sans-serif; } .contentMarketingForm fieldset { margin: 0; padding: 0; border: 0; font-size: 100%; vertical-align: baseline; -webkit-font-smoothing: antialiased; } .contentMarketingForm input, .contentMarketingForm label { display: block; font-family: inherit; } .contentMarketingForm label, p { font-size: 16px; font-size: 1rem; line-height: 1.5em; } select#contentMarketingForm_country, select#superstreamLeadForm_country, select#poweringContentForm_country { font-size: 16px; font-size: 1rem; line-height: 1.5em; margin-bottom: 20px; } .contentMarketingForm.salesforce-form p.required { font-size: 22px; font-size: 1.375rem; line-height: 1.5em; margin-bottom: 20px; margin-top: 0; } .contentMarketingForm input[type="text"], .contentMarketingForm input[type="email"], .contentMarketingForm textarea { width: 100%; border: 1px solid #8b889a; padding: 10px; font-size: 16px; font-size: 1rem; padding: 0.625em 0.65em; margin: 2px 0 10px; -webkit-appearance: none; } .contentMarketingForm .option-select input[type="radio"], .contentMarketingForm .option-select label { display: inline-block; margin-right: 8px; } .contentMarketingForm select { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -webkit-appearance: none; -moz-appearance: none; appearance: none; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/inbound-aisf-select-arrow.png) right center no-repeat; color: #3D3B49; padding: 0.625em 0.65em; border: .5px solid #8b889a; border-radius: 0; min-height: 40px; font-size: 16px; font-size: 1.6rem; line-height: 20px; } .contentMarketingForm select, .contentMarketingForm .option-select { width: 100%; margin: 2px 0 10px; } .contentMarketingForm textarea { height: auto; } .contentMarketingForm-cta { display: inline-block; margin: 10px 0 20px; padding: 10px 20px; border-radius: 2px; background-color: #d30000; font-size: 18px; font-size: 1.125rem; color: #fff; font-family: 'guardian-text-oreilly', Arial, sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.02em; text-decoration: none; white-space: nowrap; cursor: pointer; border: 0; } .contentMarketingForm-cta:hover, .contentMarketingForm-cta:active { opacity: 0.9; text-decoration: none; box-shadow: 0 1px 4px rgba(0,0,0,.3); color: #fff; } p.contentMarketingForm-fillout { font-weight: bold; margin-bottom: 8px; } .contentMarketingForm-neg { display: none; } .contentMarketingForm-thankyou h2 { font-family: 'gilroy', Arial, sans-serif; font-size: 32px; font-size: 3.2rem; line-height: 1.2em; font-weight: 600; } .contentMarketingForm-thankyou p { font-size: 16px; font-size: 1rem; line-height: 1.5em; } @media (min-width: 40em) { .contentMarketingForm-thankyou p { font-size: 22px; font-size: 1.375rem; line-height: 1.5em; } } @media (min-width: 28em ) and /* 448px */ (max-width: 71em ), /* px */ (min-width: 71em) { /* 1120px */ .contentMarketingForm-split { float: left; width: 100%; width: calc(50% - 10px); } .contentMarketingForm-mr { margin-right: 20px; } .contentMarketingForm-full { clear: both; } } @media (min-width: 37.5em) { /* 600px */ .contentMarketingForm-text, .contentMarketingForm, .contentMarketingForm-thankyou { float: left; box-sizing: border-box; width: 100%; } .contentMarketingForm-text { margin-right: 0; } } @media (min-width: 56.25em) { /* 900px */ .contentMarketingForm-text { width: 100%; } .contentMarketingForm, .contentMarketingForm-thankyou { width: 100%; } } /* contentMarketingForm error message styles */ .contentMarketingForm input[type="text"].error, .contentMarketingForm input[type="email"].error, .contentMarketingForm select.error, .contentMarketingForm .option-select.error { border-width: 2px; border-color: #d30000; } .contentMarketingForm select.error, .contentMarketingForm .option-select.error { background-color: #fae0de; } .contentMarketingForm label.error, .contentMarketingForm-errorMessage p, .contentMarketingForm .option-select.error legend { padding-left: 28px; color: #d30000; position: relative; } .contentMarketingForm select.error { color: #d30000; } .contentMarketingForm noscript { font-weight: 600; color: #d30000; position: relative; } .contentMarketingForm noscript p { padding-left: 28px; } .contentMarketingForm label.error:before, .contentMarketingForm-errorMessage p:before, .contentMarketingForm noscript p:before, .contentMarketingForm .option-select.error legend:before { content: url('https://cdn.oreillystatic.com/images/icons/baseline-error_outline-24px.svg'); position: absolute; left: 0; } .contentMarketingForm button { cursor: pointer; border: 0; } .contentMarketingForm button[disabled], .contentMarketingForm input[disabled], .contentMarketingForm textarea[disabled], .contentMarketingForm select[disabled] { opacity: 0.5; } /* end contentMarketingForm */ /* featuresSection */ .featuresSection { overflow: hidden; } .featuresSection-columns-text { width: 100%; margin-bottom:20px; } .featuresSection h2.hasSubContent { margin-bottom: 0; } .featuresSection-columns-figure { width: 100%; margin-bottom:26px; } .featuresSection-columns-flatAnimation { width: 100%; margin-bottom:26px; } .featuresSection-columns-flatAnimation .flatCover-group { position: relative; width: 100%; height: 0; padding-bottom: 79.71%; } .featuresSection-columns-flatAnimation .flatCover-group .transition-point { position: absolute; height: 0; width: 100%; top: 30%; } .featuresSection-columns-flatAnimation .flatCover-group img { display: block; position: absolute; height: 100%; } .featuresSection-columns-flatAnimation .flatSuperstream-group { position: relative; width: 100%; height: 0; padding-bottom: 77.54%; } .featuresSection-columns-flatAnimation .flatSuperstream-group .transition-point { position: absolute; height: 0; width: 100%; top: 30%; } .featuresSection-columns-flatAnimation .flatSuperstream-group img { display: block; position: absolute; height: 100%; } .featuresSection-columns-flatAnimation .flatVendors-group { position: relative; width: 100%; height: 0; padding-bottom: 77.54%; } .featuresSection-columns-flatAnimation .flatVendors-group .transition-point { position: absolute; height: 0; width: 100%; top: 30%; } .featuresSection-columns-flatAnimation .flatVendors-group img { display: block; position: absolute; height: 100%; } @media (prefers-reduced-motion: no-preference) { .featuresSection-columns-flatAnimation .flatCover-group img { transition: opacity .3s, top .3s; transition-timing-function: ease-out; } .featuresSection-columns-flatAnimation .flatSuperstream-group img { transition: opacity .3s, top .3s; transition-timing-function: ease-out; } .featuresSection-columns-flatAnimation .flatVendors-group img { transition: opacity .3s, top .3s; transition-timing-function: ease-out; } } .featuresSection-columns-flatAnimation .flatCover-group img.delay-1 { opacity: 0; z-index: 1; top: 100px; } .featuresSection-columns-flatAnimation .flatCover-group.transition img.delay-1 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatCover-group img.delay-2 { opacity: 0; z-index: 2; top: 100px; transition-delay: .1s; } .featuresSection-columns-flatAnimation .flatCover-group.transition img.delay-2 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatCover-group img.delay-3 { opacity: 0; z-index: 3; top: 100px; transition-delay: .2s; } .featuresSection-columns-flatAnimation .flatCover-group.transition img.delay-3 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatSuperstream-group img.delay-1 { opacity: 0; z-index: 1; top: 100px; } .featuresSection-columns-flatAnimation .flatSuperstream-group.transition img.delay-1 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatSuperstream-group img.delay-2 { opacity: 0; z-index: 2; top: 100px; transition-delay: .1s; } .featuresSection-columns-flatAnimation .flatSuperstream-group.transition img.delay-2 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatSuperstream-group img.delay-3 { opacity: 0; z-index: 1; top: 100px; transition-delay: .2s; } .featuresSection-columns-flatAnimation .flatSuperstream-group.transition img.delay-3 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatSuperstream-group img.delay-4 { opacity: 0; z-index: 1; top: 100px; transition-delay: .3s; } .featuresSection-columns-flatAnimation .flatSuperstream-group.transition img.delay-4 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatSuperstream-group img.delay-5 { opacity: 0; z-index: 1; top: 100px; transition-delay: .4s; } .featuresSection-columns-flatAnimation .flatSuperstream-group.transition img.delay-5 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatSuperstream-group img.delay-6 { opacity: 0; z-index: 1; top: 100px; transition-delay: .5s; } .featuresSection-columns-flatAnimation .flatSuperstream-group.transition img.delay-6 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatSuperstream-group img.delay-7 { opacity: 0; z-index: 1; top: 100px; transition-delay: .6s; } .featuresSection-columns-flatAnimation .flatSuperstream-group.transition img.delay-7 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatVendors-group img.delay-1 { opacity: 0; z-index: 1; top: 50px; } .featuresSection-columns-flatAnimation .flatVendors-group.transition img.delay-1 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatVendors-group img.delay-2 { opacity: 0; z-index: 2; top: 75px; } .featuresSection-columns-flatAnimation .flatVendors-group.transition img.delay-2 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatVendors-group img.delay-3 { opacity: 0; z-index: 1; top: 100px; } .featuresSection-columns-flatAnimation .flatVendors-group.transition img.delay-3 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatVendors-group img.delay-4 { opacity: 0; z-index: 1; top: 50px; transition-delay: .1s; } .featuresSection-columns-flatAnimation .flatVendors-group.transition img.delay-4 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatVendors-group img.delay-5 { opacity: 0; z-index: 1; top: 75px; transition-delay: .1s; } .featuresSection-columns-flatAnimation .flatVendors-group.transition img.delay-5 { opacity: 1; top: 0; } .featuresSection-columns-flatAnimation .flatVendors-group img.delay-6 { opacity: 0; z-index: 1; top: 100px; transition-delay: .1s; } .featuresSection-columns-flatAnimation .flatVendors-group.transition img.delay-6 { opacity: 1; top: 0; } .featuresSection-columns-testimonial .testimonialContainer { display: block; margin-bottom: 20px; padding: 14px 20px; color: #222; background: #fff; text-decoration: none; border-radius: 8px; box-shadow: 0 0 20px rgb(0,0,0,.1); transition: box-shadow .2s; } .testimonialContainer:hover, .testimonialContainer:active { text-decoration: none; color: #222; box-shadow: 0 0 20px rgb(0,0,0,.15); opacity: 1 !important; } .featuresSection-columns-testimonial .testimonialContainer h3 { margin: 0 0 4px; } .featuresSection-columns-testimonial .testimonialContainer p.testimonials-byline { display: block; font-size: 16px; font-size: 1rem; line-height: 1.5em; font-weight: 700; } .featuresSection-columns-testimonial .testimonialContainer > img { display: block; margin-top: 20px; width: 100%; max-width: 120px; margin-bottom: 6px; } @media (min-width: 40em) { .featuresSection-columns-testimonial .testimonialContainer { padding: 34px 40px; } } @media (min-width: 71em) { .featuresSection-columns-testimonial .testimonialContainer h3 { font-family: 'gilroy', Arial, sans-serif; font-weight: 300; font-size: 32px; font-size: 2rem; line-height: 1.2em; } } .featuresSection-columns-products, .featuresSection-columns-logos { width: 100%; margin-bottom:26px; padding-top: 40px; } .featuresSection-columns-figure img { display: block; width: 100%; max-width: 800px; box-shadow: none; } .featuresSection-columns-products img { display: block; width: 100%; max-width: 800px; box-shadow: none; } .featuresSection-columns-logos ul, .featuresSection-columns-products ul { clear: both; max-width: 100%; display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 60px; row-gap: 30px; } .featuresSection-columns-logos ul li, .featuresSection-columns-products ul li { display: flex; align-items: center; justify-content: center; } .featuresSection-columns-logos ul li, .featuresSection-columns-logos ul li a, .featuresSection-columns-products ul li, .featuresSection-columns-products ul li a { margin-bottom: 0; } .featuresSection-columns-logos li img, .featuresSection-columns-products li img { display: block; width: 200px; max-width: 100%; } .featuresSection-columns-logos li img.squareLogo { width: 100px; } .featuresSection-columns h4 { margin-bottom: 8px; font-weight: bold; } @media (min-width: 30em) { .featuresSection-columns-logos ul { grid-template-columns: repeat(3, 1fr); } .featuresSection-columns-products ul { grid-template-columns: repeat(3, 1fr); } } @media (min-width: 40em) { .featuresSection > .content > h2 { margin-bottom: 40px; } .featuresSection-columns { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .features .featuresSection:nth-of-type(odd) .featuresSection-columns { flex-direction: row-reverse; } .featuresSection-columns-text, .featuresSection-columns-figure, .featuresSection-columns-products, .featuresSection-columns-logos, .featuresSection-columns-flatAnimation, .featuresSection-columns-testimonial { flex-flow: column nowrap; width: 45%; width: calc(50% - 20px); margin-bottom: 0; } .featuresSection-columns-logos ul, .featuresSection-columns-products ul { grid-template-columns: repeat(3, 1fr); } .featuresSection-columns-products { padding: 40px; border: 1px solid #ddd; border-radius: 20px; } .featuresSection-columns-logos { padding-top: 0; } .featuresSection-columns-products ul { background-color: #fff; margin-top: -50px; padding-top: 50px; margin-bottom: -50px; padding-bottom: 50px; } .centeredTextCTA { margin: 0 auto; width: max-content; } } @media (min-width: 53em) { .featuresSection-columns-logos ul { grid-template-columns: repeat(3, 1fr); column-gap: 60px; row-gap: 60px; } .featuresSection-columns-products ul { grid-template-columns: repeat(3, 1fr); column-gap: 40px; } .featuresSection-columns h4 { font-size: 22px; font-size: 1.375rem; } } @media (min-width: 60em) { .featuresSection-columns-text, .featuresSection-columns-figure, .featuresSection-columns-products, .featuresSection-columns-logos, .featuresSection-columns-flatAnimation, .featuresSection-columns-testimonial { width: 45%; width: calc(50% - 40px); } } /* End featuresSection */ /* subscriptionOptions */ .subscriptionOptions { padding: 0; } .subscriptionOptions .content:after { content: ""; display: table; clear: both; } .subscriptionOptions ul { padding-left: 0; } .subscriptionOptions li { position: relative; margin-bottom: 16px; padding-left: 24px; font-family: 'guardian-text-oreilly', Arial, sans-serif; font-weight: 400; color: #222; } .subscriptionOptions li:before { position: absolute; left: 0; top: 0; content: url('https://cdn.oreillystatic.com/images/icons/icon_check.svg'); } @media (min-width: 37.5em) { /* 600px breakpoint */ .subscriptionOptions { padding: 0 0 0; } .subscriptionOptions ul, ul.subscriptionOptions { margin-bottom: 0; } .subscriptionOptions ul li { padding-left: 45px; } .subscriptionOptions ul li::before { left: 20px; } } @media (min-width: 56.25em) { /* 900px breakpoint */ .subscriptionOptions div:last-of-type { margin-right: 0; } .subscriptionOptions { display: block; margin-bottom: 0; } } /* end subscriptionOptions */ /* contentOptions */ .contentOptions { margin-top: 40px; } .contentOptions-item { display: flex; align-items: top; justify-content: space-between; margin-bottom: 20px; } .contentOptions-item figure { width: 140px; } .contentOptions-item figure img { display: block; width: 100%; margin-top: 6px; box-shadow: 0 5px 10px rgba(0,0,0,.1); } .contentOptions-item-text { width: calc(100% - 160px); } .contentOptions-item h3 { font-weight: bold; font-size: 16px; font-size: 1rem; line-height: 1.5em; margin-bottom: 8px; } .contentOptions-item p { font-size: 16px; font-size: 1rem; line-height: 1.5em; } @media (min-width: 53em) { .contentOptions-item h3 { font-size: 22px; font-size: 1.375rem; line-height: 1.5em; } .contentOptions-item p { font-size: 16px; font-size: 1rem; line-height: 1.5em; } } @media (min-width: 72em) { .contentOptions { display: flex; align-items: top; justify-content: space-between; } .contentOptions-item { width: 33%; width: calc(33% - 40px); margin-bottom: 0; } } /* End contentOptions */ /* launch */ .launch { background-position: center 0 !important; background-size: 175% 175% !important; } .launchColumns { margin-top: 40px; margin-bottom: -40px; } .launchColumns-group h3 { font-family: 'gilroy', Arial, sans-serif; font-size: 32px; font-size: 2rem; line-height: 1.2em; margin-bottom: 4px; font-weight: 300; } .launchColumns-group p { margin-bottom: 0; } .launchColumns-group-item { position: relative; margin-bottom: 60px; padding-left: 36px; } .launchColumns-group-item:before { display: block; position: absolute; left: 0; top: 6px; content: ""; height: 60px; width: 12px; background-color: #fff; } @media (min-width: 53em) { .launchColumns { display: flex; align-items: top; justify-content: space-between; flex-wrap: wrap; } .launchColumns-group { width: calc(50% - 40px); } .launchColumns-group h3 { font-size: 40px; font-size: 2.5rem; line-height: 1.1em; } } /* End launch */ /* .formOverlay */ .formOverlay { position: fixed; z-index: 999; left: 0; top: 0; height: 100%; width: 100%; background-color: #fff; background-color: rgba(255,255,255,.9); } .formOverlay-inner { position: fixed; left: 20px; margin-left: 0; height: auto; width: calc(100% - 40px); height: auto; max-width: 100%; padding: 20px 20px 0; border-radius: 0; background-color: #fff; box-shadow: 0 0 20px rgba(0,0,0,.1); } .formOverlay-close { position: absolute; top: 10px; right: 10px; height: 12px; width: 12px; background: url(https://cdn.oreillystatic.com/oreilly/images/icon_close_16x16.svg) 0 0 no-repeat; background-size: cover; opacity: .5; } .formOverlay-close:hover { cursor: pointer; opacity: 1; } .formOverlay-inner h2 { margin-bottom: 18px; max-width: 880px; font-family: 'gilroy', Arial, sans-serif; font-size: 32px; font-size: 2rem; line-height: 1.3em; font-weight: 300; } .formOverlay-inner p { margin-bottom: 0; max-width: 880px; font-size: 16px; font-size: 1rem; line-height: 1.5em; } @media (min-width: 40em) { .formOverlay-inner { top: calc(50% - 340px); left: 50%; margin-left: -300px; width: 600px; padding: 40px 40px 20px; border-radius: 10px; } .formOverlay-inner p { margin-bottom: 0; font-size: 22px; font-size: 1.375rem; line-height: 1.5em; } } @media (min-width: 71em) { .formOverlay-inner h2 { font-size: 40px; font-size: 2.5rem; line-height: 1.2em; } } /* end .formOverlay */ </style> <section class="hero hero-onlineLearning-teams"> <div class="content"> <h1>Drive new leads, expand your base, and surpass <span class="nowrap">marketing goals</span></h1> </div> </section> <section class="shortDescription"> <div class="content"> <div class="shortDescription-col"> <h2>O&rsquo;Reilly content sponsorship</h2> <p>For over 10 years, O&rsquo;Reilly has delivered lead gen and thought leadership for hundreds of tech&rsquo;s most prominent companies. We&rsquo;re in a unique position to match your current marketing initiatives with the right technical content to get your brand and products in front of key decision makers&mdash;and get <span class="nowrap">results fast.</span></p> </div> <!-- click-to-show contentMarketingForm --> <div id="contentMarketingFormSection" class="shortDescription-col formCol"> <div id="contentMarketingForm-intro"> <h3>Learn how O&rsquo;Reilly content sponsorship can work <span class="nowrap">for you</span></h3> <button id="letsTalk" class="contentMarketingForm-cta">Start here</button> </div> <form role="form" id="contentMarketingForm" class="contentMarketingForm salesforce-form" novalidate="true" method="POST" action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" style="display:none;"> <p class="required" aria-hidden="true">* Required fields</p> <div id="contentMarketingForm-errorMessage" class="contentMarketingForm-errorMessage"></div> <noscript> <p>Do you have JavaScript turned off? Sorry, but this form won&rsquo;t work without it.</p> </noscript> <div class="contentMarketingForm-split contentMarketingForm-mr"> <label for="contentMarketingForm_first_name">First name <strong aria-hidden="true" >*</strong></label> <input type="text" name="first_name" id="contentMarketingForm_first_name" data-text="first name" autocomplete="given-name" aria-required="true" disabled > </div> <div class="contentMarketingForm-split"> <label for="contentMarketingForm_last_name">Last name <strong aria-hidden="true" >*</strong></label> <input type="text" name="last_name" id="contentMarketingForm_last_name" data-text="last name" autocomplete="family-name" aria-required="true" disabled > </div> <div class="contentMarketingForm-full"> <label for="contentMarketingForm_company">Company <strong aria-hidden="true" >*</strong></label> <input type="text" name="company" id="contentMarketingForm_company" data-text="company" autocomplete="organization" aria-required="true" disabled> </div> <div class="contentMarketingForm-full"> <label for="contentMarketingForm_email">Email <strong aria-hidden="true" >*</strong></label> <input type="email" name="email" id="contentMarketingForm_email" data-text="email address" autocomplete="email" aria-required="true" disabled > </div> <div class="contentMarketingForm-full"> <label for="contentMarketingForm_country">Country <strong class="red" aria-hidden="true">*</strong></label> <select name="country" id="contentMarketingForm_country" data-text="country" autocomplete="country-name" aria-required="true" disabled > <option disabled selected value>- Select country -</option> <option value="Afghanistan">Afghanistan</option> <option value="Albania">Albania</option> <option value="Algeria">Algeria</option> <option value="Andorra">Andorra</option> <option value="Angola">Angola</option> <option value="Antigua and Barbuda">Antigua and Barbuda</option> <option value="Argentina">Argentina</option> <option value="Armenia">Armenia</option> <option value="Aruba">Aruba</option> <option value="Australia">Australia</option> <option value="Austria">Austria</option> <option value="Azerbaijan">Azerbaijan</option> <option value="Bahamas">The Bahamas</option> <option value="Bahrain">Bahrain</option> <option value="Bangladesh">Bangladesh</option> <option value="Barbados">Barbados</option> <option value="Belarus">Belarus</option> <option value="Belgium">Belgium</option> <option value="Belize">Belize</option> <option value="Benin">Benin</option> <option value="Bermuda">Bermuda</option> <option value="Bhutan">Bhutan</option> <option value="Bolivia, Plurinational State of">Bolivia</option> <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option> <option value="Botswana">Botswana</option> <option value="Brazil">Brazil</option> <option value="Brunei Darussalam">Brunei</option> <option value="Bulgaria">Bulgaria</option> <option value="Burkina Faso">Burkina Faso</option> <option value="Burundi">Burundi</option> <option value="Cambodia">Cambodia</option> <option value="Cameroon">Cameroon</option> <option value="Canada">Canada</option> <option value="Cape Verde">Cape Verde</option> <option value="Central African Republic">Central African Republic</option> <option value="Chad">Chad</option> <option value="Chile">Chile</option> <option value="China">People's Republic of China</option> <option value="Colombia">Colombia</option> <option value="Comoros">Comoros</option> <option value="Congo, the Democratic Republic of the">Congo, Democratic Republic of the</option> <option value="Congo">Congo, Republic of the</option> <option value="Cook Islands">Cook Islands</option> <option value="Costa Rica">Costa Rica</option> <option value="Cote d'Ivoire">C&ocirc;te d'Ivoire (Ivory Coast)</option> <option value="Croatia">Croatia</option> <option value="Cuba">Cuba</option> <option value="Cyprus">Cyprus</option> <option value="Czech Republic">Czechia</option> <option value="Denmark">Denmark</option> <option value="Djibouti">Djibouti</option> <option value="Dominica">Dominica</option> <option value="Dominican Republic">Dominican Republic</option> <option value="Ecuador">Ecuador</option> <option value="Egypt">Egypt</option> <option value="El Salvador">El Salvador</option> <option value="Equatorial Guinea">Equatorial Guinea</option> <option value="Eritrea">Eritrea</option> <option value="Estonia">Estonia</option> <option value="Swaziland">Eswatini (formerly Swaziland)</option> <option value="Ethiopia">Ethiopia</option> <option value="Fiji">Fiji</option> <option value="Finland">Finland</option> <option value="France">France</option> <option value="Gabon">Gabon</option> <option value="Gambia">The Gambia</option> <option value="Georgia">Georgia</option> <option value="Germany">Germany</option> <option value="Ghana">Ghana</option> <option value="Greece">Greece</option> <option value="Grenada">Grenada</option> <option value="Guatemala">Guatemala</option> <option value="Guinea">Guinea</option> <option value="Guinea-Bissau">Guinea-Bissau</option> <option value="Guyana">Guyana</option> <option value="Haiti">Haiti</option> <option value="Honduras">Honduras</option> <option value="Hungary">Hungary</option> <option value="Iceland">Iceland</option> <option value="India">India</option> <option value="Indonesia">Indonesia</option> <option value="Iran, Islamic Republic of">Iran</option> <option value="Iraq">Iraq</option> <option value="Ireland">Ireland</option> <option value="Israel">Israel</option> <option value="Italy">Italy</option> <option value="Jamaica">Jamaica</option> <option value="Japan">Japan</option> <option value="Jordan">Jordan</option> <option value="Kazakhstan">Kazakhstan</option> <option value="Kenya">Kenya</option> <option value="Kiribati">Kiribati</option> <option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option> <option value="Korea, Republic of">Korea, Republic of</option> <option value="Kuwait">Kuwait</option> <option value="Kyrgyzstan">Kyrgyzstan</option> <option value="Lao People's Democratic Republic">Laos</option> <option value="Latvia">Latvia</option> <option value="Lebanon">Lebanon</option> <option value="Lesotho">Lesotho</option> <option value="Liberia">Liberia</option> <option value="Libyan Arab Jamahiriya">Libya</option> <option value="Liechtenstein">Liechtenstein</option> <option value="Lithuania">Lithuania</option> <option value="Luxembourg">Luxembourg</option> <option value="Macedonia, the former Yugoslav Republic of">Macedonia, Republic of</option> <option value="Madagascar">Madagascar</option> <option value="Malawi">Malawi</option> <option value="Malaysia">Malaysia</option> <option value="Maldives">Maldives</option> <option value="Mali">Mali</option> <option value="Malta">Malta</option> <option value="Mauritania">Mauritania</option> <option value="Mauritius">Mauritius</option> <option value="Mexico">Mexico</option> <option value="Federated States of Micronesia">Federated States of Micronesia</option> <option value="Moldova, Republic of">Moldova</option> <option value="Monaco">Monaco</option> <option value="Mongolia">Mongolia</option> <option value="Montenegro">Montenegro</option> <option value="Morocco">Morocco</option> <option value="Mozambique">Mozambique</option> <option value="Myanmar">Myanmar</option> <option value="Namibia">Namibia</option> <option value="Nauru">Nauru</option> <option value="Nepal">Nepal</option> <option value="Netherlands">Netherlands</option> <option value="New Zealand">New Zealand</option> <option value="Nicaragua">Nicaragua</option> <option value="Niger">Niger</option> <option value="Nigeria">Nigeria</option> <option value="Niue">Niue</option> <option value="Norway">Norway</option> <option value="Oman">Oman</option> <option value="Pakistan">Pakistan</option> <option value="Palestinian Territory, Occupied">Palestine, State of</option> <option value="Panama">Panama</option> <option value="Papua New Guinea">Papua New Guinea</option> <option value="Paraguay">Paraguay</option> <option value="Peru">Peru</option> <option value="Philippines">Philippines</option> <option value="Poland">Poland</option> <option value="Portugal">Portugal</option> <option value="Qatar">Qatar</option> <option value="Romania">Romania</option> <option value="Rwanda">Rwanda</option> <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option> <option value="Saint Lucia">Saint Lucia</option> <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option> <option value="Samoa">Samoa</option> <option value="San Marino">San Marino</option> <option value="Sao Tome and Principe">S&atilde;o Tom&eacute; and Pr&iacute;ncipe</option> <option value="Saudi Arabia">Saudi Arabia</option> <option value="Senegal">Senegal</option> <option value="Serbia">Serbia</option> <option value="Seychelles">Seychelles</option> <option value="Sierra Leone">Sierra Leone</option> <option value="Singapore">Singapore</option> <option value="Slovakia">Slovakia</option> <option value="Slovenia">Slovenia</option> <option value="Solomon Islands">Solomon Islands</option> <option value="Somalia">Somalia</option> <option value="South Africa">South Africa</option> <option value="South Sudan">South Sudan</option> <option value="Spain">Spain</option> <option value="Sri Lanka">Sri Lanka</option> <option value="Sudan">Sudan</option> <option value="Suriname">Suriname</option> <option value="Sweden">Sweden</option> <option value="Switzerland">Switzerland</option> <option value="Syrian Arab Republic">Syria</option> <option value="Taiwan">Taiwan</option> <option value="Tajikistan">Tajikistan</option> <option value="Tanzania, United Republic of">Tanzania</option> <option value="Thailand">Thailand</option> <option value="Timor-Leste">Timor-Leste (East Timor)</option> <option value="Togo">Togo</option> <option value="Tonga">Tonga</option> <option value="Trinidad and Tobago">Trinidad and Tobago</option> <option value="Tunisia">Tunisia</option> <option value="Turkey">Turkey</option> <option value="Turkmenistan">Turkmenistan</option> <option value="Tuvalu">Tuvalu</option> <option value="Uganda">Uganda</option> <option value="Ukraine">Ukraine</option> <option value="United Arab Emirates">United Arab Emirates</option> <option value="United Kingdom">United Kingdom</option> <option value="United States">United States</option> <option value="Uruguay">Uruguay</option> <option value="Uzbekistan">Uzbekistan</option> <option value="Vanuatu">Vanuatu</option> <option value="Holy See (Vatican City State)">Vatican City</option> <option value="Venezuela, Bolivarian Republic of">Venezuela</option> <option value="Viet Nam">Vietnam</option> <option value="Yemen">Yemen</option> <option value="Zambia">Zambia</option> <option value="Zimbabwe">Zimbabwe</option> </select> </div> <div class="contentMarketingForm-full option-select gdpr-consent hidden"></div> <!-- salesforce special section --> <div id="contentMarketingForm-special" class="screen-reader-text"> <label>Email confirm: <input type="email" class="" name="Filter_1__c"></label> <label>Website address: <input type="text" class="" name="Filter_2__c" value="http://" ></label> <script type="text/javascript"> document.getElementById('contentMarketingForm-special').className = "contentMarketingForm-neg"; </script> </div> <!-- end salesforce special section --> <div class="g-recaptcha" data-sitekey="6LeFslspAAAAAFvcDHi0O_07qjlf05rnmiD0J3KV"></div> <input type="hidden" name="oid" value="00D41000002j7Ek"> <input type="hidden" name="recordType" value="01241000000zDpW"> <input type="hidden" name="lead_source" value="Media Content Marketing Website, Lead Form"> <input type="hidden" name="UTM_Source__c" value=""> <input type="hidden" name="retURL" value=""> <input type="hidden" name="template_name" value="enterprise.html"> <input type="hidden" name="Original_Campaign_ID__c" value="7012M000001qkA0QAI"> <input type="hidden" name="GDPR_Country__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_Context__c" value="content-marketing-solutions.html"> <input type="hidden" name="GDPR_Marketing_Consent_Date_Time__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_Opt_In__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_System__c" value="Salesforce"> <input type=hidden name='captcha_settings' value='{"keyname":"ORM24","fallback":"true","orgId":"00D41000002j7Ek","ts":""}'> <div class="contentMarketingForm-full"> <button type="submit" class="contentMarketingForm-cta" onclick="return verif('contentMarketingForm');" value="Submit" disabled> Submit </button> </div> </form> <div id="contentMarketingForm-thankyou" class="contentMarketingForm-thankyou hidden"> <h2>Thank you for your interest in O&rsquo;Reilly <span class="nowrap">content solutions.</span></h2> <p>We&rsquo;ll be in touch soon to learn more about your organization and find out if we <span class="nowrap">can help.</span></p> </div> </div> <!-- end click-to-show contentMarketingForm --> <!-- overlay with superstreamLeadForm --> <div class="formOverlay hidden" id="formOverlay"> <div class="formOverlay-inner" id="formOverlay-inner"> <div class="formOverlay-close" id="formOverlay-close"></div> <h2>Get the details</h2> <form role="form" id="superstreamLeadForm" class="contentMarketingForm salesforce-form" novalidate="true" method="POST" action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8"> <p class="required" aria-hidden="true">* Required fields</p> <div id="superstreamLeadForm-errorMessage" class="contentMarketingForm-errorMessage"></div> <noscript> <p>Do you have JavaScript turned off? Sorry, but this form won&rsquo;t work without it.</p> </noscript> <div class="contentMarketingForm-split contentMarketingForm-mr"> <label for="superstreamLeadForm_first_name">First name <strong aria-hidden="true" >*</strong></label> <input type="text" name="first_name" id="superstreamLeadForm_first_name" data-text="first name" autocomplete="given-name" aria-required="true" disabled > </div> <div class="contentMarketingForm-split"> <label for="superstreamLeadForm_last_name">Last name <strong aria-hidden="true" >*</strong></label> <input type="text" name="last_name" id="superstreamLeadForm_last_name" data-text="last name" autocomplete="family-name" aria-required="true" disabled > </div> <div class="contentMarketingForm-split contentMarketingForm-mr"> <label for="superstreamLeadForm_company">Company <strong aria-hidden="true" >*</strong></label> <input type="text" name="company" id="superstreamLeadForm_company" data-text="company" autocomplete="organization" aria-required="true" disabled> </div> <div class="contentMarketingForm-split"> <label for="superstreamLeadForm_email">Email <strong aria-hidden="true" >*</strong></label> <input type="email" name="email" id="superstreamLeadForm_email" data-text="email address" autocomplete="email" aria-required="true" disabled > </div> <div class="contentMarketingForm-full"> <label for="superstreamLeadForm_country">Country <strong class="red" aria-hidden="true">*</strong></label> <select name="country" id="superstreamLeadForm_country" data-text="country" autocomplete="country-name" aria-required="true" disabled > <option disabled selected value>- Select country -</option> <option value="Afghanistan">Afghanistan</option> <option value="Albania">Albania</option> <option value="Algeria">Algeria</option> <option value="Andorra">Andorra</option> <option value="Angola">Angola</option> <option value="Antigua and Barbuda">Antigua and Barbuda</option> <option value="Argentina">Argentina</option> <option value="Armenia">Armenia</option> <option value="Aruba">Aruba</option> <option value="Australia">Australia</option> <option value="Austria">Austria</option> <option value="Azerbaijan">Azerbaijan</option> <option value="Bahamas">The Bahamas</option> <option value="Bahrain">Bahrain</option> <option value="Bangladesh">Bangladesh</option> <option value="Barbados">Barbados</option> <option value="Belarus">Belarus</option> <option value="Belgium">Belgium</option> <option value="Belize">Belize</option> <option value="Benin">Benin</option> <option value="Bermuda">Bermuda</option> <option value="Bhutan">Bhutan</option> <option value="Bolivia, Plurinational State of">Bolivia</option> <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option> <option value="Botswana">Botswana</option> <option value="Brazil">Brazil</option> <option value="Brunei Darussalam">Brunei</option> <option value="Bulgaria">Bulgaria</option> <option value="Burkina Faso">Burkina Faso</option> <option value="Burundi">Burundi</option> <option value="Cambodia">Cambodia</option> <option value="Cameroon">Cameroon</option> <option value="Canada">Canada</option> <option value="Cape Verde">Cape Verde</option> <option value="Central African Republic">Central African Republic</option> <option value="Chad">Chad</option> <option value="Chile">Chile</option> <option value="China">People's Republic of China</option> <option value="Colombia">Colombia</option> <option value="Comoros">Comoros</option> <option value="Congo, the Democratic Republic of the">Congo, Democratic Republic of the</option> <option value="Congo">Congo, Republic of the</option> <option value="Cook Islands">Cook Islands</option> <option value="Costa Rica">Costa Rica</option> <option value="Cote d'Ivoire">C&ocirc;te d'Ivoire (Ivory Coast)</option> <option value="Croatia">Croatia</option> <option value="Cuba">Cuba</option> <option value="Cyprus">Cyprus</option> <option value="Czech Republic">Czechia</option> <option value="Denmark">Denmark</option> <option value="Djibouti">Djibouti</option> <option value="Dominica">Dominica</option> <option value="Dominican Republic">Dominican Republic</option> <option value="Ecuador">Ecuador</option> <option value="Egypt">Egypt</option> <option value="El Salvador">El Salvador</option> <option value="Equatorial Guinea">Equatorial Guinea</option> <option value="Eritrea">Eritrea</option> <option value="Estonia">Estonia</option> <option value="Swaziland">Eswatini (formerly Swaziland)</option> <option value="Ethiopia">Ethiopia</option> <option value="Fiji">Fiji</option> <option value="Finland">Finland</option> <option value="France">France</option> <option value="Gabon">Gabon</option> <option value="Gambia">The Gambia</option> <option value="Georgia">Georgia</option> <option value="Germany">Germany</option> <option value="Ghana">Ghana</option> <option value="Greece">Greece</option> <option value="Grenada">Grenada</option> <option value="Guatemala">Guatemala</option> <option value="Guinea">Guinea</option> <option value="Guinea-Bissau">Guinea-Bissau</option> <option value="Guyana">Guyana</option> <option value="Haiti">Haiti</option> <option value="Honduras">Honduras</option> <option value="Hungary">Hungary</option> <option value="Iceland">Iceland</option> <option value="India">India</option> <option value="Indonesia">Indonesia</option> <option value="Iran, Islamic Republic of">Iran</option> <option value="Iraq">Iraq</option> <option value="Ireland">Ireland</option> <option value="Israel">Israel</option> <option value="Italy">Italy</option> <option value="Jamaica">Jamaica</option> <option value="Japan">Japan</option> <option value="Jordan">Jordan</option> <option value="Kazakhstan">Kazakhstan</option> <option value="Kenya">Kenya</option> <option value="Kiribati">Kiribati</option> <option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option> <option value="Korea, Republic of">Korea, Republic of</option> <option value="Kuwait">Kuwait</option> <option value="Kyrgyzstan">Kyrgyzstan</option> <option value="Lao People's Democratic Republic">Laos</option> <option value="Latvia">Latvia</option> <option value="Lebanon">Lebanon</option> <option value="Lesotho">Lesotho</option> <option value="Liberia">Liberia</option> <option value="Libyan Arab Jamahiriya">Libya</option> <option value="Liechtenstein">Liechtenstein</option> <option value="Lithuania">Lithuania</option> <option value="Luxembourg">Luxembourg</option> <option value="Macedonia, the former Yugoslav Republic of">Macedonia, Republic of</option> <option value="Madagascar">Madagascar</option> <option value="Malawi">Malawi</option> <option value="Malaysia">Malaysia</option> <option value="Maldives">Maldives</option> <option value="Mali">Mali</option> <option value="Malta">Malta</option> <option value="Mauritania">Mauritania</option> <option value="Mauritius">Mauritius</option> <option value="Mexico">Mexico</option> <option value="Federated States of Micronesia">Federated States of Micronesia</option> <option value="Moldova, Republic of">Moldova</option> <option value="Monaco">Monaco</option> <option value="Mongolia">Mongolia</option> <option value="Montenegro">Montenegro</option> <option value="Morocco">Morocco</option> <option value="Mozambique">Mozambique</option> <option value="Myanmar">Myanmar</option> <option value="Namibia">Namibia</option> <option value="Nauru">Nauru</option> <option value="Nepal">Nepal</option> <option value="Netherlands">Netherlands</option> <option value="New Zealand">New Zealand</option> <option value="Nicaragua">Nicaragua</option> <option value="Niger">Niger</option> <option value="Nigeria">Nigeria</option> <option value="Niue">Niue</option> <option value="Norway">Norway</option> <option value="Oman">Oman</option> <option value="Pakistan">Pakistan</option> <option value="Palestinian Territory, Occupied">Palestine, State of</option> <option value="Panama">Panama</option> <option value="Papua New Guinea">Papua New Guinea</option> <option value="Paraguay">Paraguay</option> <option value="Peru">Peru</option> <option value="Philippines">Philippines</option> <option value="Poland">Poland</option> <option value="Portugal">Portugal</option> <option value="Qatar">Qatar</option> <option value="Romania">Romania</option> <option value="Rwanda">Rwanda</option> <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option> <option value="Saint Lucia">Saint Lucia</option> <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option> <option value="Samoa">Samoa</option> <option value="San Marino">San Marino</option> <option value="Sao Tome and Principe">S&atilde;o Tom&eacute; and Pr&iacute;ncipe</option> <option value="Saudi Arabia">Saudi Arabia</option> <option value="Senegal">Senegal</option> <option value="Serbia">Serbia</option> <option value="Seychelles">Seychelles</option> <option value="Sierra Leone">Sierra Leone</option> <option value="Singapore">Singapore</option> <option value="Slovakia">Slovakia</option> <option value="Slovenia">Slovenia</option> <option value="Solomon Islands">Solomon Islands</option> <option value="Somalia">Somalia</option> <option value="South Africa">South Africa</option> <option value="South Sudan">South Sudan</option> <option value="Spain">Spain</option> <option value="Sri Lanka">Sri Lanka</option> <option value="Sudan">Sudan</option> <option value="Suriname">Suriname</option> <option value="Sweden">Sweden</option> <option value="Switzerland">Switzerland</option> <option value="Syrian Arab Republic">Syria</option> <option value="Taiwan">Taiwan</option> <option value="Tajikistan">Tajikistan</option> <option value="Tanzania, United Republic of">Tanzania</option> <option value="Thailand">Thailand</option> <option value="Timor-Leste">Timor-Leste (East Timor)</option> <option value="Togo">Togo</option> <option value="Tonga">Tonga</option> <option value="Trinidad and Tobago">Trinidad and Tobago</option> <option value="Tunisia">Tunisia</option> <option value="Turkey">Turkey</option> <option value="Turkmenistan">Turkmenistan</option> <option value="Tuvalu">Tuvalu</option> <option value="Uganda">Uganda</option> <option value="Ukraine">Ukraine</option> <option value="United Arab Emirates">United Arab Emirates</option> <option value="United Kingdom">United Kingdom</option> <option value="United States">United States</option> <option value="Uruguay">Uruguay</option> <option value="Uzbekistan">Uzbekistan</option> <option value="Vanuatu">Vanuatu</option> <option value="Holy See (Vatican City State)">Vatican City</option> <option value="Venezuela, Bolivarian Republic of">Venezuela</option> <option value="Viet Nam">Vietnam</option> <option value="Yemen">Yemen</option> <option value="Zambia">Zambia</option> <option value="Zimbabwe">Zimbabwe</option> </select> </div> <div class="contentMarketingForm-full option-select gdpr-consent hidden"></div> <!-- salesforce special section --> <div id="contentMarketingForm-special" class="screen-reader-text"> <label>Email confirm: <input type="email" class="" name="Filter_1__c"></label> <label>Website address: <input type="text" class="" name="Filter_2__c" value="http://" ></label> <script type="text/javascript"> document.getElementById('contentMarketingForm-special').className = "contentMarketingForm-neg"; </script> </div> <!-- end salesforce special section --> <div class="g-recaptcha" data-sitekey="6LeFslspAAAAAFvcDHi0O_07qjlf05rnmiD0J3KV"></div> <input type="hidden" name="oid" value="00D41000002j7Ek"> <input type="hidden" name="recordType" value="01241000000zDpW"> <input type="hidden" name="lead_source" value="Media Content Marketing Website, Lead Form"> <input type="hidden" name="UTM_Source__c" value=""> <input type="hidden" name="retURL" value=""> <input type="hidden" name="template_name" value="enterprise.html"> <input type="hidden" name="Original_Campaign_ID__c" value="7012M0000017xPvQAI"> <input type="hidden" name="GDPR_Country__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_Context__c" value="Corporate Website, Superstream Lead Form"> <input type="hidden" name="GDPR_Marketing_Consent_Date_Time__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_Opt_In__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_System__c" value="Salesforce"> <input type=hidden name='captcha_settings' value='{"keyname":"ORM24","fallback":"true","orgId":"00D41000002j7Ek","ts":""}'> <div class="contentMarketingForm-full"> <button type="submit" class="contentMarketingForm-cta" onclick="return verif('superstreamLeadForm');" value="Submit" disabled> Submit </button> </div> </form> </div> </div> <!-- end overlay with superstreamLeadForm --> <!-- poweringContentForm --> <div class="poweringContentForm-container hidden" id="poweringContentForm-container"> <form role="form" id="poweringContentForm" class="contentMarketingForm salesforce-form" novalidate="true" method="POST" action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8"> <p class="required" aria-hidden="true">* Required fields</p> <div id="poweringContentForm-errorMessage" class="contentMarketingForm-errorMessage"></div> <noscript> <p>Do you have JavaScript turned off? Sorry, but this form won&rsquo;t work without it.</p> </noscript> <div class="contentMarketingForm-split contentMarketingForm-mr"> <label for="poweringContentForm_first_name">First name <strong aria-hidden="true" >*</strong></label> <input type="text" name="first_name" id="poweringContentForm_first_name" data-text="first name" autocomplete="given-name" aria-required="true" disabled > </div> <div class="contentMarketingForm-split"> <label for="poweringContentForm_last_name">Last name <strong aria-hidden="true" >*</strong></label> <input type="text" name="last_name" id="poweringContentForm_last_name" data-text="last name" autocomplete="family-name" aria-required="true" disabled > </div> <div class="contentMarketingForm-split contentMarketingForm-mr"> <label for="poweringContentForm_company">Company <strong aria-hidden="true" >*</strong></label> <input type="text" name="company" id="poweringContentForm_company" data-text="company" autocomplete="organization" aria-required="true" disabled> </div> <div class="contentMarketingForm-split"> <label for="poweringContentForm_email">Email <strong aria-hidden="true" >*</strong></label> <input type="email" name="email" id="poweringContentForm_email" data-text="email address" autocomplete="email" aria-required="true" disabled > </div> <div class="contentMarketingForm-full"> <label for="poweringContentForm_country">Country <strong class="red" aria-hidden="true">*</strong></label> <select name="country" id="poweringContentForm_country" data-text="country" autocomplete="country-name" aria-required="true" disabled > <option disabled selected value>- Select country -</option> <option value="Afghanistan">Afghanistan</option> <option value="Albania">Albania</option> <option value="Algeria">Algeria</option> <option value="Andorra">Andorra</option> <option value="Angola">Angola</option> <option value="Antigua and Barbuda">Antigua and Barbuda</option> <option value="Argentina">Argentina</option> <option value="Armenia">Armenia</option> <option value="Aruba">Aruba</option> <option value="Australia">Australia</option> <option value="Austria">Austria</option> <option value="Azerbaijan">Azerbaijan</option> <option value="Bahamas">The Bahamas</option> <option value="Bahrain">Bahrain</option> <option value="Bangladesh">Bangladesh</option> <option value="Barbados">Barbados</option> <option value="Belarus">Belarus</option> <option value="Belgium">Belgium</option> <option value="Belize">Belize</option> <option value="Benin">Benin</option> <option value="Bermuda">Bermuda</option> <option value="Bhutan">Bhutan</option> <option value="Bolivia, Plurinational State of">Bolivia</option> <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option> <option value="Botswana">Botswana</option> <option value="Brazil">Brazil</option> <option value="Brunei Darussalam">Brunei</option> <option value="Bulgaria">Bulgaria</option> <option value="Burkina Faso">Burkina Faso</option> <option value="Burundi">Burundi</option> <option value="Cambodia">Cambodia</option> <option value="Cameroon">Cameroon</option> <option value="Canada">Canada</option> <option value="Cape Verde">Cape Verde</option> <option value="Central African Republic">Central African Republic</option> <option value="Chad">Chad</option> <option value="Chile">Chile</option> <option value="China">People's Republic of China</option> <option value="Colombia">Colombia</option> <option value="Comoros">Comoros</option> <option value="Congo, the Democratic Republic of the">Congo, Democratic Republic of the</option> <option value="Congo">Congo, Republic of the</option> <option value="Cook Islands">Cook Islands</option> <option value="Costa Rica">Costa Rica</option> <option value="Cote d'Ivoire">C&ocirc;te d'Ivoire (Ivory Coast)</option> <option value="Croatia">Croatia</option> <option value="Cuba">Cuba</option> <option value="Cyprus">Cyprus</option> <option value="Czech Republic">Czechia</option> <option value="Denmark">Denmark</option> <option value="Djibouti">Djibouti</option> <option value="Dominica">Dominica</option> <option value="Dominican Republic">Dominican Republic</option> <option value="Ecuador">Ecuador</option> <option value="Egypt">Egypt</option> <option value="El Salvador">El Salvador</option> <option value="Equatorial Guinea">Equatorial Guinea</option> <option value="Eritrea">Eritrea</option> <option value="Estonia">Estonia</option> <option value="Swaziland">Eswatini (formerly Swaziland)</option> <option value="Ethiopia">Ethiopia</option> <option value="Fiji">Fiji</option> <option value="Finland">Finland</option> <option value="France">France</option> <option value="Gabon">Gabon</option> <option value="Gambia">The Gambia</option> <option value="Georgia">Georgia</option> <option value="Germany">Germany</option> <option value="Ghana">Ghana</option> <option value="Greece">Greece</option> <option value="Grenada">Grenada</option> <option value="Guatemala">Guatemala</option> <option value="Guinea">Guinea</option> <option value="Guinea-Bissau">Guinea-Bissau</option> <option value="Guyana">Guyana</option> <option value="Haiti">Haiti</option> <option value="Honduras">Honduras</option> <option value="Hungary">Hungary</option> <option value="Iceland">Iceland</option> <option value="India">India</option> <option value="Indonesia">Indonesia</option> <option value="Iran, Islamic Republic of">Iran</option> <option value="Iraq">Iraq</option> <option value="Ireland">Ireland</option> <option value="Israel">Israel</option> <option value="Italy">Italy</option> <option value="Jamaica">Jamaica</option> <option value="Japan">Japan</option> <option value="Jordan">Jordan</option> <option value="Kazakhstan">Kazakhstan</option> <option value="Kenya">Kenya</option> <option value="Kiribati">Kiribati</option> <option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option> <option value="Korea, Republic of">Korea, Republic of</option> <option value="Kuwait">Kuwait</option> <option value="Kyrgyzstan">Kyrgyzstan</option> <option value="Lao People's Democratic Republic">Laos</option> <option value="Latvia">Latvia</option> <option value="Lebanon">Lebanon</option> <option value="Lesotho">Lesotho</option> <option value="Liberia">Liberia</option> <option value="Libyan Arab Jamahiriya">Libya</option> <option value="Liechtenstein">Liechtenstein</option> <option value="Lithuania">Lithuania</option> <option value="Luxembourg">Luxembourg</option> <option value="Macedonia, the former Yugoslav Republic of">Macedonia, Republic of</option> <option value="Madagascar">Madagascar</option> <option value="Malawi">Malawi</option> <option value="Malaysia">Malaysia</option> <option value="Maldives">Maldives</option> <option value="Mali">Mali</option> <option value="Malta">Malta</option> <option value="Mauritania">Mauritania</option> <option value="Mauritius">Mauritius</option> <option value="Mexico">Mexico</option> <option value="Federated States of Micronesia">Federated States of Micronesia</option> <option value="Moldova, Republic of">Moldova</option> <option value="Monaco">Monaco</option> <option value="Mongolia">Mongolia</option> <option value="Montenegro">Montenegro</option> <option value="Morocco">Morocco</option> <option value="Mozambique">Mozambique</option> <option value="Myanmar">Myanmar</option> <option value="Namibia">Namibia</option> <option value="Nauru">Nauru</option> <option value="Nepal">Nepal</option> <option value="Netherlands">Netherlands</option> <option value="New Zealand">New Zealand</option> <option value="Nicaragua">Nicaragua</option> <option value="Niger">Niger</option> <option value="Nigeria">Nigeria</option> <option value="Niue">Niue</option> <option value="Norway">Norway</option> <option value="Oman">Oman</option> <option value="Pakistan">Pakistan</option> <option value="Palestinian Territory, Occupied">Palestine, State of</option> <option value="Panama">Panama</option> <option value="Papua New Guinea">Papua New Guinea</option> <option value="Paraguay">Paraguay</option> <option value="Peru">Peru</option> <option value="Philippines">Philippines</option> <option value="Poland">Poland</option> <option value="Portugal">Portugal</option> <option value="Qatar">Qatar</option> <option value="Romania">Romania</option> <option value="Rwanda">Rwanda</option> <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option> <option value="Saint Lucia">Saint Lucia</option> <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option> <option value="Samoa">Samoa</option> <option value="San Marino">San Marino</option> <option value="Sao Tome and Principe">S&atilde;o Tom&eacute; and Pr&iacute;ncipe</option> <option value="Saudi Arabia">Saudi Arabia</option> <option value="Senegal">Senegal</option> <option value="Serbia">Serbia</option> <option value="Seychelles">Seychelles</option> <option value="Sierra Leone">Sierra Leone</option> <option value="Singapore">Singapore</option> <option value="Slovakia">Slovakia</option> <option value="Slovenia">Slovenia</option> <option value="Solomon Islands">Solomon Islands</option> <option value="Somalia">Somalia</option> <option value="South Africa">South Africa</option> <option value="South Sudan">South Sudan</option> <option value="Spain">Spain</option> <option value="Sri Lanka">Sri Lanka</option> <option value="Sudan">Sudan</option> <option value="Suriname">Suriname</option> <option value="Sweden">Sweden</option> <option value="Switzerland">Switzerland</option> <option value="Syrian Arab Republic">Syria</option> <option value="Taiwan">Taiwan</option> <option value="Tajikistan">Tajikistan</option> <option value="Tanzania, United Republic of">Tanzania</option> <option value="Thailand">Thailand</option> <option value="Timor-Leste">Timor-Leste (East Timor)</option> <option value="Togo">Togo</option> <option value="Tonga">Tonga</option> <option value="Trinidad and Tobago">Trinidad and Tobago</option> <option value="Tunisia">Tunisia</option> <option value="Turkey">Turkey</option> <option value="Turkmenistan">Turkmenistan</option> <option value="Tuvalu">Tuvalu</option> <option value="Uganda">Uganda</option> <option value="Ukraine">Ukraine</option> <option value="United Arab Emirates">United Arab Emirates</option> <option value="United Kingdom">United Kingdom</option> <option value="United States">United States</option> <option value="Uruguay">Uruguay</option> <option value="Uzbekistan">Uzbekistan</option> <option value="Vanuatu">Vanuatu</option> <option value="Holy See (Vatican City State)">Vatican City</option> <option value="Venezuela, Bolivarian Republic of">Venezuela</option> <option value="Viet Nam">Vietnam</option> <option value="Yemen">Yemen</option> <option value="Zambia">Zambia</option> <option value="Zimbabwe">Zimbabwe</option> </select> </div> <div class="contentMarketingForm-full option-select gdpr-consent hidden"></div> <!-- salesforce special section --> <div id="contentMarketingForm-special" class="screen-reader-text"> <label>Email confirm: <input type="email" class="" name="Filter_1__c"></label> <label>Website address: <input type="text" class="" name="Filter_2__c" value="http://" ></label> <script type="text/javascript"> document.getElementById('contentMarketingForm-special').className = "contentMarketingForm-neg"; </script> </div> <!-- end salesforce special section --> <div class="g-recaptcha" data-sitekey="6LeFslspAAAAAFvcDHi0O_07qjlf05rnmiD0J3KV"></div> <input type="hidden" name="oid" value="00D41000002j7Ek"> <input type="hidden" name="recordType" value="01241000000zDpW"> <input type="hidden" name="lead_source" value="Media Content Marketing Website, Lead Form"> <input type="hidden" name="UTM_Source__c" value=""> <input type="hidden" name="retURL" value=""> <input type="hidden" name="template_name" value="enterprise.html"> <input type="hidden" name="Original_Campaign_ID__c" value="7012M0000017xPvQAI"> <input type="hidden" name="GDPR_Country__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_Context__c" value="Corporate Website, Powering Content Lead Form"> <input type="hidden" name="GDPR_Marketing_Consent_Date_Time__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_Opt_In__c" value=""> <input type="hidden" name="GDPR_Marketing_Consent_System__c" value="Salesforce"> <input type=hidden name='captcha_settings' value='{"keyname":"ORM24","fallback":"true","orgId":"00D41000002j7Ek","ts":""}'> <div class="contentMarketingForm-full"> <button type="submit" class="contentMarketingForm-cta" onclick="return verif('poweringContentForm');" value="Submit" disabled> Get the book </button> </div> <div id="poweringContentForm-thankyou" class="contentMarketingForm-thankyou hidden"> <h2>Thanks for your interest.</h2> <p>You&rsquo;ll hear from us shortly.</p> </div> </form> </div> <!-- end poweringContentForm --> <script src="https://cdn.oreillystatic.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> function getUrlParameterForSF(name) { name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); }; /* if search parameter "form" is present, show form */ if (window.location.search.indexOf('form') > -1) { var form = new URL(window.location.href).searchParams.get('form').toLowerCase(); //Show media kit form if (form.toLowerCase() === 'mediakit') { $('#letsTalk, #requestInformationSection, #requestInformationSection_vb').hide(); $('#contentMarketingForm').show(); } } var utmSource = getUrlParameterForSF('utm_source'); $('#contentMarketingForm input[name="UTM_Source__c"]').val(utmSource); document.addEventListener("DOMContentLoaded", function(event) { toggleFormThankYou() enableForm(); setRedirectUrls(); addCountryEventListeners(); enableSuperstreamFormOverlay(); enablePoweringContentForm(); $('#letsTalk, #requestInformation, #requestInformation_vb').on('click', function(event) { event.preventDefault(); $('#letsTalk, #requestInformationSection, #requestInformationSection_vb').hide(); $('#contentMarketingForm').show(); $('html, body').animate({scrollTop: $('#contentMarketingFormSection').offset().top - 150,}, 250, 'linear') }); }); //Show events form overlay on link click function enableSuperstreamFormOverlay() { $('#superstreamOverlayFormButton, #superstreamOverlayFormButton_vb').on('click', function(e) { e.preventDefault(); $('html').css({'overflow':'hidden'}); $('#formOverlay').removeClass('hidden'); dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'click', 'eventLbl':'ss overlay', 'eventVal':0, 'nonInteraction': 0, }); }); $('#formOverlay, #formOverlay-close').on('click', function(e) { $('html').css({'overflow':'auto'}); $('#formOverlay').addClass('hidden'); }); $(document).on('keydown', function(e) { if (e.keyCode == 27) { //Escape $('html').css({'overflow':'auto'}); $('#formOverlay').addClass('hidden'); } }); $('#formOverlay-inner').on('click', function(e) { e.stopPropagation(); }); } //Move powering content form into place on the page function enablePoweringContentForm() { const formContainer = $('#poweringContentForm-container'); $('#poweringContentForm-target').append(formContainer); formContainer.removeClass('hidden'); } function toggleFormThankYou() { // show/hide form or thankyou message depending on URL parameters if (parseParams('submit') === 'true') { var formId = ('#' + parseParams('name')); if (formId !== '#poweringContentForm') { toggleHidden(formId, formId + '-thankyou'); toggleHidden(formId, formId + '-intro'); $('html, body').animate({ scrollTop: $(formId + '-thankyou').offset().top - 50 }, 500); } history.pushState(null, "", location.href.split("?")[0]); } } function parseParams(name) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if (results === null) return ""; else return (results[1]); } function enableForm() { // enable form submit button if javascript present $('form input, form select, form textarea, form button').prop('disabled', false); }; function setRedirectUrls() { // set values of redirect urls in forms var forms = document.getElementsByClassName('salesforce-form'); for (i = 0; i < forms.length; i++) { var formId = forms[i].id; var downloadURL = (window.location.href.split('?')[0] + '?submit=true&name=' + formId); $('#' + formId + ' input[name="retURL"]').val(downloadURL); } } function addCountryEventListeners() { var countries = document.querySelectorAll('[name="country"]'); for (i = 0; i < countries.length; i++ ) { countries[i].addEventListener('change', identifyTarget, false); } } function identifyTarget(e) { var country = e.target.value; var parentForm = e.target.closest('form'); checkOptInStatus(country, parentForm); } function checkOptInStatus(country, parentForm) { var gdprSelect = parentForm.getElementsByClassName('gdpr-consent')[0]; var optInHtml = '\n <fieldset role="radiogroup" aria-required="true" data-text="choice for receiving O&rsquo;Reilly email updates"> \n <legend>I would like to receive email updates from O&rsquo;Reilly on its latest ideas, events, and&nbsp;offers: <strong class="red" aria-hidden="true">*</strong></legend> \n <input type="radio" name="gdprConsent" value="True"><label for="gdprYes">Yes</label> \n <input type="radio" name="gdprConsent" value="False"><label for="gdprNo">No</label> \n </fieldset>'; if (requiresConsent(country) && gdprConsentHidden(gdprSelect)) { toggleOptIn(gdprSelect, optInHtml); } else if (!requiresConsent(country) && !gdprConsentHidden(gdprSelect)) { toggleOptIn(gdprSelect, ' '); } } function requiresConsent(country) { var euCountries = ['Austria', 'Belgium', 'Bulgaria', 'China', 'Croatia', 'Republic of Cyprus', 'Czech Republic', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Iceland', 'Ireland', 'Italy', 'Latvia', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Norway', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden', 'United Kingdom']; return(euCountries.indexOf(country) + 1); } function gdprConsentHidden(gdprSelect) { return gdprSelect.classList.contains('hidden') ? true : false; } function toggleOptIn(gdprSelect, optInHtml) { toggleHidden(gdprSelect); gdprSelect.innerHTML = optInHtml; checkError(gdprSelect); } function toggleHidden() { var targets = Array.prototype.slice.call(arguments); targets.forEach(function(target) { $(target).toggleClass('hidden'); }); } function checkError(arg) { if (arg.classList.contains('error')) { $(arg).removeClass('error'); } } function verif(formName) { var form = document.getElementById(formName); var formId = '#' + formName; $(formId +' .error').removeClass('error'); $('[aria-invalid$="true"]').attr('aria-invalid','false'); var errors = []; // find all elements in form that are required fields var requiredFields = $(formId + ' [aria-required$="true"]'); // loop through required fields to check if they are valid for (i = 0; i < requiredFields.length; i++) { var field = requiredFields[i]; if (fieldInvalid(field, form)) { createError(field, formId, formName, errors); }; } // If errors found, display them and prevent submit if (errors.length > 0) { displayErrors(errors, formId); return false; } // When no errors found continue... // If the form is salesforce if (form.classList.contains('salesforce-form')) { setSalesforceFields(form, formId); if (formName === 'contentMarketingForm') { // Push dataLayer event for Goggle Analytics dataLayer.push({ 'event': 'eventTracker', 'eventCat':'lead gen form submit', 'eventAct':'content marketing', 'eventLbl': 'general', 'eventVal':0, 'nonInteraction':0 }); } else if (formName === 'superstreamLeadForm') { // Push dataLayer event for Goggle Analytics dataLayer.push({ 'event': 'eventTracker', 'eventCat':'lead gen form submit', 'eventAct':'content marketing', 'eventLbl': 'ss leads', 'eventVal':0, 'nonInteraction':0 }); } else if (formName === 'poweringContentForm') { // Push dataLayer event for Goggle Analytics dataLayer.push({ 'event': 'eventTracker', 'eventCat':'lead gen form submit', 'eventAct':'content marketing', 'eventLbl': 'powering content leads', 'eventVal':0, 'nonInteraction':0 }); } } //If superstream lead form, download whitepaper if (formName === 'superstreamLeadForm') { //window.open('https://cdn.oreillystatic.com/pdf/OReilly_Superstream_Series_Details.pdf'); window.open('https://www.oreilly.com/ceros/343803-2023-superstream-series.html'); } //If superstream lead form, download whitepaper if (formName === 'poweringContentForm') { window.open('https://cdn.oreillystatic.com/pdf/Powering_Content.pdf'); } return true; // return false; } function fieldInvalid(field, form) { if (field.tagName === "FIELDSET") { return (radioInvalid(field, form)) ? true : false; } else if (field.name === "email") { return (emailInvalid(form)) ? true : false; } else { return (field.value.length < 1) ? true : false; } } function radioInvalid(field, form) { var fieldsetName = field.querySelectorAll('input')[0].name; if (form[fieldsetName].value.length < 1) return true; } function emailInvalid(form) { var mail = new RegExp('@+','g'); if ( (form.email.value.length < 1) || (!mail.test(form.email.value)) ) { return true; } } function createError(field, formId, formName, errors) { if (field.tagName === 'FIELDSET') { $(formId + ' .gdpr-consent').addClass('error'); $(formId + ' .gdpr-consent fieldset input').addClass('error').attr('aria-invalid','true'); } else { $(formId + ' [name$="' + field.name + '"]').addClass('error').attr('aria-invalid','true'); } $(formId +' label[for="' + formName + '_' + field.name + '"]').addClass('error'); errors.push(field.dataset.text); return errors; } function displayErrors(errors, formId) { var errorMessage = ''; if (errors.length > 3) { errorMessage = '<p>Please fill out all required fields.</p>'; } else { errorMessage = '<p>Please enter your '; for (i = 0; i < errors.length; i++) { errorMessage += errors[i]; if (i === errors.length - 2) { errorMessage += ', and ' } else if (i < errors.length - 1) { errorMessage += ', ' } else { errorMessage += '.</p>' } } } $(formId +'-errorMessage').html(errorMessage); } function setSalesforceFields(form, formId) { setDateTime(formId); setCountry(form, formId); setOptIn(form, formId); } function setDateTime(formId) { var now = new Date(); // salesforce web-to-lead form requires 'mm/dd/yyyy hh:mm' format var time = now.toLocaleTimeString([], { timeZone: 'UTC', hour: '2-digit', minute: '2-digit', }); var date = now.toLocaleDateString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric', }); var dateTime = date + ' ' + time; $(formId + ' input[name="GDPR_Marketing_Consent_Date_Time__c"]').val(dateTime); } function setCountry(form, formId) { if (form.country) { var country = form.country.value; $(formId + ' input[name="GDPR_Country__c"]').val(country); } } function setOptIn(form, formId) { if (form.gdprConsent) { var optin = form.gdprConsent.value; $(formId + ' input[name="GDPR_Marketing_Consent_Opt_In__c"]').val(optin); } } </script> </div> </section> <div class="features"> <section class="textSection featuresSection sectionBreak" id="lead-gen"> <div class="content"> <div class="featuresSection-columns"> <div class="featuresSection-columns-text"> <h2>Lead gen <span class="nowrap">that delivers</span></h2> <p>Give your prospects access to the most trusted technical content in the industry. Choose an O&rsquo;Reilly animal book, report, or early release title that aligns with your product. Then gate it on your site, put it to market, and watch as quality leads quickly ramp toward your goals&mdash;and likely past them. Search all the <a href="https://www.oreilly.com/content-marketing/available-products.html">available products</a> you can sponsor <span class="nowrap">right now.</span></p> </div> <div class="featuresSection-columns-flatAnimation"> <figure class="flatCover-group transition"> <img class="delay-1" src="https://cdn.oreillystatic.com/oreilly/images/flat_cover_data_sharing.png" alt="" /> <img class="delay-2" src="https://cdn.oreillystatic.com/oreilly/images/flat_cover_ransomware_and_data_extortion.png" alt="" /> <img class="delay-3" src="https://cdn.oreillystatic.com/oreilly/images/flat_cover_learning_microsoft_azure.png" alt="" /> <div class="transition-point"></div> </figure> </div> </div> </div> </section> <section class="textSection featuresSection sectionBreak" id="superstreams"> <div class="content"> <div class="featuresSection-columns"> <div class="featuresSection-columns-text"> <h2>Get in front of a live and captivated audience</h2> <p>O&rsquo;Reilly Superstreams are bite-size virtual tech conferences available from anywhere. Your thought leaders can present to all attendees, with available breakout rooms of smaller groups for more impactful demos&mdash;and attendees can opt in for you to contact them later. Plus, your sessions are archived on the O&rsquo;Reilly learning platform, so you get additional reach long after your event is over. <a id="superstreamOverlayFormButton" href="#">Learn more</a>.</p> </div> <div class="featuresSection-columns-flatAnimation"> <figure class="flatSuperstream-group transition"> <img class="delay-1" src="https://cdn.oreillystatic.com/oreilly/images/flat_on24_bg.png" alt="" /> <img class="delay-2" src="https://cdn.oreillystatic.com/oreilly/images/flat_on24_card.png" alt="" /> <img class="delay-2" src="https://cdn.oreillystatic.com/oreilly/images/flat_on24_slides.png" alt="" /> <img class="delay-2" src="https://cdn.oreillystatic.com/oreilly/images/flat_on24_bio.png" alt="" /> <img class="delay-3" src="https://cdn.oreillystatic.com/oreilly/images/flat_on24_media.png" alt="" /> <img class="delay-3" src="https://cdn.oreillystatic.com/oreilly/images/flat_on24_chat.png" alt="" /> <img class="delay-4" src="https://cdn.oreillystatic.com/oreilly/images/flat_on24_qa.png" alt="" /> <div class="transition-point"></div> </figure> </div> </div> </div> </section> <style> .poweringContent-columns { display: flex; flex-direction: column-reverse; } .poweringContent-columns-text { width: 100%; } .poweringContent-columns-figure { margin-bottom: 20px; width: 100%; height: 400px; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/3d_cover_powering_content.png) center center no-repeat; background-size: contain; } @media (min-width: 40em) { .poweringContent > .content > h2 { margin-bottom: 40px; } .poweringContent-columns { display: flex; flex-direction: row-reverse; justify-content: space-between; margin-bottom: 20px; } .poweringContent-columns-text { width: 45%; width: calc(50% - 20px); } .poweringContent-columns-figure { margin-bottom: 0; height: auto; width: calc(50% - 20px); } } @media (min-width: 60em) { .poweringContent-columns-text { width: calc(50% - 40px); } .poweringContent-columns-figure { width: calc(50% - 40px); } } </style> <section class="textSection poweringContent sectionBreak"> <div class="content"> <div class="poweringContent-columns"> <div class="poweringContent-columns-text"> <h2><em>Powering Content</em></h2> <p>Take the guesswork out of content marketing. This free 306-page ebook lays <span class="nowrap">out how.</span></p> <div id="poweringContentForm-target"></div> </div> <figure class="poweringContent-columns-figure"></figure> </div> </div> </section> <section class="textSection featuresSection sectionBreak"> <div class="content"> <div class="featuresSection-columns"> <div class="featuresSection-columns-text"> <h2>Drive better adoption through certifications</h2> <p>Want your prospects to adopt your product faster? Create a certification guide and make it available to all 2.8 million O&rsquo;Reilly users. They get a direct path to official prep materials, confidence-building exercises, and practice tests. And you get a whole lot of buzz about <span class="nowrap">your offering.</span></p> </div> <div class="featuresSection-columns-flatAnimation"> <figure class="flatVendors-group transition"> <img class="delay-1" src="https://cdn.oreillystatic.com/oreilly/images/flat_cert_1_20230822.png" alt="" /> <img class="delay-2" src="https://cdn.oreillystatic.com/oreilly/images/flat_cert_2_20230822.png" alt="" /> <img class="delay-3" src="https://cdn.oreillystatic.com/oreilly/images/flat_cert_3_20230822.png" alt="" /> <img class="delay-4" src="https://cdn.oreillystatic.com/oreilly/images/flat_cert_4_20230822.png" alt="" /> <div class="transition-point"></div> </figure> </div> </div> </div> </section> <section class="textSection featuresSection sectionBreak" id="trustedBy"> <div class="content"> <div class="featuresSection-columns"> <div class="featuresSection-columns-testimonial"> <a href="https://www.oreilly.com/content-sponsorship/testimonial-dataiku.html" class="testimonialContainer"> <h3>&ldquo;Audiences that are very, very technical tend to be less receptive to marketing. But because they know who O&rsquo;Reilly is and that you produce good quality content, that&rsquo;s why it works for us.&rdquo;</h3> <p class="testimonials-byline">&mdash;Lynn Heidmann, Senior Director of Marketing Content, Dataiku</p> <img src="https://cdn.oreillystatic.com/oreilly/images/logo-dataiku.svg" alt="logo: Dataiku"> </a> </div> <div class="featuresSection-columns-logos"> <ul> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-nginx-20190924.svg" alt="Nginx" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-google-20190924.svg" alt="Google" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-vmware-20190924.svg" alt="VMWare" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-singlestore-20221117.svg" alt="SingleStore" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-oracle-20190924.svg" alt="Oracle" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-aws-20190924.svg" alt="AWS" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-redhat-20190924.svg" alt="Red Hat" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-cockroach-20230301.png" alt="Cockroach Labs" /></li> <li><img class="squareLogo" src="https://cdn.oreillystatic.com/oreilly/images/logo-d2iq-20200903.svg" alt="D2IQ" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-nvidia-20190924.svg" alt="Nvidia" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-microsoft-20190924.png" alt="Microsoft" /></li> <li><img src="https://cdn.oreillystatic.com/oreilly/images/logo-neo4j.svg" alt="Neo4j" /></li> </ul> </div> </div> <p class="centeredTextCTA"><a href="https://www.oreilly.com/content-sponsorship/testimonials.html">See more testimonials</a></p> </div> </section> </div> <section class="textSection textReverse textReverse-blueBackground launch"> <div class="content"> <h2 class="contentAfter">Maximize your impact on the brightest technical audience</h2> <div class="launchColumns"> <div class="launchColumns-group"> <div class="launchColumns-group-item"> <h3>2.8 million</h3> <p>O&rsquo;Reilly users worldwide</p> </div> <div class="launchColumns-group-item"> <h3>5,000+</h3> <p>organizations count on us to upskill <span class="nowrap">their teams</span></p> </div> </div> <div class="launchColumns-group"> <div class="launchColumns-group-item"> <h3>149,000+</h3> <p>free O&rsquo;Reilly reports downloaded yearly</p> </div> <div class="launchColumns-group-item"> <h3>600,000+</h3> <p>newsletter subscribers</p> </div> </div> </div> </div> </section> <section id="requestInformationSection" class="textSection sectionBreak"> <div class="content"> <h2>Want to explore more options? <span class="nowrap">We&rsquo;re here to help.</span></h2> <button id="requestInformation" class="contentMarketingForm-cta">Get in touch</button> </div> </section> <script> const flatCovers = document.querySelector('.flatCover-group'); flatCovers.classList.remove('transition'); // Create the observer, same as before: const flatCoversObserver = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { flatCovers.classList.add('transition'); return; } flatCovers.classList.remove('transition'); }); }); flatCoversObserver.observe(document.querySelector('.flatCover-group .transition-point')); //---------// const flatSuperstream = document.querySelector('.flatSuperstream-group'); flatSuperstream.classList.remove('transition'); // Create the observer, same as before: const flatSuperstreamObserver = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { flatSuperstream.classList.add('transition'); return; } flatSuperstream.classList.remove('transition'); }); }); flatSuperstreamObserver.observe(document.querySelector('.flatSuperstream-group .transition-point')); //---------// const flatVendors = document.querySelector('.flatVendors-group'); flatVendors.classList.remove('transition'); // Create the observer, same as before: const flatVendorsObserver = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { flatVendors.classList.add('transition'); return; } flatVendors.classList.remove('transition'); }); }); flatVendorsObserver.observe(document.querySelector('.flatVendors-group .transition-point')); </script> </main> <footer id="footer" class="footer"> <div class="content"> <div class="footer-main" aria-label="company info"> <div class="footer-mainLeft"> <div class="footer-mainLeftOne"> <div class="footer-approach"> <h2 class="footer-header"><a href="/about/">About O&rsquo;Reilly</a></h2> <ul class="footer-links"> <li><a href="/work-with-us.html">Teach/write/train</a></li> <li><a href="/careers/">Careers</a></li> <li><a href="/press/">O&rsquo;Reilly news</a></li> <li><a href="/press/media-coverage.html">Media coverage</a></li> <li><a href="/partner/signup.csp">Community partners</a></li> <li><a href="/affiliates/">Affiliate program</a></li> <li><a href="/online-learning/rfp.html">Submit an RFP</a></li> <li><a href="/diversity/">Diversity</a></li> <li><a href="/content-marketing-solutions.html" id="footerSponsorshipLink">O&rsquo;Reilly for marketers</a></li> </ul> </div> </div> <div class="footer-mainLeftTwo"> <div class="footer-contact"> <h2 class="footer-header"><a href="/online-learning/support/">Support</a></h2> <ul class="footer-links"> <li><a href="/about/contact.html">Contact us</a></li> <li><a href="/emails/newsletters/">Newsletters</a></li> <li><a href="/privacy.html">Privacy policy</a></li> <li><a href="/about/oreilly-approach-to-generative-ai.html">AI policy</a></li> </ul> <a href="https://www.linkedin.com/company/oreilly-media" target="_blank"><svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.25 32.25"><defs><style>.cls-1{fill:#d30000;fill-rule:evenodd;}</style></defs><title>linkedin-logo</title><path class="cls-1" d="M17.43,13.53v0l0,0ZM16.12,0A16.13,16.13,0,1,0,32.25,16.12,16.12,16.12,0,0,0,16.12,0ZM11.77,22.92H8.12v-11h3.65ZM9.94,10.44h0a1.89,1.89,0,0,1-2-1.89A1.91,1.91,0,0,1,10,6.65a1.9,1.9,0,1,1,0,3.79Zm15,12.48H21.28V17.05c0-1.48-.53-2.49-1.85-2.49a2,2,0,0,0-1.88,1.34,2.63,2.63,0,0,0-.12.89v6.13H13.79s.05-10,0-11h3.64V13.5a3.63,3.63,0,0,1,3.29-1.82c2.4,0,4.21,1.57,4.21,4.95Z"/></svg></a> <a href="https://www.youtube.com/user/OreillyMedia" target="_blank"><svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.25 32.25"><defs><style>.cls-1{fill:#d30000;fill-rule:evenodd;}</style></defs><title>youtube-logo</title><path class="cls-1" d="M18.35,18.68a.89.89,0,0,0-.86.63V16.94h-1v7.59h1v-.59a.92.92,0,0,0,.89.74c.52,0,.86-.36,1-1.07a8.56,8.56,0,0,0,.14-1.9,10.47,10.47,0,0,0-.12-1.93C19.21,19.05,18.87,18.68,18.35,18.68Zm.09,4.14c-.05.52-.2.77-.45.77s-.43-.21-.49-.63a7.22,7.22,0,0,1,0-1c0-.72,0-1.14,0-1.26.07-.58.23-.88.51-.88s.4.27.46.79c0,.09,0,.47,0,1.13S18.46,22.71,18.44,22.82ZM8.61,18.19H9.86v6.34H11V18.19H12.2V16.94H8.61Zm7.71-6.12c.27,0,.43-.22.49-.66,0-.09,0-.45,0-1.07V9.78c0-.58,0-.93,0-1-.07-.43-.23-.65-.48-.65s-.41.19-.48.57a8.79,8.79,0,0,0,0,1v.53c0,.71,0,1.09,0,1.16C15.88,11.82,16.05,12.07,16.32,12.07Zm-1.74,10.4a2.92,2.92,0,0,1-.06.71c-.07.25-.2.37-.4.37s-.32-.11-.38-.34a2.63,2.63,0,0,1-.05-.66V18.83h-1v4.48c0,.91.33,1.37,1,1.37A1,1,0,0,0,14.6,24v.57h1v-5.7h-1Zm7.1-3.79a1.35,1.35,0,0,0-1.22.59,2.48,2.48,0,0,0-.3,1.07c0,.23,0,.61,0,1.16s0,1.13,0,1.37a2.93,2.93,0,0,0,.35,1.27,1.25,1.25,0,0,0,1.14.54,1.36,1.36,0,0,0,1.13-.45,2.29,2.29,0,0,0,.37-1.43s0-.07,0-.11v-.12h-1c0,.75-.17,1.12-.51,1.12s-.38-.18-.45-.56a4.68,4.68,0,0,1-.06-.9c0-.18,0-.31,0-.37h2v-.43a4.86,4.86,0,0,0-.3-2.11A1.28,1.28,0,0,0,21.68,18.68ZM22.15,21h-1c0-.05,0-.11,0-.16v-.08a1.64,1.64,0,0,1,.11-.8.39.39,0,0,1,.38-.23.42.42,0,0,1,.43.33,2.32,2.32,0,0,1,.07.7Zm-6-21A16.13,16.13,0,1,0,32.25,16.12,16.12,16.12,0,0,0,16.12,0Zm2.51,7.2h1V11a2.52,2.52,0,0,0,.06.66c.06.23.18.34.38.34s.34-.12.41-.37a3.76,3.76,0,0,0,.05-.71V7.2h1v5.74h-1v-.57a1,1,0,0,1-.93.72c-.66,0-1-.46-1-1.38ZM15,8a1.29,1.29,0,0,1,1.33-.92A1.3,1.3,0,0,1,17.65,8a6.77,6.77,0,0,1,.23,2.1,6.77,6.77,0,0,1-.23,2.1,1.3,1.3,0,0,1-1.32.92A1.29,1.29,0,0,1,15,12.17a6.77,6.77,0,0,1-.23-2.1A6.86,6.86,0,0,1,15,8ZM11.45,5.3l.89,2.87.88-2.87H14.4L12.88,9.7v3.24h-1.1V9.7L10.24,5.3ZM24.93,23.91a3,3,0,0,1-3,3h-12a3,3,0,0,1-3-3V18.05a3,3,0,0,1,3-3h12a3,3,0,0,1,3,3Z"/></svg></a> </div> <div class="footer-international"> <h2 class="footer-header">International</h2> <ul class="footer-links"> <li><a href="https://www.oreilly.com/anz/">Australia &amp; New Zealand</a></li> <li><a href="https://oreilly.hk/">Hong Kong &amp; Taiwan</a></li> <li><a href="https://oreillylearning.in/">India</a></li> <li><a href="https://oreilly.id/">Indonesia</a></li> <li><a href="https://www.oreilly.co.jp/index.shtml">Japan</a></li> </ul> </div> </div> </div> <div class="footer-download" id="download-info"> <h2 class="footer-header">Download the O&rsquo;Reilly App</h2> <p>Take O&rsquo;Reilly with you and learn anywhere, anytime on your phone <span class="nowrap">and tablet.</span></p> <div class="footer-downloadLinks"> <a href="https://itunes.apple.com/us/app/safari-to-go/id881697395"><img src="https://cdn.oreillystatic.com/oreilly/images/app-store-logo.png" alt="Apple app store" /></a> <a href="https://play.google.com/store/apps/details?id=com.safariflow.queue"><img src="https://cdn.oreillystatic.com/oreilly/images/google-play-logo.png" alt="Google play store" /></a> </div> </div> <div class="footer-download" id="tv-info"> <h2 class="footer-header">Watch on your big screen</h2> <p>View all O&rsquo;Reilly videos, Superstream events, and Meet the Expert sessions on your <span class="nowrap">home TV.</span></p> <div class="footer-downloadLinks"> <a href="https://channelstore.roku.com/details/c8a2d0096693eb9455f6ac165003ee06/oreilly"><img src="https://cdn.oreillystatic.com/oreilly/images/roku-tv-logo.png" alt="Roku Players and TVs" /></a> <a href="https://www.amazon.com/OReilly-Media-Inc/dp/B087YYHL5C/ref=sr_1_2?dchild=1&keywords=oreilly&qid=1604964116&s=mobile-apps&sr=1-2"><img src="https://cdn.oreillystatic.com/oreilly/images/amazon-appstore-logo.png" alt="Amazon appstore" /></a> </div> </div> <div class="footer-donotsell" id="donotsell-info"> <h2 class="footer-header"><a href="https://www.oreilly.com/privacy.html?donotsell=show">Do not sell or share my personal information</a></h2> </div> </div> <div class="footer-subfooter"> <a href="https://www.oreilly.com" title="home page" aria-current="page"> <img class="footer-subfooterLogo" id="footer-subfooterLogo" src="https://cdn.oreillystatic.com/images/sitewide-headers/oreilly_logo_mark_red.svg" onerror="this.src='https://cdn.oreillystatic.com/images/sitewide-headers/oreilly_logo_mark_red_@2x.png'; this.onerror=null;" alt="O'Reilly home"> </a> <p>&copy; 2025, O&rsquo;Reilly Media, Inc. All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.</p> <p><a href="/terms/">Terms of service</a> &bull; <a href="/privacy.html">Privacy policy</a> &bull; <a href="/about/editorial_independence.html">Editorial independence</a><span class="transparencyStatement" style="display:none;"> &bull; <a href="/modern-slavery-act-transparency-statement.html">Modern Slavery Act Statement</a></span></p> </div> </div> </footer> <script src="https://cdn.oreillystatic.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script> <script> $(function() { //Toggle isActive and mobileHidden classes for mobileNavButton $('nav #mobileNavButton').on('click', function() { var expanded = $(this).attr('aria-expanded') === 'true' || false; $(this).attr('aria-expanded', !expanded); $(this).toggleClass("isActive"); $(this).next().toggleClass("mobileHidden"); }); //Toggle isFocused class for keyboard navigation of submenus $('nav #menuList .menuList-subItem a').each(function(navItem) { $(this).on('focus', function() { $(this).parent().parent().toggleClass('isFocused'); }); $(this).on('blur', function() { $(this).parent().parent().toggleClass('isFocused'); }); }); //Toggle mobileHidden class accordian elements $('.mobileAccordian').each(function() { var $btn = $(this).find('button'); var $target = $(this).next(); $btn.on('click', function() { var expanded = $btn.attr('aria-expanded') === 'true' || false; $btn.attr('aria-expanded', !expanded); $target.toggleClass("mobileHidden"); }); }); //Search platform form action function searchSubmit(e) { e.preventDefault(); sParameter = searchForm.search.value; sParameter = encodeURIComponent(sParameter.trim()); sURL = searchForm.action + '?query=' + sParameter; window.location = sURL; //GA event for search dataLayer.push({ 'event': 'eventTracker', 'eventCat':'site search', 'eventAct':'search box', 'eventLbl':'explore our content', 'eventVal':0, 'nonInteraction': 0, }); } const searchForm = document.getElementById('js-searchForm'); searchForm.addEventListener('submit', searchSubmit); //Search button action function showNavSearch(e) { $('.menuList-item-search').addClass('overlay'); $('.menuList-item-search input#search').focus(); } const searchButton = document.getElementById('js-searchButton'); searchButton.addEventListener('click', showNavSearch); //Close search button action function hideNavSearch(e) { $('.menuList-item-search').removeClass('overlay'); } const searchCloseButton = document.getElementById('js-searchCloseButton'); searchCloseButton.addEventListener('click', hideNavSearch); //"Try Now" nav button tracking $('#nav-tryNow').on('click', function() { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'nav', 'eventLbl':'try now', 'eventVal':0, 'nonInteraction': 0, }); }); //"Sign in" nav button tracking $('#nav-signIn').on('click', function() { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'nav', 'eventLbl':'sign in', 'eventVal':0, 'nonInteraction': 0, }); }); //"O'Reilly Platform" nav button tracking $('#nav-platform').on('click', function() { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'nav', 'eventLbl':'oreilly platform', 'eventVal':0, 'nonInteraction': 0, }); }); }); (function(document, history, location) { var HISTORY_SUPPORT = !!(history && history.pushState); FIXED_HEADER_HEIGHT = document.querySelector('body > header').offsetHeight; FIXED_HEADER_HEIGHT += 20; var anchorScrolls = { ANCHOR_REGEX: /^#[^ ]+$/, OFFSET_HEIGHT_PX: FIXED_HEADER_HEIGHT, /** * Establish events, and fix initial scroll position if a hash is provided. */ init: function() { this.scrollToCurrent(); window.addEventListener('hashchange', this.scrollToCurrent.bind(this)); document.body.addEventListener('click', this.delegateAnchors.bind(this)); }, /** * Return the offset amount to deduct from the normal scroll position. * Modify as appropriate to allow for dynamic calculations */ getFixedOffset: function() { return this.OFFSET_HEIGHT_PX; }, /** * If the provided href is an anchor which resolves to an element on the * page, scroll to it. * @param {String} href * @return {Boolean} - Was the href an anchor. */ scrollIfAnchor: function(href, pushToHistory) { var match, rect, anchorOffset; if(!this.ANCHOR_REGEX.test(href)) { return false; } match = document.getElementById(href.slice(1)); if(match) { rect = match.getBoundingClientRect(); anchorOffset = window.pageYOffset + rect.top - this.getFixedOffset(); // Wait 1ms and scroll. It wasn't consistently scrolling immediately. setTimeout(function(){ window.scroll(window.pageXOffset, anchorOffset); }, 1); // Add the state to history as-per normal anchor links if(HISTORY_SUPPORT && pushToHistory) { history.pushState({}, document.title, location.pathname + href); } } return !!match; }, /** * Attempt to scroll to the current location's hash. */ scrollToCurrent: function() { this.scrollIfAnchor(window.location.hash); }, /** * If the click event's target was an anchor, fix the scroll position. */ delegateAnchors: function(e) { var elem = e.target; if( elem.nodeName === 'A' && this.scrollIfAnchor(elem.getAttribute('href'), true) ) { e.preventDefault(); } } }; window.addEventListener( 'DOMContentLoaded', anchorScrolls.init.bind(anchorScrolls) ); })(window.document, window.history, window.location); </script><script type="text/javascript" src="/JCZu2B/PjAB/0M/UO3u/89gk88wG/EiamptbSzwQ0piu7/TnBr/UAYaLSoB/ISMB"></script><link rel="stylesheet" type="text/css" href="/JCZu2B/PjAB/0M/UO3u/89gk88wG/ctamha/VjJe/X0ZzFFE6/YHVY"><script src="/JCZu2B/PjAB/0M/UO3u/89gk88wG/ctamha/VjJe/EwJwaCtA/DGcp" async defer></script><div id="sec-overlay" style="display:none;"><div id="sec-container"></div></div></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10