Files
nexus/sreweekly/articles/38/05-testing-in-production-comes-out-of-the-shadows.html
2026-09-12 17:23:01 +08:00

1209 lines
190 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en-US" class="no-js" itemtype="https://schema.org/Blog" itemscope>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<link rel="icon" href="/images/sdt-favicon.jpeg" type="image/jpeg" /><link rel="shortcut icon" href="/images/sdt-favicon.jpeg" type="image/jpeg" />
<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v26.2) - https://yoast.com/wordpress/plugins/seo/ -->
<title>Testing in production comes out of the shadows - SD Times</title>
<meta name="description" content="It’s been happening for years, but no one ever really talked about it this loudly" />
<link rel="canonical" href="https://sdtimes.com/agile/testing-production-comes-shadows/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Testing in production comes out of the shadows" />
<meta property="og:description" content="It’s been happening for years, but no one ever really talked about it this loudly" />
<meta property="og:url" content="https://sdtimes.com/agile/testing-production-comes-shadows/" />
<meta property="og:site_name" content="SD Times" />
<meta property="article:publisher" content="https://www.facebook.com/SDTimesD2" />
<meta property="article:published_time" content="2016-08-30T13:00:09+00:00" />
<meta property="article:modified_time" content="2016-08-30T19:51:25+00:00" />
<meta property="og:image" content="https://sdtimes.com/wp-content/uploads/2016/08/wine.jpg" />
<meta property="og:image:width" content="660" />
<meta property="og:image:height" content="371" />
<meta property="og:image:type" content="image/jpeg" />
<meta name="author" content="Alex Handy" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content="@sdtimes" />
<meta name="twitter:site" content="@sdtimes" />
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="Alex Handy" />
<meta name="twitter:label2" content="Est. reading time" />
<meta name="twitter:data2" content="15 minutes" />
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://sdtimes.com/agile/testing-production-comes-shadows/#article","isPartOf":{"@id":"https://sdtimes.com/agile/testing-production-comes-shadows/"},"author":[{"@id":"https://sdtimes.com/#/schema/person/4124f28b6c3fdeaf5b0d718fab60fae1"}],"headline":"Testing in production comes out of the shadows","datePublished":"2016-08-30T13:00:09+00:00","dateModified":"2016-08-30T19:51:25+00:00","mainEntityOfPage":{"@id":"https://sdtimes.com/agile/testing-production-comes-shadows/"},"wordCount":3102,"publisher":{"@id":"https://sdtimes.com/#organization"},"image":{"@id":"https://sdtimes.com/agile/testing-production-comes-shadows/#primaryimage"},"thumbnailUrl":"https://sdtimes.com/wp-content/uploads/2016/08/wine.jpg","keywords":["agile","Battery Ventures","Catch Software","HPE","IBM","IoT","Parasoft","pipelines","testing","testing in production","TestPlant"],"articleSection":["In-Depth","Latest News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://sdtimes.com/agile/testing-production-comes-shadows/","url":"https://sdtimes.com/agile/testing-production-comes-shadows/","name":"Testing in production comes out of the shadows - SD Times","isPartOf":{"@id":"https://sdtimes.com/#website"},"primaryImageOfPage":{"@id":"https://sdtimes.com/agile/testing-production-comes-shadows/#primaryimage"},"image":{"@id":"https://sdtimes.com/agile/testing-production-comes-shadows/#primaryimage"},"thumbnailUrl":"https://sdtimes.com/wp-content/uploads/2016/08/wine.jpg","datePublished":"2016-08-30T13:00:09+00:00","dateModified":"2016-08-30T19:51:25+00:00","description":"It’s been happening for years, but no one ever really talked about it this loudly","breadcrumb":{"@id":"https://sdtimes.com/agile/testing-production-comes-shadows/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://sdtimes.com/agile/testing-production-comes-shadows/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://sdtimes.com/agile/testing-production-comes-shadows/#primaryimage","url":"https://sdtimes.com/wp-content/uploads/2016/08/wine.jpg","contentUrl":"https://sdtimes.com/wp-content/uploads/2016/08/wine.jpg","width":660,"height":371},{"@type":"BreadcrumbList","@id":"https://sdtimes.com/agile/testing-production-comes-shadows/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://sdtimes.com/"},{"@type":"ListItem","position":2,"name":"Testing in production comes out of the shadows"}]},{"@type":"WebSite","@id":"https://sdtimes.com/#website","url":"https://sdtimes.com/","name":"SD Times","description":"Software Development News","publisher":{"@id":"https://sdtimes.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://sdtimes.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://sdtimes.com/#organization","name":"SD Times","url":"https://sdtimes.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://sdtimes.com/#/schema/logo/image/","url":"https://4e14d55ed9.nxcli.io/wp-content/uploads/2014/05/deafaultlogo.png","contentUrl":"https://4e14d55ed9.nxcli.io/wp-content/uploads/2014/05/deafaultlogo.png","width":225,"height":90,"caption":"SD Times"},"image":{"@id":"https://sdtimes.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/SDTimesD2","https://x.com/sdtimes","https://www.linkedin.com/company/sdtimes/"]},{"@type":"Person","@id":"https://sdtimes.com/#/schema/person/4124f28b6c3fdeaf5b0d718fab60fae1","name":"Alex Handy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://sdtimes.com/#/schema/person/image/7ca7905ec9250dd93ef31c3c02424cbc","url":"https://secure.gravatar.com/avatar/f0a89e1d6dde230572e4bedb14e746264451c9bf8a3373b9856c1db12c4fe0a7?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/f0a89e1d6dde230572e4bedb14e746264451c9bf8a3373b9856c1db12c4fe0a7?s=96&d=mm&r=g","caption":"Alex Handy"},"description":"Alex Handy is the Senior Editor of Software Development Times.","url":"https://sdtimes.com/author/alex-handy/"}]}</script>
<!-- / Yoast SEO Premium plugin. -->
<link rel='dns-prefetch' href='//a.omappapi.com' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
<link rel="alternate" type="application/rss+xml" title="SD Times &raquo; Feed" href="https://sdtimes.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="SD Times &raquo; Comments Feed" href="https://sdtimes.com/comments/feed/" />
<script>document.documentElement.classList.remove( 'no-js' );</script>
<link rel="alternate" type="application/rss+xml" title="SD Times &raquo; Testing in production comes out of the shadows Comments Feed" href="https://sdtimes.com/agile/testing-production-comes-shadows/feed/" />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://sdtimes.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsdtimes.com%2Fagile%2Ftesting-production-comes-shadows%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://sdtimes.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsdtimes.com%2Fagile%2Ftesting-production-comes-shadows%2F&#038;format=xml" />
<!-- Google Tag Manager --><script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Tag Manager" data-cli-script-type="analytics" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="head">(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-M8DVS3N');</script><!-- End Google Tag Manager --><!-- Google tag (gtag.js) --><script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Tag Manager" data-cli-script-type="analytics" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="head" async src="https://www.googletagmanager.com/gtag/js?id=G-S6PB8V57DG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-S6PB8V57DG');
</script><script async src="https://cse.google.com/cse.js?cx=46707a3f450684a35"></script>
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="head">
window.googletag = window.googletag || {cmd: []};
googletag.cmd.push(function() {
googletag.defineSlot('/67541884/Leaderboard_Top_1', [[970,250],[970,90],[728,90]], 'div-gpt-ad-1466026021929-0').addService(googletag.pubads());
googletag.defineSlot('/67541884/med_rec_1', [[300,600],[300,250]], 'div-gpt-ad-1466026216582-0').addService(googletag.pubads());
googletag.defineSlot('/67541884/med_rec_2', [[300,250]], 'div-gpt-ad-1683824292398-0').addService(googletag.pubads());
googletag.defineSlot('/67541884/leader_1_bottom', [[728,90]], 'div-gpt-ad-1784044189161-0').addService(googletag.pubads());
googletag.defineSlot('/67541884/leader_2_bottom', [[728,90]], 'div-gpt-ad-1466028474085-0').addService(googletag.pubads());
googletag.defineSlot('/67541884/Gutter_left', [[200,1050]], 'div-gpt-ad-1620753161826-0').addService(googletag.pubads());
googletag.defineSlot('/67541884/Gutter_Right', [[300,1050],[200,1050]], 'div-gpt-ad-1621258503965-0').addService(googletag.pubads());
googletag.pubads().setTargeting("cms_posttype", "post");
googletag.pubads().setTargeting("page_slug", "testing-production-comes-shadows");
googletag.pubads().setTargeting("cms_tag", ["agile","battery-ventures","catch-software","hpe","ibm","iot","parasoft","pipelines","testing","testing-in-production"]);
googletag.pubads().setTargeting("cms_category", "in-depth"); googletag.pubads().addEventListener('slotRenderEnded', function(event) {
if (!event.isEmpty) return;
var el = document.getElementById(event.slot.getSlotElementId());
if (!el) return;
var wrapper = el.closest('.sdt-in-article-ad');
if (wrapper) wrapper.style.display = 'none';
});
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
document.addEventListener('DOMContentLoaded', function() {
var seen = {};
document.querySelectorAll('.sdt-in-article-ad [id^="div-gpt-ad"]').forEach(function(el) {
if (seen[el.id]) {
var w = el.closest('.sdt-in-article-ad');
if (w) w.style.display = 'none';
} else {
seen[el.id] = true;
}
});
});
</script>
<script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Testing in production comes out of the shadows",
"description": "It’s been happening for years, but no one ever really talked about it this loudly",
"datePublished": "2016-08-30T09:00:09-04:00",
"dateModified": "2016-08-30T15:51:25-04:00",
"author": {
"@type": "Person",
"name": "Alex Handy"
},
"url": "https://sdtimes.com/agile/testing-production-comes-shadows/",
"mainEntityOfPage": "https://sdtimes.com/agile/testing-production-comes-shadows/",
"publisher": {
"@type": "NewsMediaOrganization",
"name": "SD Times",
"url": "https://sdtimes.com",
"logo": {
"@type": "ImageObject",
"url": "https://sdtimes.com/wp-content/uploads/2014/05/LOGO_SDTimes.png"
}
},
"image": {
"@type": "ImageObject",
"url": "https://sdtimes.com/wp-content/uploads/2016/08/wine.jpg"
}
}</script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Tag Manager" data-cli-script-type="analytics" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="head" async src="https://www.googletagmanager.com/gtag/js?id=UA-846073-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'UA-846073-1\');
</script>
<!-- Google Tag Manager -->
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Tag Manager" data-cli-script-type="analytics" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="head">(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-PMNFL4JT\');</script>
<!-- End Google Tag Manager --><style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id="wp-emoji-styles-inline-css">
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
</style>
<style id="classic-theme-styles-inline-css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--theme-palette-1: var(--global-palette1);--wp--preset--color--theme-palette-2: var(--global-palette2);--wp--preset--color--theme-palette-3: var(--global-palette3);--wp--preset--color--theme-palette-4: var(--global-palette4);--wp--preset--color--theme-palette-5: var(--global-palette5);--wp--preset--color--theme-palette-6: var(--global-palette6);--wp--preset--color--theme-palette-7: var(--global-palette7);--wp--preset--color--theme-palette-8: var(--global-palette8);--wp--preset--color--theme-palette-9: var(--global-palette9);--wp--preset--color--theme-palette-10: var(--global-palette10);--wp--preset--color--theme-palette-11: var(--global-palette11);--wp--preset--color--theme-palette-12: var(--global-palette12);--wp--preset--color--theme-palette-13: var(--global-palette13);--wp--preset--color--theme-palette-14: var(--global-palette14);--wp--preset--color--theme-palette-15: var(--global-palette15);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: var(--global-font-size-small);--wp--preset--font-size--medium: var(--global-font-size-medium);--wp--preset--font-size--large: var(--global-font-size-large);--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--larger: var(--global-font-size-larger);--wp--preset--font-size--xxlarge: var(--global-font-size-xxlarge);--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: var(--global-calc-content-width);--wp--style--global--wide-size: var(--global-calc-wide-content-width); }:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){font-style: inherit;font-weight: inherit;letter-spacing: inherit;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-theme-palette-1-color{color: var(--wp--preset--color--theme-palette-1) !important;}.has-theme-palette-2-color{color: var(--wp--preset--color--theme-palette-2) !important;}.has-theme-palette-3-color{color: var(--wp--preset--color--theme-palette-3) !important;}.has-theme-palette-4-color{color: var(--wp--preset--color--theme-palette-4) !important;}.has-theme-palette-5-color{color: var(--wp--preset--color--theme-palette-5) !important;}.has-theme-palette-6-color{color: var(--wp--preset--color--theme-palette-6) !important;}.has-theme-palette-7-color{color: var(--wp--preset--color--theme-palette-7) !important;}.has-theme-palette-8-color{color: var(--wp--preset--color--theme-palette-8) !important;}.has-theme-palette-9-color{color: var(--wp--preset--color--theme-palette-9) !important;}.has-theme-palette-10-color{color: var(--wp--preset--color--theme-palette-10) !important;}.has-theme-palette-11-color{color: var(--wp--preset--color--theme-palette-11) !important;}.has-theme-palette-12-color{color: var(--wp--preset--color--theme-palette-12) !important;}.has-theme-palette-13-color{color: var(--wp--preset--color--theme-palette-13) !important;}.has-theme-palette-14-color{color: var(--wp--preset--color--theme-palette-14) !important;}.has-theme-palette-15-color{color: var(--wp--preset--color--theme-palette-15) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-theme-palette-1-background-color{background-color: var(--wp--preset--color--theme-palette-1) !important;}.has-theme-palette-2-background-color{background-color: var(--wp--preset--color--theme-palette-2) !important;}.has-theme-palette-3-background-color{background-color: var(--wp--preset--color--theme-palette-3) !important;}.has-theme-palette-4-background-color{background-color: var(--wp--preset--color--theme-palette-4) !important;}.has-theme-palette-5-background-color{background-color: var(--wp--preset--color--theme-palette-5) !important;}.has-theme-palette-6-background-color{background-color: var(--wp--preset--color--theme-palette-6) !important;}.has-theme-palette-7-background-color{background-color: var(--wp--preset--color--theme-palette-7) !important;}.has-theme-palette-8-background-color{background-color: var(--wp--preset--color--theme-palette-8) !important;}.has-theme-palette-9-background-color{background-color: var(--wp--preset--color--theme-palette-9) !important;}.has-theme-palette-10-background-color{background-color: var(--wp--preset--color--theme-palette-10) !important;}.has-theme-palette-11-background-color{background-color: var(--wp--preset--color--theme-palette-11) !important;}.has-theme-palette-12-background-color{background-color: var(--wp--preset--color--theme-palette-12) !important;}.has-theme-palette-13-background-color{background-color: var(--wp--preset--color--theme-palette-13) !important;}.has-theme-palette-14-background-color{background-color: var(--wp--preset--color--theme-palette-14) !important;}.has-theme-palette-15-background-color{background-color: var(--wp--preset--color--theme-palette-15) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-theme-palette-1-border-color{border-color: var(--wp--preset--color--theme-palette-1) !important;}.has-theme-palette-2-border-color{border-color: var(--wp--preset--color--theme-palette-2) !important;}.has-theme-palette-3-border-color{border-color: var(--wp--preset--color--theme-palette-3) !important;}.has-theme-palette-4-border-color{border-color: var(--wp--preset--color--theme-palette-4) !important;}.has-theme-palette-5-border-color{border-color: var(--wp--preset--color--theme-palette-5) !important;}.has-theme-palette-6-border-color{border-color: var(--wp--preset--color--theme-palette-6) !important;}.has-theme-palette-7-border-color{border-color: var(--wp--preset--color--theme-palette-7) !important;}.has-theme-palette-8-border-color{border-color: var(--wp--preset--color--theme-palette-8) !important;}.has-theme-palette-9-border-color{border-color: var(--wp--preset--color--theme-palette-9) !important;}.has-theme-palette-10-border-color{border-color: var(--wp--preset--color--theme-palette-10) !important;}.has-theme-palette-11-border-color{border-color: var(--wp--preset--color--theme-palette-11) !important;}.has-theme-palette-12-border-color{border-color: var(--wp--preset--color--theme-palette-12) !important;}.has-theme-palette-13-border-color{border-color: var(--wp--preset--color--theme-palette-13) !important;}.has-theme-palette-14-border-color{border-color: var(--wp--preset--color--theme-palette-14) !important;}.has-theme-palette-15-border-color{border-color: var(--wp--preset--color--theme-palette-15) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-larger-font-size{font-size: var(--wp--preset--font-size--larger) !important;}.has-xxlarge-font-size{font-size: var(--wp--preset--font-size--xxlarge) !important;}
/*# sourceURL=global-styles-inline-css */
</style>
<link rel='stylesheet' id='cookie-law-info-css' href='https://sdtimes.com/wp-content/plugins/webtoffee-gdpr-cookie-consent/public/css/cookie-law-info-public.css?ver=2.3.8' media='all' />
<link rel='stylesheet' id='cookie-law-info-gdpr-css' href='https://sdtimes.com/wp-content/plugins/webtoffee-gdpr-cookie-consent/public/css/cookie-law-info-gdpr.css?ver=2.3.8' media='all' />
<style id="cookie-law-info-gdpr-inline-css">
.cli-modal-content, .cli-tab-content { background-color: #ffffff; }.cli-privacy-content-text, .cli-modal .cli-modal-dialog, .cli-tab-container p, a.cli-privacy-readmore { color: #000000; }.cli-tab-header { background-color: #f2f2f2; }.cli-tab-header, .cli-tab-header a.cli-nav-link,span.cli-necessary-caption,.cli-switch .cli-slider:after { color: #000000; }.cli-switch .cli-slider:before { background-color: #ffffff; }.cli-switch input:checked + .cli-slider:before { background-color: #ffffff; }.cli-switch .cli-slider { background-color: #e3e1e8; }.cli-switch input:checked + .cli-slider { background-color: #28a745; }.cli-modal-close svg { fill: #000000; }.cli-tab-footer .wt-cli-privacy-accept-all-btn { background-color: #00acad; color: #ffffff}.cli-tab-footer .wt-cli-privacy-accept-btn { background-color: #00acad; color: #ffffff}.cli-tab-header a:before{ border-right: 1px solid #000000; border-bottom: 1px solid #000000; }
/*# sourceURL=cookie-law-info-gdpr-inline-css */
</style>
<link rel='stylesheet' id='megamenu-css' href='https://sdtimes.com/wp-content/uploads/maxmegamenu/style.css?ver=661fbc' media='all' />
<link rel='stylesheet' id='dashicons-css' href='https://sdtimes.com/wp-includes/css/dashicons.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='megamenu-genericons-css' href='https://sdtimes.com/wp-content/plugins/megamenu-pro/icons/genericons/genericons/genericons.css?ver=2.2.9.1' media='all' />
<link rel='stylesheet' id='megamenu-fontawesome-css' href='https://sdtimes.com/wp-content/plugins/megamenu-pro/icons/fontawesome/css/font-awesome.min.css?ver=2.2.9.1' media='all' />
<link rel='stylesheet' id='megamenu-fontawesome5-css' href='https://sdtimes.com/wp-content/plugins/megamenu-pro/icons/fontawesome5/css/all.min.css?ver=2.2.9.1' media='all' />
<link rel='stylesheet' id='kadence-style-css' href='https://sdtimes.com/wp-content/themes/kadence/style.css?ver=7.1' media='all' />
<link rel='stylesheet' id='sdt-child-style-css' href='https://sdtimes.com/wp-content/themes/kadence-child/style.css?ver=1784051429' media='all' />
<link rel='stylesheet' id='sdt-fonts-css' href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;0,700;1,600&#038;family=Lato:wght@400;700&#038;family=Bitter:wght@400;700&#038;display=swap' media='all' />
<link rel='stylesheet' id='sdt-font-awesome-css' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css?ver=4.7.0' media='all' />
<link rel='stylesheet' id='kadence-global-css' href='https://sdtimes.com/wp-content/themes/kadence/assets/css/global.min.css?ver=1782228481' media='all' />
<style id="kadence-global-inline-css">
/* Kadence Base CSS */
:root{--global-palette1:#2B6CB0;--global-palette2:#215387;--global-palette3:#1A202C;--global-palette4:#2D3748;--global-palette5:#4A5568;--global-palette6:#718096;--global-palette7:#EDF2F7;--global-palette8:#F7FAFC;--global-palette9:#ffffff;--global-palette10:oklch(from var(--global-palette1) calc(l + 0.10 * (1 - l)) calc(c * 1.00) calc(h + 180) / 100%);--global-palette11:#13612e;--global-palette12:#1159af;--global-palette13:#b82105;--global-palette14:#f7630c;--global-palette15:#f5a524;--global-palette9rgb:255, 255, 255;--global-palette-highlight:var(--global-palette1);--global-palette-highlight-alt:var(--global-palette2);--global-palette-highlight-alt2:var(--global-palette9);--global-palette-btn-bg:var(--global-palette1);--global-palette-btn-bg-hover:var(--global-palette2);--global-palette-btn:var(--global-palette9);--global-palette-btn-hover:var(--global-palette9);--global-palette-btn-sec-bg:var(--global-palette7);--global-palette-btn-sec-bg-hover:var(--global-palette2);--global-palette-btn-sec:var(--global-palette3);--global-palette-btn-sec-hover:var(--global-palette9);--global-body-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--global-heading-font-family:inherit;--global-primary-nav-font-family:inherit;--global-fallback-font:sans-serif;--global-display-fallback-font:sans-serif;--global-content-width:1290px;--global-content-wide-width:calc(1290px + 230px);--global-content-narrow-width:842px;--global-content-edge-padding:1.5rem;--global-content-boxed-padding:2rem;--global-calc-content-width:calc(1290px - var(--global-content-edge-padding) - var(--global-content-edge-padding) );--wp--style--global--content-size:var(--global-calc-content-width);}.wp-site-blocks{--global-vw:calc( 100vw - ( 0.5 * var(--scrollbar-offset)));}body{background:var(--global-palette8);}body, input, select, optgroup, textarea{font-weight:400;font-size:17px;line-height:1.6;font-family:var(--global-body-font-family);color:var(--global-palette4);}.content-bg, body.content-style-unboxed .site{background:var(--global-palette9);}h1,h2,h3,h4,h5,h6{font-family:var(--global-heading-font-family);}h1{font-weight:700;font-size:32px;line-height:1.5;color:var(--global-palette3);}h2{font-weight:700;font-size:28px;line-height:1.5;color:var(--global-palette3);}h3{font-weight:700;font-size:24px;line-height:1.5;color:var(--global-palette3);}h4{font-weight:700;font-size:22px;line-height:1.5;color:var(--global-palette4);}h5{font-weight:700;font-size:20px;line-height:1.5;color:var(--global-palette4);}h6{font-weight:700;font-size:18px;line-height:1.5;color:var(--global-palette5);}.entry-hero .kadence-breadcrumbs{max-width:1290px;}.site-container, .site-header-row-layout-contained, .site-footer-row-layout-contained, .entry-hero-layout-contained, .comments-area, .alignfull > .wp-block-cover__inner-container, .alignwide > .wp-block-cover__inner-container{max-width:var(--global-content-width);}.content-width-narrow .content-container.site-container, .content-width-narrow .hero-container.site-container{max-width:var(--global-content-narrow-width);}@media all and (min-width: 1520px){.wp-site-blocks .content-container .alignwide{margin-left:-115px;margin-right:-115px;width:unset;max-width:unset;}}@media all and (min-width: 1102px){.content-width-narrow .wp-site-blocks .content-container .alignwide{margin-left:-130px;margin-right:-130px;width:unset;max-width:unset;}}.content-style-boxed .wp-site-blocks .entry-content .alignwide{margin-left:calc( -1 * var( --global-content-boxed-padding ) );margin-right:calc( -1 * var( --global-content-boxed-padding ) );}.content-area{margin-top:5rem;margin-bottom:5rem;}@media all and (max-width: 1024px){.content-area{margin-top:3rem;margin-bottom:3rem;}}@media all and (max-width: 767px){.content-area{margin-top:2rem;margin-bottom:2rem;}}@media all and (max-width: 1024px){:root{--global-content-boxed-padding:2rem;}}@media all and (max-width: 767px){:root{--global-content-boxed-padding:1.5rem;}}.entry-content-wrap{padding:2rem;}@media all and (max-width: 1024px){.entry-content-wrap{padding:2rem;}}@media all and (max-width: 767px){.entry-content-wrap{padding:1.5rem;}}.entry.single-entry{box-shadow:0px 15px 15px -10px rgba(0,0,0,0.05);}.entry.loop-entry{box-shadow:0px 15px 15px -10px rgba(0,0,0,0.05);}.loop-entry .entry-content-wrap{padding:2rem;}@media all and (max-width: 1024px){.loop-entry .entry-content-wrap{padding:2rem;}}@media all and (max-width: 767px){.loop-entry .entry-content-wrap{padding:1.5rem;}}.primary-sidebar.widget-area .widget{margin-bottom:1.5em;color:var(--global-palette4);}.primary-sidebar.widget-area .widget-title{font-weight:700;font-size:20px;line-height:1.5;color:var(--global-palette3);}button, .button, .wp-block-button__link, input[type="button"], input[type="reset"], input[type="submit"], .fl-button, .elementor-button-wrapper .elementor-button, .wc-block-components-checkout-place-order-button, .wc-block-cart__submit{box-shadow:0px 0px 0px -7px rgba(0,0,0,0);}button:hover, button:focus, button:active, .button:hover, .button:focus, .button:active, .wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active, input[type="button"]:hover, input[type="button"]:focus, input[type="button"]:active, input[type="reset"]:hover, input[type="reset"]:focus, input[type="reset"]:active, input[type="submit"]:hover, input[type="submit"]:focus, input[type="submit"]:active, .elementor-button-wrapper .elementor-button:hover, .elementor-button-wrapper .elementor-button:focus, .elementor-button-wrapper .elementor-button:active, .wc-block-cart__submit:hover{box-shadow:0px 15px 25px -7px rgba(0,0,0,0.1);}.kb-button.kb-btn-global-outline.kb-btn-global-inherit{padding-top:calc(px - 2px);padding-right:calc(px - 2px);padding-bottom:calc(px - 2px);padding-left:calc(px - 2px);}@media all and (min-width: 1025px){.transparent-header .entry-hero .entry-hero-container-inner{padding-top:calc(80px + 0px);}}.entry-hero.post-hero-section .entry-header{min-height:200px;}
/* Kadence Header CSS */
@media all and (max-width: 1024px){.mobile-transparent-header #masthead{position:absolute;left:0px;right:0px;z-index:100;}.kadence-scrollbar-fixer.mobile-transparent-header #masthead{right:var(--scrollbar-offset,0);}.mobile-transparent-header #masthead, .mobile-transparent-header .site-top-header-wrap .site-header-row-container-inner, .mobile-transparent-header .site-main-header-wrap .site-header-row-container-inner, .mobile-transparent-header .site-bottom-header-wrap .site-header-row-container-inner{background:transparent;}.site-header-row-tablet-layout-fullwidth, .site-header-row-tablet-layout-standard{padding:0px;}}@media all and (min-width: 1025px){.transparent-header #masthead{position:absolute;left:0px;right:0px;z-index:100;}.transparent-header.kadence-scrollbar-fixer #masthead{right:var(--scrollbar-offset,0);}.transparent-header #masthead, .transparent-header .site-top-header-wrap .site-header-row-container-inner, .transparent-header .site-main-header-wrap .site-header-row-container-inner, .transparent-header .site-bottom-header-wrap .site-header-row-container-inner{background:transparent;}}.site-branding a.brand img{max-width:200px;}.site-branding a.brand img.svg-logo-image{width:200px;}.site-branding{padding:0px 0px 0px 0px;}.site-branding .site-title{font-weight:700;font-size:26px;line-height:1.2;color:var(--global-palette3);}#masthead, #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start):not(.site-header-row-container):not(.site-main-header-wrap), #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner{background:#ffffff;}.site-main-header-inner-wrap{min-height:80px;}.site-bottom-header-inner-wrap{min-height:0px;}.header-navigation[class*="header-navigation-style-underline"] .header-menu-container.primary-menu-container>ul>li>a:after{width:calc( 100% - 1.2em);}.main-navigation .primary-menu-container > ul > li.menu-item > a{padding-left:calc(1.2em / 2);padding-right:calc(1.2em / 2);padding-top:0.6em;padding-bottom:0.6em;color:var(--global-palette5);}.main-navigation .primary-menu-container > ul > li.menu-item .dropdown-nav-special-toggle{right:calc(1.2em / 2);}.main-navigation .primary-menu-container > ul > li.menu-item > a:hover{color:var(--global-palette-highlight);}.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a{color:var(--global-palette3);}.header-navigation .header-menu-container ul ul.sub-menu, .header-navigation .header-menu-container ul ul.submenu{background:var(--global-palette3);box-shadow:0px 2px 13px 0px rgba(0,0,0,0.1);}.header-navigation .header-menu-container ul ul li.menu-item, .header-menu-container ul.menu > li.kadence-menu-mega-enabled > ul > li.menu-item > a{border-bottom:1px solid rgba(255,255,255,0.1);border-radius:0px 0px 0px 0px;}.header-navigation .header-menu-container ul ul li.menu-item > a{width:200px;padding-top:1em;padding-bottom:1em;color:var(--global-palette8);font-size:12px;}.header-navigation .header-menu-container ul ul li.menu-item > a:hover{color:var(--global-palette9);background:var(--global-palette4);border-radius:0px 0px 0px 0px;}.header-navigation .header-menu-container ul ul li.menu-item.current-menu-item > a{color:var(--global-palette9);background:var(--global-palette4);border-radius:0px 0px 0px 0px;}.mobile-toggle-open-container .menu-toggle-open, .mobile-toggle-open-container .menu-toggle-open:focus{color:var(--global-palette5);padding:0.4em 0.6em 0.4em 0.6em;font-size:14px;}.mobile-toggle-open-container .menu-toggle-open.menu-toggle-style-bordered{border:1px solid currentColor;}.mobile-toggle-open-container .menu-toggle-open .menu-toggle-icon{font-size:20px;}.mobile-toggle-open-container .menu-toggle-open:hover, .mobile-toggle-open-container .menu-toggle-open:focus-visible{color:var(--global-palette-highlight);}.mobile-navigation ul li{font-size:14px;}.mobile-navigation ul li a{padding-top:1em;padding-bottom:1em;}.mobile-navigation ul li > a, .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap{color:var(--global-palette8);}.mobile-navigation ul li.current-menu-item > a, .mobile-navigation ul li.current-menu-item.menu-item-has-children > .drawer-nav-drop-wrap{color:var(--global-palette-highlight);}.mobile-navigation ul li.menu-item-has-children .drawer-nav-drop-wrap, .mobile-navigation ul li:not(.menu-item-has-children) a{border-bottom:1px solid rgba(255,255,255,0.1);}.mobile-navigation:not(.drawer-navigation-parent-toggle-true) ul li.menu-item-has-children .drawer-nav-drop-wrap button{border-left:1px solid rgba(255,255,255,0.1);}#mobile-drawer .drawer-header .drawer-toggle{padding:0.6em 0.15em 0.6em 0.15em;font-size:24px;}
/* Kadence Footer CSS */
.site-middle-footer-wrap .site-footer-row-container-inner{background:#333333;}.site-middle-footer-inner-wrap{padding-top:30px;padding-bottom:30px;grid-column-gap:30px;grid-row-gap:30px;}.site-middle-footer-inner-wrap .widget{margin-bottom:30px;}.site-middle-footer-inner-wrap .site-footer-section:not(:last-child):after{right:calc(-30px / 2);}.site-bottom-footer-wrap .site-footer-row-container-inner{background:#222222;}.site-bottom-footer-inner-wrap{padding-top:30px;padding-bottom:30px;grid-column-gap:30px;}.site-bottom-footer-inner-wrap .widget{margin-bottom:30px;}.site-bottom-footer-inner-wrap .site-footer-section:not(:last-child):after{right:calc(-30px / 2);}#colophon .footer-navigation .footer-menu-container > ul > li > a{padding-left:calc(1.2em / 2);padding-right:calc(1.2em / 2);padding-top:calc(0.6em / 2);padding-bottom:calc(0.6em / 2);color:var(--global-palette5);}#colophon .footer-navigation .footer-menu-container > ul li a:hover{color:var(--global-palette-highlight);}#colophon .footer-navigation .footer-menu-container > ul li.current-menu-item > a{color:var(--global-palette3);}
/*# sourceURL=kadence-global-inline-css */
</style>
<link rel='stylesheet' id='kadence-header-css' href='https://sdtimes.com/wp-content/themes/kadence/assets/css/header.min.css?ver=1782228481' media='all' />
<link rel='stylesheet' id='kadence-content-css' href='https://sdtimes.com/wp-content/themes/kadence/assets/css/content.min.css?ver=1782228481' media='all' />
<link rel='stylesheet' id='kadence-comments-css' href='https://sdtimes.com/wp-content/themes/kadence/assets/css/comments.min.css?ver=1782228481' media='all' />
<link rel='stylesheet' id='kadence-sidebar-css' href='https://sdtimes.com/wp-content/themes/kadence/assets/css/sidebar.min.css?ver=1782228481' media='all' />
<link rel='stylesheet' id='kadence-related-posts-css' href='https://sdtimes.com/wp-content/themes/kadence/assets/css/related-posts.min.css?ver=1782228481' media='all' />
<link rel='stylesheet' id='kad-splide-css' href='https://sdtimes.com/wp-content/themes/kadence/assets/css/kadence-splide.min.css?ver=1782228481' media='all' />
<link rel='stylesheet' id='kadence-footer-css' href='https://sdtimes.com/wp-content/themes/kadence/assets/css/footer.min.css?ver=1782228481' media='all' />
<link rel='stylesheet' id='enlighterjs-css' href='https://sdtimes.com/wp-content/plugins/enlighter/cache/enlighterjs.min.css?ver=TCJ3uu4ziAop2Sw' media='all' />
<link rel='stylesheet' id='srpw-style-css' href='https://sdtimes.com/wp-content/plugins/sdtimes-recent-posts-widget/assets/css/srpw-frontend.css?ver=7.1' media='all' />
<script id="jquery-core-js" src="https://sdtimes.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
<script id="jquery-migrate-js" src="https://sdtimes.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
<script id="cookie-law-info-js-extra">
var Cli_Data = {"nn_cookie_ids":["vuid","WMF-Last-Access","__atuvc","__atuvs","__cf_bm","ac_enable_tracking","_ga_S6PB8V57DG","_ga","uvc","__gads","_jsuid","CONSENT","at-rand","iutk","yt-remote-device-id","yt-remote-connected-devices","mc","yt.innertube::requests","yt.innertube::nextId","__Host-GAPS","_pxhd","_gid","_gat_gtag_UA_846073_1","JSESSIONID","cf_use_ob","PHPSESSID","YSC","VISITOR_INFO1_LIVE","test_cookie","IDE","loc","incap_ses_451_2783402","Gyazo_cfwoker","__Secure-YEC","ustream-guest","f5avraaaaaaaaaaaaaaaa_session_","_techvalidate_session","CookieLawInfoConsent","GoogleAdServingTest","m","loglevel","TS011605d9","visid_incap_2783402","nlbi_2783402","incap_ses_769_2783402","cf_7166_id","cf_7166_person_last_update","prism_252377639","__gpi","_heatmaps_g2g_100754890","xtc"],"non_necessary_cookies":{"necessary":["JSESSIONID","cf_use_ob","PHPSESSID","CookieLawInfoConsent","cookielawinfo-checkbox-advertisement"],"functional":["__atuvc","__atuvs","__cf_bm"],"performance":["ac_enable_tracking"],"analytics":["vuid","WMF-Last-Access","_ga_S6PB8V57DG","_ga","uvc","__gads","_jsuid","CONSENT","at-rand","iutk","_gid","_gat_gtag_UA_846073_1"],"advertisement":["yt-remote-device-id","yt-remote-connected-devices","mc","yt.innertube::requests","yt.innertube::nextId","__Host-GAPS","_pxhd","YSC","VISITOR_INFO1_LIVE","test_cookie","IDE","loc"],"others":["incap_ses_451_2783402","Gyazo_cfwoker","__Secure-YEC","ustream-guest","f5avraaaaaaaaaaaaaaaa_session_","_techvalidate_session","GoogleAdServingTest","m","loglevel","TS011605d9","visid_incap_2783402","nlbi_2783402","incap_ses_769_2783402","cf_7166_id","cf_7166_person_last_update","prism_252377639","__gpi","_heatmaps_g2g_100754890","xtc"]},"cookielist":{"necessary":{"id":16342,"status":true,"priority":0,"title":"Necessary","strict":true,"default_state":false,"ccpa_optout":false,"loadonstart":false},"functional":{"id":16343,"status":true,"priority":5,"title":"Functional","strict":false,"default_state":false,"ccpa_optout":false,"loadonstart":false},"performance":{"id":16344,"status":true,"priority":4,"title":"Performance","strict":false,"default_state":false,"ccpa_optout":false,"loadonstart":false},"analytics":{"id":16345,"status":true,"priority":3,"title":"Analytics","strict":false,"default_state":true,"ccpa_optout":false,"loadonstart":false},"advertisement":{"id":16346,"status":true,"priority":2,"title":"Advertisement","strict":false,"default_state":false,"ccpa_optout":false,"loadonstart":false},"others":{"id":16347,"status":true,"priority":1,"title":"Others","strict":false,"default_state":false,"ccpa_optout":false,"loadonstart":false}},"ajax_url":"https://sdtimes.com/wp-admin/admin-ajax.php","current_lang":"en","security":"00b93720ea","eu_countries":["GB"],"geoIP":"enabled","use_custom_geolocation_api":"","custom_geolocation_api":"https://geoip.cookieyes.com/geoip/checker/result.php","consentVersion":"2","strictlyEnabled":["necessary","obligatoire"],"cookieDomain":"","privacy_length":"250","ccpaEnabled":"","ccpaRegionBased":"","ccpaBarEnabled":"","ccpaType":"gdpr","triggerDomRefresh":"","secure_cookies":""};
var log_object = {"ajax_url":"https://sdtimes.com/wp-admin/admin-ajax.php"};
//# sourceURL=cookie-law-info-js-extra
</script>
<script id="cookie-law-info-js" src="https://sdtimes.com/wp-content/plugins/webtoffee-gdpr-cookie-consent/public/js/cookie-law-info-public.js?ver=2.3.8"></script>
<link rel="https://api.w.org/" href="https://sdtimes.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://sdtimes.com/wp-json/wp/v2/posts/20495" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://sdtimes.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 7.1" />
<link rel='shortlink' href='https://sdtimes.com/?p=20495' />
<script async src="https://js.convertflow.co/production/websites/7166.js"></script><meta http-equiv="refresh" content="500" /> <script type="text/javascript" >
function wpmautic_send(){
if ('undefined' === typeof mt) {
if (console !== undefined) {
console.warn('WPMautic: mt not defined. Did you load mtc.js?');
}
return false;
}
// Add the mt('send', 'pageview') script with optional tracking attributes.
mt('send', 'pageview', {"tags":"agile,Battery Ventures,Catch Software,HPE,IBM,IoT,Parasoft,pipelines,testing,testing in production,TestPlant"});
}
(function(w,d,t,u,n,a,m){w['MauticTrackingObject']=n;
w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)},a=d.createElement(t),
m=d.getElementsByTagName(t)[0];a.async=1;a.src=u;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://d2emerge-u68634.vm.elestio.app:443/mtc.js','mt');
wpmautic_send();
</script>
<noscript><style>.lazyload[data-src]{display:none !important;}</style></noscript><style>.lazyload{background-image:none !important;}.lazyload:before{background-image:none !important;}</style><!-- Clicky Web Analytics - https://clicky.com, WordPress Plugin by Yoast - https://yoast.com/wordpress/plugins/clicky/ --><script type='text/javascript'>
function clicky_gc(name) {
var ca = document.cookie.split(';');
for (var i in ca) {
if (ca[i].indexOf(name + '=') != -1) {
return decodeURIComponent(ca[i].split('=')[1]);
}
}
return '';
}
var username_check = clicky_gc('"comment_author_1ea0be0111e3c4a55d44c1d0fc560697"');
if (username_check) var clicky_custom_session = {username: username_check};
</script>
<script>
var clicky_site_ids = clicky_site_ids || [];
clicky_site_ids.push("100754890");
</script>
<script async src="//static.getclicky.com/js"></script><link rel="icon" href="https://sdtimes.com/wp-content/uploads/2019/06/bnGl7Am3_400x400-50x50.jpeg" sizes="32x32" />
<link rel="icon" href="https://sdtimes.com/wp-content/uploads/2019/06/bnGl7Am3_400x400-300x300.jpeg" sizes="192x192" />
<link rel="apple-touch-icon" href="https://sdtimes.com/wp-content/uploads/2019/06/bnGl7Am3_400x400-180x180.jpeg" />
<meta name="msapplication-TileImage" content="https://sdtimes.com/wp-content/uploads/2019/06/bnGl7Am3_400x400-300x300.jpeg" />
<style type="text/css">/** Mega Menu CSS: fs **/</style>
<link rel='stylesheet' id='cookie-law-info-table-css' href='https://sdtimes.com/wp-content/plugins/webtoffee-gdpr-cookie-consent/public/css/cookie-law-info-table.css?ver=2.3.8' media='all' />
</head>
<body class="wp-singular post-template-default single single-post postid-20495 single-format-standard wp-custom-logo wp-embed-responsive wp-theme-kadence wp-child-theme-kadence-child mega-menu-primary has-sticky-sidebar footer-on-bottom hide-focus-outline link-style-standard has-sidebar content-title-style-normal content-width-normal content-style-boxed content-vertical-padding-show non-transparent-header mobile-non-transparent-header">
<div id="wrapper" class="site wp-site-blocks">
<a class="skip-link screen-reader-text scroll-ignore" href="#main">Skip to content</a>
<header id="masthead" class="site-header" role="banner" itemtype="https://schema.org/WPHeader" itemscope>
<div id="main-header" class="site-header-wrap">
<div class="site-header-inner-wrap">
<div class="site-header-upper-wrap">
<div class="site-header-upper-inner-wrap">
<div class="site-main-header-wrap site-header-row-container site-header-focus-item site-header-row-layout-standard" data-section="kadence_customizer_header_main">
<div class="site-header-row-container-inner">
<div class="site-container">
<div class="site-main-header-inner-wrap site-header-row site-header-row-only-center-column site-header-row-center-column">
<div class="site-header-main-section-center site-header-section site-header-section-center">
<div class="site-header-item site-header-focus-item" data-section="title_tagline">
<div class="site-branding branding-layout-standard"><a class="brand has-logo-image" href="https://sdtimes.com/" rel="home"><img width="233" height="76" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOkAAABMAQAAAACgna0TAAAAAnRSTlMAAHaTzTgAAAAZSURBVEjH7cGBAAAAAMOg+VMf4QJVAQDwDAk0AAFJkMyRAAAAAElFTkSuQmCC" class="custom-logo lazyload" alt="SD Times" decoding="async" data-src="https://sdtimes.com/wp-content/uploads/2014/05/LOGO_SDTimes.png" data-eio-rwidth="233" data-eio-rheight="76" /><noscript><img width="233" height="76" src="https://sdtimes.com/wp-content/uploads/2014/05/LOGO_SDTimes.png" class="custom-logo" alt="SD Times" decoding="async" data-eio="l" /></noscript><div class="site-title-wrap"><p class="site-title">SD Times</p></div></a></div></div><!-- data-section="title_tagline" -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="site-bottom-header-wrap site-header-row-container site-header-focus-item site-header-row-layout-standard" data-section="kadence_customizer_header_bottom">
<div class="site-header-row-container-inner">
<div class="site-container">
<div class="site-bottom-header-inner-wrap site-header-row site-header-row-has-sides site-header-row-center-column">
<div class="site-header-bottom-section-left site-header-section site-header-section-left">
<div class="site-header-item site-header-focus-item" data-section="kadence_customizer_header_html">
<div class="header-html inner-link-style-normal"><div class="header-html-inner"><div class="sdt-search-wrap" onclick="event.stopPropagation()"><button class="sdt-search-open" aria-label="Search" onclick="var f=document.getElementById('sdtSearchFly');f.classList.toggle('open');if(f.classList.contains('open')){f.querySelector('input').focus();}"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg></button></p>
<div class="sdt-search-fly" id="sdtSearchFly">
<form role="search" method="get" action="/" class="sdt-search-form"><input class="sdt-search-input" type="search" name="s" placeholder="Search SD Times\xe2\x80\xa6" autocomplete="off" aria-label="Search"><button class="sdt-search-submit" type="submit" aria-label="Submit search"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg></button></form>
</div>
</div>
<p><script>document.addEventListener("click",function(){var f=document.getElementById("sdtSearchFly");if(f)f.classList.remove("open");});</script></p>
</div></div></div><!-- data-section="header_html" -->
<div class="site-header-bottom-section-left-center site-header-section site-header-section-left-center">
</div>
</div>
<div class="site-header-bottom-section-center site-header-section site-header-section-center">
<div class="site-header-item site-header-focus-item site-header-item-main-navigation header-navigation-layout-stretch-false header-navigation-layout-fill-stretch-false" data-section="kadence_customizer_primary_navigation">
<nav id="site-navigation" class="main-navigation header-navigation hover-to-open nav--toggle-sub header-navigation-style-standard header-navigation-dropdown-animation-none" role="navigation" aria-label="Primary">
<div class="primary-menu-container header-menu-container">
<div id="mega-menu-wrap-primary" class="mega-menu-wrap"><div class="mega-menu-toggle"><div class="mega-toggle-blocks-left"></div><div class="mega-toggle-blocks-center"></div><div class="mega-toggle-blocks-right"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-0' id='mega-toggle-block-0'><button aria-label="Toggle Menu" class="mega-toggle-animated mega-toggle-animated-slider" type="button" aria-expanded="false">
<span class="mega-toggle-animated-box">
<span class="mega-toggle-animated-inner"></span>
</span>
</button></div></div></div><ul id="mega-menu-primary" class="mega-menu max-mega-menu mega-menu-horizontal mega-no-js" data-event="hover_intent" data-effect="fade_up" data-effect-speed="200" data-effect-mobile="slide_right" data-effect-speed-mobile="200" data-mobile-force-width="false" data-second-click="go" data-document-click="collapse" data-vertical-behaviour="standard" data-breakpoint="768" data-unbind="true" data-mobile-state="collapse_all" data-mobile-direction="vertical" data-hover-intent-timeout="300" data-hover-intent-interval="100"><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-52855" id="mega-menu-item-52855"><a class="mega-menu-link" href="https://sdtimes.com/subscribe/" tabindex="0">Subscribe</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-60552" id="mega-menu-item-60552"><a class="mega-menu-link" href="https://tools.sdtimes.com/landscape" tabindex="0">Tools Landscape</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-52737" id="mega-menu-item-52737"><a class="mega-menu-link" href="/learning-center/" aria-expanded="false" tabindex="0">Resources<span class="mega-indicator" aria-hidden="true"></span></a>
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-60553" id="mega-menu-item-60553"><a class="mega-menu-link" href="https://sdtimes.com/sd-times-100/ai-is-changing-everything-including-the-sd-times-100/">SD Times 100</a></li><li class="mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-53034" id="mega-menu-item-53034"><a class="mega-menu-link" href="https://sdtimes.com/category/sponsored/">Sponsored Articles</a></li><li class="mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-59422" id="mega-menu-item-59422"><a class="mega-menu-link" href="https://sdtimes.com/data-quality-sponsor-showcase-melissa/">Data Quality Sponsor Showcase: Melissa</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-52740" id="mega-menu-item-52740"><a target="_blank" class="mega-menu-link" href="https://www.youtube.com/@sdtimes2000">YouTube</a></li></ul>
</li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-52741" id="mega-menu-item-52741"><a class="mega-menu-link" href="#" aria-expanded="false" tabindex="0">SD Times Live!<span class="mega-indicator" aria-hidden="true"></span></a>
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-sections mega-menu-item-52742" id="mega-menu-item-52742"><a class="mega-menu-link" href="https://sdtimes.com/sections/webinars/">Webinars</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-52743" id="mega-menu-item-52743"><a target="_blank" class="mega-menu-link" href="http://whatthedev.buzzsprout.com/673192">Podcasts</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-menu-item-60554" id="mega-menu-item-60554"><a class="mega-menu-link" href="#" aria-expanded="false">Supercasts<span class="mega-indicator" aria-hidden="true"></span></a>
<ul class="mega-sub-menu">
<li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-60555" id="mega-menu-item-60555"><a class="mega-menu-link" href="https://event.sdtimes.com/ai-supercast-test-aug-6">Aug 6</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-60556" id="mega-menu-item-60556"><a class="mega-menu-link" href="https://event.sdtimes.com/supercast-nov-5">Nov 5</a></li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-60557" id="mega-menu-item-60557"><a class="mega-menu-link" href="https://event.sdtimes.com/supercast-test-may">May</a></li> </ul>
</li></ul>
</li><li class="mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-59080" id="mega-menu-item-59080"><a class="mega-menu-link" href="https://sdtimes.com/dev/" tabindex="0">Developers</a></li></ul></div> </div>
</nav><!-- #site-navigation -->
</div><!-- data-section="primary_navigation" -->
</div>
<div class="site-header-bottom-section-right site-header-section site-header-section-right">
<div class="site-header-bottom-section-right-center site-header-section site-header-section-right-center">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="mobile-header" class="site-mobile-header-wrap">
<div class="site-header-inner-wrap">
<div class="site-header-upper-wrap">
<div class="site-header-upper-inner-wrap">
</div>
</div>
</div>
</div>
</header><!-- #masthead -->
<nav class="sdt-topic-nav" aria-label="Topics"><div class="sdt-topic-nav__inner"><ul class="sdt-topic-nav__menu"><li class="sdt-topic-nav__item has-dropdown"><a href="/tag/artificial-intelligence/">AI</a><ul class="sdt-topic-nav__dropdown" aria-hidden="true"><li class="is-pillar"><a href="/agentic-ai/">Agentic AI</a></li><li class="is-pillar"><a href="/ai-coding-assistants/">AI Coding Assistants</a></li><li class="is-pillar"><a href="/ai-agent-governance/">AI Agent Governance</a></li><li class="sdt-topic-nav__dropdown-divider" role="separator"></li><li class="sdt-topic-nav__dropdown-label">Latest Coverage</li><li class="is-tag"><a href="/tag/generative-ai/">Generative AI</a></li><li class="is-tag"><a href="/tag/llm/">LLMs</a></li></ul></li><li class="sdt-topic-nav__item has-dropdown"><a href="/tag/security/">Security</a><ul class="sdt-topic-nav__dropdown" aria-hidden="true"><li class="is-pillar"><a href="/devsecops/">DevSecOps</a></li><li class="is-pillar"><a href="/software-supply-chain-security/">Supply Chain Security</a></li><li class="is-pillar"><a href="/ai-generated-code-security/">AI-Generated Code Security</a></li><li class="sdt-topic-nav__dropdown-divider" role="separator"></li><li class="sdt-topic-nav__dropdown-label">Latest Coverage</li><li class="is-tag"><a href="/tag/appsec/">Application Security</a></li></ul></li><li class="sdt-topic-nav__item has-dropdown"><a href="/tag/devops/">DevOps</a><ul class="sdt-topic-nav__dropdown" aria-hidden="true"><li class="is-pillar"><a href="/platform-engineering-2/">Platform Engineering</a></li><li class="is-pillar"><a href="/ci-cd/">CI/CD</a></li><li class="is-pillar"><a href="/observability-vs-monitoring/">Observability vs. Monitoring</a></li><li class="is-pillar"><a href="/cloud-native-architecture/">Cloud-Native Architecture</a></li><li class="is-pillar"><a href="/software-engineering-intelligence/">Software Eng. Intelligence</a></li><li class="sdt-topic-nav__dropdown-divider" role="separator"></li><li class="sdt-topic-nav__dropdown-label">Latest Coverage</li><li class="is-tag"><a href="/tag/kubernetes/">Kubernetes</a></li></ul></li><li class="sdt-topic-nav__item has-dropdown"><a href="/tag/software-testing/">Testing</a><ul class="sdt-topic-nav__dropdown" aria-hidden="true"><li class="is-pillar"><a href="/software-testing-quality/">Software Testing &amp; QA</a></li><li class="sdt-topic-nav__dropdown-divider" role="separator"></li><li class="sdt-topic-nav__dropdown-label">Latest Coverage</li><li class="is-tag"><a href="/tag/test-automation/">Test Automation</a></li><li class="is-tag"><a href="/tag/continuous-testing/">Continuous Testing</a></li><li class="is-tag"><a href="/tag/performance-testing/">Performance Testing</a></li></ul></li><li class="sdt-topic-nav__item has-dropdown"><a href="/tag/agile/">Teams</a><ul class="sdt-topic-nav__dropdown" aria-hidden="true"><li class="is-pillar"><a href="/software-development-manager/">Software Dev Manager</a></li><li class="is-pillar"><a href="/agile-scrum/">Agile &amp; Scrum</a></li><li class="sdt-topic-nav__dropdown-divider" role="separator"></li><li class="sdt-topic-nav__dropdown-label">Latest Coverage</li><li class="is-tag"><a href="/tag/productivity/">Productivity</a></li><li class="is-tag"><a href="/tag/collaboration/">Collaboration</a></li></ul></li></ul></div></nav>
<main id="inner-wrap" class="wrap kt-clear" role="main">
<div id="primary" class="content-area">
<div class="content-container site-container">
<div id="main" class="site-main">
<div class="content-wrap">
<div class="post-thumbnail article-post-thumbnail kadence-thumbnail-position-behind alignwide kadence-thumbnail-ratio-2-3">
<div class="post-thumbnail-inner">
<img width="660" height="371" src="https://sdtimes.com/wp-content/uploads/2016/08/wine.jpg" class="post-top-featured wp-post-image" alt="" decoding="async" fetchpriority="high" /> </div>
</div><!-- .post-thumbnail -->
<article id="post-20495" class="entry content-bg single-entry post-20495 post type-post status-publish format-standard has-post-thumbnail hentry category-in-depth category-latest-news tag-agile tag-battery-ventures tag-catch-software tag-hpe tag-ibm tag-iot tag-parasoft tag-pipelines tag-testing tag-testing-in-production tag-testplant">
<div class="entry-content-wrap">
<header class="entry-header post-title title-align-inherit title-tablet-align-inherit title-mobile-align-inherit">
<div class="entry-taxonomies">
<span class="category-links term-links category-style-normal">
<a href="https://sdtimes.com/category/in-depth/" rel="tag">In-Depth</a> | <a href="https://sdtimes.com/category/latest-news/" rel="tag">Latest News</a> </span>
</div><!-- .entry-taxonomies -->
<h1 class="entry-title">Testing in production comes out of the shadows</h1><div class="entry-meta entry-meta-divider-dot">
<span class="posted-by"><span class="meta-label">By</span><span class="author vcard"><a class="url fn n" href="https://sdtimes.com/author/alex-handy/">Alex Handy</a></span></span> <span class="posted-on">
<time class="entry-date published" datetime="2016-08-30T09:00:09-04:00" itemprop="datePublished">August 30, 2016</time><time class="updated" datetime="2016-08-30T15:51:25-04:00" itemprop="dateModified">August 30, 2016</time> </span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-content single-content">
<div class="sdt-article-top-lb banner_ad article_top_leaderboard"><script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
(function() {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL ? 'https:' : 'http:') +
'//www.googletagservices.com/tag/js/gpt.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(gads, node);
})();
</script>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
googletag.cmd.push(function() {
googletag.defineSlot('/67541884/Leaderboard_Top_1', [[970,250],[970,90],[728, 90]], 'div-gpt-ad-1466026021929-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<!-- /67541884/Leaderboard_Top_1 -->
<div id='div-gpt-ad-1466026021929-0'>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1466026021929-0'); });
</script>
</div></div><div class="sd-post-top-html"><script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body" type=\'text/javascript\'>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
(function() {
var gads = document.createElement(\'script\');
gads.async = true;
gads.type = \'text/javascript\';
var useSSL = \'https:\' == document.location.protocol;
gads.src = (useSSL ? \'https:\' : \'http:\') +
\'//www.googletagservices.com/tag/js/gpt.js\';
var node = document.getElementsByTagName(\'script\')[0];
node.parentNode.insertBefore(gads, node);
})();
</script>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body" type=\'text/javascript\'>
googletag.cmd.push(function() {
googletag.defineSlot(\'/67541884/Leaderboard_Top_1\', [[970,250],[970,90],[728, 90]], \'div-gpt-ad-1466026021929-0\').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<!-- /67541884/Leaderboard_Top_1 -->
<div id=\'div-gpt-ad-1466026021929-0\'>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body" type=\'text/javascript\'>
googletag.cmd.push(function() { googletag.display(\'div-gpt-ad-1466026021929-0\'); });
</script>
</div>
<script src="//event.sdtimes.com/focus/2.js" type="text/javascript" charset="utf-8" async="async"></script></div><p>For enterprise testing organizations, the world of software development is somewhat similar to the world of legalized marijuana. There’s a saying in the legal pot world: “Out of the shadows and into the light.” This is used to describe the way users of illegal weed are now able to come out of hiding and talk about their usage in public without fear of reprisal.</p>
<p>So, too, is it with testing in production. It’s been happening for years, decades even. And yet the idea of talking about testing in production in front of the businesspeople, the operations team, and the CIO seemed like madness.</p>
<p><strong>(Related: <a href="https://sdtimes.com/dont-let-testing-stop-agility/">Don&#8217;t let testing stop your agility</a>)</strong></p>
<p>Testing in production, the traditional wisdom went, meant that the QA team had failed in its goals before shipping. If the tests were run in production, why weren’t they run before production? Why didn’t this get done during development?</p>
<p>In truth, however, it’s extremely difficult to test every scenario, every idea, every possible area of code brittleness when you’re under a deadline. Even large enterprises often struggle to get all their tests done before shipping.</p>
<p>And yet, this is not the real thrust of the testing in production movement. Frankly, it’s more about extending the testing beyond development, rather than about grabbing more time for tests that weren’t already run.</p>
<p>Testing in production is more about the current landscape of software development than it is about covering one’s rear, or about hiding things from those higher up. Instead, it’s endemic to the rise of services, APIs and never-ending development efforts.</p>
<p>In a world of microservices, cloud-based applications and the Internet of Things, testing in production isn’t just a good idea—it’s the only way you can get things done. Testing environments will drift from the production environment, users will encounter unforeseen behaviors, and clouds that are not under your direct control will experience outages and service degradation.</p>
<p>Without testing in place, these types of problems will run rampant. Even worse, they won’t pass critical information back to the development team, removing the all-important feedback loop between QA and development.</p>
<p>John Jeremiah, technology evangelist and lead of the HPE Digital Research Team, said that he’s relieved testing in production is finally being talked about in the open. “I don’t think it’s a new concept by any stretch of the imagination. Calling it ‘testing in production’ is just being more honest about what happens in reality. My background is as an application developer and project leader. Almost every time I’ve gone live with a system, I’ve never been able to complete all the testing we wanted to do. We reached a milestone where we had to ship, and we were at a level of acceptable risk, so we went live,” he said.</p>
<p>“We may not have said we were testing in production because that was unacceptable, but the reality is we were paying very close attention to the system where we thought we had risk,” said Jeremiah.</p>
<p>He added that testing in production often brings performance and load testing into the forefront. “Our load and performance testing are the foundations of our approach to how we help people with DevOps. What we refer to as continuous assessment is about understanding how an application is delivering business value to users,” he said.</p>
<p>“It’s about having insight into what’s happening to users, and giving that info back to the product team so they can respond. This is the fundamental principle in DevOps. It’s about fast, high-fidelity feedback to the development team so they can iterate and react.</p>
<p>“This is not new to what we do,” said Jeremiah. “The challenge people struggle with is the idea that you’re going to allow something that is other than perfect to reach the end users. But it’s about being honest. The other thing that’s happened is we started to realize there’s an amazing amount of things we can learn by listening to users. Web teams have done this for years with A/B testing. We are all unwitting participants in an experiments every time we log into Facebook.”</p>
<p><strong>What is ‘testing in production’?<br />
</strong>What, then, does testing in production really mean? Does it entail any significant divergence from traditional testing of the functional, acceptance, smoke, load and performance requirements? Or does this new world of microservices and APIs require that everything is tested in both development and production? Does testing ever stop? It’s a confusing world out here in the sunlight.</p>
<p>Tom Lounibos, CEO of SOASTA, discovered testing in production years ago, almost by accident.</p>
<p>“We were running a test for TurboTax eight or nine years ago. When we run these tests, it doesn’t matter where the test is running. They basically gave us the target to test and we were testing it, ramping up to 200,000 virtual concurrent users on this application. Then we hear the voice of God over the phone in this conference room say, ‘Are you running a performance test on the production site?’ We had five guys around the table and we all backed away from the table and said ‘Oh my God! We’re testing a production server,” he recalled.</p>
<p>“We realized that testing in a lab behind a firewall is kind of ridiculous in the web era. You can’t replicate the Internet behind the firewall. Add in dependencies on third-party services and it’s impossible. The only real true way of testing today is in production. Seventy percent of our load testing is done in production right now.”</p>
<p><strong>Testing. Testing everywhere<br />
</strong>Things have definitely changed in the world of testing. Antony Edwards, CTO of TestPlant, said, “Three years ago no one ran test scripts against production systems, but now we have many customers ‘testing in production.’ I remember the first time someone came to us with a ‘testing in production’ requirement (though they didn’t call it that). It started as a really awkward call with us not understanding each other because operations guys and test guys use different terminology. Finally I asked them to draw a diagram for us on the whiteboard and suddenly it all became clear. We’re much better talking to operations teams now.”</p>
<p>Those initial communications difficulties are not quite gone, either. “But ‘testing in production’ means different things to different people,” Edwards said. “For some people it means running your test scripts continually against the live system as a more sophisticated form of monitoring; but these people are still testing pre-production as well. For other people it means only testing in production, i.e. not really testing, just deploying changes straight after coding (maybe to only a small percentage of users) and seeing if they complain. It’s interesting that the same term is being used to describe what I’d consider to be very mature, and very immature, testing.”</p>
<p>Tim Pettersen, senior developer at Atlassian, said that communication issues can be alleviated through the use of proper life-cycle tools. “Testing and version control are tightly intertwined. The best practice is to build and test your code as soon as it’s pushed by a developer,” he said.</p>
<p>Ian Buchanan, developer advocate at Atlassian, said, “This is a place where ecosystem stuff helps. Directly, neither Bamboo nor Bitbucket Pipelines are themselves test tools: You run tests from them. You can kick off the builds in a test grid with something like Sauce OnDemand for Bamboo, then outsource to a test service that can test across browsers or across multiple mobile devices.”</p>
<p>Adrian Cockroft, technology fellow at Battery Ventures and former cloud architect at Netflix, is partly responsible for popularizing the modern approach to application design. Under his watch at Netflix, the company deployed Chaos Monkey, a tool that randomly destroys online servers, ensuring systems are resilient enough to deal with such a scenario.</p>
<p>“I think what’s really happening most recently is the growth of microservices as an architectural pattern. All the monitoring vendors are now booth display-compliant: They all have microservices support on their client. Microservices break the app into small pieces. You need to have a map of those pieces. You need to do end-to-end tracing, like the OpenTracing Project,” said Cockroft.</p>
<p>He went on to state that “On top of that, the pieces are changing continuously. You don’t have one version of the system; it’s changing daily, or many times a day in the extreme cases. When you’re trying to figure out what broke in the system, the important part is to have a fine line to the code to figure out what broke.”</p>
<p><strong>Risky business<br />
</strong>Bryce Day, CEO of Catch Software, said that getting to testing in production requires an approach based on risk assessment. “Testing always gets squeezed. It’s always that ambulance at the bottom of the pile. You may start with a month to do testing, and it always gets squeezed down to two weeks. It’s hard to go to management to say ‘We’ve got 1,000 tests, we need time to do them all,’” he said.</p>
<p>Day said that management doesn’t understand some arbitrary number of tests. Rather, it understands risk. “To change the conversation, say ‘What’s the risk profile you’re happy to have?’ If it’s a prototype, maybe I’m happy with 50% risk. Then you can put quality assurance guidelines across that project. For a hugely risky project, you might have only a 5% tolerance. In agile, knowing where to allocate resources early is a key component,” he said.</p>
<p>Risk can be effectively taken into account if it is considered early. “The other side is people are assigning risk to the requirements and stories, and they’re putting little to no emphasis on the frequency of the processes going through,” said Day. “So risk is the impact times, the probability of occurrence. If you look at HP, you have risk assigned to the impact side. If you’ve done all your test cases, your risk is mitigated. We take a more holistic view. For a rare occurrence test case, why would we test that earlier than a frequent test case for a medium risk?”</p>
<p>Wayne Ariola, chief strategy officer of Parasoft, also feels that a risk-based approach to testing can help with testing in production. “Due to agile and more iterative development styles, people have focused from a bottom-up perspective: ‘Are we closing out our user stories associated with testing?’ What they’re asking is, ‘Are you done with a task?’ We have to ask a different question: ‘Is the risk associated with the release candidate acceptable?’” he said.</p>
<p>“It’s a massive transformation. They have to understand what this application impacts. If it’s down, if it’s breached, what is the true impact to the business? Most organizations moving toward Continuous Delivery are beginning to realize this is quite interesting. Across the board, we’re seeing the biggest complaint is that the monolithic infrastructure and overhead associated with managing IBM or HP test suites are not allowing them to achieve their agile or Continuous Delivery objectives.”</p>
<p>But HPE’s Jeremiah doesn’t think that adding numeric risk tracking to a testing platform is terribly helpful. He said that it’s difficult to get users to input the required information. Rather, he said, building in predictive analytics is the secret to becoming more agile.</p>
<p>“People have been trying to do risk-based testing for 20 years,” said Jeremiah. He’s long heard of “the idea of prioritizing requirements with the business, and the impact if it doesn’t work, and [this can be used to figure out risk].</p>
<p>“In my experience, it’s incredibly hard to get people to go through the process of assessing the risk and giving really good input into it. Often, you end up without a good spread. It ends up being very labor-intensive, and a lot of times it never is successful, and they struggle with doing it.”</p>
<p>Jeremiah advocated for an automated approach using machine learning to understand risks and issues before they happen. He said HPE is “providing algorithm insight to know what we can know about the data in the system. It’s going to help teams make better decisions. It’s trying to take the unreliable risk assessment scenario, take that out of the equation, and give people the insight they need so they can make better decisions.”</p>
<p>At the end of the day, bringing testing in production out of the shadows and into the light is all about establishing methods and a formal approach, instead of just better ways to hide those tests running during open hours. This is becoming par for the course as more and more applications rely on third-party APIs for important functionality. This problem becomes even more difficult when your users are adding their own content to your site at a steady pace.</p>
<p>Lubos Parobek, vice president of products at Sauce Labs, said that dynamic websites make for a more complicated testing sequence. “Another thing we’ve seen is some customers have very dynamic websites where users themselves might be adding content or making modifications,” he said.</p>
<p>“In some ways all the changes aren’t in the control of whoever is coding the website. In those instances we want to make it so no one can break it, but we want to continually run tests so when there are changes,” problems are caught early, said Parobek.</p>
<p>Just how does that get done? He said developers shouldn’t duplicate tests for production use. He said that he “would definitely look through your set of functional test cases and determine which of those are the critical ones: The ones you want to take time to check regularly. Next is how often do you want check that? It could be you don’t push changes often, so you just check when you deploy. Or it could be lots of changes happen all the time. Maybe it makes sense to run those every five minutes.”</p>
<p><strong>IBM’s best practices</strong><br />
Glyn Rhodes, product manager of IBM Cloud, said that best practices for testing in production are a new way to ensure stability, but he also stated that not every company is ready for it.</p>
<p>“It’s important to recognize that only certain testing disciplines are generally suitable for execution in production,” he said in an e-mail to SD Times. “One would seldom execute integration testing in production, for example, as a stable foundation that faithfully represents the technology stack is a prerequisite for production testing.</p>
<p>“As ever, it all comes down to risk. Risk in this case can mean a few different things: An IBM customer that creates safety-critical software is very unlikely to risk it; there are laws and regulations to be mindful of. The approach is also best served by a production environment that be controlled, segregated and manipulated at the touch of a button. Cloud and automated deployment play a key part in helping testing to ‘shift right.’ Traditional production environments significantly increase the risk associated with testing in production.</p>
<p>“For example, performance testing is a suitable discipline—assuming the right risk profile. In the recent past, this meant baselining, then testing outside of business hours and subsequently manually resetting your environments after every run. Painful stuff. Cloud management and automated deployment tools will help speed up this process, but they don’t fundamentally change the risk profile.”</p>
<p>Rhodes has a more creative approach to testing in production, however. “A more creative approach comes in the form of the Dark Launch. Using this method, an IBM customer launches new functionality across a subset of customers/infrastructure,” he said. “This enables them to not only control the risk profile of testing in production, but it extends the types of testing that may be executed. A/B testing provides feedback on preferred functionality, and one can even expect a degree of acceptance testing to be executed in these circumstances. Once confidence has been established, the changes are rolled out further.”</p>
<p>So while many organizations may already be testing in production, the movement currently gaining ground in the market isn’t about just blindly doing so. Rather, it’s about adding testing in production to the standard toolbox and treating it like a professional job, instead of a sneaky thing you’re only able to do when the office is empty.</p>
<p><strong>Rules of thumb for testing in production</strong><br />
<span style="line-height: 1.5;">According to TestPlant&#8217;s Edwards, “The great thing about testing in production is that it’s easy to add and it’s hard to go too wrong. Key things to keep in mind:</span></p>
<p><strong>Consider the load you are putting on your servers.</strong> If your servers can handle 1,000 concurrent users and run close to capacity at peak times, don’t run 200 tests at the same time. It may sound unlikely that you’d run 200 tests at the same time, but testing in production is often worried about compatibility (e.g. making sure your website is working on all versions of Firefox, Chrome, etc.), and so it’s actually quite easy to start hitting this number of concurrent tests.</p>
<p><strong>Consider the variants you need to test.</strong> Once people are able to easily run tests in production against different client variants (e.g. Windows 8.1 with Chrome 51.0), they can go a bit overboard. You probably don’t need to test 10 different versions of Chrome. I’d typically recommend that people look at their audience and test the environments that cover 95% of their users.</p>
<p><strong>Similarly, consider the tests you need.</strong> It would seem intuitive that more is better, but I’ve seen companies drown themselves in test results so that when a key user flow isn’t working, it gets lost in the noise.</p>
<p>In a microservices/cloud architecture, you need to:</p>
<p>• Have well-defined APIs on your services. Not just the syntax but the semantics.</p>
<p>• Test these APIs. A lot. Happy path, sad path, and not-sure path.</p>
<p>• Load test your services. Know when they’ll break, because every service will eventually break.</p>
<p>• Test end to end, i.e. from the client application.</p>
<p>I think too many people are skipping the last step these days. There seems to be an attitude that by testing each individual component you no longer need to test the system. I sometimes use the analogy of a car: It’s like testing the engine, the brakes, the wheels, and so on separately, but never actually testing if the car can drive.”</p>
<div class="sd-post-bottom-html"><!-- This site is converting visitors into subscribers and customers with OptinMonster - https://optinmonster.com :: Campaign Title: dtsearch -->
<div id="om-kxglzrl6d3reas9psg2t-holder"></div>
<script>(function(d,u,ac){var s=d.createElement(\'script\');s.type=\'text/javascript\';s.src=\'https://a.omappapi.com/app/js/api.min.js\';s.async=true;s.dataset.user=u;s.dataset.campaign=ac;d.getElementsByTagName(\'head\')[0].appendChild(s);})(document,239126,\'kxglzrl6d3reas9psg2t\');</script>
<!-- / https://optinmonster.com --></div><div class="sdt-author-box-section"><div class="sdt-author-box"><div class="sdt-author-box-photo"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAP0AAAF8AQAAAAAs1YCYAAAAAnRSTlMAAHaTzTgAAAAjSURBVGje7cExAQAAAMKg9U9tDQ+gAAAAAAAAAAAAAAAAfg0w/AABIA7nhwAAAABJRU5ErkJggg==" alt="Alex Handy" width="80" height="80" data-src="https://sdtimes.com/wp-content/uploads/2014/12/HANDYALEX.jpg" decoding="async" class="lazyload" data-eio-rwidth="253" data-eio-rheight="380"><noscript><img src="https://sdtimes.com/wp-content/uploads/2014/12/HANDYALEX.jpg" alt="Alex Handy" width="80" height="80" data-eio="l"></noscript></div><div class="sdt-author-box-info"><h3 class="sdt-author-box-name">About Alex Handy</h3><p class="sdt-author-box-bio">Alex Handy is the Senior Editor of Software Development Times.</p><a class="sdt-author-box-link" href="https://sdtimes.com/author/alex-handy/">View all posts by Alex Handy &rarr;</a></div></div></div></div><!-- .entry-content -->
<footer class="entry-footer">
<div class="entry-tags">
<span class="tags-links">
<span class="tags-label screen-reader-text">
Post Tags: </span>
<a href=https://sdtimes.com/tag/agile/ title="agile" class="tag-link tag-item-agile" rel="tag"><span class="tag-hash">#</span>agile</a><a href=https://sdtimes.com/tag/battery-ventures/ title="Battery Ventures" class="tag-link tag-item-battery-ventures" rel="tag"><span class="tag-hash">#</span>Battery Ventures</a><a href=https://sdtimes.com/tag/catch-software/ title="Catch Software" class="tag-link tag-item-catch-software" rel="tag"><span class="tag-hash">#</span>Catch Software</a><a href=https://sdtimes.com/tag/hpe/ title="HPE" class="tag-link tag-item-hpe" rel="tag"><span class="tag-hash">#</span>HPE</a><a href=https://sdtimes.com/tag/ibm/ title="IBM" class="tag-link tag-item-ibm" rel="tag"><span class="tag-hash">#</span>IBM</a><a href=https://sdtimes.com/tag/iot/ title="IoT" class="tag-link tag-item-iot" rel="tag"><span class="tag-hash">#</span>IoT</a><a href=https://sdtimes.com/tag/parasoft/ title="Parasoft" class="tag-link tag-item-parasoft" rel="tag"><span class="tag-hash">#</span>Parasoft</a><a href=https://sdtimes.com/tag/pipelines/ title="pipelines" class="tag-link tag-item-pipelines" rel="tag"><span class="tag-hash">#</span>pipelines</a><a href=https://sdtimes.com/tag/testing/ title="testing" class="tag-link tag-item-testing" rel="tag"><span class="tag-hash">#</span>testing</a><a href=https://sdtimes.com/tag/testing-in-production/ title="testing in production" class="tag-link tag-item-testing-in-production" rel="tag"><span class="tag-hash">#</span>testing in production</a><a href=https://sdtimes.com/tag/testplant/ title="TestPlant" class="tag-link tag-item-testplant" rel="tag"><span class="tag-hash">#</span>TestPlant</a> </span>
</div><!-- .entry-tags -->
</footer><!-- .entry-footer -->
<!-- From cache --> <div class="sdt-most-read-bar">
<span class="sdt-most-read-label">Most Read</span>
<div class="sdt-most-read-grid">
<a class="sdt-most-read-item" href="https://sdtimes.com/ai-models/openais-gpt-6-astra-now-available-in-microsoft-applications/">
<span class="sdt-most-read-num">1</span>
<span class="sdt-most-read-title">OpenAI&amp;apos;s GPT-6 Astra now available in Microsoft applications</span>
</a>
<a class="sdt-most-read-item" href="https://sdtimes.com/platform-engineering/why-platform-engineering-must-evolve-for-the-agentic-era/">
<span class="sdt-most-read-num">2</span>
<span class="sdt-most-read-title">Why Platform Engineering Must Evolve for the Agentic Era</span>
</a>
<a class="sdt-most-read-item" href="https://sdtimes.com/platform-engineering/the-five-pillars-that-define-platform-engineering-2-0/">
<span class="sdt-most-read-num">3</span>
<span class="sdt-most-read-title">The Five Pillars That Define Platform Engineering 2.0</span>
</a>
<a class="sdt-most-read-item" href="https://sdtimes.com/ai-coding-assistants/beyond-ai-coding-assistants-the-next-evolution-of-software-development/">
<span class="sdt-most-read-num">4</span>
<span class="sdt-most-read-title">Beyond AI Coding Assistants: The Next Evolution of Software Development</span>
</a>
</div>
</div>
</div>
</article><!-- #post-20495 -->
<nav class="navigation post-navigation" aria-label="Posts">
<h2 class="screen-reader-text">Post navigation</h2>
<div class="nav-links"><div class="nav-previous"><a href="https://sdtimes.com/ai/mark-zuckerberg-close-showing-off-personal-ai-assistant-world/" rel="prev"><div class="post-navigation-sub"><small><span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-left-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="29" height="28" viewBox="0 0 29 28"><title>Previous</title><path d="M28 12.5v3c0 0.281-0.219 0.5-0.5 0.5h-19.5v3.5c0 0.203-0.109 0.375-0.297 0.453s-0.391 0.047-0.547-0.078l-6-5.469c-0.094-0.094-0.156-0.219-0.156-0.359v0c0-0.141 0.063-0.281 0.156-0.375l6-5.531c0.156-0.141 0.359-0.172 0.547-0.094 0.172 0.078 0.297 0.25 0.297 0.453v3.5h19.5c0.281 0 0.5 0.219 0.5 0.5z"></path>
</svg></span>Previous</small></div>Mark Zuckerberg close to showing off his personal AI assistant to the world</a></div><div class="nav-next"><a href="https://sdtimes.com/ai/software-developers-still-demand-new-uc-berkeley-center-ai-microsoft-dev-center-capabilities-sd-times-news-digest-aug-30-2016/" rel="next"><div class="post-navigation-sub"><small>Next<span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-right-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="27" height="28" viewBox="0 0 27 28"><title>Continue</title><path d="M27 13.953c0 0.141-0.063 0.281-0.156 0.375l-6 5.531c-0.156 0.141-0.359 0.172-0.547 0.094-0.172-0.078-0.297-0.25-0.297-0.453v-3.5h-19.5c-0.281 0-0.5-0.219-0.5-0.5v-3c0-0.281 0.219-0.5 0.5-0.5h19.5v-3.5c0-0.203 0.109-0.375 0.297-0.453s0.391-0.047 0.547 0.078l6 5.469c0.094 0.094 0.156 0.219 0.156 0.359v0z"></path>
</svg></span></small></div>Software developers still in demand, new UC Berkeley center for AI, and Microsoft Dev Center capabilities—SD Times news digest: Aug. 30, 2016</a></div></div>
</nav> <div class="entry-related alignfull entry-related-style-wide">
<div class="entry-related-inner content-container site-container">
<div class="entry-related-inner-content alignwide">
<h2 class="entry-related-title" id="related-posts-title">Similar Posts</h2> <div class="entry-related-carousel kadence-slide-init splide" aria-labelledby="related-posts-title" data-columns-xxl="2" data-columns-xl="2" data-columns-md="2" data-columns-sm="2" data-columns-xs="2" data-columns-ss="1" data-slider-anim-speed="400" data-slider-scroll="1" data-slider-dots="true" data-slider-arrows="true" data-slider-hover-pause="false" data-slider-auto="false" data-slider-speed="7000" data-slider-gutter="40" data-slider-loop="true" data-slider-next-label="Next" data-slider-slide-label="Posts" data-slider-prev-label="Previous">
<div class="splide__track">
<ul class="splide__list kadence-posts-list grid-cols grid-sm-col-2 grid-lg-col-2">
<li class="entry-list-item carousel-item splide__slide"><article class="entry content-bg loop-entry post-11830 post type-post status-publish format-standard has-post-thumbnail hentry category-latest-news tag-android tag-android-security tag-android-security-state-of-the-union-2014 tag-developers tag-google tag-google-play tag-software-security">
<a aria-hidden="true" tabindex="-1" role="presentation" class="post-thumbnail kadence-thumbnail-ratio-2-3" aria-label="Google cuts potentially harmful Android app installs in half, according to report" href="https://sdtimes.com/android/google-cuts-potentially-harmful-android-app-installs-in-half-according-to-report/">
<div class="post-thumbnail-inner">
<img width="640" height="480" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgAQAAAAAdquFJAAAAAnRSTlMAAHaTzTgAAAA9SURBVHja7cEBDQAAAMKg909tDjegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODPAJfgAAFLzBtKAAAAAElFTkSuQmCC" class="attachment-medium_large size-medium_large wp-post-image lazyload" alt="Google cuts potentially harmful Android app installs in half, according to report" decoding="async" data-src="https://sdtimes.com/wp-content/uploads/2015/04/0403.sdt-android-security.png" data-eio-rwidth="640" data-eio-rheight="480" /><noscript><img width="640" height="480" src="https://sdtimes.com/wp-content/uploads/2015/04/0403.sdt-android-security.png" class="attachment-medium_large size-medium_large wp-post-image" alt="Google cuts potentially harmful Android app installs in half, according to report" decoding="async" data-eio="l" /></noscript> </div>
</a><!-- .post-thumbnail -->
<div class="entry-content-wrap">
<header class="entry-header">
<div class="entry-taxonomies">
<span class="category-links term-links category-style-normal">
<a href="https://sdtimes.com/category/latest-news/" class="category-link-latest-news" rel="tag">Latest News</a> </span>
</div><!-- .entry-taxonomies -->
<h3 class="entry-title"><a href="https://sdtimes.com/android/google-cuts-potentially-harmful-android-app-installs-in-half-according-to-report/" rel="bookmark">Google cuts potentially harmful Android app installs in half, according to report</a></h3><div class="entry-meta entry-meta-divider-dot">
<span class="posted-by"><span class="meta-label">By</span><span class="author vcard"><a class="url fn n" href="https://sdtimes.com/author/christina-mulligan/">Christina Cardoza</a></span></span> <span class="posted-on">
<time class="entry-date published" datetime="2015-04-03T13:00:18-04:00" itemprop="datePublished">April 3, 2015</time><time class="updated" datetime="2015-04-03T12:44:12-04:00" itemprop="dateModified">April 3, 2015</time> </span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-summary">
<p>Google recently released a report that provides insight into the Android’s security, revealing that it was able to cut the overall rate of potentially harmful application installs by 50% in 2014. “That’s why we built Android the way we did—with multiple layers of security in the platform itself and in the services Google provides,” wrote&#8230; &hellip; <a class="read-more" href="https://sdtimes.com/android/google-cuts-potentially-harmful-android-app-installs-in-half-according-to-report/">continue reading</a></p>
</div><!-- .entry-summary -->
<footer class="entry-footer">
<div class="entry-actions">
<p class="more-link-wrap">
<a href="https://sdtimes.com/android/google-cuts-potentially-harmful-android-app-installs-in-half-according-to-report/" class="post-more-link">
Read More<span class="screen-reader-text"> Google cuts potentially harmful Android app installs in half, according to report</span><span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-right-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="27" height="28" viewBox="0 0 27 28"><title>Continue</title><path d="M27 13.953c0 0.141-0.063 0.281-0.156 0.375l-6 5.531c-0.156 0.141-0.359 0.172-0.547 0.094-0.172-0.078-0.297-0.25-0.297-0.453v-3.5h-19.5c-0.281 0-0.5-0.219-0.5-0.5v-3c0-0.281 0.219-0.5 0.5-0.5h19.5v-3.5c0-0.203 0.109-0.375 0.297-0.453s0.391-0.047 0.547 0.078l6 5.469c0.094 0.094 0.156 0.219 0.156 0.359v0z"></path>
</svg></span> </a>
</p>
</div><!-- .entry-actions -->
</footer><!-- .entry-footer -->
</div>
</article>
</li><li class="entry-list-item carousel-item splide__slide"><article class="entry content-bg loop-entry post-51777 post type-post status-publish format-standard has-post-thumbnail hentry category-latest-news tag-ai tag-analytics tag-web-development">
<a aria-hidden="true" tabindex="-1" role="presentation" class="post-thumbnail kadence-thumbnail-ratio-2-3" aria-label="Wix adds new AI-powered features for creating websites" href="https://sdtimes.com/webdev/wix-adds-new-ai-powered-features-for-creating-websites/">
<div class="post-thumbnail-inner">
<img width="768" height="435" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwAAAAGzAQAAAACwO03RAAAAAnRSTlMAAHaTzTgAAABASURBVHja7cExAQAAAMKg9U9tDQ+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAjA6TTAAHPjrIuAAAAAElFTkSuQmCC" class="attachment-medium_large size-medium_large wp-post-image lazyload" alt="Wix adds new AI-powered features for creating websites" decoding="async" data-src="https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-768x435.jpg" data-srcset="https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-768x435.jpg 768w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-300x170.jpg 300w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-1024x580.jpg 1024w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-150x85.jpg 150w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-490x277.jpg 490w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-141x80.jpg 141w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-400x226.jpg 400w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-318x180.jpg 318w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-88x50.jpg 88w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM.jpg 1470w" data-sizes="auto" data-eio-rwidth="768" data-eio-rheight="435" /><noscript><img width="768" height="435" src="https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-768x435.jpg" class="attachment-medium_large size-medium_large wp-post-image" alt="Wix adds new AI-powered features for creating websites" decoding="async" srcset="https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-768x435.jpg 768w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-300x170.jpg 300w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-1024x580.jpg 1024w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-150x85.jpg 150w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-490x277.jpg 490w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-141x80.jpg 141w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-400x226.jpg 400w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-318x180.jpg 318w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM-88x50.jpg 88w, https://sdtimes.com/wp-content/uploads/2023/07/Screen-Shot-2023-07-17-at-2.55.20-PM.jpg 1470w" sizes="(max-width: 768px) 100vw, 768px" data-eio="l" /></noscript> </div>
</a><!-- .post-thumbnail -->
<div class="entry-content-wrap">
<header class="entry-header">
<div class="entry-taxonomies">
<span class="category-links term-links category-style-normal">
<a href="https://sdtimes.com/category/latest-news/" class="category-link-latest-news" rel="tag">Latest News</a> </span>
</div><!-- .entry-taxonomies -->
<h3 class="entry-title"><a href="https://sdtimes.com/webdev/wix-adds-new-ai-powered-features-for-creating-websites/" rel="bookmark">Wix adds new AI-powered features for creating websites</a></h3><div class="entry-meta entry-meta-divider-dot">
<span class="posted-by"><span class="meta-label">By</span><span class="author vcard"><a class="url fn n" href="https://sdtimes.com/author/jakub-lewkowicz/">Jakub Lewkowicz</a></span></span> <span class="posted-on">
<time class="entry-date published updated" datetime="2023-07-17T16:25:29-04:00" itemprop="dateModified">July 17, 2023</time> </span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-summary">
<p>The website builder Wix.com announced plans to launch its new AI Site Generator, which will be accompanied by a range of AI-powered capabilities, many of which are already accessible to users. This will give Wix users AI technology that significantly simplifies the entire process of website building, design, and management. The generator will also provide&#8230; &hellip; <a class="read-more" href="https://sdtimes.com/webdev/wix-adds-new-ai-powered-features-for-creating-websites/">continue reading</a></p>
</div><!-- .entry-summary -->
<footer class="entry-footer">
<div class="entry-actions">
<p class="more-link-wrap">
<a href="https://sdtimes.com/webdev/wix-adds-new-ai-powered-features-for-creating-websites/" class="post-more-link">
Read More<span class="screen-reader-text"> Wix adds new AI-powered features for creating websites</span><span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-right-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="27" height="28" viewBox="0 0 27 28"><title>Continue</title><path d="M27 13.953c0 0.141-0.063 0.281-0.156 0.375l-6 5.531c-0.156 0.141-0.359 0.172-0.547 0.094-0.172-0.078-0.297-0.25-0.297-0.453v-3.5h-19.5c-0.281 0-0.5-0.219-0.5-0.5v-3c0-0.281 0.219-0.5 0.5-0.5h19.5v-3.5c0-0.203 0.109-0.375 0.297-0.453s0.391-0.047 0.547 0.078l6 5.469c0.094 0.094 0.156 0.219 0.156 0.359v0z"></path>
</svg></span> </a>
</p>
</div><!-- .entry-actions -->
</footer><!-- .entry-footer -->
</div>
</article>
</li><li class="entry-list-item carousel-item splide__slide"><article class="entry content-bg loop-entry post-51428 post type-post status-publish format-standard has-post-thumbnail hentry category-latest-news tag-servicenow">
<a aria-hidden="true" tabindex="-1" role="presentation" class="post-thumbnail kadence-thumbnail-ratio-2-3" aria-label="ServiceNow adds generative AI to Virtual Agent chatbot" href="https://sdtimes.com/ai/servicenow-adds-generative-ai-to-virtual-agent-chatbot/">
<div class="post-thumbnail-inner">
<img width="480" height="270" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAEOAQAAAAB54fnKAAAAAnRSTlMAAHaTzTgAAAAmSURBVHja7cEBDQAAAMKg909tDwcUAAAAAAAAAAAAAAAAAAAA8GlAVgABDW9CkAAAAABJRU5ErkJggg==" class="attachment-medium_large size-medium_large wp-post-image lazyload" alt="ServiceNow adds generative AI to Virtual Agent chatbot" decoding="async" data-src="https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT.jpg" data-srcset="https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT.jpg 480w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-300x169.jpg 300w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-150x84.jpg 150w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-142x80.jpg 142w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-400x225.jpg 400w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-320x180.jpg 320w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-89x50.jpg 89w" data-sizes="auto" data-eio-rwidth="480" data-eio-rheight="270" /><noscript><img width="480" height="270" src="https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT.jpg" class="attachment-medium_large size-medium_large wp-post-image" alt="ServiceNow adds generative AI to Virtual Agent chatbot" decoding="async" srcset="https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT.jpg 480w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-300x169.jpg 300w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-150x84.jpg 150w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-142x80.jpg 142w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-400x225.jpg 400w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-320x180.jpg 320w, https://sdtimes.com/wp-content/uploads/2023/06/Now_Assist_for_Virtual_Agent_title_ALT-89x50.jpg 89w" sizes="(max-width: 480px) 100vw, 480px" data-eio="l" /></noscript> </div>
</a><!-- .post-thumbnail -->
<div class="entry-content-wrap">
<header class="entry-header">
<div class="entry-taxonomies">
<span class="category-links term-links category-style-normal">
<a href="https://sdtimes.com/category/latest-news/" class="category-link-latest-news" rel="tag">Latest News</a> </span>
</div><!-- .entry-taxonomies -->
<h3 class="entry-title"><a href="https://sdtimes.com/ai/servicenow-adds-generative-ai-to-virtual-agent-chatbot/" rel="bookmark">ServiceNow adds generative AI to Virtual Agent chatbot</a></h3><div class="entry-meta entry-meta-divider-dot">
<span class="posted-by"><span class="meta-label">By</span><span class="author vcard"><a class="url fn n" href="https://sdtimes.com/author/jennifer-sargent/">Jenna Barron</a></span></span> <span class="posted-on">
<time class="entry-date published updated" datetime="2023-06-13T12:57:09-04:00" itemprop="dateModified">June 13, 2023</time> </span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-summary">
<p>ServiceNow’s Virtual Agent chatbot provides a conversational interface for users to perform self-service tasks. Now Assist for Virtual Agent will make the interactions even more intelligent and customers will be able to tackle more complex tasks.   By incorporating generative AI, Virtual Agent will be able to provide more “direct, relevant, and conversational responses to questions.” &#8230; &hellip; <a class="read-more" href="https://sdtimes.com/ai/servicenow-adds-generative-ai-to-virtual-agent-chatbot/">continue reading</a></p>
</div><!-- .entry-summary -->
<footer class="entry-footer">
<div class="entry-actions">
<p class="more-link-wrap">
<a href="https://sdtimes.com/ai/servicenow-adds-generative-ai-to-virtual-agent-chatbot/" class="post-more-link">
Read More<span class="screen-reader-text"> ServiceNow adds generative AI to Virtual Agent chatbot</span><span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-right-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="27" height="28" viewBox="0 0 27 28"><title>Continue</title><path d="M27 13.953c0 0.141-0.063 0.281-0.156 0.375l-6 5.531c-0.156 0.141-0.359 0.172-0.547 0.094-0.172-0.078-0.297-0.25-0.297-0.453v-3.5h-19.5c-0.281 0-0.5-0.219-0.5-0.5v-3c0-0.281 0.219-0.5 0.5-0.5h19.5v-3.5c0-0.203 0.109-0.375 0.297-0.453s0.391-0.047 0.547 0.078l6 5.469c0.094 0.094 0.156 0.219 0.156 0.359v0z"></path>
</svg></span> </a>
</p>
</div><!-- .entry-actions -->
</footer><!-- .entry-footer -->
</div>
</article>
</li><li class="entry-list-item carousel-item splide__slide"><article class="entry content-bg loop-entry post-1570 post type-post status-publish format-standard hentry category-latest-news tag-asp-net tag-mvc">
<div class="entry-content-wrap">
<header class="entry-header">
<div class="entry-taxonomies">
<span class="category-links term-links category-style-normal">
<a href="https://sdtimes.com/category/latest-news/" class="category-link-latest-news" rel="tag">Latest News</a> </span>
</div><!-- .entry-taxonomies -->
<h3 class="entry-title"><a href="https://sdtimes.com/asp-net/making-the-case-for-asp-net-mvc/" rel="bookmark">Making the case for ASP.NET MVC</a></h3><div class="entry-meta entry-meta-divider-dot">
<span class="posted-by"><span class="meta-label">By</span><span class="author vcard"><a class="url fn n" href="https://sdtimes.com/author/patrick-hynds/">Patrick Hynds</a></span></span> <span class="posted-on">
<time class="entry-date published updated" datetime="2011-07-20T00:00:00-04:00" itemprop="dateModified">July 20, 2011</time> </span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-summary">
<p>Microsoft provides an alternative to Web Forms for Web app development, one that may be more accessible to boot &hellip; <a class="read-more" href="https://sdtimes.com/asp-net/making-the-case-for-asp-net-mvc/">continue reading</a></p>
</div><!-- .entry-summary -->
<footer class="entry-footer">
<div class="entry-actions">
<p class="more-link-wrap">
<a href="https://sdtimes.com/asp-net/making-the-case-for-asp-net-mvc/" class="post-more-link">
Read More<span class="screen-reader-text"> Making the case for ASP.NET MVC</span><span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-right-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="27" height="28" viewBox="0 0 27 28"><title>Continue</title><path d="M27 13.953c0 0.141-0.063 0.281-0.156 0.375l-6 5.531c-0.156 0.141-0.359 0.172-0.547 0.094-0.172-0.078-0.297-0.25-0.297-0.453v-3.5h-19.5c-0.281 0-0.5-0.219-0.5-0.5v-3c0-0.281 0.219-0.5 0.5-0.5h19.5v-3.5c0-0.203 0.109-0.375 0.297-0.453s0.391-0.047 0.547 0.078l6 5.469c0.094 0.094 0.156 0.219 0.156 0.359v0z"></path>
</svg></span> </a>
</p>
</div><!-- .entry-actions -->
</footer><!-- .entry-footer -->
</div>
</article>
</li><li class="entry-list-item carousel-item splide__slide"><article class="entry content-bg loop-entry post-4428 post type-post status-publish format-standard hentry category-latest-news tag-new-relic tag-saas">
<div class="entry-content-wrap">
<header class="entry-header">
<div class="entry-taxonomies">
<span class="category-links term-links category-style-normal">
<a href="https://sdtimes.com/category/latest-news/" class="category-link-latest-news" rel="tag">Latest News</a> </span>
</div><!-- .entry-taxonomies -->
<h3 class="entry-title"><a href="https://sdtimes.com/new-relic/new-relic-extends-app-performance-software-to-mobile/" rel="bookmark">New Relic extends app-performance software to mobile</a></h3><div class="entry-meta entry-meta-divider-dot">
<span class="posted-by"><span class="meta-label">By</span><span class="author vcard"><a class="url fn n" href="https://sdtimes.com/author/suzanne-kattau/">Suzanne Kattau</a></span></span> <span class="posted-on">
<time class="entry-date published updated" datetime="2013-03-14T00:00:00-04:00" itemprop="dateModified">March 14, 2013</time> </span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-summary">
<p>Developers can now monitor their apps on Android and iOS platforms &hellip; <a class="read-more" href="https://sdtimes.com/new-relic/new-relic-extends-app-performance-software-to-mobile/">continue reading</a></p>
</div><!-- .entry-summary -->
<footer class="entry-footer">
<div class="entry-actions">
<p class="more-link-wrap">
<a href="https://sdtimes.com/new-relic/new-relic-extends-app-performance-software-to-mobile/" class="post-more-link">
Read More<span class="screen-reader-text"> New Relic extends app-performance software to mobile</span><span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-right-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="27" height="28" viewBox="0 0 27 28"><title>Continue</title><path d="M27 13.953c0 0.141-0.063 0.281-0.156 0.375l-6 5.531c-0.156 0.141-0.359 0.172-0.547 0.094-0.172-0.078-0.297-0.25-0.297-0.453v-3.5h-19.5c-0.281 0-0.5-0.219-0.5-0.5v-3c0-0.281 0.219-0.5 0.5-0.5h19.5v-3.5c0-0.203 0.109-0.375 0.297-0.453s0.391-0.047 0.547 0.078l6 5.469c0.094 0.094 0.156 0.219 0.156 0.359v0z"></path>
</svg></span> </a>
</p>
</div><!-- .entry-actions -->
</footer><!-- .entry-footer -->
</div>
</article>
</li><li class="entry-list-item carousel-item splide__slide"><article class="entry content-bg loop-entry post-4123 post type-post status-publish format-standard hentry category-latest-news">
<div class="entry-content-wrap">
<header class="entry-header">
<div class="entry-taxonomies">
<span class="category-links term-links category-style-normal">
<a href="https://sdtimes.com/category/latest-news/" class="category-link-latest-news" rel="tag">Latest News</a> </span>
</div><!-- .entry-taxonomies -->
<h3 class="entry-title"><a href="https://sdtimes.com/bitkoo-announces-the-general-availability-of-keystone-for-sharepoint-2010/" rel="bookmark">BiTKOO Announces the General Availability of Keystone for SharePoint 2010</a></h3><div class="entry-meta entry-meta-divider-dot">
<span class="posted-by"><span class="meta-label">By</span><span class="author vcard"><a class="url fn n" href="https://sdtimes.com/author/sptechweb-newswire/">SPTechWeb Newswire</a></span></span> <span class="posted-on">
<time class="entry-date published updated" datetime="2011-02-08T00:00:00-05:00" itemprop="dateModified">February 8, 2011</time> </span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-summary">
<p>Transforming SharePoint 2010 into Enterprise-Grade Security &hellip; <a class="read-more" href="https://sdtimes.com/bitkoo-announces-the-general-availability-of-keystone-for-sharepoint-2010/">continue reading</a></p>
</div><!-- .entry-summary -->
<footer class="entry-footer">
<div class="entry-actions">
<p class="more-link-wrap">
<a href="https://sdtimes.com/bitkoo-announces-the-general-availability-of-keystone-for-sharepoint-2010/" class="post-more-link">
Read More<span class="screen-reader-text"> BiTKOO Announces the General Availability of Keystone for SharePoint 2010</span><span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-right-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="27" height="28" viewBox="0 0 27 28"><title>Continue</title><path d="M27 13.953c0 0.141-0.063 0.281-0.156 0.375l-6 5.531c-0.156 0.141-0.359 0.172-0.547 0.094-0.172-0.078-0.297-0.25-0.297-0.453v-3.5h-19.5c-0.281 0-0.5-0.219-0.5-0.5v-3c0-0.281 0.219-0.5 0.5-0.5h19.5v-3.5c0-0.203 0.109-0.375 0.297-0.453s0.391-0.047 0.547 0.078l6 5.469c0.094 0.094 0.156 0.219 0.156 0.359v0z"></path>
</svg></span> </a>
</p>
</div><!-- .entry-actions -->
</footer><!-- .entry-footer -->
</div>
</article>
</li> </ul>
</div>
</div>
</div>
</div>
</div><!-- .entry-author -->
<div id="comments" class="comments-area">
<h2 class="comments-title">One Comment</h2><!-- .comments-title --> <ol class="comment-list">
<li id="comment-6340" class="pingback even thread-even depth-1">
<div class="comment-body">
Pingback: <a href="http://sreweekly.com/sre-weekly-issue-38/" class="url" rel="ugc external nofollow">SRE Weekly Issue #38 &#8211; SRE WEEKLY</a> </div>
</li><!-- #comment-## -->
</ol><!-- .comment-list -->
<p class="no-comments">Comments are closed.</p>
</div><!-- #comments -->
</div>
<div class="banner_ad bottom_leaderboard">
<!-- /67541884/leader_1_bottom --><div id='div-gpt-ad-1784044189161-0' style='min-width: 728px; min-height: 90px;'><script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">googletag.cmd.push(function() { googletag.display('div-gpt-ad-1784044189161-0'); });</script></div> </div>
<div class="banner_ad bottom_leaderboard_2">
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
googletag.cmd.push(function() {
googletag.defineSlot('/67541884/leader_2_bottom', [728, 90], 'div-gpt-ad-1466028474085-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<!-- /67541884/leader_2_bottom -->
<div id='div-gpt-ad-1466028474085-0'>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1466028474085-0'); });
</script>
</div> </div>
</div><!-- #main -->
<aside id="secondary" role="complementary" class="primary-sidebar widget-area sidebar-slug-sidebar-primary sidebar-link-style-normal">
<div class="sidebar-inner-wrap">
<div class="sdt-article-sidebar-sticky"><div class="banner_ad medrec_1_ad"><script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
googletag.cmd.push(function() {
googletag.defineSlot('/67541884/med_rec_1', [[300,600],[300, 250]], 'div-gpt-ad-1466026216582-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<!-- /67541884/med_rec_1 -->
<div id='div-gpt-ad-1466026216582-0'>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1466026216582-0'); });
</script>
</div></div></div> </div>
</aside><!-- #secondary -->
</div>
</div><!-- #primary -->
</main><!-- #inner-wrap -->
<section class="sdt-podcast-bar">
<div class="sdt-podcast-bar-inner">
<div class="sdt-podcast-bar-header">
<div class="sdt-podcast-bar-brand">
<span class="sdt-podcast-bar-label">Podcast</span>
<a class="sdt-podcast-bar-title" href="https://whatthedev.buzzsprout.com/673192" target="_blank" rel="noopener">What the Dev?</a>
</div>
<a class="sdt-podcast-bar-all" href="https://whatthedev.buzzsprout.com/673192" target="_blank" rel="noopener">All Episodes &rarr;</a>
</div>
<div class="sdt-podcast-bar-episodes">
<a class="sdt-podcast-ep" href="https://www.buzzsprout.com/673192/episodes/19774181-366-tokenomics-the-costs-of-using-ai-with-sreenivasan-rajagopal-of-broadcom-valueops" target="_blank" rel="noopener">
<div class="sdt-podcast-ep-img">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQAAAAASh+TfAAAAAnRSTlMAAHaTzTgAAAAPSURBVCjPY2AYBaMAOwAAAhwAATv0so4AAAAASUVORK5CYII=" alt="" width="60" height="60" loading="lazy" data-src="https://storage.buzzsprout.com/7l0df832gdr0k4bvu3rjqjrtf14r?.jpg" decoding="async" class="lazyload" data-eio-rwidth="60" data-eio-rheight="60"><noscript><img src="https://storage.buzzsprout.com/7l0df832gdr0k4bvu3rjqjrtf14r?.jpg" alt="" width="60" height="60" loading="lazy" data-eio="l"></noscript>
</div>
<div class="sdt-podcast-ep-info">
<span class="sdt-podcast-ep-num">Ep. 366</span>
<span class="sdt-podcast-ep-title">Tokenomics: The costs of using AI (With Sreenivasan Rajagopal of Broadcom ValueOps)</span>
<span class="sdt-podcast-ep-meta">Sep 8, 2026 &middot; 16:03</span>
</div>
<span class="sdt-podcast-ep-play" aria-hidden="true">&#9654;</span>
</a>
<a class="sdt-podcast-ep" href="https://www.buzzsprout.com/673192/episodes/19736884-365-the-rise-of-the-personal-ai-assistant-with-gavriel-cohen-of-nanoco" target="_blank" rel="noopener">
<div class="sdt-podcast-ep-img">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQAAAAASh+TfAAAAAnRSTlMAAHaTzTgAAAAPSURBVCjPY2AYBaMAOwAAAhwAATv0so4AAAAASUVORK5CYII=" alt="" width="60" height="60" loading="lazy" data-src="https://storage.buzzsprout.com/9vclg55uvqcc0p2f1up9bnnrkvni?.jpg" decoding="async" class="lazyload" data-eio-rwidth="60" data-eio-rheight="60"><noscript><img src="https://storage.buzzsprout.com/9vclg55uvqcc0p2f1up9bnnrkvni?.jpg" alt="" width="60" height="60" loading="lazy" data-eio="l"></noscript>
</div>
<div class="sdt-podcast-ep-info">
<span class="sdt-podcast-ep-num">Ep. 365</span>
<span class="sdt-podcast-ep-title">The Rise of the Personal AI Assistant (With Gavriel Cohen of NanoCo)</span>
<span class="sdt-podcast-ep-meta">Sep 1, 2026 &middot; 21:32</span>
</div>
<span class="sdt-podcast-ep-play" aria-hidden="true">&#9654;</span>
</a>
<a class="sdt-podcast-ep" href="https://www.buzzsprout.com/673192/episodes/19700270-364-ai-is-changing-who-builds-software" target="_blank" rel="noopener">
<div class="sdt-podcast-ep-img">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQAAAAASh+TfAAAAAnRSTlMAAHaTzTgAAAAPSURBVCjPY2AYBaMAOwAAAhwAATv0so4AAAAASUVORK5CYII=" alt="" width="60" height="60" loading="lazy" data-src="https://storage.buzzsprout.com/qpwwnfu73ltazvigechtcjqqxrhs?.jpg" decoding="async" class="lazyload" data-eio-rwidth="60" data-eio-rheight="60"><noscript><img src="https://storage.buzzsprout.com/qpwwnfu73ltazvigechtcjqqxrhs?.jpg" alt="" width="60" height="60" loading="lazy" data-eio="l"></noscript>
</div>
<div class="sdt-podcast-ep-info">
<span class="sdt-podcast-ep-num">Ep. 364</span>
<span class="sdt-podcast-ep-title">AI is Changing Who Builds Software</span>
<span class="sdt-podcast-ep-meta">Aug 25, 2026 &middot; 14:46</span>
</div>
<span class="sdt-podcast-ep-play" aria-hidden="true">&#9654;</span>
</a>
<a class="sdt-podcast-ep" href="https://www.buzzsprout.com/673192/episodes/19666385-363-the-role-of-ai-in-mainframe-modernization" target="_blank" rel="noopener">
<div class="sdt-podcast-ep-img">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQAAAAASh+TfAAAAAnRSTlMAAHaTzTgAAAAPSURBVCjPY2AYBaMAOwAAAhwAATv0so4AAAAASUVORK5CYII=" alt="" width="60" height="60" loading="lazy" data-src="https://storage.buzzsprout.com/z3pylf76o1h97lnbrlzw9iv7h9nr?.jpg" decoding="async" class="lazyload" data-eio-rwidth="60" data-eio-rheight="60"><noscript><img src="https://storage.buzzsprout.com/z3pylf76o1h97lnbrlzw9iv7h9nr?.jpg" alt="" width="60" height="60" loading="lazy" data-eio="l"></noscript>
</div>
<div class="sdt-podcast-ep-info">
<span class="sdt-podcast-ep-num">Ep. 363</span>
<span class="sdt-podcast-ep-title">The Role of AI in Mainframe Modernization</span>
<span class="sdt-podcast-ep-meta">Aug 18, 2026 &middot; 15:44</span>
</div>
<span class="sdt-podcast-ep-play" aria-hidden="true">&#9654;</span>
</a>
<a class="sdt-podcast-ep" href="https://www.buzzsprout.com/673192/episodes/19626324-362-the-disconnect-between-ai-generated-code-and-security" target="_blank" rel="noopener">
<div class="sdt-podcast-ep-img">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQAAAAASh+TfAAAAAnRSTlMAAHaTzTgAAAAPSURBVCjPY2AYBaMAOwAAAhwAATv0so4AAAAASUVORK5CYII=" alt="" width="60" height="60" loading="lazy" data-src="https://storage.buzzsprout.com/mhvgl74ionpx1cxvxgrh6sh69l4m?.jpg" decoding="async" class="lazyload" data-eio-rwidth="60" data-eio-rheight="60"><noscript><img src="https://storage.buzzsprout.com/mhvgl74ionpx1cxvxgrh6sh69l4m?.jpg" alt="" width="60" height="60" loading="lazy" data-eio="l"></noscript>
</div>
<div class="sdt-podcast-ep-info">
<span class="sdt-podcast-ep-num">Ep. 362</span>
<span class="sdt-podcast-ep-title">The Disconnect Between AI-generated Code and Security</span>
<span class="sdt-podcast-ep-meta">Aug 11, 2026 &middot; 25:38</span>
</div>
<span class="sdt-podcast-ep-play" aria-hidden="true">&#9654;</span>
</a>
</div>
</div>
</section>
<footer id="colophon" class="sdt-footer" itemscope itemtype="https://schema.org/WPFooter" role="contentinfo">
<div class="sdt-footer-main">
<div class="sdt-footer-inner">
<div class="sdt-footer-col sdt-footer-brand">
<a href="https://sdtimes.com/" class="sdt-footer-logo" rel="home">
SD Times
</a>
<p class="sdt-footer-tagline">
News &amp; analysis for the software development industry since 2001.
</p>
<a href="/subscribe/" class="sdt-footer-subscribe-cta">
Subscribe to our newsletter &rarr;
</a>
</div>
<div class="sdt-footer-col">
<h3 class="sdt-footer-heading">Topics</h3>
<ul class="sdt-footer-links">
<li><a href="/agentic-ai/">Agentic AI</a></li>
<li><a href="/ai-coding-assistants/">AI Coding Assistants</a></li>
<li><a href="/ai-agent-governance/">AI Agent Governance</a></li>
<li><a href="/ai-generated-code-security/">AI-Generated Code Security</a></li>
<li><a href="/platform-engineering/">Platform Engineering</a></li>
<li><a href="/devsecops/">DevSecOps</a></li>
<li><a href="/software-supply-chain-security/">Supply Chain Security</a></li>
<li><a href="/ci-cd/">CI/CD</a></li>
<li><a href="/observability-vs-monitoring/">Observability &amp; Monitoring</a></li>
<li><a href="/software-engineering-intelligence/">Software Engineering Intelligence</a></li>
<li><a href="/cloud-native-architecture/">Cloud-Native Architecture</a></li>
<li><a href="/agile-scrum/">Agile &amp; Scrum</a></li>
<li><a href="/software-testing-quality/">Software Testing &amp; QA</a></li>
<li><a href="/software-development-manager/">Software Development Manager</a></li>
</ul>
</div>
<div class="sdt-footer-col">
<h3 class="sdt-footer-heading">Resources</h3>
<ul class="sdt-footer-links">
<li><a href="/webinars/">Webinars</a></li>
<li><a href="/podcasts/">Podcasts</a></li>
<li><a href="/supercasts/">Supercasts</a></li>
<li><a href="/sd-times-100/">SD Times 100</a></li>
<li><a href="/tools-landscape/">Tools Landscape</a></li>
<li><a href="/subscribe/">Newsletter</a></li>
<li><a href="https://itopstimes.com" target="_blank" rel="noopener">ITOps Times</a></li>
</ul>
</div>
<div class="sdt-footer-col">
<h3 class="sdt-footer-heading">Company</h3>
<ul id="menu-footer" class="sdt-footer-links"><li id="menu-item-5041" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5041"><a href="https://d2emerge.com/" title="_blank">About Us</a></li>
<li id="menu-item-51215" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-51215"><a href="https://sdtimes.com/advertise">Advertise</a></li>
<li id="menu-item-5418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5418"><a href="https://d2emerge.com/about/" title="_blank">Contact Us</a></li>
<li id="menu-item-5160" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5160"><a href="https://sdnews.io/">Subscribe</a></li>
<li id="menu-item-5419" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5419"><a href="https://sdtimes.com/privacy-policy/">Privacy Policy</a></li>
<li id="menu-item-60610" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-60610"><a href="https://d2emerge.com">D2 Emerge</a></li>
</ul> </div>
</div>
</div>
<div class="sdt-footer-bottom">
<div class="sdt-footer-inner sdt-footer-bottom-inner">
<span class="sdt-footer-copy">
&copy; 2026 D2 Emerge LLC. All rights reserved.
</span>
<ul id="menu-footer-1" class="sdt-footer-bottom-nav"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5041"><a href="https://d2emerge.com/" title="_blank">About Us</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-51215"><a href="https://sdtimes.com/advertise">Advertise</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5418"><a href="https://d2emerge.com/about/" title="_blank">Contact Us</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5160"><a href="https://sdnews.io/">Subscribe</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5419"><a href="https://sdtimes.com/privacy-policy/">Privacy Policy</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-60610"><a href="https://d2emerge.com">D2 Emerge</a></li>
</ul> </div>
</div>
</footer>
<div class="adWrap"><div class="adWrapCenter"><div class="innerAdWrapCenter"><div class="fl"> <div class="banner_ad gutter_ad_left">
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
(function() {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL ? 'https:' : 'http:') +
'//www.googletagservices.com/tag/js/gpt.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(gads, node);
})();
</script>
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
window.googletag = window.googletag || {cmd: []};
googletag.cmd.push(function() {
googletag.defineSlot('/67541884/Gutter_left', [200, 1050], 'div-gpt-ad-1620753161826-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<!-- /67541884/Gutter_left -->
<div id='div-gpt-ad-1620753161826-0' style='width: 200px; height: 1050px;'>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1620753161826-0'); });
</script>
</div> </div>
</div><div class="fr"> <div class="banner_ad gutter_ad_right">
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
window.googletag = window.googletag || {cmd: []};
googletag.cmd.push(function() {
googletag.defineSlot('/67541884/Gutter_Right', [[300, 1050], [200, 1050]], 'div-gpt-ad-1621258503965-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<!-- /67541884/Gutter_Right -->
<div id='div-gpt-ad-1621258503965-0' style='min-width: 200px; min-height: 1050px;'>
<script type="text/plain" data-cli-class="cli-blocker-script" data-cli-label="Google Publisher Tag" data-cli-script-type="advertisement" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body">
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1621258503965-0'); });
</script>
</div> </div>
</div></div></div></div>
</div><!-- #wrapper -->
<script>document.documentElement.style.setProperty('--scrollbar-offset', window.innerWidth - document.documentElement.clientWidth + 'px' );</script>
<script>
(function(){
function setStickyOffsets(){
var hdr = document.querySelector('.site-header');
var nav = document.querySelector('.sdt-topic-nav');
if(!hdr) return;
var hh = Math.round(hdr.getBoundingClientRect().height);
document.documentElement.style.setProperty('--sdt-header-h', hh+'px');
if(nav){
nav.style.setProperty('top', hh+'px', 'important');
var nh = Math.round(nav.getBoundingClientRect().height);
document.documentElement.style.setProperty('--sdt-sticky-top', (hh+nh+4)+'px');
} else {
document.documentElement.style.setProperty('--sdt-sticky-top', (hh+4)+'px');
}
}
setStickyOffsets();
window.addEventListener('resize', setStickyOffsets);
window.addEventListener('load', setStickyOffsets);
})();
</script>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/kadence-child/*","/wp-content/themes/kadence/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script type="text/javascript">
jQuery('a[title="_blank"]').each(
function(i) {
jQuery(this).attr('target', '_blank');
jQuery(this).attr('title', jQuery(this).text());
}
);
</script> <a href="//www.dmca.com/Protection/Status.aspx?ID=884c2caa-a316-4e02-a37d-315f90b9d4d6" title="DMCA.com Protection Status" class="dmca-badge"> <img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="DMCA.com Protection Status" data-src="https://images.dmca.com/Badges/dmca-badge-w200-5x1-09.png?ID=884c2caa-a316-4e02-a37d-315f90b9d4d6" decoding="async" class="lazyload" /><noscript><img src ="https://images.dmca.com/Badges/dmca-badge-w200-5x1-09.png?ID=884c2caa-a316-4e02-a37d-315f90b9d4d6" alt="DMCA.com Protection Status" data-eio="l" /></noscript></a> <script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"> </script><div class="wt-cli-cookie-bar-container" data-nosnippet="true"><!--googleoff: all--><div id="cookie-law-info-bar" role="dialog" aria-live="polite" aria-label="cookieconsent" aria-describedby="wt-cli-cookie-banner" data-cli-geo-loc="0" style="text-align:left; padding:15px 30px;" class="wt-cli-cookie-bar"><div class="cli-wrapper"><span id="wt-cli-cookie-banner"><div class="cli-bar-container cli-style-v2"><div class="cli-bar-message">We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.</div><div class="cli-bar-btn_container"><a id="wt-cli-settings-btn" tabindex="0" role='button' style="border-bottom:1px solid; text-decoration:none; text-decoration:none;" class="wt-cli-element cli_settings_button" >Cookie settings</a><a id="wt-cli-accept-btn" tabindex="0" role='button' style="margin:5px 5px 5px 30px; border-radius:0; padding:8px 25px 8px 25px;" data-cli_action="accept" class="wt-cli-element medium cli-plugin-button cli-plugin-main-button cookie_action_close_header cli_action_button" >ACCEPT</a></div></div></span></div></div><div tabindex="0" id="cookie-law-info-again" style="display:none;"><span id="cookie_hdr_showagain">Manage consent</span></div><div class="cli-modal" id="cliSettingsPopup" role="dialog" aria-labelledby="wt-cli-privacy-title" tabindex="-1" aria-hidden="true">
<div class="cli-modal-dialog" role="document">
<div class="cli-modal-content cli-bar-popup">
<button aria-label="Close" type="button" class="cli-modal-close" id="cliModalClose">
<svg class="" viewBox="0 0 24 24"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"></path><path d="M0 0h24v24h-24z" fill="none"></path></svg>
<span class="wt-cli-sr-only">Close</span>
</button>
<div class="cli-modal-body">
<div class="wt-cli-element cli-container-fluid cli-tab-container">
<div class="cli-row">
<div class="cli-col-12 cli-align-items-stretch cli-px-0">
<div class="cli-privacy-overview">
<h4 id='wt-cli-privacy-title'>Privacy Overview</h4> <div class="cli-privacy-content">
<div class="cli-privacy-content-text">This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.</div>
</div>
<a id="wt-cli-privacy-readmore" tabindex="0" role="button" class="cli-privacy-readmore" data-readmore-text="Show more" data-readless-text="Show less"></a> </div>
</div>
<div class="cli-col-12 cli-align-items-stretch cli-px-0 cli-tab-section-container" role="tablist">
<div class="cli-tab-section">
<div class="cli-tab-header">
<a id="wt-cli-tab-link-necessary" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-necessary" aria-controls="wt-cli-tab-necessary" class="cli-nav-link cli-settings-mobile" data-target="necessary" data-toggle="cli-toggle-tab">
Necessary </a>
<div class="wt-cli-necessary-checkbox">
<input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-necessary" aria-label="Necessary" data-id="checkbox-necessary" checked="checked" />
<label class="form-check-label" for="wt-cli-checkbox-necessary"> Necessary </label>
</div>
<span class="cli-necessary-caption">
Always Enabled </span>
</div>
<div class="cli-tab-content">
<div id="wt-cli-tab-necessary" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-necessary" class="cli-tab-pane cli-fade" data-id="necessary">
<div class="wt-cli-cookie-description">Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-3">Duration</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cf_use_ob</td><td class="cookielawinfo-column-3">past</td><td class="cookielawinfo-column-4">Cloudflare sets this cookie to improve page load times and to disallow any security restrictions based on the visitor's IP address.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-advertisement</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-analytics</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-functional</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-necessary</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-others</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-performance</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">CookieLawInfoConsent</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">JSESSIONID</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">The JSESSIONID cookie is used by New Relic to store a session identifier so that New Relic can monitor session counts for an application.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">PHPSESSID</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">This cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user session on the website. The cookie is a session cookies and is deleted when all the browser windows are closed.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">viewed_cookie_policy</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.</td></tr></tbody></table></div>
</div>
</div>
</div>
<div class="cli-tab-section">
<div class="cli-tab-header">
<a id="wt-cli-tab-link-functional" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-functional" aria-controls="wt-cli-tab-functional" class="cli-nav-link cli-settings-mobile" data-target="functional" data-toggle="cli-toggle-tab">
Functional </a>
<div class="cli-switch">
<input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-functional" aria-label="functional" data-id="checkbox-functional" role="switch" aria-controls="wt-cli-tab-link-functional" aria-labelledby="wt-cli-tab-link-functional" />
<label for="wt-cli-checkbox-functional" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">functional</span></label>
</div>
</div>
<div class="cli-tab-content">
<div id="wt-cli-tab-functional" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-functional" class="cli-tab-pane cli-fade" data-id="functional">
<div class="wt-cli-cookie-description">Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-3">Duration</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__atuvc</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">AddThis sets this cookie to ensure that the updated count is seen when one shares a page and returns to it, before the share count cache is updated.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__atuvs</td><td class="cookielawinfo-column-3">30 minutes</td><td class="cookielawinfo-column-4">AddThis sets this cookie to ensure that the updated count is seen when one shares a page and returns to it, before the share count cache is updated.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__cf_bm</td><td class="cookielawinfo-column-3">30 minutes</td><td class="cookielawinfo-column-4">This cookie, set by Cloudflare, is used to support Cloudflare Bot Management.</td></tr></tbody></table></div>
</div>
</div>
</div>
<div class="cli-tab-section">
<div class="cli-tab-header">
<a id="wt-cli-tab-link-performance" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-performance" aria-controls="wt-cli-tab-performance" class="cli-nav-link cli-settings-mobile" data-target="performance" data-toggle="cli-toggle-tab">
Performance </a>
<div class="cli-switch">
<input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-performance" aria-label="performance" data-id="checkbox-performance" role="switch" aria-controls="wt-cli-tab-link-performance" aria-labelledby="wt-cli-tab-link-performance" />
<label for="wt-cli-checkbox-performance" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">performance</span></label>
</div>
</div>
<div class="cli-tab-content">
<div id="wt-cli-tab-performance" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-performance" class="cli-tab-pane cli-fade" data-id="performance">
<div class="wt-cli-cookie-description">Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-3">Duration</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">ac_enable_tracking</td><td class="cookielawinfo-column-3">1 month</td><td class="cookielawinfo-column-4">This cookie is set by Active Campaign to denote that traffic is enabled for the website.</td></tr></tbody></table></div>
</div>
</div>
</div>
<div class="cli-tab-section">
<div class="cli-tab-header">
<a id="wt-cli-tab-link-analytics" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-analytics" aria-controls="wt-cli-tab-analytics" class="cli-nav-link cli-settings-mobile" data-target="analytics" data-toggle="cli-toggle-tab">
Analytics </a>
<div class="cli-switch">
<input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-analytics" aria-label="analytics" data-id="checkbox-analytics" role="switch" aria-controls="wt-cli-tab-link-analytics" aria-labelledby="wt-cli-tab-link-analytics" checked='checked' />
<label for="wt-cli-checkbox-analytics" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">analytics</span></label>
</div>
</div>
<div class="cli-tab-content">
<div id="wt-cli-tab-analytics" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-analytics" class="cli-tab-pane cli-fade" data-id="analytics">
<div class="wt-cli-cookie-description">Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-3">Duration</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__gads</td><td class="cookielawinfo-column-3">1 year 24 days</td><td class="cookielawinfo-column-4">The __gads cookie, set by Google, is stored under DoubleClick domain and tracks the number of times users see an advert, measures the success of the campaign and calculates its revenue. This cookie can only be read from the domain they are set on and will not track any data while browsing through other sites.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_ga</td><td class="cookielawinfo-column-3">2 years</td><td class="cookielawinfo-column-4">The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_ga_S6PB8V57DG</td><td class="cookielawinfo-column-3">2 years</td><td class="cookielawinfo-column-4">This cookie is installed by Google Analytics.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gat_gtag_UA_846073_1</td><td class="cookielawinfo-column-3">1 minute</td><td class="cookielawinfo-column-4">Set by Google to distinguish users.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gid</td><td class="cookielawinfo-column-3">1 day</td><td class="cookielawinfo-column-4">Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_jsuid</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">This cookie contains random number which is generated when a visitor visits the website for the first time. This cookie is used to identify the new visitors to the website.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">at-rand</td><td class="cookielawinfo-column-3">never</td><td class="cookielawinfo-column-4">AddThis sets this cookie to track page visits, sources of traffic and share counts.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">CONSENT</td><td class="cookielawinfo-column-3">2 years</td><td class="cookielawinfo-column-4">YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">iutk</td><td class="cookielawinfo-column-3">5 months 27 days</td><td class="cookielawinfo-column-4">This cookie is used by Issuu analytic system to gather information regarding visitor activity on Issuu products.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">uvc</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">Set by addthis.com to determine the usage of addthis.com service.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">vuid</td><td class="cookielawinfo-column-3">2 years</td><td class="cookielawinfo-column-4">Vimeo installs this cookie to collect tracking information by setting a unique ID to embed videos to the website.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">WMF-Last-Access</td><td class="cookielawinfo-column-3">1 month 14 hours 26 minutes</td><td class="cookielawinfo-column-4">This cookie is used to calculate unique devices accessing the website.</td></tr></tbody></table></div>
</div>
</div>
</div>
<div class="cli-tab-section">
<div class="cli-tab-header">
<a id="wt-cli-tab-link-advertisement" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-advertisement" aria-controls="wt-cli-tab-advertisement" class="cli-nav-link cli-settings-mobile" data-target="advertisement" data-toggle="cli-toggle-tab">
Advertisement </a>
<div class="cli-switch">
<input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-advertisement" aria-label="advertisement" data-id="checkbox-advertisement" role="switch" aria-controls="wt-cli-tab-link-advertisement" aria-labelledby="wt-cli-tab-link-advertisement" />
<label for="wt-cli-checkbox-advertisement" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">advertisement</span></label>
</div>
</div>
<div class="cli-tab-content">
<div id="wt-cli-tab-advertisement" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-advertisement" class="cli-tab-pane cli-fade" data-id="advertisement">
<div class="wt-cli-cookie-description">Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-3">Duration</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__Host-GAPS</td><td class="cookielawinfo-column-3">2 years</td><td class="cookielawinfo-column-4">This cookie allows the website to identify a user and provide enhanced functionality and personalisation.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_pxhd</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">Used by Zoominfo to enhance customer data.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">IDE</td><td class="cookielawinfo-column-3">1 year 24 days</td><td class="cookielawinfo-column-4">Google DoubleClick IDE cookies are used to store information about how the user uses the website to present them with relevant ads and according to the user profile.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">loc</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">AddThis sets this geolocation cookie to help understand the location of users who share the information.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">mc</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">Quantserve sets the mc cookie to anonymously track user behaviour on the website.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">test_cookie</td><td class="cookielawinfo-column-3">15 minutes</td><td class="cookielawinfo-column-4">The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">VISITOR_INFO1_LIVE</td><td class="cookielawinfo-column-3">5 months 27 days</td><td class="cookielawinfo-column-4">A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">YSC</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">yt-remote-connected-devices</td><td class="cookielawinfo-column-3">never</td><td class="cookielawinfo-column-4">YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">yt-remote-device-id</td><td class="cookielawinfo-column-3">never</td><td class="cookielawinfo-column-4">YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">yt.innertube::nextId</td><td class="cookielawinfo-column-3">never</td><td class="cookielawinfo-column-4">This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">yt.innertube::requests</td><td class="cookielawinfo-column-3">never</td><td class="cookielawinfo-column-4">This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.</td></tr></tbody></table></div>
</div>
</div>
</div>
<div class="cli-tab-section">
<div class="cli-tab-header">
<a id="wt-cli-tab-link-others" tabindex="0" role="tab" aria-expanded="false" aria-describedby="wt-cli-tab-others" aria-controls="wt-cli-tab-others" class="cli-nav-link cli-settings-mobile" data-target="others" data-toggle="cli-toggle-tab">
Others </a>
<div class="cli-switch">
<input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-others" aria-label="others" data-id="checkbox-others" role="switch" aria-controls="wt-cli-tab-link-others" aria-labelledby="wt-cli-tab-link-others" />
<label for="wt-cli-checkbox-others" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">others</span></label>
</div>
</div>
<div class="cli-tab-content">
<div id="wt-cli-tab-others" tabindex="0" role="tabpanel" aria-labelledby="wt-cli-tab-link-others" class="cli-tab-pane cli-fade" data-id="others">
<div class="wt-cli-cookie-description">Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
<table class="wt-cli-element cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th scope="col" class="cookielawinfo-column-1">Cookie</th><th scope="col" class="cookielawinfo-column-3">Duration</th><th scope="col" class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__gpi</td><td class="cookielawinfo-column-3">1 year 24 days</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__Secure-YEC</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_heatmaps_g2g_100754890</td><td class="cookielawinfo-column-3">10 minutes</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_techvalidate_session</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cf_7166_id</td><td class="cookielawinfo-column-3">20 years</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cf_7166_person_last_update</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">f5avraaaaaaaaaaaaaaaa_session_</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description available.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">GoogleAdServingTest</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">Gyazo_cfwoker</td><td class="cookielawinfo-column-3">7 years 2 months 17 days 7 hours</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">incap_ses_451_2783402</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">incap_ses_769_2783402</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">loglevel</td><td class="cookielawinfo-column-3">never</td><td class="cookielawinfo-column-4">No description available.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">m</td><td class="cookielawinfo-column-3">2 years</td><td class="cookielawinfo-column-4">No description available.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">nlbi_2783402</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">prism_252377639</td><td class="cookielawinfo-column-3">1 month</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">TS011605d9</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">ustream-guest</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">No description available.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">visid_incap_2783402</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">xtc</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">No description</td></tr></tbody></table></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cli-modal-footer">
<div class="wt-cli-element cli-container-fluid cli-tab-container">
<div class="cli-row">
<div class="cli-col-12 cli-align-items-stretch cli-px-0">
<div class="cli-tab-footer wt-cli-privacy-overview-actions">
<a id="wt-cli-privacy-save-btn" role="button" tabindex="0" data-cli-action="accept" class="wt-cli-privacy-btn cli_setting_save_button wt-cli-privacy-accept-btn cli-btn">Save & Accept</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cli-modal-backdrop cli-fade cli-settings-overlay"></div>
<div class="cli-modal-backdrop cli-fade cli-popupbar-overlay"></div>
<!--googleon: all--></div>
<script type="text/javascript">
/* <![CDATA[ */
cli_cookiebar_settings='{"animate_speed_hide":"500","animate_speed_show":"500","background":"#fffffff7","border":"#b1a6a6c2","border_on":false,"button_1_button_colour":"#61a229","button_1_button_hover":"#4e8221","button_1_link_colour":"#fff","button_1_as_button":true,"button_1_new_win":false,"button_2_button_colour":"#ffffff","button_2_button_hover":"#cccccc","button_2_link_colour":"#898888","button_2_as_button":false,"button_2_hidebar":false,"button_2_nofollow":false,"button_3_button_colour":"#61a229","button_3_button_hover":"#4e8221","button_3_link_colour":"#fff","button_3_as_button":true,"button_3_new_win":false,"button_4_button_colour":"#ffffff","button_4_button_hover":"#cccccc","button_4_link_colour":"#898888","button_4_as_button":false,"button_7_button_colour":"#61a229","button_7_button_hover":"#4e8221","button_7_link_colour":"#fff","button_7_as_button":true,"button_7_new_win":false,"font_family":"inherit","header_fix":false,"notify_animate_hide":true,"notify_animate_show":false,"notify_div_id":"#cookie-law-info-bar","notify_position_horizontal":"right","notify_position_vertical":"bottom","scroll_close":true,"scroll_close_reload":false,"accept_close_reload":false,"reject_close_reload":false,"showagain_tab":true,"showagain_background":"#fff","showagain_border":"#000","showagain_div_id":"#cookie-law-info-again","showagain_x_position":"100px","text":"#333","show_once_yn":true,"show_once":"10000","logging_on":false,"as_popup":false,"popup_overlay":true,"bar_heading_text":"","cookie_bar_as":"banner","cookie_setting_popup":true,"accept_all":true,"js_script_blocker":false,"popup_showagain_position":"bottom-right","widget_position":"left","button_1_style":[["margin","5px 5px 5px 30px"],["border-radius","0"],["padding","8px 25px 8px 25px"]],"button_2_style":[],"button_3_style":[["margin","5px 5px 5px 5px"],["border-radius","0"],["padding","8px 25px 8px 25px"]],"button_4_style":[["border-bottom","1px solid"],["text-decoration","none"],["text-decoration","none"]],"button_5_style":[["float","right"],["text-decoration","none"],["color","#333"]],"button_7_style":[["margin","5px 5px 5px 30px"],["border-radius","0"],["padding","8px 25px 8px 25px"]],"accept_close_page_navigation":true}';
/* ]]> */
</script>
<!-- This site is converting visitors into subscribers and customers with OptinMonster - https://optinmonster.com :: Campaign Title: Premium Form -->
<script>(function(d,u,ac){var s=d.createElement('script');s.type='text/javascript';s.src='https://a.omappapi.com/app/js/api.min.js';s.async=true;s.dataset.user=u;s.dataset.campaign=ac;d.getElementsByTagName('head')[0].appendChild(s);})(document,239126,'mtl3usaatiapsmduecgm');</script>
<!-- / OptinMonster --><!-- This site is converting visitors into subscribers and customers with OptinMonster - https://optinmonster.com :: Campaign Title: Newsletter Popup -->
<script>(function(d,u,ac){var s=d.createElement('script');s.type='text/javascript';s.src='https://a.omappapi.com/app/js/api.min.js';s.async=true;s.dataset.user=u;s.dataset.campaign=ac;d.getElementsByTagName('head')[0].appendChild(s);})(document,239126,'nwbempnhxpu0s9fqvsnt');</script>
<!-- / OptinMonster --> <script type="text/javascript">
var mtl3usaatiapsmduecgm_shortcode = true;var nwbempnhxpu0s9fqvsnt_shortcode = true; </script>
<script id="eio-lazy-load-js-before">
var eio_lazy_vars = {"exactdn_domain":"","skip_autoscale":0,"threshold":0,"use_dpr":1};
//# sourceURL=eio-lazy-load-js-before
</script>
<script async data-wp-strategy="async" id="eio-lazy-load-js" src="https://sdtimes.com/wp-content/plugins/ewww-image-optimizer/includes/lazysizes.min.js?ver=821"></script>
<script id="site_tracking-js-extra">
var php_data = {"ac_settings":{"tracking_actid":252377639,"site_tracking_default":1,"site_tracking":1},"user_email":""};
//# sourceURL=site_tracking-js-extra
</script>
<script id="site_tracking-js" src="https://sdtimes.com/wp-content/plugins/activecampaign-subscription-forms/site_tracking.js?ver=7.1"></script>
<script id="kadence-navigation-js-extra">
var kadenceConfig = {"screenReader":{"expand":"Child menu","expandOf":"Child menu of","collapse":"Child menu","collapseOf":"Child menu of"},"breakPoints":{"desktop":"1024","tablet":768},"scrollOffset":"0"};
//# sourceURL=kadence-navigation-js-extra
</script>
<script id="kadence-navigation-js" src="https://sdtimes.com/wp-content/themes/kadence/assets/js/navigation.min.js?ver=1.5.0" async></script>
<script id="page-links-to-js" src="https://sdtimes.com/wp-content/plugins/page-links-to/dist/new-tab.js?ver=3.3.7"></script>
<script>(function(d){var s=d.createElement("script");s.type="text/javascript";s.src="https://a.omappapi.com/app/js/api.min.js";s.async=true;s.id="omapi-script";d.getElementsByTagName("head")[0].appendChild(s);})(document);</script><script id="enlighterjs-js" src="https://sdtimes.com/wp-content/plugins/enlighter/cache/enlighterjs.min.js?ver=TCJ3uu4ziAop2Sw"></script>
<script id="enlighterjs-js-after">
!function(e,n){if("undefined"!=typeof EnlighterJS){var o={"selectors":{"block":"pre.EnlighterJSRAW","inline":"code.EnlighterJSRAW"},"options":{"indent":4,"ampersandCleanup":true,"linehover":true,"rawcodeDbclick":false,"textOverflow":"break","linenumbers":true,"theme":"dracula","language":"generic","retainCssClasses":false,"collapse":false,"toolbarOuter":"","toolbarTop":"{BTN_RAW}{BTN_COPY}{BTN_WINDOW}{BTN_WEBSITE}","toolbarBottom":""}};(e.EnlighterJSINIT=function(){EnlighterJS.init(o.selectors.block,o.selectors.inline,o.options)})()}else{(n&&(n.error||n.log)||function(){})("Error: EnlighterJS resources not loaded yet!")}}(window,console);
//# sourceURL=enlighterjs-js-after
</script>
<script id="hoverIntent-js" src="https://sdtimes.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2"></script>
<script id="megamenu-js" src="https://sdtimes.com/wp-content/plugins/megamenu/js/maxmegamenu.js?ver=3.5"></script>
<script id="megamenu-pro-js" src="https://sdtimes.com/wp-content/plugins/megamenu-pro/assets/public.js?ver=2.2.9.1"></script>
<script id="kad-splide-js" src="https://sdtimes.com/wp-content/themes/kadence/assets/js/splide.min.js?ver=1.5.0" async></script>
<script id="kadence-slide-init-js-extra">
var kadenceSlideConfig = {"of":"of","to":"to","slide":"Slide","next":"Next","prev":"Previous"};
//# sourceURL=kadence-slide-init-js-extra
</script>
<script id="kadence-slide-init-js" src="https://sdtimes.com/wp-content/themes/kadence/assets/js/splide-init.min.js?ver=1.5.0" async></script>
<script id="optinmonster-wp-helper-js" src="https://sdtimes.com/wp-content/plugins/optinmonster/assets/dist/js/helper.min.js?ver=2.16.21"></script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://sdtimes.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1"}}
</script>
<script type="module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=https://sdtimes.com/wp-includes/js/wp-emoji-loader.min.js
</script>
<script>
(function(){
var lb = document.querySelector('.sdt-article-top-lb');
var content = document.querySelector('.entry-content');
if (!lb || !content) return;
function check() {
var rect = content.getBoundingClientRect();
if (rect.top + content.offsetHeight / 2 < 0) {
lb.classList.add('sdt-lb-released');
} else {
lb.classList.remove('sdt-lb-released');
}
}
window.addEventListener('scroll', check, { passive: true });
check();
})();
</script>
<!-- Google Tag Manager (noscript) --><noscript><iframe data-cli-class="cli-blocker-script" data-cli-label="Google Tag Manager" data-cli-script-type="analytics" data-cli-block="true" data-cli-block-if-ccpa-optout="false" data-cli-element-position="body" data-cli-placeholder="Accept <a class='cli_manage_current_consent'>Analytics</a> cookies to view the content." data-cli-src="https://www.googletagmanager.com/ns.html?id=GTM-M8DVS3N" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><!-- End Google Tag Manager (noscript) --> <script type="text/javascript">var omapi_localized = {
ajax: 'https://sdtimes.com/wp-admin/admin-ajax.php?optin-monster-ajax-route=1',
nonce: '536fc916cd',
slugs:
{"mtl3usaatiapsmduecgm":{"slug":"mtl3usaatiapsmduecgm","mailpoet":false},"nwbempnhxpu0s9fqvsnt":{"slug":"nwbempnhxpu0s9fqvsnt","mailpoet":false}} };</script>
<script type="text/javascript">var omapi_data = {"object_id":20495,"object_key":"post","object_type":"post","term_ids":[2432,1,132,9151,2349,7995,74,2446,724,8282,4,7330,1445],"wp_json":"https:\/\/sdtimes.com\/wp-json","wc_active":false,"edd_active":false,"nonce":"ebb244dfa2"};</script>
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"3b3e600989844779902281ec01321226","r":1,"spa":2}' crossorigin="anonymous"></script>
<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a39355fe3fe57587',t:'MTc4OTA5NDcyMg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>