
<!DOCTYPE html>
<html lang="en-US" xml:lang="en-US" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" data-edition="us" data-edition-default="us" data-lang="en" data-brand="iw">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
	<style>:root { --advertisement-label-text: "Advertisement"; }</style>		<link rel="profile" href="https://gmpg.org/xfn/11">
		<script>
		window.isBrandPostSeriesLanding = "false";
	</script>
	<meta name='robots' content='max-image-preview:large, index,follow' />
	<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
	<meta name="amazonbot" content="noarchive">
<script>
window._sp_analytics = {
	config: {
		accountId: 146,
		events: {
			onDetectionComplete: function() {
				console.log('onMessageReady');
			}
		},
	}
};
</script>
			
	<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v23.3) - https://yoast.com/wordpress/plugins/seo/ -->
	<title>InfoWorld | Technology insight for the enterprise</title>
	<!-- / Yoast SEO Premium plugin. -->


<link rel='dns-prefetch' href='//cdn.onthe.io' />
<link rel='dns-prefetch' href='//cdn-4.convertexperiments.com' />
<link rel="alternate" type="application/rss+xml" title="InfoWorld &raquo; Feed" href="https://www.infoworld.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="InfoWorld &raquo; Comments Feed" href="https://www.infoworld.com/comments/feed/" />
	<script>
		//CMP Stub
	"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){for(var t,e,o=[],n=window,r=n;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(a){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o){if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5)}return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(n){}else o=t.data;var r="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;r&&window.__tcfapi(r.command,r.version,function(o,n){var a={__tcfapiReturn:{returnValue:o,success:n,callId:r.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")},r.parameter)},!1))};"undefined"!=typeof module?module.exports=t:t()}();

	window.__gpp_addFrame=function(e){if(!window.frames[e]){if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,10,e)}},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],s=e.length>1?e[1]:null,a=e.length>2?e[2]:null;if("ping"===t)s({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct",],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:s,parameter:a}),s({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct",],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var p=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==a){__gpp.events.splice(i,1),p=!0;break}s({eventName:"listenerRemoved",listenerId:a,data:p,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct",],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?s(!1,!0):"getSection"===t||"getField"===t?s(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var s=t?JSON.parse(e.data):e.data}catch(a){s=null}if("object"==typeof s&&null!==s&&"__gppCall"in s){var n=s.__gppCall;window.__gpp(n.command,function(s,a){var p={__gppReturn:{returnValue:s,success:a,callId:n.callId}};e.source.postMessage(t?JSON.stringify(p):p,"*")},"parameter"in n?n.parameter:null,"version"in n?n.version:"1.1")}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));

	
	</script>
	<link rel='stylesheet' id='wp-block-library-css' href='https://www.infoworld.com/wp-includes/css/dist/block-library/style.min.css?ver=6.8.5' media='all' />
<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}
</style>
<style id='co-authors-plus-coauthors-style-inline-css'>
.wp-block-co-authors-plus-coauthors.is-layout-flow [class*=wp-block-co-authors-plus]{display:inline}

</style>
<style id='co-authors-plus-avatar-style-inline-css'>
.wp-block-co-authors-plus-avatar :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-avatar :where(img){vertical-align:middle}.wp-block-co-authors-plus-avatar:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-avatar.aligncenter{display:table;margin-inline:auto}

</style>
<style id='co-authors-plus-image-style-inline-css'>
.wp-block-co-authors-plus-image{margin-bottom:0}.wp-block-co-authors-plus-image :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-image :where(img){vertical-align:middle}.wp-block-co-authors-plus-image:is(.alignfull,.alignwide) :where(img){width:100%}.wp-block-co-authors-plus-image:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-image.aligncenter{display:table;margin-inline:auto}

</style>
<style id='elasticpress-facet-style-inline-css'>
.widget_ep-facet input[type=search],.wp-block-elasticpress-facet input[type=search]{margin-bottom:1rem}.widget_ep-facet .searchable .inner,.wp-block-elasticpress-facet .searchable .inner{max-height:20em;overflow:scroll}.widget_ep-facet .term.hide,.wp-block-elasticpress-facet .term.hide{display:none}.widget_ep-facet .empty-term,.wp-block-elasticpress-facet .empty-term{opacity:.5;position:relative}.widget_ep-facet .empty-term:after,.wp-block-elasticpress-facet .empty-term:after{bottom:0;content:" ";display:block;left:0;position:absolute;right:0;top:0;width:100%;z-index:2}.widget_ep-facet .level-1,.wp-block-elasticpress-facet .level-1{padding-left:20px}.widget_ep-facet .level-2,.wp-block-elasticpress-facet .level-2{padding-left:40px}.widget_ep-facet .level-3,.wp-block-elasticpress-facet .level-3{padding-left:60px}.widget_ep-facet .level-4,.wp-block-elasticpress-facet .level-4{padding-left:5pc}.widget_ep-facet .level-5,.wp-block-elasticpress-facet .level-5{padding-left:75pt}.widget_ep-facet input[disabled],.wp-block-elasticpress-facet input[disabled]{cursor:pointer;opacity:1}.widget_ep-facet .term a,.wp-block-elasticpress-facet .term a{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.widget_ep-facet .term a:hover .ep-checkbox,.wp-block-elasticpress-facet .term a:hover .ep-checkbox{background-color:#ccc}.ep-checkbox{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:#eee;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:1em;justify-content:center;margin-right:.25em;width:1em}.ep-checkbox:after{border:solid #fff;border-width:0 .125em .125em 0;content:"";display:none;height:.5em;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:.25em}.ep-checkbox.checked{background-color:#5e5e5e}.ep-checkbox.checked:after{display:block}

</style>
<link rel='stylesheet' id='elasticpress-related-posts-block-css' href='https://www.infoworld.com/wp-content/mu-plugins/search/elasticpress/dist/css/related-posts-block-styles.min.css?ver=4.2.2' media='all' />
<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--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 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,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 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: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--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 rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}: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;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.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-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-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-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;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='editions-desktop-css' href='https://www.infoworld.com/wp-content/client-mu-plugins/idg-editions/dist/styles/main.css?ver=0.1.0' media='all' />
<link rel='stylesheet' id='third-party-integrations-style-css' href='https://www.infoworld.com/wp-content/client-mu-plugins/idg-third-party/dist/styles/index.css?ver=1776355806' media='all' />
<link rel='stylesheet' id='frontend-jwplayer-styles-css' href='https://www.infoworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/jwplayer.css?ver=1776355807' media='all' />
<link rel='stylesheet' id='frontend-shared-styles-css' href='https://www.infoworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/shared.css?ver=1776355807' media='all' />
<link rel='stylesheet' id='frontend-styles-css' href='https://www.infoworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/bundle.css?ver=1776355807' media='all' />
<link rel='stylesheet' id='iw-amp-styles-css' href='https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/dist/styles/amp.css?ver=1776355807' media='all' />
<script type="text/javascript" src="https://www.infoworld.com/wp-includes/js/dist/hooks.min.js?m=1774626878g" ></script><script src="https://www.infoworld.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
</script>
<script type="text/javascript" src="https://www.infoworld.com/wp-content/client-mu-plugins/idg-editions/dist/scripts/editions-front.js?m=1776355806g" ></script><script id="third-party-integrations-script-js-extra">
var IDG = {"settings":{"cmp":{"account":{"id":"146","base_endpoint":"https:\/\/cmpv2.infoworld.com","href":"https:\/\/www.infoworld.com","is_cp_multi_campaign_enabled":true},"gdpr":{"script":"https:\/\/cmpv2.infoworld.com\/unified\/wrapperMessagingWithoutDetection.js","privacy_manager_id":"1096030","property_id":"9220","privacy_manager_id_amp":"1096030","href_amp":"https:\/\/amp.infoworld.com"},"ccpa":{"script":"https:\/\/ccpa.sp-prod.net\/ccpa.js","origin":"https:\/\/ccpa-service.sp-prod.net","privacy_manager_id":"1096053","privacy_manager_uuid":"5dfa75f712068b42714ed7b8","property_id":"16077","href_amp":"https:\/\/ccpa.amp.infoworld.com"},"gpp":{"usnat_pm_id":"1316752","is_gpp_enabled":true},"contentpass":{"cp_base_url":"https:\/\/cp.infoworld.com","cp_property_id":"17801f76","is_cp_enabled":true,"contentpass_geos":"DE,AT,IE,GB"}},"gtm":{"account":{"id":"GTM-NN43QC7W","amp_id":"","ua_number":"UA-6647659-1"}},"gpt":{"consent":{"vendor_id":"5e74df5ff443bb795772df9c"},"config":{"prefix":"\/8456\/IDG.G_B2B_InfoWorld.com\/","threshold":"0.7","slots":[{"name":"gpt-leaderboard","template":"banner","disabled":false,"sticky_duration":"12","pos":"ATF1","size":"728x90","size_definitions":[{"breakpoint":"970","sizes":"728x90"},{"breakpoint":"728","sizes":"728x90"},{"breakpoint":"320","sizes":"300x50,320x50,300x250"}],"insert_after_p":"1"},{"name":"gpt-leaderboardmainbod","template":"article","disabled":false,"refresh_interval":"15","refresh_amount":"6","size":"300x50","pos":"BTF{{count}}","size_definitions":[{"breakpoint":"970","sizes":"970x250,728x90,300x250"},{"breakpoint":"728","sizes":"728x90,300x250"},{"breakpoint":"320","sizes":"300x50,320x50,300x250,300x240"}],"page_template":[{"custom_template":"Homepage","desktop":"3,10","mobile":"3,10","feed_v2_articlelisting":[{"feed_v2":"Feed-V2","desktop":"3,5,9","mobile":"3,5,9","block_name":"feed_v2"}]},{"custom_template":"Article","desktop":"3,6,9,12,15,18,21,24,27,30,33,36,40","mobile":"3,6,9,12,15,18,21,24,27,30,33,36,40","feed_v2_articlelisting":[{"feed_v2":"Feed-V2","desktop":"3,5,9","mobile":"3,5,9","block_name":"feed_v2"}]},{"custom_template":"Archive","desktop":"0","mobile":"0","feed_v2_articlelisting":[{"feed_v2":"Feed-V2","desktop":"3,5,9","mobile":"3,5,9","block_name":"feed_v2"}]},{"custom_template":"Topic landing page","desktop":"3,9","mobile":"3,9","feed_v2_articlelisting":[{"feed_v2":"Feed-V2","desktop":"3,5,9","mobile":"3,5,9","block_name":"feed_v2"}]}],"insert_after_p":"1"},{"name":"gpt-rightrail","template":"right_rail","disabled":false,"size":"120x600","section":"Sidebardfpatf{{count}}","pos":"BTF{{count}}","size_definitions":[{"breakpoint":"970","sizes":"300x250,300x600,160x600,120x600"},{"breakpoint":"728","sizes":""},{"breakpoint":"320","sizes":""}],"insert_after_p":"1"},{"name":"gpt-oc_ad_1","template":"oc_ad_1","disabled":false,"size":"7x7","pos":"ATF1","size_definitions":[{"breakpoint":"970","sizes":"7x7,1x2"},{"breakpoint":"728","sizes":"7x7"},{"breakpoint":"320","sizes":"7x7"}],"insert_after_p":"1"},{"name":"gpt-topimu","template":"topimu","disabled":false,"size":"300x50","pos":"ATF1","size_definitions":[{"breakpoint":"970","sizes":"300x250,300x600,160x600,120x600"},{"breakpoint":"728","sizes":""},{"breakpoint":"320","sizes":""}],"insert_after_p":"1"},{"name":"gpt-overlay","template":"overlay","disabled":false,"size":"640x480","pos":"gpt-overlay","size_definitions":[{"breakpoint":"970","sizes":"640x480"},{"breakpoint":"728","sizes":"640x480"},{"breakpoint":"320","sizes":""}],"insert_after_p":"1"},{"name":"gpt-skin","template":"skin","disabled":false,"size":"1x1","pos":"gpt-skin","size_definitions":[{"breakpoint":"970","sizes":"1x1"},{"breakpoint":"728","sizes":""},{"breakpoint":"320","sizes":""}],"insert_after_p":"1"}],"aps_pub_id":"0"}},"permutive":{"account":{"workspace_id":"f5b3be27-f789-4ef1-8867-37c67da5b361","api_key":"84c7e805-5ce9-41f4-b988-3529488bab1c"}},"outbrain":[],"admiral":{"config":{"id":"A-5AF8EB64CCA9836B6A69CC6F-18","enable_ad_block":true}},"hellobar":{"config":{"insert_first_hello_bar_after_p":"6","insert_second_hello_bar_after_p":"12"}},"nativo":{"config":{"script":"https:\/\/s.ntv.io\/serve\/load.js","page_template":[{"custom_template":"Homepage","desktop":"5,8,13","mobile":"5,8,13"},{"custom_template":"Article","desktop":"22,32,37","mobile":"22,32,37"},{"custom_template":"Archive","desktop":"3","mobile":"3"}],"relatedcontent":[{"related_content_block":"Related Content","desktop":"3","block_name":"related_content"}],"populartopic":[{"nativopopulartopic":"Popular Topics","desktop":"2","mobile":"2","block_name":"popular_topics"}],"herov2":[{"nativoherov2":"Hero V2","desktop":"2","mobile":"2","block_name":"hero_v2","variant":[{"variant_name":"Default","desktop":"3,5","mobile":"3,5","Variant_value":"default"},{"variant_name":"Card 4 By 4","desktop":"4","mobile":"4","Variant_value":"fourByFour"},{"variant_name":"Card Small 4 By 4","desktop":"4","mobile":"4","Variant_value":"oneByThree"}]}],"variouscontentlisting":[{"various_content_listing":"Various content listings","desktop":"3,5,9","mobile":"3,5,9","block_name":"various_content_listing"}]}},"newsletter_register_para_details":{"nrp_info":{"paracount":"0"}},"newsletter_subscribe_btn_redirect_url":[],"subscribers":{"config":{"id":"d73925e9-37f6-478a-9804-7901f9e3a2ae","script":"https:\/\/cdn.subscribers.com\/assets\/subscribers.js"}},"jw_player":{"config":{"insert_after_p":"4","insert_after_article":"","player_library_id":"8yHZorDV","amp_player_library_id":"Q4xdwtHS","floating_player_playlist_id":"wj1ht0vS","adscheduleid":"LxK3nuOJ","floating_player_adscheduleid":"LxK3nuOJ","description_url":"http:\/\/www.infoworld.com","sz":"640x480|640x360","ciu_szs":"300x250,728x90","amp_insert_after_p":"4","floating_player_delay":"5"}},"io_script":{"config":{"id":"OmWzZwn3Mi5H","io_amp_id":"45650"}},"ms_clarity":{"config":{"project_id":"s1gr1xsv4j","is_enabled":true}},"topic_landing_brandpost_configuration":{"tlp_config":{"tlp_config_page_template":[{"tlp_config_template":"Content Listing Articles","desktop":"5"}]}},"overlays_privacy_policies":{"consent_overlays":{"english_overlay_message":"<div class=\"external-embed-wrapper hide-overlay-${platform}\"><div class=\"overlay-div\"><h4>External content from ${platformName}<\/h4><p>This article contains external content from ${platformName}. To view the content, we request your permission.<\/p><a class=\"consent-button\" data-cmp=\"${cmp}\" data-callback=\"${callback}\" data-type=\"hide-overlay-${platform}\" href=\"javascript:void(0)\">Show external content from ${platformName}<\/a><p>By clicking on \u201cShow external content from ${platformName}\u201d I agree that the content will be displayed to me. This allows personal data to be transmitted to ${platformName} and other third parties. You can find more information about this in our <a target=\"_blank\" href=\"${foundryPPLink}\">data protection declaration<\/a> and <a target=\"_blank\" href=\"${privacyPolicyLink}\">${platformName}<\/a>\u2019s Privacy Policy.<p><\/div><\/div>","german_overlay_message":"<div class=\"external-embed-wrapper hide-overlay-${platform}\"><div class=\"overlay-div\"><h4>Externer Inhalt von ${platformName}<\/h4><p>An dieser Stelle hat die Redaktion einen zum Inhalt des Artikels passenden externen Inhalt von ${platformName} platziert. Damit dieser angezeigt werden kann, ben\u00f6tigen wir Ihre Zustimmung.<\/p><p><a class=\"consent-button\" data-cmp=\"${cmp}\" data-callback=\"${callback}\" data-type=\"hide-overlay-${platform}\" href=\"javascript:void(0)\" style=\"border: 2px solid black;padding: 5px 10px;color: black;\">Externen Inhalt von ${platformName} anzeigen<\/a><\/p><p>Mit einem Klick auf \"Externe Inhalte von ${platformName} anzeigen\" erkl\u00e4re ich mich damit einverstanden, dass mir der Inhalt angezeigt wird. Dadurch k\u00f6nnen personenbezogene Daten an ${platformName} und andere Drittanbieter \u00fcbermittelt werden. Mehr Informationen dazu finden Sie in unserer <a target=\"_blank\" href=\"${foundryPPLink}\">Datenschutzerkl\u00e4rung<\/a> und unter <a target=\"_blank\" href=\"${privacyPolicyLink}\">${platformName}<\/a>\u2019s.<p><\/div><\/div>","sweden_overlay_message":"<div class=\"external-embed-wrapper hide-overlay-${platform}\"><div class=\"overlay-div\"><h4>Externt inneh\u00e5ll fr\u00e5n ${platformName}<\/h4><p>Den h\u00e4r artikeln inneh\u00e5ller externt inneh\u00e5ll fr\u00e5n ${platformName}. F\u00f6r att se inneh\u00e5llet ber vi om ditt tillst\u00e5nd.<\/p><p><a class=\"consent-button\" data-cmp=\"${cmp}\" data-callback=\"${callback}\" data-type=\"hide-overlay-${platform}\" href=\"javascript:void(0)\" style=\"border: 2px solid black;padding: 5px 10px;color: black;\">Visa externt inneh\u00e5ll fr\u00e5n ${platformName}<\/a><\/p><p>Genom att klicka p\u00e5 \"Visa externt inneh\u00e5ll fr\u00e5n ${platformName}\" godk\u00e4nner jag att inneh\u00e5llet kommer att visas f\u00f6r mig. Detta g\u00f6r att personuppgifter kan \u00f6verf\u00f6ras till ${platformName} och tredje part. Du kan hitta mer information om detta i v\u00e5r <a target=\"_blank\" href=\"${foundryPPLink}\">dataskyddsdeklaration<\/a> and <a target=\"_blank\" href=\"${privacyPolicyLink}\">${platformName}<\/a>\u2019s sekretesspolicy.<p><\/div><\/div>","english_generic_overlay_message":"<div class=\"external-embed-wrapper custom-html-consent-notice-${platform}\"><div class=\"overlay-div\"><h4>Allow External content<\/h4><p>This article contains external content in this section. To view the content, we request your permission.<\/p><a class=\"consent-button-generic\" platform=\"${platform}\" href=\"javascript:void(0)\">Show external content<\/a><p>By clicking on \u201cShow external content\u201d, I agree that the content will be displayed to me. This allows personal data to be transmitted to other third parties. You can find more information about this in our <a target=\"_blank\" href=\"${foundryPPLink}\">data protection declaration<\/a> and the external source\u2019s privacy policy.<p><\/div><\/div>","german_generic_overlay_message":"<div class=\"external-embed-wrapper custom-html-consent-notice-${platform}\"><div class=\"overlay-div\"><h4>Allow External content<\/h4><p>This article contains external content in this section. To view the content, we request your permission.<\/p><a class=\"consent-button-generic\" platform=\"${platform}\" href=\"javascript:void(0)\">Show external content<\/a><p>By clicking on \u201cShow external content\u201d, I agree that the content will be displayed to me. This allows personal data to be transmitted to other third parties. You can find more information about this in our <a target=\"_blank\" href=\"${foundryPPLink}\">data protection declaration<\/a> and the external source\u2019s privacy policy.<p><\/div><\/div>","sweden_generic_overlay_message":"<div class=\"external-embed-wrapper custom-html-consent-notice-${platform}\"><div class=\"overlay-div\"><h4>Allow External content<\/h4><p>This article contains external content in this section. To view the content, we request your permission.<\/p><a class=\"consent-button-generic\" platform=\"${platform}\" href=\"javascript:void(0)\">Show external content<\/a><p>By clicking on \u201cShow external content\u201d, I agree that the content will be displayed to me. This allows personal data to be transmitted to other third parties. You can find more information about this in our <a target=\"_blank\" href=\"${foundryPPLink}\">data protection declaration<\/a> and the external source\u2019s privacy policy.<p><\/div><\/div>"},"foundry_privacy_policies":{"contentpass":"https:\/\/foundryco.com\/about-us\/privacy-compliance\/","gdpr":"https:\/\/foundryco.com\/about-us\/privacy-compliance\/","ccpa":"https:\/\/foundryco.com\/about-us\/privacy-compliance\/"},"megaphone_privacy_policies":{"contentpass":"https:\/\/megaphone.spotify.com\/legal","gdpr":"https:\/\/megaphone.spotify.com\/legal","ccpa":"https:\/\/megaphone.spotify.com\/legal"},"instagram_privacy_policies":{"contentpass":"https:\/\/privacycenter.instagram.com\/policy\/version\/25238980265745528\/","gdpr":"https:\/\/privacycenter.instagram.com\/policy\/version\/25238980265745528\/","ccpa":"https:\/\/privacycenter.instagram.com\/policy\/version\/25238980265745528\/"},"facebook_privacy_policies":{"contentpass":"https:\/\/www.facebook.com\/privacy\/policy\/version\/25238980265745528","gdpr":"https:\/\/www.facebook.com\/privacy\/policy\/version\/25238980265745528","ccpa":"https:\/\/www.facebook.com\/privacy\/policy\/version\/25238980265745528"},"twitter_privacy_policies":{"contentpass":"https:\/\/x.com\/de\/privacy","gdpr":"https:\/\/x.com\/en\/privacy","ccpa":"https:\/\/x.com\/en\/privacy"},"toutube_privacy_policies":{"contentpass":"https:\/\/support.google.com\/youtube\/answer\/10364219?hl=de","gdpr":"https:\/\/support.google.com\/youtube\/answer\/10364219?hl=en-GB","ccpa":"https:\/\/support.google.com\/youtube\/answer\/10364219?hl=en-GB"},"tiktok_privacy_policies":{"contentpass":"https:\/\/www.tiktok.com\/legal\/page\/eea\/privacy-policy\/de","gdpr":"https:\/\/www.tiktok.com\/legal\/page\/eea\/privacy-policy\/en","ccpa":"https:\/\/www.tiktok.com\/legal\/page\/us\/privacy-policy\/en"},"infogram_privacy_policies":{"contentpass":"https:\/\/infogram.com\/privacy","gdpr":"https:\/\/infogram.com\/privacy","ccpa":"https:\/\/infogram.com\/privacy"},"apple_podcast_privacy_policies":{"contentpass":"https:\/\/www.apple.com\/legal\/privacy\/data\/de\/apple-podcasts\/","gdpr":"https:\/\/www.apple.com\/legal\/privacy\/data\/en\/apple-podcasts","ccpa":"https:\/\/www.apple.com\/legal\/privacy\/data\/en\/apple-podcasts"},"slideshare_privacy_policies":{"contentpass":"https:\/\/www.slideshare.net\/privacy","gdpr":"https:\/\/www.slideshare.net\/privacy","ccpa":"https:\/\/www.slideshare.net\/privacy"},"jetpack_podcast_player_privacy_policies":{"contentpass":"https:\/\/jetpack.com\/support\/jetpack-blocks\/podcast-player-block\/","gdpr":"https:\/\/jetpack.com\/support\/jetpack-blocks\/podcast-player-block\/","ccpa":"https:\/\/jetpack.com\/support\/jetpack-blocks\/podcast-player-block\/"},"vimeo_privacy_policies":{"contentpass":"https:\/\/vimeo.com\/privacy","gdpr":"https:\/\/vimeo.com\/privacy","ccpa":"https:\/\/vimeo.com\/privacy"},"soundcloud_privacy_policies":{"contentpass":"https:\/\/soundcloud.com\/pages\/privacy","gdpr":"https:\/\/soundcloud.com\/pages\/privacy","ccpa":"https:\/\/soundcloud.com\/pages\/privacy"},"giphy_privacy_policies":{"contentpass":"https:\/\/support.giphy.com\/hc\/en-us\/articles\/360032872931-GIPHY-Privacy-Policy ","gdpr":"https:\/\/support.giphy.com\/hc\/en-us\/articles\/360032872931-GIPHY-Privacy-Policy ","ccpa":"https:\/\/support.giphy.com\/hc\/en-us\/articles\/360032872931-GIPHY-Privacy-Policy "},"reddit_privacy_policies":{"contentpass":"https:\/\/www.reddit.com\/policies\/privacy-policy ","gdpr":"https:\/\/www.reddit.com\/policies\/privacy-policy ","ccpa":"https:\/\/www.reddit.com\/policies\/privacy-policy "},"spotify_privacy_policies":{"contentpass":"https:\/\/www.spotify.com\/de-en\/legal\/privacy-policy\/","gdpr":"https:\/\/www.spotify.com\/de-en\/legal\/privacy-policy\/","ccpa":"https:\/\/www.spotify.com\/de-en\/legal\/privacy-policy\/"},"bluesky_privacy_policies":{"contentpass":"https:\/\/bsky.social\/about\/support\/privacy-policy","gdpr":"https:\/\/bsky.social\/about\/support\/privacy-policy","ccpa":"https:\/\/bsky.social\/about\/support\/privacy-policy "},"linkedin_privacy_policies":{"contentpass":"https:\/\/www.linkedin.com\/legal\/privacy-policy","gdpr":"https:\/\/www.linkedin.com\/legal\/privacy-policy","ccpa":"https:\/\/www.linkedin.com\/legal\/privacy-policy"}}},"GPT":{"ad_slot_name":"homepage_door","prefix":"\/8456\/IDG.G_B2B_InfoWorld.com\/","targeting":{"articleId":"100007471","author":"M\u00fcller Magnus","browser":"FeedBurner\/1.0(http:\/\/www.FeedBurner.com)","templateType":"home","categorySlugs":"","tags":"","categoryIds":"","env":null,"productId":"","goldenIds":"","channel":"","fireplace":"true","type":"","typeId":"","sponsored":"false","video-autoplay":"true","manufactuer":"microsoft","url":"https:\/\/www.infoworld.com\/","zone":"index-home","wpsponsorshipId":""}},"geolocation":"US","suppress_monetization":{},"supressBb2bRightrail":"","products":[],"vendor_pricing":{"amazon":[]},"APS":[],"isB2B":"1","isSingle":"","isEuVisitor":""};
</script>
<script id="third-party-integrations-script-js-before">
			window.dataLayer = window.dataLayer || [];
			window.dataLayer.push({"adBlockerEnabled":true,"arenaId":"","audience":"enterprise","ccpaOptedOut":"false","environment":"wp_production","sessionNumber":"@TODO","firstSessionDate":"@TODO","lastSessionDate":"@TODO","timestamp":1776653350,"url":"https:\/\/www.infoworld.com\/","triblioPixelCode":"","prodIds":"","prodCategories":"","prodManufacturers":"","prodNames":"","prodVendors":"","categories":"","categoryIds":"","categoriesSlugs":"","channel":"","primaryCategory":"","primaryAncestorCategoryList":"","primaryAncestorCategoryListSlugs":"","ancestorGoldenCategories":"","goldenTaxonomyIdPrimary":"","gtaxPrimaryIdsList":"","gtaxPrimarySlugsList":"","gtaxIdList":"","gtaxList":"","bcGtaxIdList":[],"bcGtaxList":[],"language":"English","articleId":"100007471","articleTitle":"InfoWorld","articleType":"","author":"M\u00fcller Magnus","isBlog":"false","blogname":"","blogId":"","brandpost":"false","content_type":"index","datePublished":"2024-06-26","dateUpdate":"2026-04-17","dateTimePublished":"2024-06-26T07:16:48-04:00","dateTimeUpdate":"2026-04-17T17:04:18-04:00","dateFirstPublished":false,"dateFirstTimePublished":false,"daysSincePublished":"","daysSinceUpdated":"2","description":"Business technology, IT news, product reviews and enterprise IT strategies.","displayType":"home page","fireplace":"true","pageNumber":"1","page_type":"home","platform":"web","podcastSponsored":"false","property":"infoworld","source":"","sponsorName":"","sponsorshipId":"","tags":[],"legacyCmsId":"","edition":"us","articleLocale":"","isInsiderContent":"false","insiderSignedIn":"false","adSuppression":"false","BCUID":"","legacyCmsName":"","idgAppID":{"SITE_TYPE":[{"type":"delivery","site":"infoworld.com","sourcecms":"onecms","connectedhub":"b2b","staff":"Infoworld Staff","brand":"IW"}],"IDG_APP_ID":9049},"adestraId":""});
			(function(){
		const isContentPassOn = true;

		const isContentPassCookiePresent = function () {
			const data = (document.cookie.match(/^(?:.*;)?\s*_cpauthhint\s*=\s*([^;]+)(?:.*)?$/) || [,null])[1];  //eslint-disable-line
			console.log('^^CP cookie value = '+data);
			if (data) return true;
			return false
		};
		const fireGtm = function(){
			console.log('^^GTM Firing');
			(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-NN43QC7W');
		};

		console.log('^^Content pass is active =',isContentPassOn);
		if(isContentPassOn) {
			const userHasCPCookie = isContentPassCookiePresent(); //does the user have the Content pass cookie
			console.log('^^User has contentpass cookie=',userHasCPCookie);
			if(userHasCPCookie){
				document.addEventListener('consentManagerReady', () => {
					if(consentManager.gdprApplies) {
						const hasConsent = consentManager.checkConsentByVendor('Google Tag Manager');
						console.log('^^ContentPass on and GTM consent =',hasConsent);
						if(hasConsent===true)fireGtm();
					} else {//not gdpr so fire
						fireGtm();
					}
				});
			} else {//no cookie so fire
				fireGtm();
			}
		} else {
			fireGtm();
		}
	})();
	
		// Permutive Stub
		!function(n,e,i){if(!n){n=n||{},window.permutive=n,n.q=[],n.config={}||{},n.config.apiKey=e,n.config.environment=n.config.environment||"production";for(var o=["addon","identify","track","trigger","query","segment","segments","ready","on","once","user","consent"],r=0;r<o.length;r++){var t=o[r];n[t]=function(e){return function(){var i=Array.prototype.slice.call(arguments,0);n.q.push({functionName:e,arguments:i})}}(t)}}}(    			window.permutive,
			'84c7e805-5ce9-41f4-b988-3529488bab1c'
		);
		window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.googletag.cmd.push(function(){if(0===window.googletag.pubads().getTargeting("permutive").length){var g=window.localStorage.getItem("_pdfps");window.googletag.pubads().setTargeting("permutive",g?JSON.parse(g):[])}});

					
				let categorySlug = '';

				const stripOutIllegal = s => s.replace(/[~'"=!+#;^()<>&[]]/g,'');

				window.ntvConfig = window.ntvConfig || {} ;
				window.ntvConfig.keyValues = window.ntvConfig.keyValues || {};
				const segs = localStorage.getItem('_pnativo');
				if (segs) {
					window.ntvConfig.keyValues.permutive = JSON.parse(segs).join(",");
				}

				const metaKeywordsTag = document.querySelector("meta[name='keywords']");
				if ( metaKeywordsTag && (metaKeywordsTag.hasAttribute('content')) ) {
					const kwds = metaKeywordsTag.content.split(',').filter(kw => kw.length <= 40);
					window.ntvConfig.keyValues.contextual = stripOutIllegal(kwds.join(','));
				}
				[categorySlug].forEach(function(val) {
					if (val.length !== 0) {
						window.ntvConfig.keyValues.channel = stripOutIllegal(val);
					}
				});
				if (typeof(window.ntvConfig.keyValues.channel) === "undefined") {
					window.ntvConfig.keyValues.channel = "";
				}
				const DoSomething = () => {
					const boxes = document.querySelectorAll('.nativo-loading');
					boxes.forEach(box => {
						box.classList.remove('nativo-loading');
					});
				}
				var ntv=ntv||{};ntv.cmd=ntv.cmd||[]; // setup command queue
				ntv.cmd.push(function(){ setTimeout(DoSomething, 1000) });
			

						
				window._io_config = window?._io_config || {};
				window._io_config["0.2.0"] = window?._io_config["0.2.0"] || [];
				window._io_config["0.2.0"].push({"page_url":"https:\/\/www.infoworld.com","page_url_canonical":"","page_title":"InfoWorld | Technology insight for the enterprise","page_type":"main","page_language":"en"});
			
			
</script>
<script src="https://www.infoworld.com/wp-content/client-mu-plugins/idg-third-party/dist/scripts/index.js?ver=1776355806" id="third-party-integrations-script-js"></script>
<script type="text/javascript" src="https://www.infoworld.com/_static/??-eJydzMENgzAMAMCF6pqqgvBBnSWNI+ooBMs2itgeZujrfoddIO3Nc3NMlW9gO0DqsXIzZFrBf6wEEtVPJDZHS8rihqVLjWfWZ7EH/t+I5i8TRLI7+mzLK4TpPY7zMJULaHU55Q==" ></script><script async src="https://cdn.onthe.io/io.js/OmWzZwn3Mi5H?ver=1" id="io_script_code-js"></script>
<script type="text/javascript" src="https://www.infoworld.com/_static/??-eJx9jEsKwzAMRC9URf2QpJvSs8S2SGUsJ7VkQm9fU7LIqjDwYHgzuK3A2acaSDG2vCuVz45OOHdRT/hPAuG5TEZH2S/ZKBvai6RNOMzgrg7cpAS/DgOrofrCqyn6qrYISE3GSom8taOnPC7jONz6/n4e4hfSoz2c" ></script><script id="convert-experiences-js-before">
						var _conv_page_type = "";
						var _conv_category_name = "";
						var _conv_custom_v1 = "";
						var _conv_custom_v2 = "home page";
						
</script>
<script src="//cdn-4.convertexperiments.com/v1/js/100411965-100412823.js?environment=production" id="convert-experiences-js"></script>

		<script src="https://cp.infoworld.com/now.js" async fetchPriority="high" onerror="cp('fatal', arguments)"></script>

		<!-- ContentPass configuration -->
		<script type="text/javascript" data-description="contentpass integration">
			/**
			 * If contentpass is enabled, we need the acps param,
			 * otherwise, we need type GDPR that will be called from
			 * client-mu-plugins/idg-third-party/src/modules/sourcepoint.js#L140.
			 */
			window._sp_.config.gdpr.targetingParams.acps = 'false';
			window._sp_.config.isSPA = true;

			(function() {
				// get contentpass configuration details
				var contentpassBaseUrl = 'https://cp.infoworld.com';
				var contentpassPropertyId = '17801f76';

				var cpController = contentpassBaseUrl + '/now.js';//todo - never used?

				!function(C,o,n,t,P,a,s){C.CPObject=n,C[n]||(C[n]=function(){
    for(var e=arguments.length,i=new Array(e),c=0;c<e;c++)i[c]=arguments[c];const[r,u,l]=i;if(C[n].q||(C[n].q=[]),
    t=Array.prototype.slice.call(arguments,0),!C[n].patched&&("fatal"===r&&u&&(C[n].le=u,
    Array.prototype.forEach.call(C[n].q,(function(e){"error"===e[0]&&"function"==typeof e[1]&&e[1](u)}))),
    "error"===r&&"function"==typeof u&&C[n].le&&u(C[n].le),"extension"===r&&u&&l&&"function"==typeof l.init&&(l.init(),
    l.initialized=!0),"authenticate"===r&&u)){try{
    P=-1===(o.cookie||"").indexOf("_cpauthhint=")&&!(C.localStorage||{})._cpuser&&-1===C.location.href.toLowerCase().indexOf("cpauthenticated")
    }catch(e){P=!1}P&&(a={isLoggedIn:function(){return!1},hasValidSubscription:function(){return!1}},
    "function"==typeof u&&u(null,a),t=["authenticate",null])}C[n].q.push(t)});try{
    ((s=(o.cookie.split("_cpauthhint=")[1]||"").split(";")[0])?Number(s[1]):NaN)>0&&(o.body?o.body.classList.add("cpauthenticated"):o.addEventListener("DOMContentLoaded",(function(){
    o.body.classList.add("cpauthenticated")})))}catch(e){}C[n].l=+new Date,C[n].sv=5}(window,document,"cp");

				// Will activate contentpass and initialize basic interfaces for
    			// communicating with contentpass.
				cp('create', contentpassPropertyId, {
					baseUrl: contentpassBaseUrl
				});

				// This function will trigger rendering of the Sourcepoint consent layer. First, it will check
				// whether the current user is an authenticated contentpass user. If so, the targeting parameter
				// acps is set to the string value 'true' (important: the value is not a bool, but a string!).
				// If the user is not an authenticated contentpass user, the targeting parameter is set to
				// 'false'. Make sure to not show the consent layer when the targeting parameter is set to 'true'
				// in your Sourcepoint scenario. When login status is determined, Sourcepoint is automatically
				// triggered by calling window._sp_.executeMessaging().
				cp('render', {
					onFullConsent: function() {
					console.log('[CP] onFullConsent');
					//! set the below or use the above code
					//window.visitorConsentedAll = true;

					// Init advertising here
					//
					// Attention:
					// When you update your vendor list without asking for re-consent
					// then Sourcepoint does not signal full consent for previously
					// fully consented visitors. Thus this callback is not executed,
					// and partially consented impressions are not monetized at all!
					//
					// We therefore strongly recommend to configure your Sourcepoint
					// scenario setup to always ask for re-consent on vendor updates.
					//
					// Alternatively you can always load vendors specifically based
					// on their respective consent status according to the TCF API.
					// You can find a sample integration for this on
					// https://docs.contentpass.net/docs/3rdparty
					}
				});

				(function () {
					cp('authenticate', function(err, user) {
						if (err || (!user.isLoggedIn() && !user.hasValidSubscription())) {
							(function spExecMsg() {
								if (window._sp_ && window._sp_.executeMessaging) {
									if (!window._sp_.config.isSPA) {
										console.warn('###### Contentpass [SPCP] Sourcepoint not in SPA mode!');
									} else if (window._sp_.version) {
										console.log('###### Contentpass  [SPCP] Sourcepoint already running');
									} else {
										console.log('###### Contentpass  [SPCP] Starting Sourcepoint');
										window._sp_.executeMessaging();
									}
								} else {
									console.log('###### Contentpass  [SPCP] Sourcepoint not loaded yet. Retrying.');
									setTimeout(spExecMsg, 10);
								}
							})();
						}
												if (user.isLoggedIn() && user.hasValidSubscription()) {
							// User has a valid contentpass subscription. Set the targeting parameter
							// to "'true'" so no wall is being displayed due to Sourcepoint scenario setup.
							console.log('###### Contentpass user.isLoggedIn() && hasValidSubscription. Setting acps to true');

							window._sp_.config.targetingParams.acps = 'true';
							window.cpLoggedInUser = true;
						}
					});
				})();
			})();
		</script>
		<!-- ContentPass configuration end -->
					<script>
				window.blocksForConsent = {
						"instagram": {
							"platform": "instagram",
							"platformName": "Instagram.com",
							"selector": ".wp-block-embed-instagram",
							"privacyPolicyLink": 'instagram_privacy_policies',
							"callback": "instagramCallback()"
						},
						"megaphone": {
							"platform": "megaphone",
							"platformName": "Megaphone.fm",
							"selector": ".wp-block-embed-megaphone, iframe[data-src*=\"megaphone\"]",
							"privacyPolicyLink": 'megaphone_privacy_policies',
							"callback": "megaphoneCallback()"
						},
						"slideshare": {
							"platform": "slideshare",
							"platformName": "Slideshare.net",
							"selector": "iframe[data-src*=\"slideshare.net\"]",
							"privacyPolicyLink": 'slideshare_privacy_policies',
							"callback": "slideshareCallback()"
						},
						"facebook": {
							"platform": "facebook",
							"platformName": "Facebook.com",
							"selector": ".embed_url_facebook, iframe[data-src*=\"facebook\"]",
							"privacyPolicyLink": 'facebook_privacy_policies',
							"callback": "loadFacebookEmbed()"
						},
						"twitter": {
							"platform": "twitter",
							"platformName": "Twitter.com",
							"selector": ".wp-block-embed-twitter",
							"privacyPolicyLink": 'twitter_privacy_policies',
							"callback": "twitterCallback()"
						},
						"youtube": {
							"platform": "youtube",
							"platformName": "Youtube.com",
							"selector": ".wp-block-embed-youtube,  [data-type=\"youtube\"], .youtube-video .video-container",
							"privacyPolicyLink": 'toutube_privacy_policies',
							"callback": "youtubeCallback()"
						},
						"tiktok": {
							"platform": "tiktok",
							"platformName": "Tiktok.com",
							"selector": ".wp-block-embed-tiktok",
							"privacyPolicyLink": 'tiktok_privacy_policies',
							"callback": "tiktokCallback()"
						},
						"infogram": {
							"platform": "infogram",
							"platformName": "Infogram.com",
							"selector": ".infogram-embed",
							"privacyPolicyLink": 'infogram_privacy_policies',
							"callback": "infogramCallback()"
						},
						"applepodcast": {
							"platform": "apple",
							"platformName": "Apple.com",
							"selector": ".apple_podcasts iframe",
							"privacyPolicyLink": 'apple_podcast_privacy_policies',
							"callback": "loadApplePodcastplayer()"
						},
						"jetpackpodcastplayer": {
							"platform": "jetpack",
							"platformName": "Jetpack.com",
							"selector": ".wp-block-jetpack-podcast-player",
							"privacyPolicyLink": 'jetpack_podcast_player_privacy_policies',
							"callback": "loadPodcastplayer()"
						},
						"vimeo": {
							"platform": "vimeo",
							"platformName": "Vimeo.com",
							"selector": ".wp-block-embed-vimeo",
							"privacyPolicyLink": 'vimeo_privacy_policies',
							"callback": "vimeoCallback()"
						},
						"soundcloud": {
							"platform": "soundcloud",
							"platformName": "Soundcloud.com",
							"selector": ".wp-block-embed-soundcloud",
							"privacyPolicyLink": 'soundcloud_privacy_policies',
							"callback": "soundcloudCallback()"
						},
						"giphy": {
							"platform": "giphy",
							"platformName": "Giphy.com",
							"selector": ".wp-block-jetpack-gif",
							"privacyPolicyLink": 'giphy_privacy_policies',
							"callback": "giphyCallback()"
						},
						"reddit": {
							"platform": "reddit",
							"platformName": "Reddit.com",
							"selector": ".wp-block-embed-reddit",
							"privacyPolicyLink": 'reddit_privacy_policies',
							"callback": "redditCallback()"
						},
						"spotify": {
							"platform": "spotify",
							"platformName": "Spotify.com",
							"selector": ".wp-block-embed-spotify",
							"privacyPolicyLink": 'spotify_privacy_policies',
							"callback": "spotifyCallback()"
						},
						"bluesky": {
							"platform": "bluesky",
							"platformName": "Bluesky.com",
							"selector": ".wp-block-embed-bluesky-social,.wp-block-embed-bluesky",
							"privacyPolicyLink": 'bluesky_privacy_policies',
							"callback": "blueskyCallback()"
						},
						"linkedin": {
							"platform": "linkedin",
							"platformName": "LinkedIn.com",
							"selector": "iframe[data-src*=\"linkedin.com\"]",
							"privacyPolicyLink": 'linkedin_privacy_policies',
							"callback": "linkedinCallback()"
						}
					};

				function getOverlayMessage(platform, platformName, privacyPolicyLink, foundryPPLink, callback, cmpType) {
					let customHTMLTextOverlay = window?.IDG?.settings?.overlays_privacy_policies?.consent_overlays?.english_overlay_message ?? '';
					customHTMLTextOverlay = customHTMLTextOverlay.replace(/\$\{platformName\}/g, platformName).replace(/\$\{privacyPolicyLink\}/g, privacyPolicyLink).replace(/\$\{foundryPPLink\}/g, foundryPPLink).replace(/\$\{platform\}/g, platform).replace(/\$\{callback\}/g, callback).replace(/\$\{cmp\}/g, cmpType);
					return customHTMLTextOverlay;
				}
				function setOverlayCookie(name, value, days) {
					let expires = "";
					if (days) {
						const date = new Date();
						date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
						expires = "; expires=" + date.toUTCString();
					}
					document.cookie = name + "=" + (value || "") + expires + "; path=/";
				}
				function getOverlayCookie(name) {
					const nameEQ = name + "=";
					const ca = document.cookie.split(';');
					for(let i = 0; i < ca.length; i++) {
						let c = ca[i];
						while (c.charAt(0) === ' ') c = c.substring(1, c.length);
						if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
					}
					return null;
				}
				function renderOverlay(element, platform, platformName, ppLink, foundryPPLink, callback, cmpType) {
					const cookieName = `hide-overlay-${platform}`;
					const consentGiven = getOverlayCookie(cookieName);
					console.log('[Consent] renderOverlay cookieName %s consent given %s',cookieName, consentGiven);
					if (consentGiven !== 'true') {
						const overlayNextExists = jQuery(element).next(`.${cookieName}`).length > 0;
						const overlayPrevExists = jQuery(element).prev(`.${cookieName}`).length > 0;
						if (!overlayNextExists && !overlayPrevExists) {
							const textOverlay = getOverlayMessage(platform, platformName, ppLink, foundryPPLink, callback, cmpType);
							jQuery(textOverlay).insertAfter(element);
							jQuery(element).hide();
						}
					} else {
						jQuery(element).show();
						//eval(callback);
						window[callback.split('(')[0]]();//dont think any of the have actual arguments
						const src = element.getAttribute('src');
						const dataSrc = element.getAttribute('data-src');
						console.log('[Consent] renderOverlay src %s dataSrc %s',src, dataSrc);
						if (dataSrc ) {
							element.setAttribute('src', dataSrc); // Move data-src to src
						}
					}
				}
				function showOverlays(cmpType) {
					console.log('[Consent] showOverlays cmpType ',cmpType);
					const blocksForConsent = window?.blocksForConsent ?? [];
					Object.entries(blocksForConsent).forEach(function([key, value]) {
						//key = slideshare, twitter etc
						const { platform, platformName, selector, privacyPolicyLink, callback } = value;
						const elements = document.querySelectorAll(`${selector}`);
						// selector for iframes and scripts within 'legacy_content' for the custom blcok.
						const legacySelector = `.legacy_content iframe[data-src*="${platform}"], .legacy_content script[src*="${platform}"], .legacy_content script[data-src*="${platform}"], .legacy_content blockquote[class*="${platform}"]`;
						// Select all iframes and scripts within the div with class 'legacy_content' that match the dynamic selectors.
						const legacyElements = document.querySelectorAll(legacySelector);
						const ppLink = window?.IDG?.settings?.overlays_privacy_policies?.[privacyPolicyLink]?.[cmpType];
						const foundryPPLink = window?.IDG?.settings?.overlays_privacy_policies?.foundry_privacy_policies?.[cmpType];

						elements.forEach(function(element) {
							renderOverlay(element, platform, platformName, ppLink, foundryPPLink, callback, cmpType)
						});
						legacyElements.forEach(function(element) {
							renderOverlay(element, platform, platformName, ppLink, foundryPPLink, `renderCustomBlockInLegacyContent('${platform}', '${callback}')`, cmpType);
						});
					});
				}
			</script>
		
		<script>
						/**
			 * Load podcast player if user accepted consent
			 **/
			function iframeLoaded( podcastIframe ) {
				if( podcastIframe ) {
					const height = podcastIframe.contentWindow.document.body.scrollHeight + 'px';
					podcastIframe.style.height = height;
				}

			}
			function loadPodcastplayer(){
				const podcastElements = document.querySelectorAll('.wp-block-jetpack-podcast-player');
				if( podcastElements ){
					let count = 1;
					Array.from(podcastElements).map(function(element) {
						if (!element.querySelector('iframe')) {
							let postId = element.getAttribute('post_id');
							let podcastIframe = document.createElement("iframe");
							const siteUrl = document.location.origin;
							podcastIframe.src = siteUrl+"/podcast-player?id="+postId+"&position="+count+'&_ajaxnonce=1722a7733e';
							podcastIframe.width = "100%";
							podcastIframe.frameBorder ="0";
							podcastIframe.scrolling = "0";
							podcastIframe.style.border= "none";
							podcastIframe.scrolling = "no";
							element.appendChild(podcastIframe);
							podcastIframe.onload = function() {
								setTimeout( function() { iframeLoaded( podcastIframe ); }, 1000);
							};
							count++;
						}
					});
				}
			}
																	document.addEventListener("DOMContentLoaded", () => {
						document.querySelectorAll('.wp-block-embed-youtube iframe, [data-type="youtube"] iframe, .youtube-video .video-container iframe').forEach(function(element) {
							element.style.display = 'none';
						});
					});
					function youtubeCallback() {

						window.dataLayer = window.dataLayer || [];
						//WPCMS-485 for some reason this gets called twice and i cant be arsed figuring out if ok to not do that, so check if present and if not add
						if (! window.dataLayer.some(item => item?.event && item?.event === 'youtubeConsentGiven') ) {
							window.dataLayer.push({ event: 'youtubeConsentGiven' });
						}

						document.querySelectorAll('.wp-block-embed-youtube iframe, [data-type="youtube"] iframe, .youtube-video .video-container iframe').forEach(function(element) {
							element.setAttribute('src', element.getAttribute('data-src'));
							element.style.zIndex = 'initial';
							element.style.display = 'initial';
						});
					}
				
				
								/**
				 * Load Apple podcast-block if user accepted consent
				 **/
				function loadApplePodcastplayer(){
					const applePodcastElements = document.querySelectorAll('.apple_podcasts iframe');
					if( applePodcastElements ){
						Array.from(applePodcastElements).map(function(element) {
							const dataSrc = element.getAttribute('data-url');
							const dataHeight = element.getAttribute('data-height');
							element.src = dataSrc;
							element.height = dataHeight;
						});
					}
				}

				/**
				 * Load custom HTML block if user accepted consent
				 */
				function customHTMLCallback() {
					jQuery('.legacy_content iframe, .legacy_content script, .legacy_content img').each(function(index, element) {
						const dataSrc = jQuery(element).attr('data-src');
						if(dataSrc) {
							if( element.nodeName.toLowerCase() === 'script' ) {
										let genericScript = document.createElement("script");
										genericScript.type = "text/javascript";
										genericScript.async = true;
										genericScript.src = dataSrc;
										element.parentNode.insertBefore(genericScript, element);
										element.remove();
							} else {
								jQuery(element).attr('src', jQuery(element).attr('data-src'));
							}
							jQuery(element).show();
						}
					});
					jQuery("[class*='custom-html-consent-notice-']").hide();
				}
						
			
								
								
				function renderCustomBlockInLegacyContent(selector, callback) {
					const legacySelector = `.legacy_content iframe[data-src*="${selector}"], .legacy_content script[src*="${selector}"], .legacy_content script[data-src*="${selector}"], .legacy_content blockquote[class*="${selector}"], .legacy_content img[data-src*="${selector}"]`;
					jQuery(legacySelector).each(function(index, element) {
						if( element.nodeName.toLowerCase() === 'script' ) {
							let genericScript = document.createElement("script");
							genericScript.async = true;
							genericScript.src = jQuery(element).attr('data-src');
							element.parentNode.insertBefore(genericScript, element);
							element.remove();
						} else {
							jQuery(element).attr('src', jQuery(element).attr('data-src'));
						}
						jQuery(element).show();
					});
					//eval(callback);
					console.log('[Consent] renderCustomBlockInLegacyContent calling callback');
					window[callback.split('(')[0]]();//dont think any of the have actual arguments
				}
				/**
				 * Load Spotify if user accepted consent.
				 */
				
				
				/**
				 * Load bluesky if user accepted consent.
				 */
				
				document.addEventListener('consentManagerReady', () => {
					const debug = consentManager.debug;
					if(debug)console.log('#### Widget Consent Check consentRequired %s', consentManager.consentRequired);
					let vendors = [];
															if(youtubeCallback)
						vendors.push({
							name: "YouTube",
							callback: youtubeCallback,
							consentOk: false
						});
					
					
					
					
					
					
					
					
					
					
					
					if(loadPodcastplayer)
						vendors.push({
							name: "Podigee",
							callback: loadPodcastplayer,
							consentOk: false
						});

					
					
					if(loadApplePodcastplayer)
						vendors.push({
							name: "Apple Podcasts",
							callback: loadApplePodcastplayer,
							consentOk: false
						});
/*
					vendors.push({
						name: "Taboola",
						callback: loadTaboola,
						consentOk: false
					});
*/
					//if we need consent then check if - includes US optout too
					if(consentManager.consentRequired === true){
						vendors.forEach( (vendor)=>{
							const vendorNames = (vendor.checkAdditional ?? []);
							vendorNames.push(vendor.name);// array of primary i.e. name and additionals
							//must pass all
							vendor.consentOk = vendorNames.every( name => {
								return consentManager.checkConsentByVendor(name) === true;
							});
						});
					} else {
						//no consent needed could default to this above
 						vendors.forEach( (vendor)=>{
							vendor.consentOk = true;
						});
					}

					//no specific vendor - need all or not applicable
					if( ( consentManager.consentRequired && consentManager.consentedAll ) || !consentManager.consentRequired){
						setTimeout(customHTMLCallback, 0);
						if(debug)console.log('#### Widget Consent Allowing Custom');

											}else if ( consentManager.consentRequired && !consentManager.consentedAll ) {
						if(consentManager.gdprApplies === true)showOverlays('gdpr');
						else if(consentManager.usOptOutApplies === true)showOverlays('ccpa');//todo - gpp too?
					}

					vendors.forEach( (vendor)=>{
						if(vendor.consentOk) {
							if(debug)console.log('#### Widget Consent Allowing %s', vendor.name);
							try {
								setTimeout(vendor.callback, 0);
							} catch (error) {
								console.error('#### Widget Consent Callback Error - FIX ME %s', vendor.name, error);
							}
						}else{
							if(debug)console.log('#### Widget Consent Denying %s', vendor.name);
						}
					});
				});
		</script>
		<script type="application/ld+json">[{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.infoworld.com\/"},{"@type":"ListItem","position":2,"name":"InfoWorld","item":""}]},{"@context":"https:\/\/schema.org","@type":"Organization","name":"InfoWorld","url":"https:\/\/www.infoworld.com","description":"Business technology, IT news, product reviews and enterprise IT strategies.","memberOf":{"@type":"Organization","name":"Foundry","url":"https:\/\/www.foundryco.com"},"logo":{"@type":"ImageObject"},"mainEntityOfPage":{"@type":"CollectionPage","name":"InfoWorld Homepage","url":"https:\/\/www.infoworld.com","description":"Business technology, IT news, product reviews and enterprise IT strategies."}}]</script>
		<style>
			:root {
				--nativo-loader-color: #424a45;
				--sponsored-links--border-bottom-color: #9d9490;
				--sponsored-container--background-color: #fff;
							}
		</style>

		
		<link rel="shortcut icon" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/favicon.ico" type="image/x-icon"/>
		<link rel="apple-touch-icon" sizes="180x180" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/apple-touch-icon.png">
		<link rel="icon" type="image/png" sizes="32x32" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/favicon-32x32.png">
		<link rel="icon" type="image/png" sizes="16x16" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/favicon-16x16.png">
		<link rel="manifest" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/site.webmanifest">
		<link rel="mask-icon" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/safari-pinned-tab.svg" color="#0000cc">
		<meta name="msapplication-TileColor" content="#0000cc">
		<meta name="theme-color" content="#ffffff">
				<style>
			:root {
				/*Host Speaker Profile*/
				--host-speaker-profile-heading-color: #141414;
				--host-speaker-profile-heading-font-family: inherit;
				--host-speaker-profile-title-description-font-family: inherit;
				--host-speaker-title-color: #808080;
				--host-speaker-description-color: #141414;
				--host-speaker-label-color: #AAA;
				--host-speaker-remove-link-color: #c30e0e;
				--host-speaker-horizontal-line-color: #DEDEDE;
				--host-speaker-company-name-font-color: #75757A;
				/* Agenda Block */
				--agenda-heading-event-name-color: #141414;
				--agenda-heading-font-family: inherit;
				--agenda-event-name-font-family: inherit;
				--agenda-horizontal-block-divider-color: #dedede;
				--agenda-event-month-day-date-color: #322a2a;
				--agenda-event-month-date-color: #969696;
				--agenda-start-end-time-color: #75757a;
				--agenda-error-msg-color: #FF0000;
				--agenda-day-time-text-shadow-color: #808080;
				--agenda-note-text-color: #808080;
				--agenda-label-text-color: #111;
				--agenda-multi-day-button-background-color: #000;
				--agenda-multi-day-button-text-color: #fff;
				--agenda-heading-label-color: #AAA;
				--agenda-details-link-color: #327F7C;
				--agenda-block-mobile-background-color: #f5f5f5;

				/*event content block */
				--event-register-btn-bg-color: #ed1b24;
				--event-register-btn-color: #fff;
				--event-share-icons-color: white;
				--event-share-icons-color-fb: #3b5998;
				--event-share-icons-color-twitter: #00acee;
				--event-share-icons-color-linkedin: #2867b2;
				--event-description-top-border: #d8dad8;
				--event-details-label-color: #B30000;
				--event-details-text-color: #141414;
				--event-logo-label: inherit, sans-serif;
				--event-description-text-color: #322a2a;
				--who-should-attend-heading: inherit;
				--who-should-attend-text: inherit, sans-serif;

				/* Event Index Page */
				--border-color: #75757a;
				--filter-background-color: #F6F6F6;
				--base-font-color: #322a2a;
				--index-more-events-title-color: #141414;
				--myraid-font-family: inherit;
				--myriad-regular: 400;
				--myriad-bold: 700;
				--base--global-white-color: #fff;
				--base--global-black-color: #000;
				--index-events-title-font-hover-color: #B30000;

				/* Image Credit */
				--image-credit-font-color: #555;
				--image-credit-text: "Credit: ";

				--event-hero-block-heading-color: #fff;--event-hero-dynamic-background-image: none;			}
		</style>
				<style>
			:root {
				/* FAQ*/
				--faq-heading-seprator-color: #d8d8d8;
				--faq-input-box-border-color: #757575;
				--faq-remove-link-color: #c30e0e;
				--faq-heading-color: #141414;
				--faq-heading-font-family: inherit;
				--faq-title-description-font-family: inherit;
				--faq-label-color: #AAA;
				--faq-company-name-font-color: #75757A;
				--faq-horizontal-line-color: #DEDEDE;
				--faq-head-title--font-family: "graphik", sans-serif;
			}

		</style>
				<style>
			:root {
			--nav-menu-error: #b32d2e;
			--promo-unit-hr: #d55d5d;
			--promo-unit-title-after: #d04949;
			--promo-unit-title: #322a2a;
			--promo-unit-before-one: #e42e22;
			--promo-unit-before-two: #f3f5f6;
			--promo-unit-item-bg: #000;

			/* Deals Collection Block */
			--deal-collection-productIndex-border-color: #12C7F1;
			--deal-collection-deal-header-color: #000;
			--deal-collection-deal--view-button--background-color: #21873A;
			--deal-collection-deal-price-color: #CD0912;
			--site-primary: #3399cc;
			--view-button--green: #3e873a;

			/* Jobs Collection Block */
			--job-collection-productIndex-border-color: #12C7F1;
			--job-collection-job-header-color: #000;
			--job-collection-job--view-button--background-color: #21873A;
			--job-collection-job-price-color: #CD0912;

			/* Publication list pop-up pn edit edition page */
			--publication-list-container-bg: rgba(255, 255, 255, 1);
			--publication-list-container-border: #111;
			--publication-list-container-bs: #222;
			--publication-list-bg:rgba(100, 100, 100, .6);
			--publication-list-popup-header-border: #ddd;
			--publication-list-popup-header-bg: #e9e9e9;
			/*Lineup Element*/
			--lineup-element-error-font-color: #cd423b;
			--lineup-element-disabled-button-background-color: #ddd;
			--lineup-element-disabled-button-font-color: #eee;
			--lineup-element-button-tooltip-background-color: #757575;
			--lineup-element-button-tooltip-font-color: #fff;
			--lineup-element-note-font-color: #757575;
			--lineup-element-button-disabled: hsla(0,0%,100%,.4);

			/* LineUp Popover.*/
			--lineup-popover-a-color: white;
			--lineup-popover-err-color: red;
			--lineup-popover-th-color: #d4d4d4;
			--lineup-popover-tr-color: #f2f2f2;
			--lineup-popover-paginate-a-active-color: #ddd;
			--lineup-popover-paginate-a-non-active-color: #006ba1;

			/* Slotting settings */
			--slotting-settings-taxonomy-help-text-color: #808080;

			/* Author section top */
			--sponsorship-brandpost-divider-line-color: #D8D8D8;
			
			/* Author Archive Page */
			--author-archive-title: rgba(0, 0, 0, .87);
			--author-job-title: #000;
			--author-share-icons-divider-color: #D8D8D8;
			--author-share-icon-fill-color: #111;

			/* Sponsors index Page */
			--sponsored-index-page-slug-background-color: #eee;
			--sponsorship-brandpost--title: 28px;
			--sponsorship-title--line-height: 32px;
			--uppercase-text: uppercase;
			--sponsor-eyebrow--font-color: #75757A;
			--sponsor-tooltip-learn-more--font-color: #111111;
			--sponsorship-brandpost--title-color: #111111;

			/* How to - at a glance block */
			--how-to-at-glance-text-font-family: "canada-type-gibson", sans-serif;
			--how-to--step-heading--font-family: "regis", serif;
			--how-to--step-border--divider-color: #B6AEAA;
			--how-to--at-a-glance--background-color: #E6DCD5;

			/* Sponsorship Header. */
			--sponsorship-header--font-color: #4d4d4d;

			/* fonts */
			--fira-sans-semibold: 700;

			/* responsive table gradient */
			--core-table--gradient--border-color: #C5C5C5;
			--core-table--gradient--alpha--border-color: #faf6f445;

			/* headings */
			--heading-three: 24px;
			--heading-four: 20px;
			--heading-three-line-height: 30px;

			/* Insider Popover.*/
			--insider-popover-background-color: white;
			--insider-popover-box-shadow-color: rgba(0, 0, 0, .31);
			--insider-popover-help-text-color: #4a4a4a;
			--insiderPopover-link-color: #322a2a;
			--insider-popover-signing-button-text-color: white;
			--insider-popover-signin-button-background: #4a3d3d;
			--insider-popover-signout-button-background: #b43017;
			--insiderPopover-welcome-font-color: #141414;

			/* Listing Button */
			--insider-listing-primary-button-background : #4e4242;
			--insiderPopover-link-hover-color:#3c807c;
			--mercury-form--insider-color: #6eae00;
			}
		</style>
			<meta name="displaytype" content="article" />
<meta name="language" content="English" />
<meta name="source" content="https://www.infoworld.com/" />
<link rel="canonical" href="https://www.infoworld.com/" />
<meta name="description" content="Business technology, IT news, product reviews and enterprise IT strategies." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.infoworld.com/" />
<meta property="og:site_name" content="InfoWorld" />
<meta property="og:title" content="InfoWorld" />
<meta property="og:description" content="Business technology, IT news, product reviews and enterprise IT strategies." />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://www.infoworld.com/" />
<meta property="twitter:site" content="InfoWorld" />
<meta property="twitter:title" content="InfoWorld" />
<meta property="twitter:description" content="Business technology, IT news, product reviews and enterprise IT strategies." />

</head>

<body class="home wp-singular page-template page-template-homepage page-template-homepage-php page page-id-100007471 wp-theme-idg-b2b-base-theme wp-child-theme-iw-b2b-child-theme static-header theme-iw">
		<div class="section-block--notificationbar" role="region" aria-label="Site notification"></div>
	<div id="page" class="site">
		<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="display:none">
			<defs>
				<symbol id="icon-search-ai" viewBox="0 0 24 24">
					<path d="M11.9087 2.26686C12.0905 1.77563 12.7853 1.77563 12.9671 2.26686L13.8718 4.71189C13.9289 4.86633 14.0507 4.9881 14.2052 5.04525L16.6502 5.94999C17.1414 6.13176 17.1414 6.82655 16.6502 7.00832L14.2052 7.91307C14.0507 7.97021 13.9289 8.09198 13.8718 8.24642L12.9671 10.6914C12.7853 11.1827 12.0905 11.1827 11.9087 10.6914L11.004 8.24642C10.9468 8.09198 10.8251 7.97021 10.6706 7.91307L8.2256 7.00832C7.73436 6.82655 7.73436 6.13176 8.2256 5.94999L10.6706 5.04525C10.8251 4.9881 10.9468 4.86633 11.004 4.71189L11.9087 2.26686Z" fill="currentColor" />
					<path d="M7.72486 3.74602C7.72309 3.74634 7.72133 3.74667 7.71957 3.747C4.51968 4.34251 2.75 6.74249 2.75 10.0005C2.75 13.7107 5.19081 16.3974 9.34679 16.3974C13.3099 16.3974 15.7134 13.9542 15.9279 10.5102L14.9012 10.6296C14.7816 11.9736 14.2759 13.0787 13.4842 13.8744C12.5748 14.7885 11.2002 15.3825 9.34679 15.3825C7.4934 15.3825 6.11875 14.7885 5.20936 13.8744C4.29731 12.9577 3.76489 11.6305 3.76489 10.0005C3.76489 8.32734 4.28754 7.00442 5.18471 6.10245C5.79958 5.48429 6.63902 5.01496 7.71957 4.78182C7.72254 4.78118 7.72551 4.78054 7.72849 4.7799L7.72486 3.74602Z" fill="currentColor" />
					<path d="M15.6681 15.8041C15.4699 15.6059 15.1486 15.6059 14.9505 15.8041C14.7523 16.0022 14.7523 16.3235 14.9505 16.5217L20.5324 22.1036L21.25 21.386L15.6681 15.8041Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-magnifying-glass" viewBox="0 0 24 24">
					<path fill-rule="evenodd" clip-rule="evenodd" d="M9.5 4C11.333 4 12.6865 4.57379 13.5792 5.46478C14.4734 6.35713 15 7.6619 15 9.30303C15 10.9091 14.4754 12.2169 13.5767 13.1201C12.6807 14.0207 11.3262 14.6061 9.5 14.6061C7.6738 14.6061 6.31932 14.0207 5.42327 13.1201C4.5246 12.2169 4 10.9091 4 9.30303C4 7.65444 4.51498 6.35093 5.39899 5.46219C6.28065 4.57582 7.63092 4 9.5 4ZM9.5 3C13.595 3 16 5.58424 16 9.30303C16 12.9588 13.595 15.6061 9.5 15.6061C5.405 15.6061 3 12.9588 3 9.30303C3 5.58424 5.34 3 9.5 3ZM15.7286 15.0214C15.5333 14.8262 15.2167 14.8262 15.0214 15.0214C14.8262 15.2167 14.8262 15.5333 15.0214 15.7286L20.5214 21.2286L21.2286 20.5214L15.7286 15.0214Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-layer-group" viewBox="0 0 24 24">
					<path fill-rule="evenodd" clip-rule="evenodd" d="M5.06082 7.98196L11.5184 11.5864C11.8201 11.7548 12.1873 11.7556 12.4897 11.5884L18.9426 8.02034L12.485 4.41588C12.1833 4.24748 11.8161 4.24675 11.5137 4.41393L5.06082 7.98196ZM3.78756 8.41649L11.031 12.4596C11.6344 12.7964 12.3688 12.7979 12.9736 12.4635L20.2141 8.45997C20.5574 8.27015 20.5583 7.777 20.2158 7.58581L12.9724 3.54269C12.369 3.20591 11.6345 3.20444 11.0298 3.5388L3.7893 7.54234C3.44602 7.73215 3.44503 8.2253 3.78756 8.41649ZM5.83179 15.5596L4.80337 14.9855L3.79099 15.5453C3.4477 15.7351 3.44672 16.2283 3.78924 16.4195L11.0327 20.4626C11.6361 20.7994 12.3705 20.8008 12.9752 20.4665L20.2158 16.4629C20.559 16.2731 20.56 15.78 20.2175 15.5888L19.2034 15.0227L18.1727 15.5926L18.9442 16.0233L12.4914 19.5913C12.189 19.7585 11.8218 19.7578 11.5201 19.5894L5.0625 15.9849L5.83179 15.5596ZM4.80337 10.9855L5.83179 11.5596L5.0625 11.9849L11.5201 15.5894C11.8218 15.7578 12.189 15.7585 12.4914 15.5913L18.9442 12.0233L18.1727 11.5926L19.2034 11.0227L20.2175 11.5888C20.56 11.78 20.559 12.2731 20.2158 12.4629L12.9752 16.4665C12.3705 16.8008 11.6361 16.7994 11.0327 16.4626L3.78924 12.4195C3.44672 12.2283 3.4477 11.7351 3.79099 11.5453L4.80337 10.9855Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-header-back-btn" viewBox="0 0 24 24">
					<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C14.9263 3 17.1512 3.94667 18.6453 5.48436C20.1438 7.02666 21 9.25935 21 12C21 14.6872 20.1458 16.9229 18.6428 18.4807C17.1454 20.0328 14.9194 21 12 21C9.08064 21 6.85464 20.0328 5.35716 18.4807C3.85419 16.9229 3 14.6872 3 12C3 9.25208 3.83549 7.02056 5.31975 5.48173C6.79835 3.94877 9.02006 3 12 3ZM12 2C18.3 2 22 6.1 22 12C22 17.8 18.3 22 12 22C5.7 22 2 17.8 2 12C2 6.1 5.6 2 12 2ZM13.5957 8.35355L10.0602 11.8891C9.86494 12.0843 9.86494 12.4009 10.0602 12.5962L13.5957 16.1317L12.8886 16.8388L9.3531 13.3033C8.76731 12.7175 8.76731 11.7678 9.3531 11.182L12.8886 7.64645L13.5957 8.35355Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-globe" viewBox="0 0 24 24">
					<path d="M19.4 4.8C17.6 3 15 2 12 2C8.9 2 6.4 3 4.6 4.8C2.9 6.6 2 9 2 12C2 14.9 2.9 17.4 4.6 19.2C6.4 21 9 22 12 22C15 22 17.6 21 19.4 19.2C21.1 17.4 22 14.9 22 12C22 9.1 21.1 6.6 19.4 4.8ZM21 11.5H17C17 8.8 16.5 6.5 15.7 4.8C15.4 4.2 15.1 3.7 14.7 3.3C16.3 3.7 17.6 4.4 18.6 5.5C20.1 7 20.9 9 21 11.5ZM12 21C10.9 21 9.9 20.2 9.2 18.7C8.5 17.2 8.1 15 8 12.5H16C15.9 15 15.5 17.2 14.8 18.7C14.1 20.2 13.1 21 12 21ZM8 11.5C8 8.9 8.5 6.8 9.2 5.2C9.9 3.7 10.9 3 12 3C13.1 3 14.1 3.7 14.8 5.2C15.5 6.7 16 8.9 16 11.5H8ZM5.3 5.5C6.3 4.4 7.7 3.7 9.2 3.3C8.9 3.7 8.5 4.2 8.2 4.8C7.4 6.5 7 8.8 6.9 11.5H3C3.1 9 3.9 7 5.3 5.5ZM3 12.5H7C7.1 15.2 7.5 17.5 8.3 19.2C8.6 19.8 8.9 20.3 9.3 20.7C7.7 20.3 6.4 19.6 5.4 18.5C3.9 17 3.1 14.9 3 12.5ZM18.6 18.5C17.6 19.6 16.2 20.3 14.7 20.7C15 20.3 15.4 19.8 15.7 19.2C16.5 17.5 17 15.2 17 12.5H21C20.9 14.9 20.1 17 18.6 18.5Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-header-angle-down" viewBox="0 0 24 24" fill="none">
					<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6022 14.5942L6.65242 9.64446L5.94531 10.3516L10.8951 15.3013C11.4808 15.8871 12.4306 15.8871 13.0164 15.3013L17.9661 10.3516L17.259 9.64446L12.3093 14.5942C12.114 14.7895 11.7974 14.7895 11.6022 14.5942Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-header-angle-up" viewBox="0 0 24 24" fill="none">
					<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3041 9.9058L17.2538 14.8555L17.9609 14.1484L13.0112 9.19869C12.4254 8.6129 11.4757 8.6129 10.8899 9.19869L5.94012 14.1484L6.64723 14.8555L11.597 9.9058C11.7922 9.71053 12.1088 9.71053 12.3041 9.9058Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-header-angle-right" viewBox="0 0 24 24" fill="none">
					<path fill-rule="evenodd" clip-rule="evenodd" d="M14.5942 12.3978L9.64446 17.3476L10.3516 18.0547L15.3013 13.1049C15.8871 12.5192 15.8871 11.5694 15.3013 10.9836L10.3516 6.03387L9.64446 6.74098L14.5942 11.6907C14.7895 11.886 14.7895 12.2026 14.5942 12.3978Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-circle-bars" viewBox="0 0 24 24">
					<path fill-rule="evenodd" clip-rule="evenodd" d="M18.6453 5.48436C17.1512 3.94667 14.9263 3 12 3C9.02006 3 6.79835 3.94877 5.31975 5.48173C3.83549 7.02056 3 9.25208 3 12C3 14.6872 3.85419 16.9229 5.35716 18.4807C6.85464 20.0328 9.08064 21 12 21C14.9194 21 17.1454 20.0328 18.6428 18.4807C20.1458 16.9229 21 14.6872 21 12C21 9.25935 20.1438 7.02666 18.6453 5.48436ZM22 12C22 6.1 18.3 2 12 2C5.6 2 2 6.1 2 12C2 17.8 5.7 22 12 22C18.3 22 22 17.8 22 12ZM7 10.5V9.5H17V10.5H7ZM7 13.5V14.5H17V13.5H7Z" fill="currentColor" />
				</symbol>
				<symbol id="icon-circle-xmark" viewBox="0 0 24 24">
					<path fill-rule="evenodd" clip-rule="evenodd" d="M18.6453 5.48436C17.1512 3.94667 14.9263 3 12 3C9.02006 3 6.79835 3.94877 5.31975 5.48173C3.83549 7.02056 3 9.25208 3 12C3 14.6872 3.85419 16.9229 5.35716 18.4807C6.85464 20.0328 9.08064 21 12 21C14.9194 21 17.1454 20.0328 18.6428 18.4807C20.1458 16.9229 21 14.6872 21 12C21 9.25935 20.1438 7.02666 18.6453 5.48436ZM22 12C22 6.1 18.3 2 12 2C5.6 2 2 6.1 2 12C2 17.8 5.7 22 12 22C18.3 22 22 17.8 22 12ZM12 11.2851L15.1777 8.10738L15.8848 8.81449L12.7071 11.9922L15.8934 15.1785L15.1863 15.8856L12 12.6993L8.81374 15.8856L8.10663 15.1785L11.2929 11.9922L8.1152 8.81449L8.8223 8.10738L12 11.2851Z" fill="currentColor" />
				</symbol>
			</defs>
		</svg>


		<header id="SiteHeader" class="SiteHeader bg-iw-black">
			<div class="container">
				<div class="SiteHeader__container">
					<div class="SiteHeader__logo">
						<a class="" href="https://www.infoworld.com" aria-label="Home page"><svg width="149" height="30" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 360 74"><defs><style>.cls-1{fill:none;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="InfoWorld"><polygon points="0.53 3.28 0.53 11.67 8.67 11.67 8.67 63.88 0.53 63.88 0.53 72.3 29.17 72.3 29.17 63.88 20.89 63.88 20.89 11.67 29.17 11.67 29.17 3.28 0.53 3.28"/><path d="M46.72,24.8,44.22,27V20.15H25.91V28.2h6.18v44H44.24c0-1.42,0-36.91,0-36.91l.54-.44C48,32.28,51.17,31,54.31,31A5.28,5.28,0,0,1,59,33.28c.87,1.35,1.3,3.53,1.3,6.84V72.19H72.47c0-1.41,0-33.41,0-33.41,0-13.12-4.2-19.51-12.84-19.51-4.31,0-8.66,1.87-12.93,5.53"/><path d="M83.11,5.38h0a18.25,18.25,0,0,0-4,12v2.35H73.66v8.48h5.48V72.3H90.35V28.21H101.9V19.73H90.44V16.54c0-5.16,1.79-6.94,4.5-8,2.47-1,6.52-.79,10,1.24V2.82A25.63,25.63,0,0,0,94.84.7c-5,0-9.26,1.71-11.73,4.68"/><path d="M112.33,46.5c0-12.37,4.17-18.65,12.38-18.65a10.69,10.69,0,0,1,9.29,5c2.12,3.11,3.2,7.43,3.2,12.83,0,6.13-1.11,10.74-3.31,13.72a10.93,10.93,0,0,1-9.18,4.74,10.32,10.32,0,0,1-9.49-5.34,24,24,0,0,1-2.89-12.31M106.71,26h0c-4.93,4.82-7.41,11.57-7.41,20s2.48,15.21,7.41,20a25,25,0,0,0,18.05,7.19A24.73,24.73,0,0,0,142.91,66c4.86-4.87,7.32-11.57,7.32-20s-2.49-15.22-7.39-20a26.29,26.29,0,0,0-36.13,0"/><path d="M224.75,46.5c0-12.37,4.16-18.65,12.36-18.65a10.73,10.73,0,0,1,9.31,5c2.11,3.11,3.17,7.43,3.17,12.83,0,6.13-1.1,10.74-3.3,13.72a10.92,10.92,0,0,1-9.18,4.74,10.31,10.31,0,0,1-9.48-5.34,24.06,24.06,0,0,1-2.88-12.31M219.13,26h0c-4.93,4.82-7.43,11.57-7.43,20s2.5,15.21,7.43,20A26.26,26.26,0,0,0,255.32,66c4.86-4.87,7.32-11.57,7.32-20s-2.49-15.22-7.4-20a26.26,26.26,0,0,0-36.11,0"/><path d="M279.68,33.37V20.15H262.8V28.2h4.9s0,42.56,0,44h12.21V53.75c0-4.85.27-8.88,1.8-12.33,1.61-3.62,3.74-6,6.33-7.16a26.8,26.8,0,0,1,8.57-1.51V19.3c-5.48,0-13.95,5.73-16.89,14.07"/><polygon points="295.59 1.12 295.59 9.85 300.01 9.85 300.01 72.3 312.36 72.3 312.36 1.12 295.59 1.12"/><path d="M337.76,64.15c-3.71,0-6.52-1.79-8.35-5.34a26.62,26.62,0,0,1-2.55-12.31c0-12.37,3.67-18.65,10.9-18.65,3.45,0,6.21,1.68,8.19,5,1.86,3.11,2.81,7.43,2.81,12.83,0,6.13-1,10.74-2.92,13.72-2,3.15-4.76,4.74-8.08,4.74m4.54-63V9.85h4.77v14a15.41,15.41,0,0,0-11.25-5c-5.72,0-10.62,2.43-14.57,7.19s-6,11.56-6,20,2,15.21,6,20,8.85,7.19,14.57,7.19a15.78,15.78,0,0,0,11.25-5v3.86h12.4V1.12Z"/><path d="M200,3v9.25h5.56l-9,40.57L187,3.07h0V3H170.84v9.25h6.35l0,.24L168.6,52.91l-9.75-40.66h6V3H141.63v9.25h4.87S161.8,71,162.09,72h10l9.27-40.83,9,40.83h10.77c.3-1,13.6-59.7,13.6-59.7h5.13V3Z"/></g><rect class="cls-1" width="360" height="74"/></g></g></svg></a>					</div>
	
					<nav class="PrimaryNav" aria-label="Primary">
													<ol class="PrimaryNav__list" data-count="6"><li class="PrimaryNav__item PrimaryNav__item--topics"><button type="button" class="PrimaryNav__trigger PrimaryNav__link" data-lightbox-open="topics" aria-haspopup="dialog" aria-expanded="false"><i class="icon-layer-group" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-layer-group"></use></svg></i><span class="PrimaryNav__text">Topics</span></button></li><li class="PrimaryNav__item"><a href="https://www.infoworld.com/news/" class="PrimaryNav__link"><span class="PrimaryNav__text">Latest</span></a></li><li class="PrimaryNav__item"><a href="/newsletters/signup/" class="PrimaryNav__link"><span class="PrimaryNav__text">Newsletters</span></a></li><li class="PrimaryNav__item"><a href="https://us.resources.infoworld.com/" class="PrimaryNav__link"><span class="PrimaryNav__text">Resources</span></a></li><li class="PrimaryNav__item"><a href="https://www.infoworld.com/enterprise-buyers-guide/" class="PrimaryNav__link"><span class="PrimaryNav__text">Buyer’s Guides</span></a></li><li class="PrimaryNav__item"><a href="https://www.infoworld.com/events/" class="PrimaryNav__link"><span class="PrimaryNav__text">Events</span></a></li></ol>											</nav>
	
					<div class="HeaderActions">
																			<div class="HeaderActions__item" data-type="search">
								<a href="https://www.infoworld.com/search/" class="HeaderActions__link HeaderActions__search">
									<span class="sr-only">
										Search									</span>
									<i class="icon-magnifying-glass" aria-hidden="true">
										<svg focusable="false" aria-hidden="true">
											<use href="#icon-magnifying-glass"></use>
										</svg>
									</i>
								</a>
							</div>
												<div class="HeaderActions__item" data-type="menu">
							<button
								class="HeaderActions__trigger"
								data-menu-open="default"
								type="button"
								aria-expanded="false"
								aria-controls="MenuAside"
								aria-haspopup="true">
	
								<span class="sr-only">
									Menu								</span>
								<i class="icon-circle-bars" aria-hidden="true">
									<svg focusable="false" aria-hidden="true">
										<use href="#icon-circle-bars"></use>
									</svg>
								</i>
							</button>
	
						</div>
					</div>
				</div>
			</div>
		</header>
									<div class="Lightbox bg-iw-black" data-lightbox="topics" aria-hidden="true" tabindex="-1" role="dialog" aria-modal="true">

					<div class="Lightbox__overlay"></div>
					<div class="Lightbox__panel">
						<div class="Lightbox__header">
							<div class="Lightbox__header-left">
								<h2 class="Lightbox__title">
									<span>Topics</span>
								</h2>
							</div>
							<div class="Lightbox__header-right">
								<button class="Lightbox__close reset-button">
									<span class="sr-only">Close</span>
									<i class="icon-circle-xmark" aria-hidden="true">
										<svg focusable="false" aria-hidden="true">
											<use href="#icon-circle-xmark"></use>
										</svg>
									</i>
								</button>
							</div>
						</div>

						<div class="Lightbox__body">
							<div class="Lightbox__body-inner">
								<ol class="TopicsList"><li class="TopicsList__item"><a href="https://www.infoworld.com/analytics/" class="TopicsList__link"><span>Analytics</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/artificial-intelligence/" class="TopicsList__link"><span>Artificial Intelligence</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/careers/" class="TopicsList__link"><span>Careers</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/cloud-computing/" class="TopicsList__link"><span>Cloud Computing</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/data-management/" class="TopicsList__link"><span>Data Management</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/database/" class="TopicsList__link"><span>Databases</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/development-tools/" class="TopicsList__link"><span>Development Tools</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/devops/" class="TopicsList__link"><span>Devops</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/emerging-technology/" class="TopicsList__link"><span>Emerging Technology</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/enterprise-buyers-guide/" class="TopicsList__link"><span>Enterprise Buyer’s Guides</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/generative-ai/" class="TopicsList__link"><span>Generative AI</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/it-leadership/" class="TopicsList__link"><span>IT Leadership</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/java/" class="TopicsList__link"><span>Java</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/javascript/" class="TopicsList__link"><span>JavaScript</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/microsoft-net/" class="TopicsList__link"><span>Microsoft .NET</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/open-source/" class="TopicsList__link"><span>Open Source</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/programming-languages/" class="TopicsList__link"><span>Programming Languages</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/python/" class="TopicsList__link"><span>Python</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/security/" class="TopicsList__link"><span>Security</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/software-development/" class="TopicsList__link"><span>Software Development</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="TopicsList__item"><a href="https://www.infoworld.com/technology-business/" class="TopicsList__link"><span>Technology Industry</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol>							</div>
						</div>

					</div>

				</div>
					
		
		<aside id="MenuAside" class="MenuAside" aria-hidden="true" aria-label="Site menu">
			<div class="MenuAside__panel">
				<header class="MenuAside__header">
					<div class="MenuAside__header-left">
						<button type="button" class="MenuAside__trigger" data-menu-open="default" aria-controls="MenuAside" aria-haspopup="true" aria-expanded="false">
							<i class="icon-header-back-btn" aria-hidden="true">
								<svg focusable="false" aria-hidden="true">
									<use href="#icon-header-back-btn"></use>
								</svg>
							</i>
							<span>Back</span>
						</button>
					</div>
					<div class="MenuAside__header-right">
						<button class="MenuAside__close">
							<span class="sr-only">Close</span>
							<i class="icon-circle-xmark" aria-hidden="true">
								<svg focusable="false" aria-hidden="true">
									<use href="#icon-circle-xmark"></use>
								</svg>
							</i>
						</button>
					</div>
				</header>
				<div class="MenuAside__body">
					<section
						class="MenuAside__section"
						data-menu-section="default"
						role="region">
						<div class="MenuAside__top"></div>
						<div class="MenuAside__nav-wrapper">
							<nav class="MenuAside__nav">

																	<div class="MenuGroup MenuGroup--single MenuGroup--search">
										<a href="https://www.infoworld.com/search/" class="MenuGroup__link" tabindex="0">
											<i class="icon-magnifying-glass" aria-hidden="true">
												<svg focusable="false" aria-hidden="true">
													<use href="#icon-magnifying-glass"></use>
												</svg>
											</i>
											<span class="MenuGroup__label">Search</span>
										</a>
									</div>
																								<button type="button" class="MenuGroup__toggle PrimaryNav__topicsTrigger" data-menu-open="topics" aria-controls="MenuAside" aria-haspopup="dialog" aria-expanded="false"><i class="icon-layer-group" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-layer-group"></use></svg></i><span class="MenuGroup__label">Topics</span></button><div class="MenuGroup MenuGroup--single"><a href="https://www.infoworld.com/news/" class="MenuGroup__link"><span class="MenuGroup__label">Latest</span></a></div><div class="MenuGroup MenuGroup--single"><a href="/newsletters/signup/" class="MenuGroup__link"><span class="MenuGroup__label">Newsletters</span></a></div><div class="MenuGroup MenuGroup--single"><a href="https://us.resources.infoworld.com/" class="MenuGroup__link"><span class="MenuGroup__label">Resources</span></a></div><div class="MenuGroup MenuGroup--single"><a href="https://www.infoworld.com/enterprise-buyers-guide/" class="MenuGroup__link"><span class="MenuGroup__label">Buyer’s Guides</span></a></div><div class="MenuGroup"><button type="button" class="MenuGroup__toggle reset-button" id="aside-100057179-toggle" aria-expanded="false" aria-controls="aside-100057179-panel"><span class="MenuGroup__label">More</span><span class="MenuGroup__icon"><i class="icon-header-angle-down" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-down"></use></svg></i></span></button><div class="MenuGroup__panel" id="aside-100057179-panel" role="region" aria-labelledby="aside-100057179-toggle" aria-hidden="true"><ol class="MenuGroup__list"><li class="MenuGroup__item"><a href="https://www.infoworld.com/features/" class="MenuGroup__link"><span>Features</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/blogs/" class="MenuGroup__link"><span>Blogs</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/brandposts/" class="MenuGroup__link"><span>BrandPosts</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/videos/" class="MenuGroup__link"><span>Videos</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol></div></div>							</nav>
						</div>
					</section>
											<section
							class="MenuAside__section"
							data-menu-section="topics"
							role="region">
							<div class="MenuAside__top"></div>
							<div class="MenuAside__nav-wrapper">
								<nav class="MenuAside__nav">
									<button
										type="button"
										class="MenuGroup__toggle PrimaryNav__topicsTrigger"
										style="border-bottom: 1px solid transparent;"
										tabindex="-1"
										data-prev-tabindex="0">
										<span class="MenuGroup__label">Topics</span>
										<i class="icon-layer-group" aria-hidden="true">
											<svg focusable="false" aria-hidden="true">
												<use href="#icon-layer-group"></use>
											</svg>
										</i>
									</button>
									<div class="MenuGroup is-active"><button type="button" class="MenuGroup__toggle reset-button" id="topics-1-toggle" aria-expanded="true" aria-controls="topics-1-panel"><span class="MenuGroup__label">Topics</span><span class="MenuGroup__icon"><i class="icon-header-angle-down" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-down"></use></svg></i></span></button><div class="MenuGroup__panel" id="topics-1-panel" role="region" aria-labelledby="topics-1-toggle" aria-hidden="false"><ol class="MenuGroup__list"><li class="MenuGroup__item"><a href="https://www.infoworld.com/analytics/" class="MenuGroup__link"><span>Analytics</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/artificial-intelligence/" class="MenuGroup__link"><span>Artificial Intelligence</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/careers/" class="MenuGroup__link"><span>Careers</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/cloud-computing/" class="MenuGroup__link"><span>Cloud Computing</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/data-management/" class="MenuGroup__link"><span>Data Management</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/database/" class="MenuGroup__link"><span>Databases</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/development-tools/" class="MenuGroup__link"><span>Development Tools</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/devops/" class="MenuGroup__link"><span>Devops</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/emerging-technology/" class="MenuGroup__link"><span>Emerging Technology</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/enterprise-buyers-guide/" class="MenuGroup__link"><span>Enterprise Buyer’s Guides</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/generative-ai/" class="MenuGroup__link"><span>Generative AI</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/it-leadership/" class="MenuGroup__link"><span>IT Leadership</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/java/" class="MenuGroup__link"><span>Java</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/javascript/" class="MenuGroup__link"><span>JavaScript</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/microsoft-net/" class="MenuGroup__link"><span>Microsoft .NET</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/open-source/" class="MenuGroup__link"><span>Open Source</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/programming-languages/" class="MenuGroup__link"><span>Programming Languages</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/python/" class="MenuGroup__link"><span>Python</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/security/" class="MenuGroup__link"><span>Security</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/software-development/" class="MenuGroup__link"><span>Software Development</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.infoworld.com/technology-business/" class="MenuGroup__link"><span>Technology Industry</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol></div></div>								</nav>
							</div>
						</section>
														</div>
			</div>
		</aside>
		<div id="MenuOverlay" class="MenuOverlay" aria-hidden="true"></div>
		<div class="advert">
					<div class="container advert__container">
					  <div class="advert__content"><div class="ad ad-overlay" data-ad-template="overlay" data-ofp="true"></div></div></div></div><div class="advert">
					<div class="container advert__container">
					  <div class="advert__content"><div class="ad ad-skin" data-ad-template="skin" data-ofp="true"></div></div></div></div>
	<main id="primary">
		
<article id="post-100007471" class="post-100007471 page type-page status-publish">
	<div class="entry-content">
		<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

<div id="remove_no_follow">
<body><section class="wp-block-bigbite-multi-title"><div class="container"></div></section>


<section class="latest-content" id="latest"><div class="container"><header class="latest-content__header"><h2 class="latest-content__title sr-only"><span>Latest from today</span></h2></header><div class="grid latest-content__content"><div class="col-12 col-7@md col-8@lg"><div class="latest-content__content-featured"><a class="card card--xxl " href="https://www.infoworld.com/article/4159295/exciting-python-features-are-on-the-way.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type">feature</span></div><div class="card__image"><div class="insider-image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?quality=50&amp;strip=all&amp;w=1173" srcset="https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?quality=50&amp;strip=all 5520w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=300%2C178&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=768%2C456&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=1024%2C608&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=1536%2C913&amp;quality=50&amp;strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=2048%2C1217&amp;quality=50&amp;strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=1173%2C697&amp;quality=50&amp;strip=all 1173w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=283%2C168&amp;quality=50&amp;strip=all 283w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=141%2C84&amp;quality=50&amp;strip=all 141w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=808%2C480&amp;quality=50&amp;strip=all 808w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=606%2C360&amp;quality=50&amp;strip=all 606w, https://www.infoworld.com/wp-content/uploads/2026/04/4159295-0-81277000-1776416526-shutterstock_2370477249.jpg?resize=421%2C250&amp;quality=50&amp;strip=all 421w" data-id="idg_render_hero_index_one_card_image" sizes="
            (min-resolution: 3dppx) and (max-width: 600px) 900px,
            (min-resolution: 3dppx) and (max-width: 1200px) 1200px,

            (min-resolution: 2dppx) and (max-width: 600px) 900px,
            (min-resolution: 2dppx) and (max-width: 1200px) 1200px,

            (min-resolution: 1dppx) and (max-width: 600px) 900px,
            (min-resolution: 1dppx) and (max-width: 2000px) 1300px" alt="Image" loading="eager" width="400px"></div></div></div><h3 class="card__title" id="exciting-python-features-are-on-the-way">Exciting Python features are on the way</h3><p class="card__description">Don&rsquo;t miss the transformative improvements in the next Python release &ndash; or these eight great reads for Python lovers. </p><div class="card__info"><span>By Serdar Yegulalp</span></div><div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-17T09:00:00+00:00">Apr 17, 2026</span></span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Programming Languages</span></span><span class="card__tag"><span class="tag">Python</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></a>
		</div><div class="grid grid--cols-7@md grid--cols-8@lg latest-content__content-main"><div class="col-12 col-7@md col-4@lg latest-content__card-main"><a class="card " href="https://www.infoworld.com/article/4158566/where-will-developer-wisdom-come-from.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type">opinion</span></div><div class="card__image">
			<div class="insider-image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?quality=50&amp;strip=all&amp;w=1200" srcset="https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?quality=50&amp;strip=all 8688w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=300%2C174&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=768%2C446&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=1024%2C595&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=1536%2C892&amp;quality=50&amp;strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=2048%2C1190&amp;quality=50&amp;strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=1200%2C697&amp;quality=50&amp;strip=all 1200w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=289%2C168&amp;quality=50&amp;strip=all 289w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=145%2C84&amp;quality=50&amp;strip=all 145w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=826%2C480&amp;quality=50&amp;strip=all 826w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=620%2C360&amp;quality=50&amp;strip=all 620w, https://www.infoworld.com/wp-content/uploads/2026/04/4158566-0-59272000-1776243825-shutterstock_1346238842.jpg?resize=430%2C250&amp;quality=50&amp;strip=all 430w" data-id="idg_render_hero_index_two_three_break" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px,
            (min-resolution: 3dppx) and (max-width: 1200px) 900px,

            (min-resolution: 2dppx) and (max-width: 600px) 600px,
            (min-resolution: 2dppx) and (max-width: 1200px) 900px,

            (min-resolution: 1dppx) and (max-width: 600px) 600px,
            (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="Image" loading="lazy" width="400px"></div></div></div><h3 class="card__title" id="where-will-developer-wisdom-come-from">Where will developer wisdom come from?</h3><div class="card__info"><span>By Nick Hodges</span></div><div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-15T09:00:00+00:00">Apr 15, 2026</span></span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Developer</span></span><span class="card__tag"><span class="tag">Roles</span></span></div></a></div><div class="col-12 col-7@md col-4@lg latest-content__card-main"><span class="nativo-loading"></span><a id="nativofeatuedmed-1" class="card nativo" href="https://www.infoworld.com/article/4154577/the-two-pass-compiler-is-back-this-time-its-fixing-ai-code-generation.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type">opinion</span></div><div class="card__image">
			<div class="insider-image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?quality=50&amp;strip=all&amp;w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?quality=50&amp;strip=all 3840w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=1536%2C864&amp;quality=50&amp;strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=2048%2C1152&amp;quality=50&amp;strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://www.infoworld.com/wp-content/uploads/2026/04/4154577-0-04123200-1776330106-shutterstock_2645792801_d3ae29.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" data-id="idg_render_hero_index_two_three_break" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px,
            (min-resolution: 3dppx) and (max-width: 1200px) 900px,

            (min-resolution: 2dppx) and (max-width: 600px) 600px,
            (min-resolution: 2dppx) and (max-width: 1200px) 900px,

            (min-resolution: 1dppx) and (max-width: 600px) 600px,
            (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="Image" loading="lazy" width="400px"></div></div></div><h3 class="card__title" id="the-two-pass-compiler-is-back-this-time-its-fixing-ai-code-generation">The two-pass compiler is back &ndash; this time, it&rsquo;s fixing AI code generation</h3><div class="card__info"><span>By Vijay Pullur</span></div><div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-16T09:00:00+00:00">Apr 16, 2026</span></span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">Generative AI</span></span></div></a></div></div></div><div class="col-12 col-5@md col-4@lg latest-content__content-secondary"><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/4160436/oracle-delivers-semantic-search-without-llms.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h3 class="card__title" id="oracle-delivers-semantic-search-without-llms">Oracle delivers semantic search without LLMs</h3><div class="card__info"><span>By Anirban Ghoshal</span></div>
		<div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-17T17:07:59+00:00">Apr 17, 2026</span></span><span>4 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Data Management</span></span><span class="card__tag"><span class="tag">Databases</span></span></div></a>
		</div><div class="latest-content__card-secondary"><span class="nativo-loading"></span><a id="nativocardgrid-1" class="card nativo" href="https://www.infoworld.com/article/4159225/when-cloud-giants-neglect-resilience.html" backfill="true" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">opinion</span></div><h3 class="card__title" id="when-cloud-giants-neglect-resilience">When cloud giants neglect resilience</h3><div class="card__info"><span>By David Linthicum</span></div>
		<div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-17T09:00:00+00:00">Apr 17, 2026</span></span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Business Continuity</span></span><span class="card__tag"><span class="tag">Hybrid Cloud</span></span><span class="card__tag"><span class="tag">Multicloud</span></span></div></a>
		</div><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/4159059/salesforce-launches-headless-360-to-support-agent%e2%80%91first-enterprise-workflows.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h3 class="card__title" id="salesforce-launches-headless-360-to-support-agentfirst-enterprise-workflows">Salesforce launches Headless 360 to support agent&#8209;first enterprise workflows</h3><div class="card__info"><span>By Anirban Ghoshal</span></div>
		<div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-16T09:00:00+00:00">Apr 16, 2026</span></span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></a>
		</div><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/4158536/the-agent-tier-rethinking-runtime-architecture-for-context-driven-enterprise-workflows.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">opinion</span></div><h3 class="card__title" id="the-agent-tier-rethinking-runtime-architecture-for-context-driven-enterprise-workflows">The agent tier: Rethinking runtime architecture for context-driven enterprise workflows</h3><div class="card__info"><span>By Nitesh Varma</span></div>
		<div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-16T09:00:00+00:00">Apr 16, 2026</span></span><span>12 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Development Approaches</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></a>
		</div><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/4150864/htmx-4-0-hypermedia-finds-a-new-gear.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">feature</span></div><h3 class="card__title" id="htmx-4-0-hypermedia-finds-a-new-gear">HTMX 4.0: Hypermedia finds a new gear</h3><div class="card__info"><span>By Matthew Tyson</span></div>
		<div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-14T09:00:00+00:00">Apr 14, 2026</span></span><span>8 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">JavaScript</span></span><span class="card__tag"><span class="tag">Web Development</span></span></div></a>
		</div><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/4153857/hands-on-with-the-google-agent-development-kit.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">reviews</span></div><h3 class="card__title" id="hands-on-with-the-google-agent-development-kit">Hands-on with the Google Agent Development Kit </h3><div class="card__info"><span>By Martin Heller</span></div>
		<div class="card__info card__info--light"><span><span itemprop="datePublished" content="2026-04-13T09:00:00+00:00">Apr 13, 2026</span></span><span>9 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">Generative AI</span></span></div></a>
		</div></div></div></div></section><div class="advert">
					<div class="container advert__container">
					  <div class="advert__content"><div class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false"></div></div></div></div>

<div class="content-listing-articles" id="article"><div class="container"><h2 class="content-listing-articles__title" id="more-top-stories">More top stories</h2><div class="content-listing-articles__container content-listing-articles__container--collapsed" data-collapse-articles="6" data-content-listing-articles><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/4155954/ease-into-azure-kubernetes-application-network.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">analysis</span></div><h3 class="card__title" id="ease-into-azure-kubernetes-application-network">Ease into Azure Kubernetes Application Network</h3><p class="card__description">Microsoft has simplified service mesh scaling and management with an ambient-based service network for AKS. Here&rsquo;s how to get started. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Simon Bisson</span></div> <div class="card__info card__info--light"><span>Apr 16, 2026 </span><span>9 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Cloud-Native</span></span><span class="card__tag"><span class="tag">Kubernetes</span></span><span class="card__tag"><span class="tag">Microsoft Azure</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/4154522/tap-into-the-ai-apis-of-google-chrome-and-microsoft-edge.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">feature</span></div><h3 class="card__title" id="tap-into-the-ai-apis-of-google-chrome-and-microsoft-edge">Tap into the AI APIs of Google Chrome and Microsoft Edge</h3><p class="card__description">The Chrome and Edge browsers have built-in APIs for language detection, translation, summarization, and more, using locally hosted models. Here&rsquo;s how to take advantage of them. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Serdar Yegulalp</span></div> <div class="card__info card__info--light"><span>Apr 15, 2026 </span><span>9 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">APIs</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">JavaScript</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/4156198/the-hyperscalers-are-pricing-themselves-out-of-ai-workloads.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">opinion</span></div><h3 class="card__title" id="the-hyperscalers-are-pricing-themselves-out-of-ai-workloads">The hyperscalers are pricing themselves out of AI workloads</h3><p class="card__description">AWS, Microsoft Azure, and Google Cloud risk losing the next phase of the AI market by charging too much for the same level of compute.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By David Linthicum</span></div> <div class="card__info card__info--light"><span>Apr 14, 2026 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Cloud Computing</span></span><span class="card__tag"><span class="tag">Technology Industry</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/4157327/are-ai-certifications-worth-the-investment.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">opinion</span></div><h3 class="card__title" id="are-ai-certifications-worth-the-investment">Are AI certifications worth the investment?</h3><p class="card__description">The AI credential revolution: A guide for IT professionals and business leaders.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Paul Frenken</span></div> <div class="card__info card__info--light"><span>Apr 13, 2026 </span><span>14 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Certifications</span></span><span class="card__tag"><span class="tag">Developer</span></span><span class="card__tag"><span class="tag">IT Jobs</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/4152738/27-questions-to-ask-before-choosing-an-llm.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">feature</span></div><h3 class="card__title" id="27-questions-to-ask-before-choosing-an-llm">27 questions to ask before choosing an LLM</h3><p class="card__description">From cost and performance specs to advanced capabilities and quirks, answers to these questions will help you determine the right model for your use case. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Peter Wayner</span></div> <div class="card__info card__info--light"><span>Apr 6, 2026 </span><span>12 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/4156789/ai-agents-arent-failing-the-coordination-layer-is-failing.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">opinion</span></div><h3 class="card__title" id="ai-agents-arent-failing-the-coordination-layer-is-failing">AI agents aren't failing. The coordination layer is failing</h3><p class="card__description">When multiple AI agents compete instead of collaborating, the problem isn&rsquo;t the agents &mdash; it&rsquo;s the missing spine that connects them.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Sreenivasa Reddy Hulebeedu Reddy</span></div> <div class="card__info card__info--light"><span>Apr 10, 2026 </span><span>8 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Cloud-Native</span></span><span class="card__tag"><span class="tag">Development Approaches</span></span><span class="card__tag"><span class="tag">Microservices</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/4155235/cloud-degrees-are-moving-online.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">opinion</span></div><h3 class="card__title" id="cloud-degrees-are-moving-online">Cloud degrees are moving online</h3><p class="card__description">Accredited cloud computing degrees are expanding online at the perfect time. They reduce costs and provide practical value for students and employers.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By David Linthicum</span></div> <div class="card__info card__info--light"><span>Apr 10, 2026 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Careers</span></span><span class="card__tag"><span class="tag">Cloud Computing</span></span><span class="card__tag"><span class="tag">Technology Industry</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/4154060/rethinking-angular-forms-a-state-first-perspective.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">analysis</span></div><h3 class="card__title" id="rethinking-angular-forms-a-state-first-perspective">Rethinking Angular forms: A state-first perspective</h3><p class="card__description">Complex forms are often difficult to reason about because we treat them as event pipelines. A state-first perspective reveals a simpler architectural model.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Sonu Kapoor</span></div> <div class="card__info card__info--light"><span>Apr 9, 2026 </span><span>11 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Angular</span></span><span class="card__tag"><span class="tag">Libraries and Frameworks</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/4153393/bringing-databases-and-kubernetes-together.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">opinion</span></div><h3 class="card__title" id="bringing-databases-and-kubernetes-together">Bringing databases and Kubernetes together</h3><p class="card__description">OpenEverest is an open-source platform for automating the provisioning and management of any database on any Kubernetes infrastructure. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Laura Czajkowski</span></div> <div class="card__info card__info--light"><span>Apr 9, 2026 </span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Cloud-Native</span></span><span class="card__tag"><span class="tag">Databases</span></span><span class="card__tag"><span class="tag">Kubernetes</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/4155139/the-winners-and-losers-of-ai-coding.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">opinion</span></div><h3 class="card__title" id="the-winners-and-losers-of-ai-coding">The winners and losers of AI coding</h3><p class="card__description">Goodbye and good riddance to all of those infuriatingly unmaintainable legacy balls of mud. Modern, bespoke replacements are on the horizon. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Nick Hodges</span></div> <div class="card__info card__info--light"><span>Apr 8, 2026 </span><span>4 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Developer</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Roles</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/4152654/get-started-with-pythons-new-frozendict-type.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">feature</span></div><h3 class="card__title" id="get-started-with-pythons-new-frozendict-type">Get started with Python&rsquo;s new frozendict type</h3><p class="card__description">Python 3.15 introduces an immutable or &lsquo;frozen&rsquo; dictionary that is useful in places ordinary dicts can&rsquo;t be used.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Serdar Yegulalp</span></div> <div class="card__info card__info--light"><span>Apr 8, 2026 </span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Programming Languages</span></span><span class="card__tag"><span class="tag">Python</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/4154543/the-terraform-scaling-problem-when-infrastructure-as-code-becomes-infrastructure-as-complexity.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">opinion</span></div><h3 class="card__title" id="the-terraform-scaling-problem-when-infrastructure-as-code-becomes-infrastructure-as-complexity">The Terraform scaling problem: When infrastructure-as-code becomes infrastructure-as-complexity</h3><p class="card__description">Terraform scales beautifully &mdash; until it doesn't. Explore the real challenges engineering teams face with Terraform at scale and the AI-assisted solutions reshaping IaC management.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Neel Shah</span></div> <div class="card__info card__info--light"><span>Apr 7, 2026 </span><span>14 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Cloud Management</span></span><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">Devops</span></span></div></div></div></a></div></div><div class="grid content-listing-articles__button-wrapper">
			<div class="col-6 col-4@md col-start-5@md"><div class="content-listing-articles__button-show">
					<button class="button button--tertiary" type="button" data-toggle="expand">
						<span>Show more</span>
						<span>
							<svg class="icon icon--sm" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
								<use xlink:href="#icon-chevron-down"></use>
							</svg>
						</span>
					</button>
				</div>
				<div class="content-listing-articles__button-show content-listing-articles__button-show--hide">
					<button class="button button--tertiary" type="button" data-toggle="collapse">
						<span>Show less</span>
						<span>
							<svg class="icon icon--sm" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
								<use xlink:href="#icon-chevron-up"></use>
							</svg>
						</span>
					</button>
				</div></div><div class="col-6 col-4@md content-listing-articles__button-view-all"><a class="button" href="https://www.infoworld.com/features/" target="_blank"> View all </a></div></div></div></div>

<section class="related-content-video" id="video"><div class="container"><h2 class="related-content-video__title" id="dev-with-serdar">Dev with Serdar</h2><div class="grid related-content-video__main">        <div class="col-12 col-4@lg related-content-video__main-card card card--xl">
            <div class="card__header"><span class="card__content-type">video</span></div>            
            <a class="card card--xl" href="https://www.infoworld.com/video/4158712/how-to-run-chrome-and-edges-built-in-ai.html" aria-label="Go to content">
                <h3 class="card__title" id="how-to-run-chrome-and-edges-built-in-ai">How to run Chrome and Edge&rsquo;s built-in AI</h3>            </a>
            
                         <div class="card__info card__info--light"><span>Apr 14, 2026 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div>        </div>
                <div class="col-12 col-8@lg related-content-video__video">
                            <div class="youtube-video">
                    <div class="video-container" style="aspect-ratio: 16:9">
					<iframe src="" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-src="https://www.youtube-nocookie.com/embed/sJtCIiXZxNc?rel=0&amp;controls=0&amp;showinfo=0&amp;modestbranding=1&amp;enbalejsapi=1&amp;color=white&amp;iv_load_policy=3"></iframe>
				</div>                </div>
                    </div>
        </div><div class="related-content-video__cards-container">
                        <div class="related-content-video__cards-wrap">
                            <ul class="grid related-content-video__cards">        <li class="col-4@md related-content-video__card">
            <a class="related-content-video__card-link" href="https://www.infoworld.com/video/4153873/pythons-new-frozendict-type.html" aria-label="Go to content">
                <div class="related-content-video__card-image">
                    <div class="image">
                        <img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?quality=50&amp;strip=all&amp;w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?quality=50&amp;strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://www.infoworld.com/wp-content/uploads/2026/04/4153873-0-51930400-1775143797-youtube-thumbnail-CD_8mAIdH9M_ddd0a5.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" sizes="300px" loading="lazy" width="400px">
                    </div>
                </div>
                <div class="card card--xs">
                    <h3 class="card__title" id="pythons-new-frozendict-type">Python&rsquo;s new frozendict type</h3>
                                         <div class="card__info card__info--light"><span>Apr 2, 2026 </span><span>4 mins</span></div>                    <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div>                </div>
            </a>
        </li>
                <li class="col-4@md related-content-video__card">
            <a class="related-content-video__card-link" href="https://www.infoworld.com/video/4152630/how-to-boost-app-performance-with-python-3-15s-lazy-import.html" aria-label="Go to content">
                <div class="related-content-video__card-image">
                    <div class="image">
                        <img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?quality=50&amp;strip=all&amp;w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?quality=50&amp;strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://www.infoworld.com/wp-content/uploads/2026/03/4152630-0-43887000-1774980243-youtube-thumbnail-XMHBeBs64cg_fd88a0.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" sizes="300px" loading="lazy" width="400px">
                    </div>
                </div>
                <div class="card card--xs">
                    <h3 class="card__title" id="how-to-boost-app-performance-with-python-3-15s-lazy-import">How to boost app performance with Python 3.15&rsquo;s lazy import</h3>
                                         <div class="card__info card__info--light"><span>Mar 31, 2026 </span><span>6 mins</span></div>                    <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div>                </div>
            </a>
        </li>
                <li class="col-4@md related-content-video__card">
            <a class="related-content-video__card-link" href="https://www.infoworld.com/video/4150783/how-to-run-your-own-little-local-claude-code-sort-of.html" aria-label="Go to content">
                <div class="related-content-video__card-image">
                    <div class="image">
                        <img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?quality=50&amp;strip=all&amp;w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?quality=50&amp;strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://www.infoworld.com/wp-content/uploads/2026/03/4150783-0-18851500-1774547343-youtube-thumbnail-XzxM0hdIxLE_ee4769.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" sizes="300px" loading="lazy" width="400px">
                    </div>
                </div>
                <div class="card card--xs">
                    <h3 class="card__title" id="how-to-run-your-own-little-local-claude-code-sort-of">How to run your own little local Claude Code (sort of!)</h3>
                                         <div class="card__info card__info--light"><span>Mar 26, 2026 </span><span>7 mins</span></div>                    <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div>                </div>
            </a>
        </li>
        </ul></div></div><div class="related-content-video__button-container"><a class="button" target="_self" href="https://www.infoworld.com/videos/">See all videos</a></div></div></section>

<section class="popular-topics-selector"><div class="container"><h2 class="popular-topics-selector__title" id="explore-a-topic">Explore a topic</h2><p class="popular-topics-selector__text"></p><ul class="popular-topics-selector__topics-container" itemscope itemtype="https://schema.org/ItemList"><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/analytics/">Analytics</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/artificial-intelligence/">Artificial Intelligence</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/careers/">Careers</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/cloud-computing/">Cloud Computing</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/data-management/">Data Management</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/database/">Databases</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/development-tools/">Development Tools</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/devops/">Devops</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/emerging-technology/">Emerging Technology</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/generative-ai/">Generative AI</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/java/">Java</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/javascript/">JavaScript</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/microsoft-net/">Microsoft .NET</a></li><li class="popular-topics-selector__topic"><a class="chip chip--topic" href="https://www.infoworld.com/open-source/">Open Source</a></li><li class="popular-topics-selector__topic"><button class="button" type="button" data-modal-trigger="popular-topics-selector-modal">View all topics</button></li></ul>
		<div class="modal" data-modal="popular-topics-selector-modal" role="dialog">
			<div class="modal__backdrop" data-modal-backdrop></div>
			<div class="modal__content">
	<aside class="popular-topics-selector__modal-content" role="dialog" aria-labelledby="modal-title" aria-describedby="modal-description" aria-hidden="true" tabindex="-1">
		<header class="popular-topics-selector__modal-header">
			<h2 id="modal-title" class="popular-topics-selector__modal-title">All topics</h2>
			<div class="popular-topics-selector__modal-close-button">
				<button class="button button--quaternary" type="button" data-modal-close="popular-topics-selector-modal" aria-label="Close topics modal">
					<span>Close</span>
					<span class="icon" aria-hidden="true"><svg class="icon-circle-xmark"><use xlink:href="#icon-circle-xmark"></use></svg></span>
				</button>
			</div>
		</header>
		<p id="modal-description" class="popular-topics-selector__modal-description sr-only">Browse all topics and categories below.</p>
		<nav class="popular-topics-selector__modal-navigation" role="navigation" itemscope itemtype="https://schema.org/ItemList"><ul class="popular-topics-selector__modal-list" itemscope itemtype="https://schema.org/ItemList"><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/analytics/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Analytics</span>
					</a><meta itemprop="position" content="1">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/artificial-intelligence/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Artificial Intelligence</span>
					</a><meta itemprop="position" content="2">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/careers/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Careers</span>
					</a><meta itemprop="position" content="3">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/cloud-computing/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Cloud Computing</span>
					</a><meta itemprop="position" content="4">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/data-management/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Data Management</span>
					</a><meta itemprop="position" content="5">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/database/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Databases</span>
					</a><meta itemprop="position" content="6">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/development-tools/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Development Tools</span>
					</a><meta itemprop="position" content="7">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/devops/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Devops</span>
					</a><meta itemprop="position" content="8">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/emerging-technology/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Emerging Technology</span>
					</a><meta itemprop="position" content="9">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/generative-ai/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Generative AI</span>
					</a><meta itemprop="position" content="10">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/java/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Java</span>
					</a><meta itemprop="position" content="11">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/javascript/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">JavaScript</span>
					</a><meta itemprop="position" content="12">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/microsoft-net/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Microsoft .NET</span>
					</a><meta itemprop="position" content="13">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/open-source/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Open Source</span>
					</a><meta itemprop="position" content="14">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/programming-languages/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Programming Languages</span>
					</a><meta itemprop="position" content="15">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/python/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Python</span>
					</a><meta itemprop="position" content="16">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/security/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Security</span>
					</a><meta itemprop="position" content="17">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/software-development/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Software Development</span>
					</a><meta itemprop="position" content="18">
				</li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
					<a href="https://www.infoworld.com/technology-business/" class="popular-topics-selector__modal-list-item-link" itemprop="url">
						<span itemprop="name">Technology Industry</span>
					</a><meta itemprop="position" content="19">
				</li></ul></nav>
	</aside></div>
		</div>
	</div>
</section>


<section class="section-block container" data-block="hero-text-figure" data-figure="right" data-ar="landscape" style="
    border-bottom: 0px;
    padding-bottom: 0;
    margin-bottom: 0;
">
 <div class="section-block--wrapper grid">
  <div class="section-block--grid col-12">
   <header class="section-block--header">
    <h2 class="section-block--title">
     <a href="https://www.infoworld.com/it-leadership/"><span>Spotlight: Setting the 2026 IT agenda</span></a>
    </h2>
    <div class="section-block--subheading">
     <span>Articles</span>
     <span>Buyer&rsquo;s Guide</span>
    </div>
    <div class="section-block--excerpt">
     <p>Our annual State of the CIO Survey, now in its 25th year, highlights the ongoing evolution of the CIO role from IT operator to strategic business leader. The data is brought to life in conversations with IT leaders about their experience shaping enterprise strategy, enabling business growth, and leading cultural change. State of the CIO illuminates key areas of business and technology investment and this focus provides an ideal opportunity for sponsors to align with the opportunities highlighted by the research.</p>
     <div class="section-block--btn">
     <a href="https://www.infoworld.com/it-leadership/"><span>View All</span></a>
    </div>
    </div>
   </header>
   <figure class="section-block--figure">
    <a href="https://www.infoworld.com/it-leadership/">
		<img decoding="async" src="https://b2b-contenthub.com/wp-content/uploads/2025/12/setting-the-IT-agenda-shutterstock_2714828623.jpg?quality=50&amp;strip=all&amp;w=854" loading="lazy" width="400px" alt="">
    </a>
   </figure>
  </div>
 </div>
</section>


<section class="popular-topics"><div class="container"><h2 class="popular-topics__title" id="popular-topics">Popular topics</h2><div class="popular-topics__topic grid"><div class="popular-topics__column popular-topics__column--one col-12@sm col-6@md col-4@lg col-4@xl"><h3 class="popular-topics__topic-title" id="artificial-intelligence">Artificial Intelligence </h3></div><div class="popular-topics__column popular-topics__column--two col-12 col-6@md col-4@lg col-4@xl"><a class="card " href="https://www.infoworld.com/article/4160043/anthropics-latest-model-is-deliberately-less-powerful-than-mythos-and-thats-the-point-2.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><div class="card__image"><div class="insider-image"><div class="image image--aspect-ratio-16-9 image--crop-position-center-center"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?quality=50&amp;strip=all&amp;w=300" srcset="https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?quality=50&amp;strip=all 4500w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=1536%2C864&amp;quality=50&amp;strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=2048%2C1152&amp;quality=50&amp;strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://www.infoworld.com/wp-content/uploads/2026/04/4160043-0-69313600-1776458468-shutterstock_editorial_2338803257.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px,
            (min-resolution: 3dppx) and (max-width: 1200px) 900px,

            (min-resolution: 2dppx) and (max-width: 600px) 600px,
            (min-resolution: 2dppx) and (max-width: 1200px) 900px,

            (min-resolution: 1dppx) and (max-width: 600px) 600px,
            (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="Image" loading="lazy" width="400px"></div></div></div><h3 class="card__title" id="anthropics-latest-model-is-deliberately-less-powerful-than-mythos-and-thats-the-point">Anthropic&rsquo;s latest model is deliberately less powerful than Mythos (and that&rsquo;s the point)</h3><div class="card__info"><span>By  Taryn Plumb</span> </div> <div class="card__info card__info--light"><span>Apr 16, 2026 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Code Security</span></span><span class="card__tag"><span class="tag">Security</span></span></div></a></div><div class="popular-topics__column popular-topics__column--three col-12 col-6@md col-4@lg col-4@xl"><span class="nativo-loading"></span><a id="nativocardgrid-2" class="card nativo" href="https://www.infoworld.com/article/4159228/mulesoft-agent-fabric-adds-new-ways-to-keep-ai-agents-in-line.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h3 class="card__title" id="mulesoft-agent-fabric-adds-new-ways-to-keep-ai-agents-in-line">MuleSoft Agent Fabric adds new ways to keep AI agents in line</h3><div class="card__info"><span>By  Anirban Ghoshal</span> </div> <div class="card__info card__info--light"><span>Apr 15, 2026 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">APIs</span></span><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">IT Governance</span></span></div></a></div><div class="popular-topics__column popular-topics__column--four col-12 col-6@md col-4@lg col-4@xl"><a class="card " href="https://www.infoworld.com/article/4158886/curity-looks-to-reinvent-iam-with-runtime-authorization-for-ai-agents-2.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h3 class="card__title" id="curity-looks-to-reinvent-iam-with-runtime-authorization-for-ai-agents">Curity looks to reinvent IAM with runtime authorization for AI agents</h3><div class="card__info"><span>By  John E. Dunn</span> </div> <div class="card__info card__info--light"><span>Apr 14, 2026 </span><span>4 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Identity and Access Management</span></span><span class="card__tag"><span class="tag">Security</span></span></div></a></div><div class="popular-topics__view-all-button-container">
			<a class="button button--secondary" target="" href="https://www.infoworld.com/artificial-intelligence/">
			View topic
			</a>
		</div></div><div class="popular-topics__topic grid"><div class="popular-topics__column popular-topics__column--one col-12@sm col-6@md col-4@lg col-4@xl"><h3 class="popular-topics__topic-title" id="cloud-computing">Cloud Computing </h3></div><div class="popular-topics__column popular-topics__column--two col-12 col-6@md col-4@lg col-4@xl"><a class="card " href="https://www.infoworld.com/article/4158015/google-cloud-introduces-querydata-to-help-ai-agents-create-reliable-database-queries.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><div class="card__image"><div class="insider-image"><div class="image image--aspect-ratio-16-9 image--crop-position-center-center"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?quality=50&amp;strip=all&amp;w=252" srcset="https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?quality=50&amp;strip=all 5029w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=300%2C200&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=768%2C512&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=1024%2C683&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=1536%2C1024&amp;quality=50&amp;strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=2048%2C1365&amp;quality=50&amp;strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=1240%2C826&amp;quality=50&amp;strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=150%2C100&amp;quality=50&amp;strip=all 150w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=1045%2C697&amp;quality=50&amp;strip=all 1045w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=252%2C168&amp;quality=50&amp;strip=all 252w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=126%2C84&amp;quality=50&amp;strip=all 126w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=720%2C480&amp;quality=50&amp;strip=all 720w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=540%2C360&amp;quality=50&amp;strip=all 540w, https://www.infoworld.com/wp-content/uploads/2026/04/4158015-0-51205200-1776099070-shutterstock_1655006164_c5acde.jpg?resize=375%2C250&amp;quality=50&amp;strip=all 375w" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px,
            (min-resolution: 3dppx) and (max-width: 1200px) 900px,

            (min-resolution: 2dppx) and (max-width: 600px) 600px,
            (min-resolution: 2dppx) and (max-width: 1200px) 900px,

            (min-resolution: 1dppx) and (max-width: 600px) 600px,
            (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="Image" loading="lazy" width="400px"></div></div></div><h3 class="card__title" id="google-cloud-introduces-querydata-to-help-ai-agents-create-reliable-database-queries">Google Cloud introduces QueryData to help AI agents create reliable database queries</h3><div class="card__info"><span>By  Anirban Ghoshal</span> </div> <div class="card__info card__info--light"><span>Apr 13, 2026 </span><span>4 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Databases</span></span><span class="card__tag"><span class="tag">Google Cloud Platform</span></span></div></a></div><div class="popular-topics__column popular-topics__column--three col-12 col-6@md col-4@lg col-4@xl"><span class="nativo-loading"></span><a id="nativocardgrid-3" class="card nativo" href="https://www.infoworld.com/article/4157183/aws-targets-ai-agent-sprawl-with-new-bedrock-agent-registry.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h3 class="card__title" id="aws-targets-ai-agent-sprawl-with-new-bedrock-agent-registry">AWS targets AI agent sprawl with new Bedrock Agent Registry</h3><div class="card__info"><span>By  Anirban Ghoshal</span> </div> <div class="card__info card__info--light"><span>Apr 10, 2026 </span><span>4 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Amazon Web Services</span></span><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">IaaS</span></span></div></a></div><div class="popular-topics__column popular-topics__column--four col-12 col-6@md col-4@lg col-4@xl"><a class="card " href="https://www.infoworld.com/article/4156852/anthropic-rolls-out-claude-managed-agents.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h3 class="card__title" id="anthropic-rolls-out-claude-managed-agents">Anthropic rolls out Claude Managed Agents</h3><div class="card__info"><span>By  Paul Krill</span> </div> <div class="card__info card__info--light"><span>Apr 9, 2026 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">APIs</span></span><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">Generative AI</span></span></div></a></div><div class="popular-topics__view-all-button-container">
			<a class="button button--secondary" target="" href="https://www.infoworld.com/cloud-computing/">
			View topic
			</a>
		</div></div><div class="popular-topics__topic grid"><div class="popular-topics__column popular-topics__column--one col-12@sm col-6@md col-4@lg col-4@xl"><h3 class="popular-topics__topic-title" id="data-management">Data Management </h3></div><div class="popular-topics__column popular-topics__column--two col-12 col-6@md col-4@lg col-4@xl"><a class="card " href="https://www.infoworld.com/article/4154467/databricks-launches-aichemy-multi-agent-ai-for-drug-discovery.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><div class="card__image"><div class="insider-image"><div class="image image--aspect-ratio-16-9 image--crop-position-center-center"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?quality=50&amp;strip=all&amp;w=300" srcset="https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?quality=50&amp;strip=all 1422w, https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?resize=300%2C168&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?resize=768%2C432&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?resize=1024%2C576&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?resize=1240%2C697&amp;quality=50&amp;strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?resize=150%2C84&amp;quality=50&amp;strip=all 150w, https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?resize=854%2C480&amp;quality=50&amp;strip=all 854w, https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?resize=640%2C360&amp;quality=50&amp;strip=all 640w, https://www.infoworld.com/wp-content/uploads/2026/04/4154467-0-26925900-1775474919-databricksphone.jpg?resize=444%2C250&amp;quality=50&amp;strip=all 444w" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px,
            (min-resolution: 3dppx) and (max-width: 1200px) 900px,

            (min-resolution: 2dppx) and (max-width: 600px) 600px,
            (min-resolution: 2dppx) and (max-width: 1200px) 900px,

            (min-resolution: 1dppx) and (max-width: 600px) 600px,
            (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="Image" loading="lazy" width="400px"></div></div></div><h3 class="card__title" id="databricks-launches-aichemy-multi-agent-ai-for-drug-discovery">Databricks launches AiChemy multi-agent AI for drug discovery</h3><div class="card__info"><span>By  Anirban Ghoshal</span> </div> <div class="card__info card__info--light"><span>Apr 6, 2026 </span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Data Management</span></span><span class="card__tag"><span class="tag">Databases</span></span></div></a></div><div class="popular-topics__column popular-topics__column--three col-12 col-6@md col-4@lg col-4@xl"><span class="nativo-loading"></span><a id="nativocardgrid-4" class="card nativo" href="https://www.infoworld.com/article/4143957/how-apache-kafka-flexed-to-support-queues.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> opinion</span></div><h3 class="card__title" id="how-apache-kafka-flexed-to-support-queues">How Apache Kafka flexed to support queues</h3><div class="card__info"><span>By  Sandon Jacobs</span> </div> <div class="card__info card__info--light"><span>Mar 31, 2026 </span><span>8 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Data Management</span></span><span class="card__tag"><span class="tag">Databases</span></span><span class="card__tag"><span class="tag">Libraries and Frameworks</span></span></div></a></div><div class="popular-topics__column popular-topics__column--four col-12 col-6@md col-4@lg col-4@xl"><a class="card " href="https://www.infoworld.com/article/4150821/edge-clouds-and-local-data-centers-reshape-it.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> analysis</span></div><h3 class="card__title" id="edge-clouds-and-local-data-centers-reshape-it">Edge clouds and local data centers reshape IT</h3><div class="card__info"><span>By  David Linthicum</span> </div> <div class="card__info card__info--light"><span>Mar 27, 2026 </span><span>8 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Cloud Architecture</span></span><span class="card__tag"><span class="tag">Data Architecture</span></span><span class="card__tag"><span class="tag">Hybrid Cloud</span></span></div></a></div><div class="popular-topics__view-all-button-container">
			<a class="button button--secondary" target="" href="https://www.infoworld.com/data-management/">
			View topic
			</a>
		</div></div><div class="popular-topics__topic grid"><div class="popular-topics__column popular-topics__column--one col-12@sm col-6@md col-4@lg col-4@xl"><h3 class="popular-topics__topic-title" id="software-development">Software Development </h3></div><div class="popular-topics__column popular-topics__column--two col-12 col-6@md col-4@lg col-4@xl"><a class="card " href="https://www.infoworld.com/article/4158575/github-adds-stacked-prs-to-speed-complex-code-reviews.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><div class="card__image"><div class="insider-image"><div class="image image--aspect-ratio-16-9 image--crop-position-center-center"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?quality=50&amp;strip=all&amp;w=265" srcset="https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?quality=50&amp;strip=all 6200w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=300%2C190&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=768%2C486&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=1024%2C649&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=1536%2C973&amp;quality=50&amp;strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=2048%2C1297&amp;quality=50&amp;strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=1100%2C697&amp;quality=50&amp;strip=all 1100w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=265%2C168&amp;quality=50&amp;strip=all 265w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=133%2C84&amp;quality=50&amp;strip=all 133w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=758%2C480&amp;quality=50&amp;strip=all 758w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=568%2C360&amp;quality=50&amp;strip=all 568w, https://www.infoworld.com/wp-content/uploads/2026/04/4158575-0-33864200-1776186773-shutterstock_1202868460-100942733-orig.jpg?resize=395%2C250&amp;quality=50&amp;strip=all 395w" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px,
            (min-resolution: 3dppx) and (max-width: 1200px) 900px,

            (min-resolution: 2dppx) and (max-width: 600px) 600px,
            (min-resolution: 2dppx) and (max-width: 1200px) 900px,

            (min-resolution: 1dppx) and (max-width: 600px) 600px,
            (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="Image" loading="lazy" width="400px"></div></div></div><h3 class="card__title" id="github-adds-stacked-prs-to-speed-complex-code-reviews">GitHub adds Stacked PRs to speed complex code reviews</h3><div class="card__info"><span>By  Anirban Ghoshal</span> </div> <div class="card__info card__info--light"><span>Apr 14, 2026 </span><span>7 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Development Approaches</span></span><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">GitHub</span></span></div></a></div><div class="popular-topics__column popular-topics__column--three col-12 col-6@md col-4@lg col-4@xl"><span class="nativo-loading"></span><a id="nativocardgrid-5" class="card nativo" href="https://www.infoworld.com/article/4157823/critical-flaw-in-marimo-python-notebook-exploited-within-10-hours-of-disclosure-2.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h3 class="card__title" id="critical-flaw-in-marimo-python-notebook-exploited-within-10-hours-of-disclosure">Critical flaw in Marimo Python notebook exploited within 10 hours of disclosure</h3><div class="card__info"><span>By  Gyana Swain</span> </div> <div class="card__info card__info--light"><span>Apr 13, 2026 </span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">Security</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></a></div><div class="popular-topics__column popular-topics__column--four col-12 col-6@md col-4@lg col-4@xl"><a class="card " href="https://www.infoworld.com/article/4157506/mastering-the-dull-reality-of-sexy-ai.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> opinion</span></div><h3 class="card__title" id="mastering-the-dull-reality-of-sexy-ai">Mastering the dull reality of sexy AI</h3><div class="card__info"><span>By  Matt Asay</span> </div> <div class="card__info card__info--light"><span>Apr 13, 2026 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Data Engineering</span></span><span class="card__tag"><span class="tag">Developer</span></span><span class="card__tag"><span class="tag">Python</span></span></div></a></div><div class="popular-topics__view-all-button-container">
			<a class="button button--secondary" target="" href="https://www.infoworld.com/software-development/">
			View topic
			</a>
		</div></div></div></section><div class="advert">
					<div class="container advert__container">
					  <div class="advert__content"><div class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false"></div></div></div></div>

<section class="content-spotlight-article">
			<div class="container"><h2 class="content-spotlight-article__title" id="spotlight-story">Spotlight Story</h2><div class="grid content-spotlight-article__content">
			<div class="col-12 col-6@md content-spotlight-article__main"><div class="content-spotlight-article__main-top">
			<a class="card card--xxl" href="https://www.infoworld.com/article/2337290/10-principles-for-creating-great-developer-experiences.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type">feature</span></div><h3 class="card__title" id="10-principles-for-creating-a-great-developer-experience">10 principles for creating a great developer experience</h3><p class="card__description">Tech leaders who maximize developer satisfaction and minimize frustration reap the rewards in hiring, retaining, and delivering results from their dev teams.</p><div class="card__info"><span>By Isaac Sacolick</span></div><div class="card__info card__info--light"><span class="card__date">May 6, 2024</span><span>12 mins</span></div>
		<div class="card__tags"><span class="card__tag"><span class="tag">Engineer</span></span><span class="card__tag"><span class="tag">Software Development</span></span><span class="card__tag"><span class="tag">Technology Industry</span></span></div></a></div></div>
			<div class="col-12 col-6@md content-spotlight-article__image">
				<div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?quality=50&amp;strip=all&amp;w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?quality=50&amp;strip=all 6720w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=300%2C143&amp;quality=50&amp;strip=all 300w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=768%2C365&amp;quality=50&amp;strip=all 768w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=1024%2C487&amp;quality=50&amp;strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=1536%2C730&amp;quality=50&amp;strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=2048%2C973&amp;quality=50&amp;strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=1240%2C589&amp;quality=50&amp;strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=150%2C71&amp;quality=50&amp;strip=all 150w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=854%2C406&amp;quality=50&amp;strip=all 854w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=640%2C304&amp;quality=50&amp;strip=all 640w, https://www.infoworld.com/wp-content/uploads/2025/05/2337290-0-77511700-1747376455-shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=444%2C211&amp;quality=50&amp;strip=all 444w" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px,
            (min-resolution: 3dppx) and (max-width: 1200px) 900px,

            (min-resolution: 2dppx) and (max-width: 600px) 600px,
            (min-resolution: 2dppx) and (max-width: 1200px) 900px,

            (min-resolution: 1dppx) and (max-width: 600px) 600px,
            (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="shutterstock 1869308242 team putting together a chain of gears teamwork coordination collaboration" loading="lazy" width="400px"></div>
			</div>
		</div></div>
		</section><div class="advert">
					<div class="container advert__container">
					  <div class="advert__content"><div class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false"></div></div></div></div>



<div class="advert">
					<div class="container advert__container">
					  <div class="advert__content"><div class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false"></div></div></div></div><section class="suggested-content-various"><div class="container"><div class="grid suggested-content-various__content"><div class="col-12 col-3@lg">
			<h2 class="suggested-content-various__title" id="show-me-more">Show me more</h2><div class="suggested-content-various__filters"><span class="suggested-content-various__filter"><button class="chip chip--filter chip--active" type="button" data-filter-key="latest">Latest</button></span><span class="suggested-content-various__filter"><button class="chip chip--filter" type="button" data-filter-key="article">Articles</button></span><span class="suggested-content-various__filter"><button class="chip chip--filter" type="button" data-filter-key="video">Videos</button></span></div>
		</div><div class="col-12 col-9@lg suggested-content-various__items-wrap"><div class="grid grid--cols-9@lg suggested-content-various__items"><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value="
				latest,article"><a class="suggested-content-various__link" href="https://www.infoworld.com/article/4157422/swift-for-visual-studio-code-comes-to-open-vsx-registry.html" aria-label="Go to content"><div class="card">
					<div class="card__header">
						<span class="card__content-type">news</span> </div> <h3 class="card__title" id="swift-for-visual-studio-code-comes-to-open-vsx-registry">Swift for Visual Studio Code comes to Open VSX Registry</h3> <div class="card__info"><span>By Paul Krill</span></div><div class="card__info card__info--light"><span itemprop="datePublished" content="2026-04-10T22:17:57+00:00">Apr 10, 2026</span><span>2 mins</span></div>
				 <div class="card__tags"><span class="card__tag"><span class="tag">Integrated Development Environments</span></span><span class="card__tag"><span class="tag">Swift</span></span><span class="card__tag"><span class="tag">Visual Studio Code</span></span></div></div>
					<div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4157422-0-59582600-1775859494-shutterstock_2227591131-100948304-orig.jpg?quality=50&amp;strip=all&amp;w=346" alt="Image" loading="lazy" width="400px"></div>
				</a>
			</div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value="
				article"><a class="suggested-content-various__link" href="https://www.infoworld.com/article/4156902/microsofts-reauthentication-snafu-cuts-off-developers-globally.html" aria-label="Go to content"><div class="card">
					<div class="card__header">
						<span class="card__content-type">news</span> </div> <h3 class="card__title" id="microsofts-reauthentication-snafu-cuts-off-developers-globally">Microsoft&rsquo;s reauthentication snafu cuts off developers globally</h3> <div class="card__info"><span>By Evan Schuman</span></div><div class="card__info card__info--light"><span itemprop="datePublished" content="2026-04-10T01:10:16+00:00">Apr 9, 2026</span><span>6 mins</span></div>
				 <div class="card__tags"><span class="card__tag"><span class="tag">Access Control</span></span><span class="card__tag"><span class="tag">Authentication</span></span><span class="card__tag"><span class="tag">Developer</span></span></div></div>
					<div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4156902-0-35298400-1775783619-shutterstock_editorial_1934605040.jpg?quality=50&amp;strip=all&amp;w=444" alt="Image" loading="lazy" width="400px"></div>
				</a>
			</div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value="
				article"><a class="suggested-content-various__link" href="https://www.infoworld.com/article/4156742/metas-muse-spark-a-smaller-faster-ai-model-for-broad-app-deployment.html" aria-label="Go to content"><div class="card">
					<div class="card__header">
						<span class="card__content-type">news</span> </div> <h3 class="card__title" id="metas-muse-spark-a-smaller-faster-ai-model-for-broad-app-deployment">Meta&rsquo;s Muse Spark: a smaller, faster AI model for broad app deployment</h3> <div class="card__info"><span>By Anirban Ghoshal</span></div><div class="card__info card__info--light"><span itemprop="datePublished" content="2026-04-09T16:10:15+00:00">Apr 9, 2026</span><span>3 mins</span></div>
				 <div class="card__tags"><span class="card__tag"><span class="tag">Artificial Intelligence</span></span><span class="card__tag"><span class="tag">Generative AI</span></span></div></div>
					<div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/04/4156742-0-49775400-1775751031-shutterstock_2298419527.jpg?quality=50&amp;strip=all&amp;w=369" alt="Image" loading="lazy" width="400px"></div>
				</a>
			</div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value="
				latest,video"><a class="suggested-content-various__link" href="https://www.infoworld.com/video/4146374/how-to-build-desktop-apps-in-typescript-with-electrobun.html" aria-label="Go to content"><div class="card">
					<div class="card__header">
						<span class="card__content-type">video</span> </div> <h3 class="card__title" id="how-to-build-desktop-apps-in-typescript-with-electrobun">How to build desktop apps in Typescript with Electrobun</h3> <div class="card__info"><span></span></div><div class="card__info card__info--light"><span itemprop="datePublished" content="2026-03-17T14:21:18+00:00">Mar 17, 2026</span><span>5 mins</span></div>
				 <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></div>
					<div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/03/4146374-0-70769900-1773757431-youtube-thumbnail-PaGqii6c3Mg_d526ad.jpg?quality=50&amp;strip=all&amp;w=444" alt="Image" loading="lazy" width="400px"></div>
				</a>
			</div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value="
				latest,video"><a class="suggested-content-various__link" href="https://www.infoworld.com/video/4143154/write-and-run-assembly-in-python-with-copapy.html" aria-label="Go to content"><div class="card">
					<div class="card__header">
						<span class="card__content-type">video</span> </div> <h3 class="card__title" id="write-and-run-assembly-in-python-with-copapy">Write and run assembly in Python with Copapy</h3> <div class="card__info"><span></span></div><div class="card__info card__info--light"><span itemprop="datePublished" content="2026-03-10T17:55:05+00:00">Mar 10, 2026</span><span>5 mins</span></div>
				 <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></div>
					<div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/03/4143154-0-91730600-1773165322-youtube-thumbnail-IvZoOr333gA_72c8c8.jpg?quality=50&amp;strip=all&amp;w=444" alt="Image" loading="lazy" width="400px"></div>
				</a>
			</div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value="
				video"><a class="suggested-content-various__link" href="https://www.infoworld.com/video/4140073/run-ai-models-locally-on-your-pc-no-cloud-required-lm-studio-guide.html" aria-label="Go to content"><div class="card">
					<div class="card__header">
						<span class="card__content-type">video</span> </div> <h3 class="card__title" id="run-ai-models-locally-on-your-pc-no-cloud-required-lm-studio-guide">Run AI Models Locally on Your PC &mdash; No Cloud Required (LM Studio Guide)</h3> <div class="card__info"><span></span></div><div class="card__info card__info--light"><span itemprop="datePublished" content="2026-03-03T17:39:07+00:00">Mar 3, 2026</span><span>5 mins</span></div>
				 <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></div>
					<div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2026/03/4140073-0-15097100-1772559563-youtube-thumbnail-5UGlLkgog04_328ac4.jpg?quality=50&amp;strip=all&amp;w=444" alt="Image" loading="lazy" width="400px"></div>
				</a>
			</div></div></div></div></div></section>
</body></div>
	</div><!-- .entry-content -->
</article><!-- #post-100007471 -->
	</main><!-- #main -->
<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
	<defs>
		<symbol id="logo-foundry" fill="none" viewBox="0 0 109 27">
			<path fill="currentColor" d="M53.82.406c2.039 0 3.223 1.328 3.223 3.223 0 1.896-1.18 3.224-3.247 3.224-2.068 0-3.224-1.352-3.224-3.224S51.752.406 53.82.406ZM45.162 18.93c0 1.328-.125 2.483-.54 3.443-1.108 2.531-3.42 3.863-6.566 3.863-3.147 0-5.583-1.327-6.69-3.863-.421-.96-.54-2.115-.54-3.443V8.672h4.426v10.01c0 .788.048 1.428.273 1.943.468 1.084 1.475 1.476 2.535 1.476.936 0 1.944-.392 2.412-1.476.22-.515.272-1.155.272-1.943V8.672h4.427V18.93h-.01ZM61.121 15.582v10.306h-4.427v-9.986c0-.788-.047-1.427-.272-1.943-.468-1.084-1.475-1.576-2.607-1.576-1.132 0-2.14.492-2.608 1.576-.22.516-.272 1.155-.272 1.943v9.986h-4.427V15.582c0-1.327.124-2.483.54-3.443 1.108-2.53 3.42-3.887 6.762-3.887 3.343 0 5.659 1.352 6.762 3.887.42.96.54 2.116.54 3.443M100.38 15.387l3.639-6.715h4.699l-6.174 11.165v6.05h-4.528v-6.05L91.894 8.672h4.866l3.62 6.715ZM12.325 8.672H0v17.216h4.427v-5.826h7.359v-3.988h-7.36v-3.39h7.9V8.672Z" />
			<path fill="currentColor" d="M53.82.406c2.039 0 3.223 1.328 3.223 3.223 0 1.896-1.18 3.224-3.247 3.224-2.068 0-3.224-1.352-3.224-3.224S51.752.406 53.82.406ZM45.162 18.93c0 1.328-.125 2.483-.54 3.443-1.108 2.531-3.42 3.863-6.566 3.863-3.147 0-5.583-1.327-6.69-3.863-.421-.96-.54-2.115-.54-3.443V8.672h4.426v10.01c0 .788.048 1.428.273 1.943.468 1.084 1.475 1.476 2.535 1.476.936 0 1.944-.392 2.412-1.476.22-.515.272-1.155.272-1.943V8.672h4.427V18.93h-.01ZM61.121 15.582v10.306h-4.427v-9.986c0-.788-.047-1.427-.272-1.943-.468-1.084-1.475-1.576-2.607-1.576-1.132 0-2.14.492-2.608 1.576-.22.516-.272 1.155-.272 1.943v9.986h-4.427V15.582c0-1.327.124-2.483.54-3.443 1.108-2.53 3.42-3.887 6.762-3.887 3.343 0 5.659 1.352 6.762 3.887.42.96.54 2.116.54 3.443M86.188 20.453h-2.78v5.435h-4.427V8.672h8.214c3.295 0 5.755 2.188 5.755 5.855 0 2.264-.936 3.983-2.56 5.02l2.655 6.346h-4.723l-2.14-5.435.006-.005Zm-2.78-3.863h2.78c1.647 0 2.359-.788 2.359-2.068 0-1.203-.712-2.044-2.36-2.044h-2.779v4.112Zm2.78 3.863h-2.78v5.435h-4.427V8.672h8.214c3.295 0 5.755 2.188 5.755 5.855 0 2.264-.936 3.983-2.56 5.02l2.655 6.346h-4.723l-2.14-5.435.006-.005Zm-2.78-3.863h2.78c1.647 0 2.359-.788 2.359-2.068 0-1.203-.712-2.044-2.36-2.044h-2.779v4.112ZM62.626 25.888V8.672h6.37c5.582 0 8.854 3.396 8.854 8.61 0 5.215-2.928 8.61-8.587 8.61h-6.642l.005-.004ZM67.052 22h1.844c2.88 0 4.427-1.576 4.427-4.723s-1.552-4.723-4.427-4.723h-1.844V22Zm-4.427 3.887V8.672h6.37c5.583 0 8.855 3.396 8.855 8.61 0 5.215-2.928 8.61-8.587 8.61h-6.642l.005-.004ZM67.053 22h1.844c2.88 0 4.427-1.576 4.427-4.723s-1.552-4.723-4.427-4.723h-1.844V22ZM21.375 8.329c5.19 0 8.266 3.81 8.266 8.953 0 5.144-3.2 8.954-8.266 8.954-5.067 0-8.29-3.786-8.29-8.954 0-5.167 3.223-8.954 8.29-8.954ZM21.351 22.2c2.335 0 3.81-1.943 3.81-4.794 0-3.147-1.475-5.043-3.69-5.043-2.412 0-3.888 1.896-3.888 4.794 0 3.1 1.476 5.043 3.763 5.043m.024-13.873c5.191 0 8.267 3.811 8.267 8.954 0 5.144-3.2 8.954-8.267 8.954-5.067 0-8.29-3.786-8.29-8.954 0-5.167 3.223-8.954 8.29-8.954Zm-.024 13.873c2.335 0 3.811-1.943 3.811-4.794 0-3.147-1.476-5.043-3.691-5.043-2.412 0-3.888 1.896-3.888 4.794 0 3.1 1.476 5.043 3.764 5.043M12.325 8.672H0v17.216h4.427v-5.826h7.359v-3.988h-7.36v-3.39h7.9V8.672Z" />
		</symbol>
		<symbol id="icon-quote" viewBox="0 0 16 16">
			<path fill="currentColor" d="M12.314 13.333c-1.005 0-1.87-.326-2.597-.978-.726-.707-1.089-1.576-1.089-2.61 0-.815.252-1.929.754-3.342.503-1.468 1.564-2.908 3.183-4.321.056-.055.14-.082.252-.082.056 0 .111.027.167.082.056.054.056.108 0 .163-.447.815-.81 1.685-1.089 2.609-.279.87-.14 1.304.42 1.304 1.004 0 1.87.354 2.596 1.06.726.707 1.089 1.55 1.089 2.528 0 1.033-.363 1.902-1.089 2.609-.726.652-1.592.978-2.597.978Zm-8.628 0c-1.005 0-1.871-.326-2.597-.978C.363 11.648 0 10.779 0 9.745c0-.815.251-1.929.754-3.342.503-1.468 1.564-2.908 3.183-4.321.056-.055.14-.082.251-.082.056 0 .112.027.168.082.056.054.056.108 0 .163-.447.815-.81 1.685-1.089 2.609-.28.87-.14 1.304.419 1.304 1.005 0 1.87.354 2.597 1.06.726.707 1.089 1.55 1.089 2.528 0 1.033-.363 1.902-1.09 2.609-.725.652-1.59.978-2.596.978Z" />
		</symbol>
		<symbol id="icon-rss" viewBox="0 0 16 16">
			<path d="M3.66406 11.3359C4.29406 11.3359 4.66406 11.7459 4.66406 12.3359C4.66406 12.9159 4.29406 13.3359 3.66406 13.3359C3.03406 13.3359 2.66406 12.9159 2.66406 12.3359C2.66406 11.7459 3.02406 11.3359 3.66406 11.3359Z" fill="currentColor" />
			<path d="M12.5304 12.9852V13.1352H12.6804H13.118H13.268V12.9852C13.268 10.264 12.187 7.65438 10.2629 5.73017L10.1568 5.83624L10.2629 5.73017C8.33866 3.80596 5.72915 2.725 3.00781 2.725H2.85781V2.875V3.31264V3.46264H3.00781C5.53332 3.46264 7.95535 4.46592 9.74124 6.25173C11.5271 8.0377 12.5304 10.4599 12.5304 12.9852Z" fill="currentColor" stroke="currentColor" stroke-width="0.3" />
			<path d="M8.26478 13.1652V12.9902C8.26478 11.5961 7.71088 10.2589 6.72502 9.273C6.72501 9.27299 6.72501 9.27299 6.72501 9.27299M8.26478 13.1652L3.00781 7.55827C4.44844 7.55827 5.83003 8.13057 6.84876 9.14925L6.72501 9.27299M8.26478 13.1652H8.43978M8.26478 13.1652H8.43978M6.72501 9.27299C5.7391 8.28713 4.40202 7.73327 3.00781 7.73327H2.83281V7.55827V7.3125V7.1375H3.00781C4.56014 7.1375 6.04869 7.75411 7.14631 8.85174L7.02257 8.97548M6.72501 9.27299L7.02257 8.97548M7.02257 8.97548L7.14631 8.85174C8.24391 9.94936 8.86055 11.438 8.86055 12.9902M7.02257 8.97548L8.86055 12.9902M8.43978 13.1652H8.68555H8.86055M8.43978 13.1652H8.86055M8.86055 13.1652V12.9902M8.86055 13.1652V12.9902" fill="currentColor" stroke="currentColor" stroke-width="0.35" />
		</symbol>
		<symbol id="icon-bluesky" viewBox="0 0 16 16">
			<path d="M7.997 6.88C7.435 5.793 5.911 3.76 4.492 2.759c-1.359-.96-1.879-.794-2.216-.64-.393.18-.463.784-.463 1.138 0 .355.193 2.915.323 3.34.421 1.412 1.914 1.89 3.29 1.735.07-.01.14-.021.214-.028a4.47 4.47 0 0 1-.214.028C3.41 8.63 1.616 9.364 3.97 11.98c2.585 2.676 3.543-.572 4.035-2.223.492 1.647 1.057 4.78 3.986 2.223 2.202-2.223.604-3.35-1.412-3.649a4.47 4.47 0 0 1-.214-.028c.074.01.144.017.214.028 1.377.155 2.873-.323 3.29-1.735.127-.428.324-2.985.324-3.34 0-.354-.07-.958-.464-1.138-.34-.154-.857-.32-2.216.64C10.083 3.762 8.56 5.792 7.997 6.88Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-facebook" viewBox="0 0 16 16">
			<path d="M8.0026 2.33594C9.87894 2.33594 11.2705 2.94094 12.1937 3.89113C13.1214 4.84593 13.6693 6.24529 13.6693 8.0026C13.6693 9.72309 13.1234 11.1255 12.1913 12.0916C11.3742 12.9385 10.1949 13.5185 8.64591 13.6438V10.0727H10.0062L10.2658 8.33228H8.64591V7.20236C8.64591 6.72576 8.87436 6.26255 9.59866 6.26255H10.3359V4.78187C10.3359 4.78187 9.66615 4.66406 9.02753 4.66406C7.69315 4.66406 6.82088 5.49678 6.82088 7.0069V8.33496H5.33594V10.0754H6.82088V13.5799C5.53419 13.3763 4.53354 12.8375 3.81393 12.0916C2.8818 11.1255 2.33594 9.72309 2.33594 8.0026C2.33594 6.23802 2.87143 4.83983 3.78902 3.8885C4.70095 2.94304 6.08933 2.33594 8.0026 2.33594ZM8.0026 1.33594C12.2026 1.33594 14.6693 4.06927 14.6693 8.0026C14.6693 11.8693 12.2026 14.6693 8.0026 14.6693C3.8026 14.6693 1.33594 11.8693 1.33594 8.0026C1.33594 4.06927 3.73594 1.33594 8.0026 1.33594Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" />
		</symbol>
		<symbol id="icon-linkedin" viewBox="0 0 16 16">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M4.05661 2.66406C3.27583 2.66406 2.64062 3.29858 2.64062 4.0785C2.64062 4.85876 3.27583 5.49352 4.05661 5.49352C4.83678 5.49352 5.47146 4.85873 5.47146 4.0785C5.4715 3.29858 4.83678 2.66406 4.05661 2.66406ZM5.13075 6.09375H2.9849C2.88967 6.09375 2.8125 6.17095 2.8125 6.26615V13.1598C2.8125 13.2551 2.88967 13.3322 2.9849 13.3322H5.13075C5.22598 13.3322 5.30315 13.2551 5.30315 13.1598V6.26615C5.30315 6.17095 5.22598 6.09375 5.13075 6.09375ZM8.70451 6.71335C9.09094 6.29237 9.72804 5.92188 10.5899 5.92188C13.0068 5.92188 13.3327 7.66898 13.3327 9.37802V13.1593C13.3327 13.2546 13.2555 13.3317 13.1603 13.3317H11.0183C10.9231 13.3317 10.8459 13.2546 10.8459 13.1593V9.80765C10.8459 8.86922 10.7766 8.1514 9.90403 8.1514C9.10284 8.1514 8.79065 8.59917 8.79065 9.74852V13.1593C8.79065 13.2545 8.71348 13.3317 8.61824 13.3317H6.47709C6.38186 13.3317 6.30469 13.2545 6.30469 13.1593V6.26561C6.30469 6.17041 6.38186 6.09321 6.47709 6.09321H8.53211C8.62735 6.09321 8.70451 6.17041 8.70451 6.26561V6.71335Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-email" viewBox="0 0 16 16">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M2.66927 4.33594H13.3359C13.52 4.33594 13.6693 4.48517 13.6693 4.66927V11.3359C13.6693 11.52 13.52 11.6693 13.3359 11.6693H2.66927C2.48518 11.6693 2.33594 11.52 2.33594 11.3359V4.66927C2.33594 4.48518 2.48517 4.33594 2.66927 4.33594ZM1.33594 4.66927C1.33594 3.93289 1.93289 3.33594 2.66927 3.33594H13.3359C14.0723 3.33594 14.6693 3.93289 14.6693 4.66927V11.3359C14.6693 12.0723 14.0723 12.6693 13.3359 12.6693H2.66927C1.93289 12.6693 1.33594 12.0723 1.33594 11.3359V4.66927ZM4.27735 5.58397L3.86133 5.30662L3.30662 6.13867L3.72265 6.41603L6.98305 8.58963C7.59887 9.00017 8.40113 9.00017 9.01695 8.58963L12.2774 6.41603L12.6934 6.13867L12.1387 5.30662L11.7227 5.58397L8.46225 7.75758C8.18233 7.94419 7.81767 7.94419 7.53775 7.75757L4.27735 5.58397Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-x" viewBox="0 0 16 16">
			<path d="M9.142 7.081 13.609 2H12.55L8.671 6.412 5.573 2H2l4.685 6.672L2 14h1.059l4.096-4.66L10.427 14H14L9.141 7.081Zm-1.45 1.65-.475-.665L3.44 2.78h1.626l3.048 4.266.475.664 3.962 5.546h-1.626L7.692 8.73Z" stroke="currentColor" stroke-width="0.3" fill="currentColor" />
		</symbol>
		<symbol id="icon-twitter" viewBox="0 0 16 16">
			<path d="M9.142 7.081 13.609 2H12.55L8.671 6.412 5.573 2H2l4.685 6.672L2 14h1.059l4.096-4.66L10.427 14H14L9.141 7.081Zm-1.45 1.65-.475-.665L3.44 2.78h1.626l3.048 4.266.475.664 3.962 5.546h-1.626L7.692 8.73Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-print" viewBox="0 0 16 16">
			<path d="M5 2.33594V5.0026H4V2.33594V1.33594H5H11H12V2.33594V5.0026H11V2.33594H5ZM12 12H12.0026H13.3359C14.0723 12 14.6693 11.403 14.6693 10.6667V7.33333C14.6693 6.59695 14.0723 6 13.3359 6H2.66927C1.93289 6 1.33594 6.59695 1.33594 7.33333V10.6667C1.33594 11.403 1.93289 12 2.66927 12H4V13.6693V14.6693H5H11H12V13.6693V12ZM12 11H12.0026H13.3359C13.52 11 13.6693 10.8508 13.6693 10.6667V7.33333C13.6693 7.14924 13.52 7 13.3359 7H2.66927C2.48518 7 2.33594 7.14924 2.33594 7.33333V10.6667C2.33594 10.8508 2.48518 11 2.66927 11H4V10.3359V9.33594H5H11H12V10.3359V11ZM5 12H5.0026V11H5V10.3359H11V13.6693H5V12Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" />
		</symbol>
		<symbol id="icon-reddit" viewBox="0 0 16 16">
			<path d="M8.003 2.328c1.876 0 3.268.605 4.19 1.555.928.955 1.476 2.354 1.476 4.112 0 1.72-.546 3.123-1.478 4.089-.926.96-2.319 1.578-4.188 1.578-1.87 0-3.262-.618-4.19-1.578-.931-.966-1.477-2.369-1.477-4.09 0-1.764.535-3.162 1.453-4.113.912-.946 2.3-1.553 4.214-1.553Zm0-1c4.2 0 6.666 2.733 6.666 6.667 0 3.866-2.466 6.667-6.666 6.667s-6.667-2.8-6.667-6.667c0-3.934 2.4-6.667 6.667-6.667Zm3.126 3.978a.636.636 0 0 0-.627-.642.597.597 0 0 0-.329.097.62.62 0 0 0-.226.264l-1.455-.318a.171.171 0 0 0-.12.022.176.176 0 0 0-.07.101L7.86 6.98c-.934.03-1.771.311-2.376.766a.877.877 0 0 0-.604-.252.891.891 0 0 0-.879.902c0 .174.049.344.141.49a.882.882 0 0 0 .38.332c-.015.087-.022.18-.022.275 0 1.385 1.568 2.504 3.508 2.504s3.508-1.119 3.508-2.504c0-.09-.007-.18-.02-.267a.936.936 0 0 0 .505-.83.891.891 0 0 0-.879-.902.832.832 0 0 0-.604.252c-.598-.44-1.428-.73-2.341-.765l.4-1.927 1.301.281a.65.65 0 0 0 .2.436.617.617 0 0 0 .87-.02.652.652 0 0 0 .182-.445Zm-5.14 3.732c0-.353.281-.642.627-.642.344 0 .625.288.625.642a.635.635 0 0 1-.625.642.635.635 0 0 1-.627-.642Zm2.756 0c0-.354.281-.642.625-.642.345 0 .626.289.626.642a.635.635 0 0 1-.625.642.635.635 0 0 1-.626-.642Zm-2.228 1.458a.162.162 0 0 1 .116-.049.16.16 0 0 1 .116.049c.267.274.843.375 1.258.375.415 0 .984-.101 1.258-.375a.163.163 0 0 1 .233 0 .189.189 0 0 1-.015.238c-.429.44-1.244.47-1.483.47-.239 0-1.061-.037-1.483-.47a.172.172 0 0 1 0-.238Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" />
		</symbol>
		<symbol id="icon-gnews" viewBox="0 0 16 16">
			<path d="M2 2V12.8C2 13.4625 2.54062 14 3.2 14H10.4L14 10.4V2L12.8 3.2L11.6 2L10.4 3.2L9.2 2L8 3.2L6.8 2L5.6 3.2L4.4 2L3.2 3.2L2 2ZM4.4 3.5C4.4 3.5 5 4.4 5.6 4.4C6.18125 4.4 6.8 3.5 6.8 3.5C6.8 3.5 7.38125 4.4 8 4.4C8.58125 4.4 9.2 3.5 9.2 3.5C9.2 3.5 9.81875 4.4 10.4 4.4C10.9625 4.4 11.6 3.5 11.6 3.5C11.6 3.5 12.2188 4.4 12.8 4.4V10.4H8.6V11H10.4V11.6H8.6V12.2H10.4V12.8H3.2V4.4C3.7625 4.4 4.4 3.5 4.4 3.5ZM3.8 5V6.2H12.2V5H3.8ZM3.8 6.8V11H8V6.8H3.8ZM8.6 6.8V7.4H12.2V6.8H8.6ZM5 7.4V8L5.6 7.4H6.8L7.4 8H6.2V9.2L6.8 8.6H7.4V9.8L6.8 10.4H5L4.4 9.8V8L5 7.4ZM6.2 9.2L5.6 9.8H6.8V9.2H6.2ZM5.6 9.8V8H5V9.8H5.6ZM8.6 8V8.6H12.2V8H8.6ZM8.6 9.2V9.8H12.2V9.2H8.6ZM3.8 11.6V12.2H8V11.6H3.8Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-instagram" viewBox="0 0 16 16">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M10.6667 3H5.33333C4.04467 3 3 4.04467 3 5.33333V10.6667C3 11.9553 4.04467 13 5.33333 13H10.6667C11.9553 13 13 11.9553 13 10.6667V5.33333C13 4.04467 11.9553 3 10.6667 3ZM5.33333 2C3.49238 2 2 3.49239 2 5.33333V10.6667C2 12.5076 3.49239 14 5.33333 14H10.6667C12.5076 14 14 12.5076 14 10.6667V5.33333C14 3.49238 12.5076 2 10.6667 2H5.33333ZM9.49154 6.53311C9.19623 6.22917 8.72134 6 8 6C7.26006 6 6.78835 6.23127 6.49975 6.53048C6.20549 6.83556 6 7.31708 6 8C6 8.65716 6.20669 9.14285 6.51091 9.45818C6.80964 9.76781 7.28564 10 8 10C8.71436 10 9.19036 9.76781 9.48909 9.45818C9.79331 9.14285 10 8.65716 10 8C10 7.32435 9.79134 6.84166 9.49154 6.53311ZM11 8C11 6.23 9.89 5 8 5C6.08 5 5 6.23 5 8C5 9.74 6.11 11 8 11C9.89 11 11 9.74 11 8ZM11.9974 4.66667C11.9974 4.27333 11.7507 4 11.3307 4C10.9041 4 10.6641 4.27333 10.6641 4.66667C10.6641 5.05333 10.9107 5.33333 11.3307 5.33333C11.7507 5.33333 11.9974 5.05333 11.9974 4.66667Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-xing" viewBox="0 0 16 16">
			<path d="M3.82 4.37c-.104 0-.191.037-.236.108-.045.074-.038.17.01.266l1.17 2.025c.003.004.003.007 0 .01l-1.838 3.245c-.048.096-.046.192 0 .266a.255.255 0 0 0 .226.118h1.73c.26 0 .384-.175.473-.335L7.223 6.77l-1.19-2.074c-.086-.154-.216-.325-.482-.325h-1.73ZM11.09 2c-.258 0-.37.163-.463.33l-3.85 6.829c.005.012 2.458 4.511 2.458 4.511.086.154.219.33.484.33h1.728c.105 0 .186-.04.23-.11.046-.074.045-.172-.003-.268l-2.44-4.458a.01.01 0 0 1 0-.011l3.831-6.775c.049-.096.05-.194.004-.267-.044-.072-.126-.111-.23-.111H11.09Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-spotify" viewBox="0 0 16 16">
			<path d="M8.0026 2.33594C9.87894 2.33594 11.2705 2.94094 12.1937 3.89113C13.1214 4.84593 13.6693 6.24529 13.6693 8.0026C13.6693 9.72309 13.1234 11.1255 12.1913 12.0916C11.2646 13.0521 9.87196 13.6693 8.0026 13.6693C6.13324 13.6693 4.74058 13.0521 3.81393 12.0916C2.8818 11.1255 2.33594 9.72309 2.33594 8.0026C2.33594 6.23802 2.87143 4.83983 3.78902 3.8885C4.70095 2.94304 6.08933 2.33594 8.0026 2.33594ZM8.0026 1.33594C12.2026 1.33594 14.6693 4.06927 14.6693 8.0026C14.6693 11.8693 12.2026 14.6693 8.0026 14.6693C3.8026 14.6693 1.33594 11.8693 1.33594 8.0026C1.33594 4.06927 3.73594 1.33594 8.0026 1.33594ZM10.2343 10.7759C10.4106 10.8842 10.6412 10.8282 10.7487 10.652C10.857 10.4757 10.8011 10.2457 10.6248 10.1375C9.04319 9.171 7.08272 8.94618 4.79716 9.46837C4.59538 9.51418 4.46974 9.7148 4.51582 9.91613C4.56172 10.1175 4.76233 10.2436 4.96357 10.1978C7.05212 9.72056 8.82557 9.91541 10.2343 10.7759ZM10.8397 9.17244C11.0597 9.30781 11.3477 9.23833 11.4831 9.01827C11.6185 8.79858 11.5491 8.51075 11.3291 8.3753C9.477 7.23713 6.76808 6.9169 4.58908 7.57806C4.34212 7.6533 4.20262 7.91403 4.27714 8.16145C4.3522 8.40842 4.61347 8.54783 4.86088 8.47313C6.76853 7.89396 9.22689 8.18107 10.8397 9.17244ZM4.57567 6.62322C6.42194 6.06287 9.61236 6.16844 11.5462 7.31705C11.812 7.47545 12.1576 7.38752 12.3152 7.12084C12.4736 6.85453 12.3862 6.51018 12.119 6.35187C9.89253 5.03009 6.36929 4.9058 4.24987 5.54923C3.95323 5.63932 3.78601 5.95262 3.87583 6.24926C3.96565 6.54582 4.27921 6.71313 4.57567 6.62322Z" fill-rule="evenodd" clip-rule="evenodd" fill="currentColor" />
		</symbol>
		<symbol id="icon-youtube" viewBox="0 0 16 16">
			<path d="M8 3.355c-.392 0-3.85.008-4.821.265a1.989 1.989 0 0 0-1.412 1.395C1.503 5.99 1.5 7.917 1.5 7.998c0 .08.003 2.007.268 2.984.184.679.725 1.213 1.412 1.395.97.256 4.43.264 4.82.264.39 0 3.85-.008 4.821-.265a1.989 1.989 0 0 0 1.412-1.395c.265-.977.268-2.902.268-2.983 0-.081-.003-2.007-.268-2.983a1.989 1.989 0 0 0-1.412-1.395c-.97-.257-4.43-.265-4.82-.265H8Zm0 8.309c-1.026 0-3.848-.042-4.565-.232a1.002 1.002 0 0 1-.712-.703c-.231-.853-.234-2.713-.234-2.731 0-.019.003-1.878.234-2.731.093-.343.366-.613.712-.704.717-.189 3.539-.231 4.565-.231 1.026 0 3.848.042 4.565.232.347.091.62.361.712.703.231.853.234 2.712.234 2.73 0 .02-.003 1.879-.234 2.732a1.001 1.001 0 0 1-.712.703c-.717.19-3.539.232-4.565.232Z" fill="currentColor" />
			<path d="M9.263 7.995 7.414 9.227V6.762l1.849 1.233Z" fill="currentColor" stroke="currentColor" />
		</symbol>
				<symbol id="icon-video" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M4 6.5h16a.5.5 0 0 1 .5.5v10a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5V7a.5.5 0 0 1 .5-.5ZM2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7Zm11.57 5.857L10 15V9l3.57 2.143a1 1 0 0 1 0 1.714Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-user" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M12 4.5c.925 0 1.512.293 1.87.66.363.375.63.974.63 1.84 0 .84-.264 1.444-.634 1.829-.363.375-.952.671-1.866.671-.914 0-1.503-.296-1.866-.671C9.764 8.444 9.5 7.84 9.5 7c0-.877.263-1.474.62-1.844.348-.36.93-.656 1.88-.656ZM12 3c2.52 0 4 1.64 4 4 0 2.32-1.48 4-4 4S8 9.32 8 7c0-2.36 1.44-4 4-4Zm4.814 13.275C15.772 15.203 14.184 14.5 12 14.5c-2.23 0-3.812.706-4.84 1.771C6.123 17.346 5.5 18.943 5.5 21H4c0-4.72 2.88-8 8-8 5.04 0 8 3.28 8 8h-1.5c0-2.046-.637-3.645-1.686-4.725Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-apple-podcasts" viewBox="0 0 24 24">
			<path d="M11.432 20.546c-.681-.244-.827-.575-1.107-2.515-.324-2.255-.395-3.65-.207-4.093.25-.586.927-.919 1.873-.922.94-.004 1.624.332 1.874.922.189.441.118 1.838-.207 4.093-.221 1.575-.342 1.974-.647 2.241-.418.37-1.012.473-1.575.274h-.004Zm-2.91-2.314c-2.351-1.157-3.858-3.114-4.406-5.718-.137-.673-.16-2.275-.03-2.893.342-1.655.997-2.95 2.085-4.094C7.739 3.874 9.756 3 12 3c2.222 0 4.231.858 5.761 2.461 1.164 1.21 1.819 2.491 2.154 4.179.114.561.114 2.092.007 2.724a8.091 8.091 0 0 1-3.082 5.04c-.58.437-1.994 1.2-2.222 1.2-.084 0-.092-.087-.053-.438.068-.563.136-.68.456-.814.51-.213 1.378-.831 1.91-1.366a7.27 7.27 0 0 0 1.91-3.363c.198-.784.176-2.527-.044-3.334-.695-2.567-2.787-4.56-5.351-5.093-.746-.153-2.101-.153-2.855 0-2.595.532-4.741 2.625-5.397 5.258-.175.714-.175 2.459 0 3.174.434 1.743 1.561 3.341 3.037 4.293.25.167.512.317.784.449.32.137.388.25.448.814.038.342.03.441-.053.441-.053 0-.441-.167-.852-.365l-.036-.028Zm.031-3.095c-.792-.632-1.491-1.752-1.78-2.851-.176-.664-.176-1.926.007-2.587.48-1.787 1.796-3.172 3.622-3.823.625-.22 2.008-.268 2.778-.1 2.648.588 4.529 3.24 4.165 5.871-.145 1.06-.51 1.931-1.157 2.74-.32.409-1.096 1.095-1.233 1.095-.022 0-.044-.26-.044-.575v-.573l.396-.472c1.492-1.787 1.385-4.282-.244-5.921-.631-.637-1.362-1.012-2.306-1.185-.609-.113-.738-.113-1.377-.007-.97.158-1.722.535-2.39 1.194-1.64 1.618-1.746 4.129-.254 5.917l.393.474v.58c0 .32-.026.58-.057.58-.031 0-.251-.152-.487-.343l-.032-.014Zm2.64-3.107c-.676-.316-1.042-.91-1.05-1.685 0-.696.389-1.304 1.058-1.66.427-.222 1.18-.222 1.606 0 .473.256.828.686.99 1.199.441 1.5-1.15 2.816-2.588 2.144l-.015.002Z" fill="currentColor" />
			<path d="M12.114 12.325a1.898 1.898 0 1 0 0-3.795 1.898 1.898 0 0 0 0 3.796ZM12.298 13.06c.215.025.428.068.635.13a2.3 2.3 0 0 1 .636.318c.168.121.29.248.366.401.076.153.114.336.137.636.015.3.015.713-.053 1.491a53.146 53.146 0 0 1-.313 2.636c-.106.726-.182 1.05-.281 1.286a1.152 1.152 0 0 1-.845.738 1.83 1.83 0 0 1-.441.038 1.893 1.893 0 0 1-.442-.038c-.174-.038-.401-.106-.57-.243-.176-.137-.29-.335-.381-.594-.091-.259-.16-.57-.251-1.195a66.213 66.213 0 0 1-.29-2.26 18.148 18.148 0 0 1-.112-1.522c-.006-.328.008-.491.044-.647.036-.15.098-.291.183-.419a1.389 1.389 0 0 1 .661-.504c.157-.06.32-.106.485-.137.197-.038.426-.075.543-.091a.596.596 0 0 1 .248 0l.04-.024Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-arrow-up-right-from-square" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="m19.19 3.75-9.72 9.72-.53.53L10 15.06l.53-.53 9.72-9.72v4.94h1.5V3a.747.747 0 0 0-.75-.75h-6.75v1.5h4.94ZM4 5.75a.25.25 0 0 0-.25.25v14c0 .138.112.25.25.25h14a.25.25 0 0 0 .25-.25V11.717h1.5V20A1.75 1.75 0 0 1 18 21.75H4A1.75 1.75 0 0 1 2.25 20V6c0-.966.784-1.75 1.75-1.75H12.283v1.5H4Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-calendar" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M20 5.5H4a.5.5 0 0 0-.5.5v2.25h17V6a.5.5 0 0 0-.5-.5ZM3.5 18V9.75h17V18a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5ZM4 4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4Zm5.42 10.292c0 .75.198 1.092.696 1.092.48 0 .666-.354.666-1.098v-.156c0-.75-.198-1.098-.678-1.098-.486 0-.684.348-.684 1.092v.168Zm2.712-.03c0 1.38-.804 2.172-2.058 2.172-1.236 0-2.004-.768-2.004-2.136v-.168c0-1.374.882-2.13 2.028-2.13 1.14 0 2.034.678 2.034 2.1v.162Zm3.254 2.094h-1.362v-2.952l-.792.474V12.75l.984-.684h1.17v4.29Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-caret-down" viewBox="0 0 24 24">
			<path d="m6 8 4.3 7.1c.8 1.3 2.7 1.3 3.4 0L18 8H6Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-circle-bars" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M18.287 5.833C16.902 4.408 14.815 3.5 12 3.5c-2.87 0-4.952.91-6.32 2.329C4.303 7.256 3.5 9.353 3.5 12c0 2.58.819 4.684 2.217 6.134C7.107 19.574 9.196 20.5 12 20.5c2.804 0 4.893-.926 6.283-2.366C19.681 16.684 20.5 14.58 20.5 12c0-2.636-.822-4.735-2.213-6.167ZM22 12c0-5.9-3.7-10-10-10C5.6 2 2 6.1 2 12c0 5.8 3.7 10 10 10s10-4.2 10-10ZM7 10.75v-1.5h10v1.5H7Zm0 2.5v1.5h10v-1.5H7Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-circle-chevron-down" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C14.9263 3 17.1512 3.94667 18.6453 5.48436C20.1438 7.02666 21 9.25935 21 12C21 14.6872 20.1458 16.9229 18.6428 18.4807C17.1454 20.0328 14.9194 21 12 21C9.08064 21 6.85464 20.0328 5.35716 18.4807C3.85419 16.9229 3 14.6872 3 12C3 9.25208 3.83549 7.02056 5.31975 5.48173C6.79835 3.94877 9.02006 3 12 3ZM12 2C18.3 2 22 6.1 22 12C22 17.8 18.3 22 12 22C5.7 22 2 17.8 2 12C2 6.1 5.6 2 12 2ZM8.15043 10.1464L11.686 13.682C11.8812 13.8772 12.1978 13.8772 12.3931 13.682L15.9286 10.1464L16.6357 10.8536L13.1002 14.3891C12.5144 14.9749 11.5646 14.9749 10.9789 14.3891L7.44332 10.8536L8.15043 10.1464Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-circle-chevron-left" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2Zm1.773 6.53-3.536 3.536a.25.25 0 0 0 0 .353l3.536 3.536-1.061 1.06-3.536-3.535a1.75 1.75 0 0 1 0-2.475l3.536-3.535 1.06 1.06Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-circle-chevron-right" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2ZM9.712 8.53l3.535 3.536a.25.25 0 0 1 0 .353l-3.535 3.536 1.06 1.06 3.536-3.535a1.75 1.75 0 0 0 0-2.475L10.773 7.47 9.712 8.53Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-circle-chevron-up" viewBox="0 0 24 24">
		<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C14.9263 3 17.1512 3.94667 18.6453 5.48436C20.1438 7.02666 21 9.25935 21 12C21 14.6872 20.1458 16.9229 18.6428 18.4807C17.1454 20.0328 14.9194 21 12 21C9.08064 21 6.85464 20.0328 5.35716 18.4807C3.85419 16.9229 3 14.6872 3 12C3 9.25208 3.83549 7.02056 5.31975 5.48173C6.79835 3.94877 9.02006 3 12 3ZM12 2C18.3 2 22 6.1 22 12C22 17.8 18.3 22 12 22C5.7 22 2 17.8 2 12C2 6.1 5.6 2 12 2ZM15.9257 14.3555L12.3902 10.82C12.1949 10.6247 11.8783 10.6247 11.6831 10.82L8.14753 14.3555L7.44042 13.6484L10.976 10.1129C11.5617 9.52712 12.5115 9.52712 13.0973 10.1129L16.6328 13.6484L15.9257 14.3555Z" fill="currentColor"/>
		</symbol>
		<symbol id="icon-circle-xmark" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M18.287 5.833C16.902 4.408 14.815 3.5 12 3.5c-2.87 0-4.952.91-6.32 2.329C4.303 7.256 3.5 9.353 3.5 12c0 2.58.819 4.684 2.217 6.134C7.107 19.574 9.196 20.5 12 20.5c2.804 0 4.893-.926 6.283-2.366C19.681 16.684 20.5 14.58 20.5 12c0-2.636-.822-4.735-2.213-6.167ZM22 12c0-5.9-3.7-10-10-10C5.6 2 2 6.1 2 12c0 5.8 3.7 10 10 10s10-4.2 10-10Zm-9.998-1.069 3-3 1.06 1.061-3 3 3.01 3.009-1.062 1.06-3.008-3.008-3.01 3.01-1.061-1.06 3.01-3.01L7.94 8.99 9 7.93l3.002 3.002Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-chevron-down" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="m11.776 14.42-4.95-4.95-1.06 1.061 4.95 4.95a1.75 1.75 0 0 0 2.474 0l4.95-4.95-1.06-1.06-4.95 4.95a.25.25 0 0 1-.354 0Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-chevron-left" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="m10.08 11.87 4.95-4.95-1.061-1.06-4.95 4.95a1.75 1.75 0 0 0 0 2.474l4.95 4.95 1.06-1.06-4.95-4.95a.25.25 0 0 1 0-.354Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-chevron-right" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="m14.42 12.224-4.95 4.95 1.061 1.06 4.95-4.95a1.75 1.75 0 0 0 0-2.474l-4.95-4.95-1.06 1.06 4.95 4.95a.25.25 0 0 1 0 .354Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-chevron-up" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="m12.13 10.08 4.95 4.95 1.06-1.061-4.95-4.95a1.75 1.75 0 0 0-2.474 0l-4.95 4.95 1.06 1.06 4.95-4.95a.25.25 0 0 1 .354 0Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-globe" viewBox="0 0 24 24">
			<path d="M19.4 4.8C17.6 3 15 2 12 2 8.9 2 6.4 3 4.6 4.8 2.9 6.6 2 9 2 12c0 2.9.9 5.4 2.6 7.2C6.4 21 9 22 12 22s5.6-1 7.4-2.8c1.7-1.8 2.6-4.3 2.6-7.2 0-2.9-.9-5.4-2.6-7.2Zm1.1 6.4H17c-.1-2.6-.5-4.8-1.3-6.5-.1-.3-.3-.6-.5-.8 1.2.4 2.2 1 3.1 1.8 1.3 1.5 2 3.3 2.2 5.5ZM12 20.5c-.9 0-1.7-.7-2.3-2-.7-1.4-1.1-3.4-1.2-5.8h7c-.1 2.3-.5 4.4-1.2 5.8-.6 1.3-1.4 2-2.3 2Zm-3.5-9.3c.1-2.3.5-4.3 1.2-5.8.6-1.3 1.4-1.9 2.3-1.9.9 0 1.7.7 2.3 1.9.7 1.4 1.1 3.4 1.2 5.8h-7ZM5.7 5.8C6.5 5 7.5 4.4 8.8 4c-.2.2-.4.5-.5.8-.8 1.6-1.2 3.8-1.3 6.4H3.5c.2-2.2.9-4 2.2-5.4Zm-2.2 6.9H7c.1 2.6.5 4.8 1.3 6.4.2.3.3.6.5.8-1.2-.4-2.2-1-3.1-1.9-1.3-1.2-2-3.1-2.2-5.3Zm14.8 5.4c-.8.9-1.9 1.5-3.1 1.9.2-.2.3-.5.5-.8.8-1.6 1.2-3.8 1.3-6.4h3.5c-.2 2.1-.9 4-2.2 5.3Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-google-podcasts" viewBox="0 0 24 24">
			<path d="M12 6.9c-.606 0-1.098-.476-1.098-1.063V4.562c0-.587.492-1.062 1.098-1.062.606 0 1.098.475 1.098 1.062v1.275c0 .587-.492 1.062-1.098 1.062ZM12 15.826c-.606 0-1.098-.476-1.098-1.063V9.24c0-.587.492-1.062 1.098-1.062.606 0 1.098.475 1.098 1.062v5.524c0 .587-.492 1.063-1.098 1.063ZM10.902 19.438c0 .587.492 1.062 1.098 1.062.606 0 1.098-.476 1.098-1.062v-1.275c0-.587-.492-1.063-1.098-1.063-.606 0-1.098.476-1.098 1.063v1.275ZM8.049 17.098c-.607 0-1.098-.476-1.098-1.063v-1.274c0-.587.491-1.063 1.098-1.063.606 0 1.097.476 1.097 1.063v1.274c0 .587-.49 1.063-1.097 1.063ZM14.854 9.24c0 .586.49 1.062 1.097 1.062s1.098-.476 1.098-1.063V7.964c0-.586-.491-1.062-1.098-1.062-.606 0-1.097.476-1.097 1.062V9.24ZM8.049 12.429c-.607 0-1.098-.476-1.098-1.062V7.542c0-.587.491-1.062 1.098-1.062.606 0 1.097.475 1.097 1.062v3.825c0 .586-.49 1.062-1.097 1.062ZM14.854 16.466c0 .587.49 1.062 1.097 1.062s1.098-.475 1.098-1.062V12.64c0-.586-.491-1.062-1.098-1.062-.606 0-1.097.476-1.097 1.062v3.825ZM4.098 13.704C3.49 13.704 3 13.228 3 12.64v-1.274c0-.587.491-1.063 1.098-1.063.606 0 1.097.476 1.097 1.063v1.274c0 .587-.491 1.063-1.097 1.063ZM18.805 12.641c0 .587.491 1.063 1.097 1.063.607 0 1.098-.476 1.098-1.063v-1.274c0-.587-.491-1.063-1.098-1.063-.606 0-1.097.476-1.097 1.063v1.274Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-layer-group" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="m6.09 7.984 5.672 3.166a.5.5 0 0 0 .486 0l5.665-3.132-5.672-3.166a.5.5 0 0 0-.485 0L6.09 7.983Zm-1.546.855 6.487 3.62a2 2 0 0 0 1.943.005l6.482-3.585.055-.03.703-.389a.5.5 0 0 0 .002-.874l-.702-.392-.054-.03-6.488-3.621a2 2 0 0 0-1.942-.004L4.548 7.123l-.055.03-.704.39a.5.5 0 0 0-.001.873l.701.392.055.03Zm2.254 6.758-1.543-.861-.706.39-.055.03-.703.39a.5.5 0 0 0-.002.873l.702.392.054.03h.001l6.487 3.621a2 2 0 0 0 1.942.004l6.482-3.584.055-.03.704-.39a.5.5 0 0 0 .002-.873l-.702-.392-.055-.03-.711-.398-1.546.855.71.397-5.665 3.133a.5.5 0 0 1-.485-.001l-5.672-3.166.706-.39Zm-1.543-4.861 1.543.86-.706.391 5.672 3.166a.5.5 0 0 0 .485 0l5.666-3.132-.712-.397 1.547-.855.71.397h.001l.055.031.702.392a.5.5 0 0 1-.002.874l-.704.389-.054.03-6.483 3.585a2 2 0 0 1-1.942-.004l-6.487-3.621-.055-.03-.702-.393a.5.5 0 0 1 .002-.874l.703-.389.055-.03.706-.39Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-search-ai" viewBox="0 0 64 64">
			<path fill="currentColor" d="M31.268 6.6c.462-1.248 2.227-1.248 2.689 0l2.298 6.212c.146.392.455.702.847.847l6.212 2.298c1.248.462 1.248 2.227 0 2.689l-6.212 2.299a1.434 1.434 0 0 0-.847.846l-2.298 6.212c-.462 1.248-2.227 1.248-2.689 0l-2.298-6.212a1.434 1.434 0 0 0-.847-.846l-6.212-2.3c-1.248-.46-1.248-2.226 0-2.688l6.212-2.298c.392-.146.701-.455.847-.847L31.268 6.6Z" />
			<path fill="currentColor" fill-rule="evenodd" d="M20.603 9.703C12.167 11.243 7.5 17.55 7.5 26.119c0 9.733 6.403 16.78 17.305 16.78 10.381 0 16.683-6.39 17.261-15.405l-4.045.45c-.335 3.12-1.533 5.616-3.306 7.399-2.097 2.107-5.343 3.563-9.91 3.563s-7.813-1.456-9.91-3.563c-2.107-2.118-3.402-5.243-3.402-9.224 0-4.108 1.278-7.216 3.338-9.286 1.375-1.383 3.28-2.485 5.803-3.062l-.03-4.068Zm21.255 31.17a1.997 1.997 0 0 0-2.824 2.823L53.676 58.34l2.824-2.824-14.642-14.642Z" clip-rule="evenodd" />
		</symbol>
		<symbol id="icon-magnifying-glass" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M9.5 4.5c1.726 0 2.943.538 3.726 1.319.785.783 1.274 1.952 1.274 3.484 0 1.495-.486 2.669-1.278 3.464-.787.792-2.006 1.34-3.722 1.34-1.716 0-2.935-.548-3.722-1.34-.792-.795-1.278-1.969-1.278-3.464 0-1.543.48-2.71 1.253-3.488C6.523 5.04 7.736 4.5 9.5 4.5Zm0-1.5C13.595 3 16 5.584 16 9.303c0 3.656-2.405 6.303-6.5 6.303-4.095 0-6.5-2.647-6.5-6.303C3 5.584 5.34 3 9.5 3Zm6.405 11.845a.75.75 0 1 0-1.06 1.06l5.5 5.5 1.06-1.06-5.5-5.5Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-play" viewBox="0 0 24 24">
			<path d="m7 20 10.002-6.155c1.374-.846 1.374-2.844 0-3.69L7 4v16Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-podcast" viewBox="0 0 24 24">
			<path fill-rule="evenodd" clip-rule="evenodd" d="M9.75 2.25v19.5h-1.5V2.25h1.5Zm3 17.5V4.25h-1.5v15.5h1.5Zm-6-12.5v9.5h-1.5v-9.5h1.5Zm12 3v3.5h-1.5v-3.5h1.5Zm-3 5.5v-7.5h-1.5v7.5h1.5Zm-13-4.25c.473 0 .75.307.75.75 0 .435-.277.75-.75.75S2 12.685 2 12.25c0-.443.27-.75.75-.75Zm19.25.75c0-.443-.277-.75-.75-.75-.48 0-.75.307-.75.75 0 .435.277.75.75.75s.75-.315.75-.75Z" fill="currentColor" />
		</symbol>

		<symbol id="icon-soundcloud" viewBox="0 0 24 24">
			<path d="M7 17h1.25V9.128a3.214 3.214 0 0 0-1.25.69V17Zm-2.5-5.325v5.316l.08.009h1.17v-5.334H4.58l-.08.009ZM2 14.332c0 .968.504 1.808 1.25 2.276V12.06A2.675 2.675 0 0 0 2 14.332ZM9.5 17h1.25V9.475A3.12 3.12 0 0 0 9.5 9.03V17Zm9.92-5.333h-.704c.036-.218.058-.439.058-.667 0-2.21-1.733-4-3.87-4-1.16 0-2.195.534-2.904 1.37V17h7.42c1.424 0 2.58-1.194 2.58-2.668 0-1.472-1.156-2.665-2.58-2.665Z" fill="currentColor" />
		</symbol>
		<symbol id="icon-messenger" viewBox="0 0 12 12">
			<path fill="currentColor" d="M2.25 6.75 4.5 4.5l2.25.75L9 4.5 6.75 6.75 4.5 6Zm0 0" />
			<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width=".75" d="M5.625 1.125c-2.484 0-4.5 1.922-4.5 4.297 0 1.332.5 2.414 1.5 3.203v1.5l1.406-.938c.657.094 1.059.188 1.594.188 2.484 0 4.5-1.582 4.5-3.953 0-2.375-2.016-4.297-4.5-4.297Zm0 0" />
		</symbol>
		<symbol id="icon-whatsapp" viewBox="0 0 12 12">
			<path fill="currentColor" d="M 5.625 0.75 C 2.9375 0.75 0.75 2.9375 0.75 5.625 C 0.75 6.597656 1.0625 7.488281 1.554688 8.25 L 0.714844 10.589844 L 3.324219 9.855469 C 4.015625 10.234375 4.78125 10.5 5.625 10.5 C 8.316406 10.5 10.5 8.316406 10.5 5.625 C 10.5 2.9375 8.316406 0.75 5.625 0.75 Z M 5.625 1.5 C 7.90625 1.5 9.75 3.34375 9.75 5.625 C 9.75 7.90625 7.90625 9.75 5.625 9.75 C 4.84375 9.75 4.121094 9.53125 3.492188 9.152344 L 3.355469 9.066406 L 1.910156 9.472656 L 2.378906 8.171875 L 2.265625 8.011719 C 1.785156 7.335938 1.5 6.515625 1.5 5.625 C 1.5 3.34375 3.34375 1.5 5.625 1.5 Z M 3.796875 3 C 3.710938 3 3.570312 3.035156 3.453125 3.175781 C 3.335938 3.3125 3 3.652344 3 4.335938 C 3 5.019531 3.464844 5.679688 3.527344 5.773438 C 3.59375 5.867188 4.4375 7.273438 5.734375 7.875 C 6.042969 8.019531 6.28125 8.105469 6.46875 8.167969 C 6.78125 8.273438 7.0625 8.257812 7.285156 8.222656 C 7.53125 8.183594 8.046875 7.886719 8.15625 7.5625 C 8.261719 7.238281 8.265625 6.957031 8.230469 6.898438 C 8.199219 6.839844 8.113281 6.804688 7.984375 6.738281 C 7.855469 6.667969 7.21875 6.332031 7.101562 6.289062 C 6.984375 6.238281 6.898438 6.21875 6.808594 6.355469 C 6.722656 6.496094 6.476562 6.808594 6.402344 6.898438 C 6.324219 6.992188 6.253906 7.003906 6.125 6.933594 C 5.992188 6.863281 5.574219 6.71875 5.082031 6.242188 C 4.699219 5.875 4.4375 5.421875 4.367188 5.28125 C 4.289062 5.140625 4.355469 5.066406 4.421875 5 C 4.480469 4.933594 4.550781 4.835938 4.613281 4.753906 C 4.679688 4.671875 4.699219 4.613281 4.742188 4.519531 C 4.789062 4.425781 4.765625 4.34375 4.734375 4.277344 C 4.699219 4.207031 4.441406 3.523438 4.335938 3.242188 C 4.230469 2.972656 4.121094 3.007812 4.042969 3.007812 C 3.96875 3 3.882812 3 3.796875 3 Z M 3.796875 3 " />

		</symbol>
		<symbol id="icon-telegram" viewBox="0 0 18 18">
			<path fill="currentColor" d="M 15.429688 2.257812 C 15.179688 2.230469 14.910156 2.269531 14.636719 2.378906 C 14.300781 2.511719 9.011719 4.734375 4.082031 6.8125 L 2.453125 7.496094 C 1.820312 7.753906 1.503906 8.167969 1.503906 8.730469 C 1.503906 9.121094 1.667969 9.652344 2.460938 9.964844 L 5.210938 11.066406 C 5.449219 11.78125 6 13.4375 6.140625 13.878906 C 6.222656 14.140625 6.429688 14.796875 6.957031 14.949219 C 7.066406 14.988281 7.175781 15.007812 7.292969 15.003906 C 7.625 15.003906 7.863281 14.851562 7.980469 14.761719 L 9.726562 13.285156 L 11.851562 15.246094 C 11.933594 15.328125 12.363281 15.75 12.945312 15.75 C 13.671875 15.75 14.222656 15.144531 14.335938 14.5625 C 14.398438 14.242188 16.445312 3.964844 16.445312 3.96875 C 16.628906 3.140625 16.300781 2.714844 16.085938 2.53125 C 15.90625 2.378906 15.679688 2.285156 15.429688 2.257812 Z M 14.933594 3.878906 C 14.648438 5.296875 13.109375 13.035156 12.875 14.148438 L 9.773438 11.277344 L 7.667969 13.0625 L 8.25 10.78125 C 8.25 10.78125 12.273438 6.710938 12.515625 6.472656 C 12.710938 6.285156 12.75 6.21875 12.75 6.152344 C 12.75 6.0625 12.703125 6 12.601562 6 C 12.507812 6 12.378906 6.089844 12.3125 6.132812 C 11.453125 6.667969 7.804688 8.746094 6.007812 9.769531 L 3.398438 8.726562 L 4.664062 8.195312 C 7.886719 6.839844 13.628906 4.421875 14.933594 3.878906 Z M 14.933594 3.878906 " />
		</symbol>
	</defs>
</svg>


<footer id="SiteFooter" class="SiteFooter" role="contentinfo">
	<div class="container">
		<div class="SiteFooterSections">
			<div class="SiteFooterSections__section"><div class="SiteFooterSection__inner"><h3 class="SiteFooterList__title"><button type="button" id="footer-trigger-100057018-1" class="SiteFooterList__trigger" aria-expanded="false" aria-controls="footer-panel-100057018-1"><span class="SiteFooterList__txt">About</span><span class="SiteFooterList__Icon"><i class="icon-circle-chevron-down"><svg aria-hidden="true"><use xlink:href="#icon-circle-chevron-down"></use></svg></i></span></button></h3><div id="footer-panel-100057018-1" class="SiteFooterList__wrapper" role="region" aria-labelledby="footer-trigger-100057018-1" hidden><ol class="SiteFooterList__list"><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/about-us/"><span>About Us</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/our-brands/infoworld/"><span>Advertise</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/contact-us/"><span>Contact Us</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/editorial-ethics-policy/"><span>Editorial Ethics Policy</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/work-here/"><span>Foundry Careers</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="/newsletters/signup/"><span>Newsletters</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/contact-us/#republication-permissions"><span>Reprints</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.google.com/preferences/source?q=infoworld.com"><span>Add InfoWorld as a Preferred Source in Google Search</span></a></li></ol></div></div></div><div class="SiteFooterSections__section"><div class="SiteFooterSection__inner"><h3 class="SiteFooterList__title"><button type="button" id="footer-trigger-100057027-2" class="SiteFooterList__trigger" aria-expanded="false" aria-controls="footer-panel-100057027-2"><span class="SiteFooterList__txt">Policies</span><span class="SiteFooterList__Icon"><i class="icon-circle-chevron-down"><svg aria-hidden="true"><use xlink:href="#icon-circle-chevron-down"></use></svg></i></span></button></h3><div id="footer-panel-100057027-2" class="SiteFooterList__wrapper" role="region" aria-labelledby="footer-trigger-100057027-2" hidden><ol class="SiteFooterList__list"><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/terms-of-service-agreement/"><span>Terms of Service</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/privacy-policy/"><span>Privacy Policy</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/cookie-policy/"><span>Cookie Policy</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/copyright-notice/"><span>Copyright Notice</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/member-preferences/"><span>Member Preferences</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/ad-choices/"><span>About AdChoices</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/ccpa/"><span>Your California Privacy Rights</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink ccpa-btn"><svg width="36" height="18" viewBox="0 0 36 18" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M0 9C0 4.02944 4.02944 0 9 0H26.55C31.5206 0 35.55 4.02944 35.55 9C35.55 13.9706 31.5206 18 26.55 18H9C4.02944 18 0 13.9706 0 9Z" fill="white"/><path d="M26.55 16.639V18H9V16.639H26.55ZM34.189 9C34.189 4.78108 30.7689 1.36099 26.55 1.36099H9C4.78108 1.36099 1.36099 4.78108 1.36099 9C1.36099 13.2189 4.78108 16.639 9 16.639V18L8.88369 17.9993C3.96673 17.937 0 13.9317 0 9C0 4.02944 4.02944 0 9 0H26.55C31.5206 0 35.55 4.02944 35.55 9C35.55 13.9706 31.5206 18 26.55 18V16.639C30.7689 16.639 34.189 13.2189 34.189 9Z" fill="#0C0C0C"/><path d="M20.1278 0H26.4889C31.4595 0 35.4889 4.02944 35.4889 9C35.4889 13.9706 31.4595 18 26.4889 18H15.3L20.1278 0Z" fill="#0C0C0C"/><path fill-rule="evenodd" clip-rule="evenodd" d="M15.1173 5.39716C15.3997 5.62614 15.4432 6.04084 15.2143 6.32341L10.3641 12.3106C9.95411 12.8167 9.19625 12.8563 8.73578 12.3957L5.89839 9.55738C5.64129 9.30021 5.64129 8.88325 5.89839 8.62607C6.15548 8.3689 6.57232 8.3689 6.82941 8.62607L9.49453 11.292L14.1913 5.4942C14.4202 5.21163 14.8348 5.16818 15.1173 5.39716Z" fill="#0C0C0C"/><path fill-rule="evenodd" clip-rule="evenodd" d="M21.8574 5.10241C22.1216 4.85253 22.5383 4.86418 22.7881 5.12845L29.133 11.8406C29.3829 12.1049 29.3712 12.5217 29.107 12.7716C28.8428 13.0214 28.4262 13.0098 28.1764 12.7455L21.8314 6.03336C21.5816 5.76909 21.5932 5.35229 21.8574 5.10241Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M29.2128 5.20528C29.4699 5.46245 29.4699 5.87942 29.2128 6.13659L22.6827 12.6687C22.4256 12.9259 22.0088 12.9259 21.7517 12.6687C21.4946 12.4115 21.4946 11.9946 21.7517 11.7374L28.2817 5.20528C28.5388 4.9481 28.9557 4.9481 29.2128 5.20528Z" fill="white"/></svg><span>Privacy Settings</span></a></li></ol></div></div></div><div class="SiteFooterSections__section"><div class="SiteFooterSection__inner"><h3 class="SiteFooterList__title"><button type="button" id="footer-trigger-100057036-3" class="SiteFooterList__trigger" aria-expanded="false" aria-controls="footer-panel-100057036-3"><span class="SiteFooterList__txt">More</span><span class="SiteFooterList__Icon"><i class="icon-circle-chevron-down"><svg aria-hidden="true"><use xlink:href="#icon-circle-chevron-down"></use></svg></i></span></button></h3><div id="footer-panel-100057036-3" class="SiteFooterList__wrapper" role="region" aria-labelledby="footer-trigger-100057036-3" hidden><ol class="SiteFooterList__list"><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/news/"><span>News</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/features/"><span>Features</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/blogs/"><span>Blogs</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/brandposts/"><span>BrandPosts</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/events/"><span>Events</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/videos/"><span>Videos</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.infoworld.com/enterprise-buyers-guide/"><span>Enterprise Buyer’s Guides</span></a></li></ol></div></div></div><div class="SiteFooterSections__section"><div class="SiteFooterSection__inner"><h3 class="SiteFooterList__title"><button type="button" id="footer-trigger-100057044-4" class="SiteFooterList__trigger" aria-expanded="false" aria-controls="footer-panel-100057044-4"><span class="SiteFooterList__txt">Our Network</span><span class="SiteFooterList__Icon"><i class="icon-circle-chevron-down"><svg aria-hidden="true"><use xlink:href="#icon-circle-chevron-down"></use></svg></i></span></button></h3><div id="footer-panel-100057044-4" class="SiteFooterList__wrapper" role="region" aria-labelledby="footer-trigger-100057044-4" hidden><ol class="SiteFooterList__list"><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.cio.com/"><span>CIO</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.computerworld.com/"><span>Computerworld</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.csoonline.com/"><span>CSO</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.networkworld.com/"><span>Network World</span></a></li></ol></div></div></div>
		</div>
		<div class="SiteFooterSections">
			<div class="SiteFooterSections__section">
				<div class="SiteFooter__logo">
					<a href="https://foundryco.com/" target="_blank" rel="noreferrer" aria-label="Go to Foundry website"><svg width="157" height="38" viewBox="0 0 157 38" fill="none" xmlns="http://www.w3.org/2000/svg">
		<path d="M77.5198 0.58374C80.4569 0.58374 82.1628 2.4929 82.1628 5.21928C82.1628 7.94567 80.4638 9.85482 77.4854 9.85482C74.5071 9.85482 72.8425 7.91133 72.8425 5.21928C72.8425 2.52723 74.5415 0.58374 77.5198 0.58374Z" fill="currentColor"/>
		<path d="M65.0492 27.2227C65.0492 29.1318 64.8704 30.7937 64.272 32.1741C62.6762 35.8139 59.347 37.7299 54.8142 37.7299C50.2813 37.7299 46.7733 35.8207 45.1775 32.1741C44.5722 30.7937 44.4002 29.1318 44.4002 27.2227V12.4713H50.7765V26.8655C50.7765 27.9987 50.8453 28.9189 51.1686 29.6606C51.8427 31.2195 53.294 31.7827 54.821 31.7827C56.1692 31.7827 57.6205 31.2195 58.2946 29.6606C58.611 28.9189 58.6867 27.9987 58.6867 26.8655V12.4713H65.063V27.2227H65.0492Z" fill="currentColor"/>
		<path d="M88.0369 22.4086V37.2286H81.6606V22.8687C81.6606 21.7355 81.5919 20.8153 81.2686 20.0736C80.5945 18.5147 79.1431 17.8074 77.5129 17.8074C75.8828 17.8074 74.4314 18.5147 73.7573 20.0736C73.4409 20.8153 73.3653 21.7355 73.3653 22.8687V37.2286H66.989V22.4086C66.989 20.4994 67.1678 18.8375 67.7662 17.4571C69.362 13.8174 72.6912 11.867 77.5061 11.867C82.321 11.867 85.657 13.8105 87.2459 17.4571C87.8512 18.8375 88.0232 20.4994 88.0232 22.4086" fill="currentColor"/>
		<path d="M144.584 22.127L149.826 12.4713H156.594L147.7 28.5275V37.2286H141.18V28.5275L132.361 12.4713H139.371L144.584 22.127Z" fill="currentColor"/>
		<path d="M17.7532 12.4713H0V37.2286H6.3763V28.8502H16.9759V23.1159H6.3763V18.24H17.7532V12.4713Z" fill="currentColor"/>
		<path d="M77.5198 0.58374C80.4569 0.58374 82.1628 2.4929 82.1628 5.21928C82.1628 7.94567 80.4638 9.85482 77.4854 9.85482C74.5071 9.85482 72.8425 7.91133 72.8425 5.21928C72.8425 2.52723 74.5415 0.58374 77.5198 0.58374Z" fill="currentColor"/>
		<path d="M65.0492 27.2227C65.0492 29.1318 64.8704 30.7937 64.272 32.1741C62.6762 35.8139 59.347 37.7299 54.8142 37.7299C50.2813 37.7299 46.7733 35.8207 45.1775 32.1741C44.5722 30.7937 44.4002 29.1318 44.4002 27.2227V12.4713H50.7765V26.8655C50.7765 27.9987 50.8453 28.9189 51.1686 29.6606C51.8427 31.2195 53.294 31.7827 54.821 31.7827C56.1692 31.7827 57.6205 31.2195 58.2946 29.6606C58.611 28.9189 58.6867 27.9987 58.6867 26.8655V12.4713H65.063V27.2227H65.0492Z" fill="currentColor"/>
		<path d="M88.0369 22.4086V37.2286H81.6606V22.8687C81.6606 21.7355 81.5919 20.8153 81.2686 20.0736C80.5945 18.5147 79.1431 17.8074 77.5129 17.8074C75.8828 17.8074 74.4314 18.5147 73.7573 20.0736C73.4409 20.8153 73.3653 21.7355 73.3653 22.8687V37.2286H66.989V22.4086C66.989 20.4994 67.1678 18.8375 67.7662 17.4571C69.362 13.8174 72.6912 11.867 77.5061 11.867C82.321 11.867 85.657 13.8105 87.2459 17.4571C87.8512 18.8375 88.0232 20.4994 88.0232 22.4086" fill="currentColor"/>
		<path d="M124.142 29.4134H120.139V37.2286H113.762V12.4713H125.593C130.339 12.4713 133.882 15.6166 133.882 20.8909C133.882 24.146 132.533 26.6183 130.195 28.1086L134.019 37.2354H127.216L124.135 29.4203L124.142 29.4134ZM120.139 23.8576H124.142C126.515 23.8576 127.54 22.7245 127.54 20.884C127.54 19.1534 126.515 17.9447 124.142 17.9447H120.139V23.8576ZM124.142 29.4134H120.139V37.2286H113.762V12.4713H125.593C130.339 12.4713 133.882 15.6166 133.882 20.8909C133.882 24.146 132.533 26.6183 130.195 28.1086L134.019 37.2354H127.216L124.135 29.4203L124.142 29.4134ZM120.139 23.8576H124.142C126.515 23.8576 127.54 22.7245 127.54 20.884C127.54 19.1534 126.515 17.9447 124.142 17.9447H120.139V23.8576Z" fill="currentColor"/>
		<path d="M90.2036 37.2286V12.4713H99.3795C107.42 12.4713 112.132 17.3541 112.132 24.8534C112.132 32.3527 107.916 37.2354 99.7647 37.2354H90.1968L90.2036 37.2286ZM96.5799 31.6384H99.235C103.383 31.6384 105.611 29.3722 105.611 24.8465C105.611 20.3209 103.376 18.0546 99.235 18.0546H96.5799V31.6384ZM90.2036 37.2286V12.4713H99.3795C107.42 12.4713 112.132 17.3541 112.132 24.8534C112.132 32.3527 107.916 37.2354 99.7647 37.2354H90.1968L90.2036 37.2286ZM96.5799 31.6384H99.235C103.383 31.6384 105.611 29.3722 105.611 24.8465C105.611 20.3209 103.376 18.0546 99.235 18.0546H96.5799V31.6384Z" fill="currentColor"/>
		<path d="M30.7878 11.9769C38.2647 11.9769 42.6944 17.4571 42.6944 24.8534C42.6944 32.2496 38.0858 37.7299 30.7878 37.7299C23.4898 37.7299 18.8469 32.284 18.8469 24.8534C18.8469 17.4228 23.4898 11.9769 30.7878 11.9769ZM30.7534 31.9269C34.117 31.9269 36.2424 29.1318 36.2424 25.0319C36.2424 20.5063 34.117 17.7799 30.9254 17.7799C27.4518 17.7799 25.3264 20.5063 25.3264 24.6748C25.3264 29.1318 27.4518 31.9269 30.7465 31.9269M30.7809 11.9769C38.2578 11.9769 42.6875 17.4571 42.6875 24.8534C42.6875 32.2496 38.0789 37.7299 30.7809 37.7299C23.4829 37.7299 18.84 32.284 18.84 24.8534C18.84 17.4228 23.4829 11.9769 30.7809 11.9769ZM30.7465 31.9269C34.1101 31.9269 36.2355 29.1318 36.2355 25.0319C36.2355 20.5063 34.1101 17.7799 30.9185 17.7799C27.4449 17.7799 25.3195 20.5063 25.3195 24.6748C25.3195 29.1318 27.4449 31.9269 30.7397 31.9269" fill="currentColor"/>
		<path d="M17.7532 12.4713H0V37.2286H6.3763V28.8502H16.9759V23.1159H6.3763V18.24H17.7532V12.4713Z" fill="currentColor"/>
		</svg></a>				</div>
				<div class="SiteFooter__social">
					<ul class="SiteFooter__socialList"><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://www.facebook.com/InfoWorld" target="_blank" rel="noreferrer" aria-label="Facebook"><span class="SiteFooter__socialLinkText sr-only">Facebook</span><span class="SiteFooter__socialLinkIcon"><i class="icon-facebook"><svg><use xlink:href="#icon-facebook"></use></svg></i></span></a></li><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://twitter.com/infoworld" target="_blank" rel="noreferrer" aria-label="X"><span class="SiteFooter__socialLinkText sr-only">X</span><span class="SiteFooter__socialLinkIcon"><i class="icon-twitter"><svg><use xlink:href="#icon-twitter"></use></svg></i></span></a></li><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://www.youtube.com/@InfoWorld" target="_blank" rel="noreferrer" aria-label="YouTube"><span class="SiteFooter__socialLinkText sr-only">YouTube</span><span class="SiteFooter__socialLinkIcon"><i class="icon-youtube"><svg><use xlink:href="#icon-youtube"></use></svg></i></span></a></li><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://news.google.com/publications/CAAqIggKIhxDQkFTRHdvSkwyMHZNRFY1ZEhaNUVnSmxiaWdBUAE" target="_blank" rel="noreferrer" aria-label="Google News"><span class="SiteFooter__socialLinkText sr-only">Google News</span><span class="SiteFooter__socialLinkIcon"><svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><use xlink:href="#icon-gnews"></use></svg></span></a></li><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://www.linkedin.com/company/164364" target="_blank" rel="noreferrer" aria-label="LinkedIn"><span class="SiteFooter__socialLinkText sr-only">LinkedIn</span><span class="SiteFooter__socialLinkIcon"><i class="icon-linkedin"><svg><use xlink:href="#icon-linkedin"></use></svg></i></span></a></li></ul>				</div>
			</div>
		</div>
		<div class="SiteFooter__bottom">
			<div class="SiteFooter__legal">
				<a href="https://foundryco.com/terms-of-service-agreement/" target="_blank" rel="noreferrer"><span>© 2026  FoundryCo, Inc. All Rights Reserved.</span></a>			</div>
		</div>


	</div>

</footer>

<!-- start:hf --><script>
class TopicSpotlight {
  constructor(config = []) {
    if (!Array.isArray(config)) {
      this.config = [];
      return;
    }

    this.html = document.documentElement;

    this.brand = this.html.dataset.brand || null;
    this.lang = this.html.dataset.lang || null;

    this.editions = (this.html.dataset.edition || "")
      .split(",")
      .map(e => e.trim())
      .filter(Boolean);

    this.url = location.pathname.replace(/\/+$/, "") || "/";

    this.config = config.map(c => ({
      brand: c.brand || null,
      langs: Array.isArray(c.langs) ? c.langs : null,
      editions: Array.isArray(c.editions) ? c.editions : [],
      editionsUrl: !!c.editionsUrl,

      url: typeof c.url === "string"
        ? this.normalizePath(c.url)
        : null,

      description: typeof c.description === "string" ? c.description : null,
      badge: c.badge || "Spotlight Topic",

      menuTitle: typeof c.menuTitle === "string" ? c.menuTitle : null,
      menuUrl: typeof c.menuUrl === "string"
        ? this.normalizePath(c.menuUrl)
        : null,

      sidebarTitle: typeof c.sidebarTitle === "string" ? c.sidebarTitle : null,
      sidebarUrl: typeof c.sidebarUrl === "string"
        ? this.normalizePath(c.sidebarUrl)
        : null,

      startAt: c.startAt ? new Date(c.startAt) : null,
      endAt: c.endAt ? new Date(c.endAt) : null
    }));

  }

  normalizePath(path) {
    return path.replace(/\/+$/, "") || "/";
  }

  withEdition(path, entry) {
    if (!entry.editionsUrl) return path;
    if (!this.editions.length) return path;

    const edition = this.editions[0];
    if (!edition || edition === "us") return path;

    // already prefixed
    if (path === `/${edition}` || path.startsWith(`/${edition}/`)) {
      return path;
    }

    return this.normalizePath(`/${edition}${path === "/" ? "" : path}`);
  }

  resolveUrl(path, entry) {
    return this.withEdition(this.normalizePath(path), entry);
  }

  init() {
    if (document.readyState === "loading") {
      document.addEventListener("DOMContentLoaded", () => this.run(), { once: true });
    } else {
      this.run();
    }
  }

  run() {
    this.injectStyles();
    this.injectMenuSpotlight();
    this.injectSidebarSpotlight();

    const entry = this.matchConfig();
    if (!entry) return;

    const desc = document.querySelector(".topic-hero__description");
    if (!desc) return;

    if (entry.description) {
      this.setSafeText(desc, entry.description);
    }

    this.insertBadge(desc, entry.badge);
  }

  injectSidebarSpotlight() {
    const list = document.querySelector(".related-content-small__link-items");
    if (!list) return;
    if (list.querySelector('[data-topic-spotlight-sidebar]')) {
      return;
    }

    if (
      Array.from(list.querySelectorAll("a.related-content-small__link"))
        .some(a => a.textContent.trim().startsWith("Spotlight:"))
    ) {
      return;
    }

    const now = Date.now();

    const entry = this.config
      .filter(c => {
        if (!c.sidebarTitle || !c.sidebarUrl) return false;
        if (c.brand && c.brand !== this.brand) return false;

        if (Array.isArray(c.editions) && c.editions.length) {
          if (!c.editions.some(e => this.editions.includes(e))) return false;
        }

        if (c.startAt && now < c.startAt.getTime()) return false;
        if (c.endAt && now > c.endAt.getTime()) return false;

        return true;
      })
      .sort((a, b) => (b.startAt?.getTime() || 0) - (a.startAt?.getTime() || 0))[0];

    if (!entry) return;

    const normalizedUrl = this.resolveUrl(entry.sidebarUrl, entry);

    if (
      Array.from(list.querySelectorAll("a.related-content-small__link"))
        .some(a => {
          try {
            const href = new URL(a.href, location.origin)
              .pathname.replace(/\/+$/, "") || "/";
            return href === normalizedUrl;
          } catch {
            return false;
          }
        })
    ) {
      return;
    }

    const li = document.createElement("li");
    li.className = "related-content-small__link-item";
    li.setAttribute("data-topic-spotlight-sidebar", "");

    const a = document.createElement("a");
    a.className = "related-content-small__link";
    a.href = normalizedUrl + "/";
    a.textContent = entry.sidebarTitle;
    a.setAttribute("aria-label", entry.sidebarTitle);

    li.appendChild(a);
    list.appendChild(li);
  }

  injectMenuSpotlight() {
    const nav = document.querySelector(".header__nav-items");
    if (!nav) return;

    if (nav.querySelector('[data-topic-spotlight-menu]')) return;

    if (
      Array.from(nav.querySelectorAll("a.header__nav-link"))
        .some(a => a.textContent.trim().startsWith("Spotlight:"))
    ) {
      return;
    }

    const now = Date.now();

    const entry = this.config
      .filter(c => {
        if (!c.menuTitle || !c.menuUrl) return false;
        if (c.brand && c.brand !== this.brand) return false;

        if (Array.isArray(c.editions) && c.editions.length) {
          if (!c.editions.some(e => this.editions.includes(e))) return false;
        }

        if (c.startAt && now < c.startAt.getTime()) return false;
        if (c.endAt && now > c.endAt.getTime()) return false;

        return true;
      })
      .sort((a, b) => (b.startAt?.getTime() || 0) - (a.startAt?.getTime() || 0))[0];

    if (!entry) return;
    const normalizedUrl = this.resolveUrl(entry.menuUrl, entry);

    if (
      Array.from(nav.querySelectorAll("a.header__nav-link"))
        .some(a => {
          try {
            const href = new URL(a.href, location.origin)
              .pathname.replace(/\/+$/, "") || "/";
            return href === normalizedUrl;
          } catch {
            return false;
          }
        })
    ) {
      return;
    }

    const topicsItem = nav
      .querySelector('[data-menu-trigger="topics"]')
      ?.closest("li");
    if (!topicsItem) return;

    const li = document.createElement("li");
    li.className = "header__nav-item";
    li.setAttribute("data-topic-spotlight-menu", "");

    const a = document.createElement("a");
    a.className = "header__nav-link";
    a.href = normalizedUrl + "/";
    a.textContent = entry.menuTitle;

    li.appendChild(a);
    topicsItem.insertAdjacentElement("afterend", li);
  }

  injectStyles() {
    if (document.getElementById("topic-spotlight-css")) return;

    const style = document.createElement("style");
    style.id = "topic-spotlight-css";
    style.textContent = `
      .topic-spotlight {
        margin-top: 24px;
        display: block;
      }

      [data-brand="cso"] .topic-spotlight {
        margin-top: 16px;
        text-align: center;
      }

      .topic-spotlight span {
        display: inline-flex;
        border-radius: 5px;
        background-color: rgba(255,255,255,.7);
        align-items: center;
        gap: 6px;
        padding: 10px 12px;
        line-height: 1;
        font-size: 12px;
        font-weight: 500;
        margin-bottom: 1.953rem;
      }

      .topic-spotlight span i {
        transform: scaleY(-1);
        align-items: center;
        display: inline-flex;
        fill: currentColor;
        height: 1em;
        pointer-events: none;
        vertical-align: -.1em;
        width: 1em;
      }

      .topic-spotlight i > svg {
        display: block;
      }

      .has-ad-prefix:before {
        top: inherit;
      }

      .topic-hero__description {
        line-height: 1.563;
      }

      @media (min-width: 1025px) {
        .topic-spotlight span {
          font-size: 1.536rem;
        }

        .topic-hero__content {
          padding: 84px 0 48px;
        }

        .topic-hero__description {
          margin-top: 32px;
          max-width: inherit;
          max-inline-size: 65ch;
        }
      }

      .jump-links__links::-webkit-scrollbar {
        display: none;
      }
    `;

    document.head.appendChild(style);
  }

  matchConfig() {
    return (
      this.config.find(c => {
        if (c.brand && c.brand !== this.brand) return false;

        if (Array.isArray(c.langs) && c.langs.length) {
          if (!this.lang || !c.langs.includes(this.lang)) return false;
        }

        if (Array.isArray(c.editions) && c.editions.length) {
          if (!c.editions.some(e => this.editions.includes(e))) return false;
        }

        if (!c.url) return false;
        if (!this.matchUrl(c.url, c)) return false;

        const now = Date.now();

        if (c.startAt instanceof Date && !isNaN(c.startAt)) {
          if (now < c.startAt.getTime()) return false;
        }

        if (c.endAt instanceof Date && !isNaN(c.endAt)) {
          if (now > c.endAt.getTime()) return false;
        }

        return true;
      }) || null
    );
  }

  matchUrl(url, entry) {
    return this.url === this.resolveUrl(url, entry);
  }

  setSafeText(node, text) {
    node.textContent = text;
    if (/[&][a-zA-Z0-9#]+[;]/.test(node.textContent)) {
      const d = document.createElement("div");
      d.innerHTML = text;
      node.textContent = d.textContent;
    }
  }

  insertBadge(desc, label) {
    if (document.querySelector(".topic-spotlight")) return;

    const badge = document.createElement("div");
    badge.className = "topic-spotlight";
    badge.setAttribute("role", "note");
    badge.setAttribute("aria-label", label);

    const span = document.createElement("span");
    const icon = document.createElement("i");
    icon.className = "icon-spotlight-star";

    const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
    svg.setAttribute("viewBox", "0 0 18 18");

    const path = document.createElementNS("http://www.w3.org/2000/svg", "path");
    path.setAttribute(
      "style",
      "stroke:none;fill-rule:nonzero;fill:currentColor;fill-opacity:1;"
    );
    path.setAttribute(
      "d",
      "M 10.242188 1.535156 L 9.394531 3.253906 L 7.5 3.527344 L 8.871094 4.863281 L 8.546875 6.75 L 10.242188 5.859375 L 11.933594 6.75 L 11.613281 4.863281 L 12.980469 3.527344 L 11.085938 3.253906 Z M 5.890625 5.707031 L 5.214844 7.070312 L 4.035156 9.464844 L -0.109375 10.066406 L 2.890625 12.992188 L 2.179688 17.121094 L 5.890625 15.171875 L 9.597656 17.121094 L 8.886719 12.992188 L 11.890625 10.066406 L 7.742188 9.464844 Z M 15 6.933594 L 14.304688 8.34375 L 12.75 8.566406 L 13.875 9.664062 L 13.609375 11.214844 L 15 10.480469 L 16.390625 11.214844 L 16.125 9.664062 L 17.25 8.566406 L 15.695312 8.34375 Z M 5.890625 9.097656 L 6.746094 10.835938 L 8.667969 11.113281 L 7.277344 12.46875 L 7.605469 14.378906 L 5.890625 13.476562 L 4.171875 14.378906 L 4.5 12.46875 L 3.113281 11.113281 L 5.03125 10.835938 Z M 5.890625 9.097656"
    );

    svg.appendChild(path);
    icon.appendChild(svg);

    span.textContent = " " + label;
    span.prepend(icon);

    badge.appendChild(span);
    desc.insertAdjacentElement("afterend", badge);
  }
}

window.TOPIC_SPOTLIGHT_CONFIG1 = [
  {
    brand: "iw",
    langs: ["en"],
    editions: ["us"],
    editionsUrl: true,
    url: "/it-leadership/",
//    description: "New description goes here.",
    badge: "Spotlight Topic",
    menuTitle: "Spotlight: IT Leadership",
    menuUrl: "/it-leadership/",
    sidebarTitle: "Spotlight: IT Leadership",
    sidebarUrl: "/it-leadership/",
    startAt: "2026-04-01T06:14:00.927Z",
    endAt: "2026-04-30T22:59:00.927Z"

  },
];
window.TOPIC_SPOTLIGHT_CONFIG2 = [
  {
    brand: "iw",
    langs: ["en"],
    editions: ["us"],
    editionsUrl: true,
    url: "/cloud-computing/",
//    description: "New description goes here.",
    badge: "Spotlight Topic",
    menuTitle: "Spotlight: Data Center Modernization",
    menuUrl: "/cloud-computing/",
    sidebarTitle: "Spotlight: Data Center Modernization",
    sidebarUrl: "/cloud-computing/",
    startAt: "2026-03-02T06:15:11.927Z",
    endAt: "2026-03-31T22:59:11.927Z"
  },
];
  
if (window.TOPIC_SPOTLIGHT_CONFIG1) {
  new TopicSpotlight(window.TOPIC_SPOTLIGHT_CONFIG1).init();
}
if (window.TOPIC_SPOTLIGHT_CONFIG2) {
  new TopicSpotlight(window.TOPIC_SPOTLIGHT_CONFIG2).init();
}
 </script><style>
.section-block[data-block=hero-text-figure] { 
--title-ff: carbona-variable,sans-serif;
--title-fw: 500;
--color-primary: #00c;
--btn-ff: carbona-variable,sans-serif;
--btn-fw: 500;
--btn-bg: #00c;
--btn-color: #fff;
--eyebrow-color-label: #0c0c0c;
--subheading-color: #0c0c0c;
}

.section-block[data-block=hero-text-figure] .section-block--btn a:hover,
.section-block[data-block=hero-text-figure] .section-block--btn a:focus {
    background-color: #000;
    border-radius: 0 0 0 0;
}
</style><!-- end:hf --></div><!-- #page-->

		<!-- Start Subscriber Embed Code -->
		<script type="text/javascript">
			var subscribersSiteId = "d73925e9-37f6-478a-9804-7901f9e3a2ae";
			var subscribersServiceWorkerPath = '/?firebase-messaging-sw';
		</script>
						<script type="text/javascript" src="https://cdn.subscribers.com/assets/subscribers.js"></script>
		<!-- End Subscriber Embed Code -->
			<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\/iw-b2b-child-theme\/*","\/wp-content\/themes\/idg-b2b-base-theme\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
		<script>
			jQuery(document).on("click",".consent-button",function() {
				const consentButton = event.target;
				const embedType = jQuery(consentButton).data('type');
				const callback = jQuery(consentButton).data('callback');
				if (callback) {//podigee has its own so callback is not present
					const cmpType = jQuery(consentButton).data('cmp');
					setOverlayCookie(embedType, true, 30);
					jQuery('.' + embedType).each(function() {
						jQuery(this).hide();
					});
					//eval(callback);//todo - safer way? window["functionName"](arguments);
					console.log('[Consent] click calling callback and calling showOverlays');
					//todo - not sure needed as showoverlays does this too
					window[callback.split('(')[0]]();//dont think any of the have actual arguments
					showOverlays(cmpType);
				}
			});
		</script>
					<script type="text/javascript">

				function getGenericOverlayMessage(platform) {
					let customHTMLTextOverlay = window?.IDG?.settings?.overlays_privacy_policies?.consent_overlays?.english_generic_overlay_message ?? '';
					const foundryPPLink = window?.IDG?.settings?.overlays_privacy_policies?.foundry_privacy_policies?.gdpr;
					customHTMLTextOverlay = customHTMLTextOverlay.replace(/\$\{platform\}/g, platform).replace(/\$\{foundryPPLink\}/g, foundryPPLink);
					return customHTMLTextOverlay;
				}

				// Function to check if the custom blocks should be excluded based on keywords.
				function isExcluded(element) {
					const platform = jQuery(element).attr('generic-overlay-domain');
					const cookieName = `hide-generic-overlay-${platform}`;
					const consentGiven = getOverlayCookie(cookieName);
					if (consentGiven === 'true') {
						return true;
					}
					// Check if blocksForConsent is defined.
					const excludeCustomBlocks = typeof window?.blocksForConsent !== 'undefined' ? Object.values(window?.blocksForConsent).map(block => block.platform) : [];
					const dataSrc = jQuery(element).attr('data-src');
					if (!dataSrc) return false; // If there's no src attribute, don't exclude
					return excludeCustomBlocks.some(keyword => dataSrc.includes(keyword));
				}

				jQuery('.legacy_content iframe, .legacy_content script, .legacy_content img').each(function(index, element) {
					// Check if the element contains any of the exclude keywords
					if (!isExcluded(element)) {
						const platform = jQuery(element).attr('generic-overlay-domain');
						if(platform){
							const genericCookieName = `custom-html-consent-notice-${platform}`;
							const genericOverlayNextExists = jQuery(element).next(`.${genericCookieName}`).length > 0;
							const genericOverlayPrevExists = jQuery(element).prev(`.${genericCookieName}`).length > 0;
							// Add the custom overlay and hide the element if not excluded
							if (!genericOverlayPrevExists && !genericOverlayNextExists) {
								jQuery(element).after(getGenericOverlayMessage(platform));
								jQuery(element).hide();
							}
						}
					} else {
						const platform = jQuery(element).attr('generic-overlay-domain');
						if(platform){
							const cookieName = `hide-generic-overlay-${platform}`;
							const consentGiven = getOverlayCookie(cookieName);
							if (consentGiven === 'true') {
								if( element.nodeName.toLowerCase() === 'script' ) {
										let genericScript = document.createElement("script");
										genericScript.type = "text/javascript";
										genericScript.async = true;
										genericScript.src = jQuery(element).attr('data-src');
										element.parentNode.insertBefore(genericScript, element);
										element.remove();
								} else {
									jQuery(element).attr('src', jQuery(element).attr('data-src'));
								}
								jQuery(element).show();
							}
						}
					}
				});
				/*
				* Visitor has not consented to everything so we need to add click-event handlers to the consent-buttons
				*/
				jQuery(document).on("click", ".consent-button-generic", function(event) {
					const buttonElement = event.target;
					const platform = jQuery(buttonElement).attr('platform');
					if(platform) {
						const legacySelector = `.legacy_content iframe[generic-overlay-domain="${platform}"], .legacy_content script[generic-overlay-domain="${platform}"], .legacy_content img[generic-overlay-domain="${platform}"]`;
						jQuery(legacySelector).each(function(index, element) {
							if( element.nodeName.toLowerCase() === 'script' ) {
										let genericScript = document.createElement("script");
										genericScript.type = "text/javascript";
										genericScript.async = true;
										genericScript.src = jQuery(element).attr('data-src');
										element.parentNode.insertBefore(genericScript, element);
										element.remove();
							} else {
								jQuery(element).attr('src', jQuery(element).attr('data-src'));
							}
							jQuery(element).show();
							const cookieName = `hide-generic-overlay-${platform}`;
							setOverlayCookie(cookieName, true, 30)
						});
						const platformOverlaySelector = `.custom-html-consent-notice-${platform}`;
						jQuery(platformOverlaySelector).hide();
					}
				});
			</script>
					<script>
			document.addEventListener('consentManagerReady', () => {
				const debug = consentManager.debug;

				window.enablePodigee = function () {
						const scripts = document.querySelectorAll('.podigee-podcast-player');
						scripts.forEach(function(script) {
							script.setAttribute('src', script.getAttribute('data-src'));
							script.removeAttribute('data-src');
						});
					};

				if(consentManager.consentRequired === true){

					window.podigeeCallback = function () {
						enablePodigee();
						jQuery('.wp-block-embed-podigee div.external-embed-wrapper').hide();
						return false;
					};

					if (consentManager.checkConsentByVendor("podigee")){
						if(debug)console.log('#### Podigee consent given');
						enablePodigee();
					} else {
						if(debug)console.log('#### Podigee no consent given');
						// Text overlay HTML
						const podigeeTextOverlay = '<div class="external-embed-wrapper" style="padding-bottom: 25px;"><div style="position: relative;background: lightgray;z-index: 1;padding: 15px;" class="embed-consent-notice" data-type="podigee"><h4>External content from podigee.com</h4><p>This block contains external content from podigee.com that is contextually relevant to this article. In order to display it, we need your consent.</p><p><a class="consent-button" data-type="podigee" href="javascript:void(0);" onclick="podigeeCallback()">Show external content from podigee.com</a></p><p>By clicking on &quot;Show external content from podigee.com&quot; I agree that the content will be displayed to me. This allows personal data to be sent to <a href="https://www.podigee.com">podigee.com</a>  and other third parties. You can find more information about this in our  <a href="/datenschutz#external">privacy policy</a>  and at  <a href="https://www.podigee.com/en/about/privacy">https://www.podigee.com/en/about/privacy</a>.</p></div></div>';

						// Add textoverlay inside podigee emded div
						jQuery('.wp-block-embed-podigee').each(function(index,element) {
							if (element.closest(".wp-block-embed-podigee")?.querySelectorAll('.external-embed-wrapper')?.length === 0) {
								jQuery(element).prepend(podigeeTextOverlay);
							}
						});
					}

				} else {
					if(debug)console.log('#### Podigee no consent needed');
					enablePodigee();
				}
			});
			</script>
		<link rel='stylesheet' id='typekit-styles-css' href='https://use.typekit.net/huo4szq.css?ver=1.0.0' media='all' />
<script id="child_ajaxload_posts-js-extra">
var ajaxload_params = {"ajaxurl":"https:\/\/www.infoworld.com\/wp-admin\/admin-ajax.php","nonce":"3c1c844441"};
</script>
<script id="frontend-scripts-js-extra">
var siteData = {"site":"infoworld.com","connectedhub":"b2b"};
var googleSearch = {"search_engine_id":"011881588825642368632:wfa05lybzqg","search_title":"Search","search_slug":"search"};
</script>
<script id="ajaxload_posts-js-extra">
var ajaxload_params = {"ajaxurl":"https:\/\/www.infoworld.com\/wp-admin\/admin-ajax.php","nonce":"0963d0226d"};
</script>
<script id="ajaxload_events-js-extra">
var ajaxload_event_params = {"ajaxurl":"https:\/\/www.infoworld.com\/wp-admin\/admin-ajax.php","nonce":"d6a56a8a13"};
</script>
<script type="text/javascript" src="https://www.infoworld.com/_static/??-eJyl0N0KwjAMBeAXMtYf5rwRnyVt6tbZtaXJnL69dRdDQRH0KhA4Xw5RYwITg9ggynhXBvQDJD80LrBy1IC0LhMkzHJT5FgUm+ySsDrlKUegMwZKkQW0j+a87HihnlhpbW+LNYLeaDCt8wTT7pXDDq8+IkGDYsvB4vEnqtR6WBrZvqP0EMjbH8Nzj38azIi9lNRH5dtLUirJY39Y1/VuW1X7Vd3dAaFTn/M=" ></script><script src="https://www.infoworld.com/wp-content/themes/idg-b2b-base-theme/lib/scripts/class.ConsentManager.js?ver=1.0.1" id="enqueued-script-consent-manager-js"></script>
<script id="enqueued-script-consent-manager-js-after">
(function(){
        //todo put somewhere common as needed elsewhere in other tickets.
        //look for the cookie for content pass
        const isContentPassCookiePresent = function () {
            const data = (document.cookie.match(/^(?:.*;)?\s*_cpauthhint\s*=\s*([^;]+)(?:.*)?$/) || [,null])[1];  //eslint-disable-line
            if (data) return true;
            return false;
        };
        //fire the admiral script wrapped in consent or not
        const fireScript = function(isConsentRequired){
            window.admiral = window.admiral || function() {(admiral.q = admiral.q || []).push(arguments)};
            window.admiral('targeting', 'set', 'story_type', '');
            window.admiral('targeting', 'set', 'is_article', 'no');

            if(isConsentRequired){
                document.addEventListener('consentManagerReady', () => {
                    if(consentManager.consentedAll === true){
                        console.log('++Admiral firing - with consent');
                        !(function(Y,_name,D,A,U){U=function(){(U.q=U.q||[]).push(arguments)},Y[_name=D(D(_name))]=Y[_name]||U,Y[_name].v=Y[_name].v||3,Y[_name].s="3"})(window,'%61d%25%36%64%256%39%25%372%25%361%6c',decodeURI);!(function(Y,D,A,U,M,s,N,z){s=function(r,s){return r<2&&s};try{D[A]=D[A]||function(Y){Y?N[Y]=!0:s()},N=D[A]}catch(K){return void s()}!(function Q(D,A,t,G){function w(){try{if(!0===N[t&&t.src||A])return}catch(K){return void s()}t&&(t.remove(),t=null),clearTimeout(z),!D&&A&&(A+=-1===A.indexOf("?")?"?r=1":"&r=1"),(A=s(++D,A))&&Q(D,A)}t=Y.createElement(U),G=Y.getElementsByTagName(U)[0],t.async=1,t.src=A,z=setTimeout(w,6e3),t[M]("error",w),t[M]("load",w),G.parentNode.insertBefore(t,G)})(0,"https://coloradoserves.com/static/lecdn96ha_4rr.app.js")})(document,window,"QS01QUY4RUI2NENDQTk4MzZCNkE2OUNDNkYtMTg","script","addEventListener",{});;
!(function(Y,D,A,U,M,s,N,z,K,Q,t,_name,G,w,O,F,L,p,H,P,R,m){_name=(t=function(Y){return D(D(Y))})('%25%361dm%25%36%39%72%2561l'),G=Y.localStorage,w=Y.sessionStorage,O=t('%255%66%2561d%6d%72lc%25%36%62%25%376%25%370'),L=Y.location;try{0===document.referrer.indexOf(L.origin)?(F=new URLSearchParams(L.search)).get(t('%255f%256%31%25%36%33%25%372%69'))?((p=F.get(t('%25%35f%61%2563%74')))===t('%256%35%257%38%74%2565%25%36%65%64')?H=[[_name+"-extended","true"||_name]]:p===t('%73%2568%61%70e')&&(H=[[_name+"-shaped","true"||_name]]),H&&(w[O]=JSON.stringify(H))):H=JSON.parse(w[O]||"[]"):delete w[O]}catch(e){H=[]}function n(D,A){try{D=JSON.parse(G["_aQS01QUY4RUI2NENDQTk4MzZCNkE2OUNDNkYtMTg"]||"{}").lgk||[]}catch(e){D=[]}H&&(D=D.concat(H)),D&&D.length&&(A=Y[P].pubads())&&D.forEach((function(Y){Y&&Y[0]&&A.setTargeting(Y[0],Y[1]||"")}))}P=t('%67%25%36fo%256%37l%25%36%35%74%256%31%25%367');try{m=(R=Y[P]=Y[P]||{}).cmd=R.cmd||[],typeof R.pubads===A?n():typeof m.unshift===A?m.unshift(n):m.push(n)}catch(e){}})(window,decodeURI,"function");;
                    }else{
                        console.warn('++Admiral not firing - consent all='+consentManager.consentedAll);
                    }
                });
            }else{
                console.log('++Admiral firing - no consent needed');
                !(function(Y,_name,D,A,U){U=function(){(U.q=U.q||[]).push(arguments)},Y[_name=D(D(_name))]=Y[_name]||U,Y[_name].v=Y[_name].v||3,Y[_name].s="3"})(window,'%61d%25%36%64%256%39%25%372%25%361%6c',decodeURI);!(function(Y,D,A,U,M,s,N,z){s=function(r,s){return r<2&&s};try{D[A]=D[A]||function(Y){Y?N[Y]=!0:s()},N=D[A]}catch(K){return void s()}!(function Q(D,A,t,G){function w(){try{if(!0===N[t&&t.src||A])return}catch(K){return void s()}t&&(t.remove(),t=null),clearTimeout(z),!D&&A&&(A+=-1===A.indexOf("?")?"?r=1":"&r=1"),(A=s(++D,A))&&Q(D,A)}t=Y.createElement(U),G=Y.getElementsByTagName(U)[0],t.async=1,t.src=A,z=setTimeout(w,6e3),t[M]("error",w),t[M]("load",w),G.parentNode.insertBefore(t,G)})(0,"https://coloradoserves.com/static/lecdn96ha_4rr.app.js")})(document,window,"QS01QUY4RUI2NENDQTk4MzZCNkE2OUNDNkYtMTg","script","addEventListener",{});;
!(function(Y,D,A,U,M,s,N,z,K,Q,t,_name,G,w,O,F,L,p,H,P,R,m){_name=(t=function(Y){return D(D(Y))})('%25%361dm%25%36%39%72%2561l'),G=Y.localStorage,w=Y.sessionStorage,O=t('%255%66%2561d%6d%72lc%25%36%62%25%376%25%370'),L=Y.location;try{0===document.referrer.indexOf(L.origin)?(F=new URLSearchParams(L.search)).get(t('%255f%256%31%25%36%33%25%372%69'))?((p=F.get(t('%25%35f%61%2563%74')))===t('%256%35%257%38%74%2565%25%36%65%64')?H=[[_name+"-extended","true"||_name]]:p===t('%73%2568%61%70e')&&(H=[[_name+"-shaped","true"||_name]]),H&&(w[O]=JSON.stringify(H))):H=JSON.parse(w[O]||"[]"):delete w[O]}catch(e){H=[]}function n(D,A){try{D=JSON.parse(G["_aQS01QUY4RUI2NENDQTk4MzZCNkE2OUNDNkYtMTg"]||"{}").lgk||[]}catch(e){D=[]}H&&(D=D.concat(H)),D&&D.length&&(A=Y[P].pubads())&&D.forEach((function(Y){Y&&Y[0]&&A.setTargeting(Y[0],Y[1]||"")}))}P=t('%67%25%36fo%256%37l%25%36%35%74%256%31%25%367');try{m=(R=Y[P]=Y[P]||{}).cmd=R.cmd||[],typeof R.pubads===A?n():typeof m.unshift===A?m.unshift(n):m.push(n)}catch(e){}})(window,decodeURI,"function");
            }
        };
        const isEu = IDG?.isEuVisitor === '1';
        //const isCPEnabledOnSite = IDG?.isCPEnabled === '1';
        const isCPActiveOnGeo = IDG?.isCPActiveOnThisGeo === '1';
        const isCPCookiePresent = isContentPassCookiePresent();

        let isConsentRequired = true;
        if(isEu){
            if(isCPActiveOnGeo){
                if(isCPCookiePresent){
                    ;//consent needed
                }else{
                    isConsentRequired = false;
                }
            }else if ('SE' === IDG?.geolocation) {
                //hack job for SE as they dont have Reject ALL
                isConsentRequired = false;
            }else{
                ;//consent needed
            }
        }else{
            ;// check consent but if GPP or ROW will just fall through
        }
        console.log('++Admiral isEu=',isEu,'geo',IDG?.geolocation,'isCPActiveOnGeo=',isCPActiveOnGeo,'isCPCookiePresent=',isCPCookiePresent,'isConsentRequired=',isConsentRequired);
        fireScript(isConsentRequired);
    })();
document.addEventListener("consentManagerReady", () => {
    const vendors = ["Miso Technologies, Inc", "Miso"];
    const hasConsentMiso = consentManager.checkConsentByVendors(vendors);
    const site = foundry_get_site(); // e.g., "cio.com"

    if (hasConsentMiso.some(vendor => !vendor["Has Consent"])) return;

    console.log("[MISO SCRIPT] Consent given for Miso. Loading script...");

    const initMisoSearchAnnouncements = () => {
	if (
		document.querySelector(".section-block--announcementbar") ||
		window.innerWidth <= 992 ||
		!foundry_is_publisher(["cio", "nww", "cw", "iw", "cso"]) ||
		!foundry_is_language(["en", "de"])
	) return;

	const contentSwitch = {
        iw: `
			<div class="section-block--announcementbar iw-search">
				<p>
					🚀 The new InfoWorld.com hybrid search: 🔍 Explore InfoWorld content smarter, faster and AI powered. ✨
					<a href="/search/" style="font-weight: 600;">Try now!</a>
				</p>
			</div>
		`,
		cio: `
			<div class="section-block--announcementbar cio-search">
				<p>
					🚀 The new CIO.com hybrid search: 🔍 Explore CIO content smarter, faster and AI powered. ✨
					<a href="/search/" style="font-weight: 600;">Try now!</a>
				</p>
			</div>
		`,
		nww: `
			<div class="section-block--announcementbar nww-search">
				<p>
					🚀 The new NetworkWorld.com hybrid search: 🔍 Explore NetworkWorld content smarter, faster and AI powered. ✨
					<a href="/search/" style="font-weight: 600;">Try now!</a>
				</p>
			</div>
		`,
        cw: `
			<div class="section-block--announcementbar cw-search">
				<p>
					🚀 The new Computerworld.com hybrid search: 🔍 Explore Computerworld content smarter, faster and AI powered. ✨
					<a href="/search/" style="font-weight: 600;">Try now!</a>
				</p>
			</div>
		`,
        cso: `
			<div class="section-block--announcementbar cso-search"></div>
		`
	};

	const sharedStyles = `
		<style>
            body.theme-cso .section-block--announcementbar,
            html[data-lang="de"] body.theme-cio .section-block--announcementbar,
            html[data-lang="de"] body.theme-cw .section-block--announcementbar {
                display: none;
            }

			.section-block--announcementbar {
                text-align: center;
                box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
                padding: 12px 0;
                position: relative;
                z-index: 1000;
                margin-top: -41.5px;
                opacity: 0;
                transition:
                    margin-top 0.3s ease-in-out 100ms,
                    opacity 0.3s ease-in-out 100ms;
            }

			.section-block--announcementbar p {
				line-height: 1;
				margin: 0;
				padding: 0;
				font-size: 14.44px;
			}
			.section-block--announcementbar button {
				cursor: pointer;
				font-weight: 500;
			}
			@media (max-width: 992px) {
                .section-block--announcementbar {
                    display: none;
                }
            }
			@media (min-width: 992px) {
                .section-block--announcementbar--visible {
                    margin-top: 0;
                    opacity: 1;
                }
			}
		</style>
	`;

	const publisher = foundry_get_publisher();
	const htmlContent = contentSwitch[publisher];

	if (!htmlContent || !document.body) return;

	document.body.insertAdjacentHTML("afterbegin", htmlContent + sharedStyles);
    const bar = document.querySelector(".section-block--announcementbar");

    if (bar && !foundry_is_publisher("cso") && (site !== 'computerwoche.de' && site !== 'cio.de')) {
        requestAnimationFrame(() => {
            bar.classList.add("section-block--announcementbar--visible");
        });
    }

    document.querySelectorAll('use').forEach(use => {
        const ref = use.getAttribute('href') || use.getAttribute('xlink:href');

        if (ref === '#icon-magnifying-glass') {
            use.setAttribute('href', '#icon-search-ai');
            use.setAttributeNS(
                'http://www.w3.org/1999/xlink',
                'href',
                '#icon-search-ai'
            );
        }
    });
    
	console.log("[MISO SCRIPT] Conditions met, initializing Miso search announcements.");
};


    initMisoSearchAnnouncements();
});

        document.addEventListener('consentManagerReady', () => {
            const hasConsentYouTube = consentManager.checkConsentByVendors([
                'YouTube',
                'YT'
            ]);

            if (hasConsentYouTube.some(vendor => vendor['Has Consent'] === false)) {
                console.log('[YOUTUBE SCRIPT] Consent not given for YouTube.');
            } else {
                console.log('[YOUTUBE SCRIPT] Consent given for YouTube. Loading script...');
            }
        });
        

        document.addEventListener('consentManagerReady', () => {
            const hasConsentGAM = consentManager.checkConsentByVendors([
                'Google Ad Manager',
                'GAM'
            ]);

            if (hasConsentGAM.some(vendor => vendor['Has Consent'] === false)) {
                console.log('[GAM SCRIPT] Consent not given for GAM.');
            } else {
                console.log('[GAM SCRIPT] Consent given for GAM. Loading script...');
            }
        });
        

        document.addEventListener('consentManagerReady', () => {
            const hasConsentGoogleFonts = consentManager.checkConsentByVendors([
                'Google Fonts',
                'Google Web Fonts'
            ]);

            if (hasConsentGoogleFonts.some(vendor => vendor['Has Consent'] === false)) {
                console.log('[GOOGLE FONTS SCRIPT] Consent not given for Google Fonts.');
            } else {
                console.log('[GOOGLE FONTS SCRIPT] Consent given for Google Fonts. Loading script...');
            }
        });
        

        document.addEventListener('consentManagerReady', () => {
            const hasConsentAdobeTypekit = consentManager.checkConsentByVendors([
                'Adobe Typekit'
            ]);

            if (hasConsentAdobeTypekit.every(vendor => vendor['Has Consent'] === true)) {
                if (foundry_is_edition('kr')) {
                    const link = document.createElement('link');
                    link.rel = 'stylesheet';
                    link.href = 'https://use.typekit.net/ihi5tse.css';
                    document.head.appendChild(link);
                }
            }
        });
        
    (function(){
        document.addEventListener('consentManagerReady', () => {
            const key = 's1gr1xsv4j';
            const debug = consentManager.debug;
            if ( ! (key && key.length > 3)){
                console.warn('[MS Clarity] is enabled but key is too short key=' + key);
                return;
            }

            const hasConsent = consentManager.checkConsentByVendor('Microsoft Clarity');
            if (debug) console.log('[MS CLARITY] hasConsent =',hasConsent );
            if(hasConsent){
                (function(c,l,a,r,i,t,y){
                    c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
                    t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
                    y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
                })(window, document, "clarity", "script", key);

                if (debug) console.log('[MS CLARITY] checkClarityLoaded allowCookies= typeof window.clarity=', (typeof window.clarity) );
                window.clarity("consent");
            }
        });
    })();

        document.addEventListener('consentManagerReady', () => {
            const vendors = ['Subscribers'];
            const hasConsentSubscribers = consentManager.checkConsentByVendors(vendors);
            
            if (hasConsentSubscribers.some(vendor => vendor['Has Consent'] === false)) {
                return;

            } else {

                if (foundry_is_language('en')) {
                    console.log('Language is English');
                    // subscribers english ..
                }
                
                if (foundry_is_edition('kr')) {
                    console.log('Edition is Korean');
                    // subscribers in korean ..
                }
                
                if (foundry_is_edition('ja')) {
                    console.log('Edition is Japanese');
                    // subscribers in japanese ..
                }

            }
        });
</script>
<script type="text/javascript" src="https://www.infoworld.com/_static/??-eJylzzELwkAMBeA/5DUq2OogDg6duoi459p4ptxdShMU/71FwV27hvc+XuAxuFayUTawGyVS4C44v/bOo5J73yCyB21HHkyhlTRInvLuKmI0Fr0u4HclompRkzWYMcxTToRdIyP9aXz/yXjngMaS56w5SwiRjp/mhZU9R7bnRB7SflVV5bLabctN/wJW3Iqu" ></script>
</body>
</html>
