CINXE.COM
InfoWorld | Technology insight for the enterprise
<!doctype html> <html lang="en-US" data-brand="iw"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="https://gmpg.org/xfn/11"> <meta name='robots' content='max-image-preview:large, index,follow' /> <style> :root { --advertisement-label-text: "advertisement"; } </style> <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="alternate" type="application/rss+xml" title="InfoWorld » Feed" href="https://www.infoworld.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="InfoWorld » Comments Feed" href="https://www.infoworld.com/comments/feed/" /> <link rel='stylesheet' id='wp-block-library-css' href='https://www.infoworld.com/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' media='all' /> <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='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='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=1731995985' 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=1731995985' 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=1731995985' 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=1731995985' 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=1731995986' media='all' /> <script type="text/javascript" src="https://www.infoworld.com/wp-includes/js/dist/hooks.min.js?m=1732206009g" ></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=1731995985g" ></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":"165662","property_id":"9220","privacy_manager_id_amp":"172450","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":"1098540","privacy_manager_uuid":"5dfa75f712068b42714ed7b8","property_id":"16077","href_amp":"https:\/\/ccpa.amp.infoworld.com"}},"gtm":{"account":{"id":"GTM-5JGZ3LH","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"}],"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"}],"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"},{"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"}},"ias":{"account":{"pub_id":""}},"index_exchange":{"config":{"id":""}},"permutive":{"account":{"workspace_id":"f5b3be27-f789-4ef1-8867-37c67da5b361","api_key":"84c7e805-5ce9-41f4-b988-3529488bab1c"}},"outbrain":[],"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"}},"io_script":{"config":{"id":"OmWzZwn3Mi5H","io_amp_id":"45650"}}},"GPT":{"ad_slot_name":"homepage_door","prefix":"\/8456\/IDG.G_B2B_InfoWorld.com\/","targeting":{"articleId":"100007471","author":"M\u00fcller Magnus","browser":"Site24x7","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":"SG","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":1732422810,"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":"2024-11-22","dateTimePublished":"2024-06-26T07:16:48-04:00","dateTimeUpdate":"2024-11-22T15:14:11-05:00","dateFirstPublished":false,"dateFirstTimePublished":false,"daysSincePublished":"","daysSinceUpdated":"1","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":"","articleLocale":"","isInsiderContent":"false","insiderSignedIn":"true","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}}); // GDPR Stub 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(){for(var t,e,o=[],n=window,r=n;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=n.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=new 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(t){}else o=t.data;var n="object"===_typeof(o)?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))}(); 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],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],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:p,parameter:s}),p({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:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.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")); // CCPA Stub (function () { var e = false; var c = window; var t = document; function r() { if (!c.frames["__uspapiLocator"]) { if (t.body) { var a = t.body; var e = t.createElement("iframe"); e.style.cssText = "display:none"; e.name = "__uspapiLocator"; a.appendChild(e) } else { setTimeout(r, 5) } } } r(); function p() { var a = arguments; __uspapi.a = __uspapi.a || []; if (!a.length) { return __uspapi.a } else if (a[0] === "ping") { a[2]({ gdprAppliesGlobally: e, cmpLoaded: false }, true) } else { __uspapi.a.push([].slice.apply(a)) } } function l(t) { var r = typeof t.data === "string"; try { var a = r ? JSON.parse(t.data) : t.data; if (a.__cmpCall) { var n = a.__cmpCall; c.__uspapi(n.command, n.parameter, function (a, e) { var c = { __cmpReturn: { returnValue: a, success: e, callId: n.callId } }; t.source.postMessage(r ? JSON.stringify(c) : c, "*") }) } } catch (a) { } } if (typeof __uspapi !== "function") { c.__uspapi = p; __uspapi.msgHandler = l; c.addEventListener("message", l, false) } })(); // Google Tag Manager (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-5JGZ3LH'); // 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) }); </script> <script> 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":"https:\/\/www.infoworld.com\/","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=1731995985" id="third-party-integrations-script-js"></script> <script type="text/javascript" src="https://www.infoworld.com/_static/??-eJydzEEKhDAMAMAPGYMsoj2Ib+k2RVNqDUlE/P36hj3NbfAWSGfz3BxT5Rc4LpB6bdwMmTbwnZVAovqDxOZoSVncsNxS45O1L9bh/41o/jJBJHuj9ViG6TOEMIZ5LD9ohTnu" ></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/??-eJx9jMEKAjEMRH/IbGoFxYP4Lds2rClNd21SFv/eIh48CQMPhjeD+wZcY+mJFPPIs1N7fTEJ1ynrAf9JILy02ehXjms1qob2IBkTTgsEHyDMSvDpMLEaamy8mWLsaquA9GKsVCjaOLrL7Xg5ee/Ozl3zG9IlPYo=" ></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","description":"Technology insight for the enterprise","memberOf":{"@type":"Organization","name":"Foundry"},"url":"https:\/\/www.infoworld.com"}]</script> <style> :root { /* Nativo Loader */ --nativo-loader-color: #424a45; --sponsored-links--border-bottom-color: #9d9490; --sponsored-container--background-color: #fff; /* Advertisement */ --advertisement-label-text: "advertisement"; } </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: "fira-sans", sans-serif; --host-speaker-profile-title-description-font-family: "myriad-pro",sans-serif; --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: "fira-sans", sans-serif; --agenda-event-name-font-family: "myriad-pro",sans-serif; --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: "myriad-pro", sans-serif; --event-description-text-color: #322a2a; --who-should-attend-heading: "fira-sans", sans-serif; --who-should-attend-text: "myriad-pro", sans-serif; /* Event Hero Block */ --fira-sans-fonts: "fira-sans", sans-serif; --fira-sans-regular: 400; --fira-sans-extrabold: 800; --fira-sans-semibold: 600; /* Event Index Page */ --border-color: #75757a; --filter-background-color: #F6F6F6; --base--font-color: #322a2a; --index-more-events-title-color: #141414; --myraid-font-family: "myriad-pro",sans-serif; --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: url(""); } </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: "fira-sans", sans-serif; --faq-title-description-font-family: "myriad-pro",sans-serif; --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 */ --nav-menu-error: #b32d2e; /* Promo Unit Block HR color */ --promo-unit-hr: #d55d5d; /* Promo Unit Block Title After Color */ --promo-unit-title-after: #d04949; /* Promo Unit Block Title After Color */ --promo-unit-title: #322a2a; /* Promo Unit Block Title before Color */ --promo-unit-before-one: #e42e22; /* Promo Unit Block Title before Color */ --promo-unit-before-two: #f3f5f6; /* Promo Unit Block Title before Color */ --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; /** Block - Product chart */ --product-chart--information-value--font-color: #2A7DA7; --product-chart--review-link--font-color: #2A7DA7; --product-chart--description--font-color: #4D4D4D; --product-chart--separator--background-color: #404040; /** Block - Product chart Pros and Cons */ --product-chart--pros-cons-title--font-color: #111111; --product-chart--pros-cons-border: 1px solid #ccc; /* 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="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 page-template page-template-homepage page-template-homepage-php page page-id-100007471 static-header theme-iw"> <svg id="icon-sprite" style="position: absolute; width: 0; height: 0; overflow: hidden;" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"> <defs> <g id="icon-apple-podcasts"> <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"/> </g> <g id="icon-arrow-up-right-from-square"> <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"/> </g> <g id="icon-calendar"> <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"/> </g> <g id="icon-caret-down"> <path d="m6 8 4.3 7.1c.8 1.3 2.7 1.3 3.4 0L18 8H6Z" fill="currentColor"/> </g> <g id="icon-circle-bars"> <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"/> </g> <g id="icon-circle-chevron-down"> <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 2ZM8.326 9.97l3.536 3.536a.25.25 0 0 0 .353 0l3.536-3.535 1.06 1.06-3.535 3.536a1.75 1.75 0 0 1-2.475 0L7.266 11.03l1.06-1.06Z" fill="currentColor"/> </g> <g id="icon-circle-chevron-left"> <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"/> </g> <g id="icon-circle-chevron-right"> <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"/> </g> <g id="icon-circle-chevron-up"> <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 2Zm3.752 12.53-3.536-3.536a.25.25 0 0 0-.353 0l-3.536 3.535-1.06-1.06 3.535-3.536a1.75 1.75 0 0 1 2.475 0l3.536 3.536-1.061 1.06Z" fill="currentColor"/> </g> <g id="icon-circle-xmark"> <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"/> </g> <g id="icon-chevron-down"> <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"/> </g> <g id="icon-chevron-left"> <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"/> </g> <g id="icon-chevron-right"> <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"/> </g> <g id="icon-chevron-up"> <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"/> </g> <g id="icon-envelope"> <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-2V7Zm4.416 1.376-.624-.416-.832 1.248.624.416 4.89 3.26a2.75 2.75 0 0 0 3.051 0l4.891-3.26.624-.416-.832-1.248-.624.416-4.89 3.26c-.42.28-.968.28-1.387 0l-4.891-3.26Z" fill="currentColor"/> </g> <g id="icon-facebook"> <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.226 1.27-2.995 2.14-5.318 2.328v-5.35h2.04l.39-2.61h-2.43v-1.695c0-.714.343-1.41 1.43-1.41H15.5v-2.22S14.495 7 13.537 7c-2.001 0-3.31 1.25-3.31 3.514v1.992H8v2.61h2.227v5.25c-1.93-.305-3.43-1.114-4.51-2.232C4.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.5Zm-.472 18.492C5.516 21.787 2 17.654 2 12 2 6.1 5.6 2 12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10-.147 0-.293-.002-.437-.007l-.016.007-.019-.008Z" fill="currentColor"/> </g> <g id="icon-globe"> <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"/> </g> <g id="icon-google-podcasts"> <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"/> </g> <g id="icon-instagram"> <path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H8A3.5 3.5 0 0 0 4.5 8v8A3.5 3.5 0 0 0 8 19.5h8a3.5 3.5 0 0 0 3.5-3.5V8A3.5 3.5 0 0 0 16 4.5ZM8 3a5 5 0 0 0-5 5v8a5 5 0 0 0 5 5h8a5 5 0 0 0 5-5V8a5 5 0 0 0-5-5H8Zm6.237 6.8C13.794 9.344 13.082 9 12 9c-1.11 0-1.818.347-2.25.796C9.308 10.253 9 10.976 9 12c0 .986.31 1.714.766 2.187.448.465 1.162.813 2.234.813s1.786-.348 2.234-.813C14.69 13.714 15 12.986 15 12c0-1.014-.313-1.738-.763-2.2ZM16.5 12c0-2.655-1.665-4.5-4.5-4.5-2.88 0-4.5 1.845-4.5 4.5 0 2.61 1.665 4.5 4.5 4.5s4.5-1.89 4.5-4.5ZM18 7c0-.59-.37-1-1-1-.64 0-1 .41-1 1 0 .58.37 1 1 1s1-.42 1-1Z" fill="currentColor"/> </g> <g id="icon-layer-group"> <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"/> </g> <g id="icon-linked-in"> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.093 4a2.125 2.125 0 0 0-2.124 2.122c0 1.17.953 2.122 2.124 2.122 1.17 0 2.122-.952 2.122-2.122S7.263 4 6.093 4Zm1.61 5.14H4.486a.259.259 0 0 0-.258.26v10.34c0 .143.115.258.258.258h3.219a.259.259 0 0 0 .259-.258V9.4a.259.259 0 0 0-.26-.26Zm5.358.93c.58-.631 1.535-1.187 2.828-1.187 3.625 0 4.114 2.62 4.114 5.184v5.672a.259.259 0 0 1-.259.259h-3.213a.259.259 0 0 1-.258-.259v-5.028c0-1.407-.104-2.484-1.413-2.484-1.202 0-1.67.672-1.67 2.396v5.116a.259.259 0 0 1-.259.258H9.72a.259.259 0 0 1-.26-.258V9.399c0-.143.117-.26.26-.26h3.082c.143 0 .259.117.259.26v.671Z" fill="currentColor"/> </g> <g id="icon-magnifying-glass"> <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"/> </g> <g id="icon-play"> <path d="m7 20 10.002-6.155c1.374-.846 1.374-2.844 0-3.69L7 4v16Z" fill="currentColor"/> </g> <g id="icon-podcast"> <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"/> </g> <g id="icon-print"> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 3.5v4H6V2h12v5.5h-1.5v-4h-9ZM18 18h2a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2v4h12v-4Zm0-1.5h2a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5H4a.5.5 0 0 0-.5.5v5a.5.5 0 0 0 .5.5h2V14h12v2.5Zm-1.5 0v-1h-9v5h9v-4Z" fill="currentColor"/> </g> <g id="icon-quote"> <path d="M0 15.224v.147C0 18.375 2.32 20.5 5.366 20.5c3.045 0 5.22-2.125 5.22-5.13v-.146c0-2.345-1.305-4.103-3.408-4.836L9.208 3.5H3.77l-2.755 7.62C.29 12.88 0 14.126 0 15.225Zm13.414 0v.147c0 3.004 2.32 5.129 5.365 5.129 3.046 0 5.221-2.125 5.221-5.13v-.146c0-2.345-1.305-4.103-3.408-4.836l2.03-6.888h-5.438l-2.755 7.62c-.725 1.76-1.015 3.005-1.015 4.104Z" fill="currentColor"/> </g> <g id="icon-reddit"> <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 2Zm4.693 5.963a.954.954 0 0 0-.94-.963.895.895 0 0 0-.493.145.93.93 0 0 0-.339.396l-2.183-.476a.257.257 0 0 0-.179.032.264.264 0 0 0-.105.152l-.665 3.226c-1.402.044-2.658.466-3.564 1.147a1.315 1.315 0 0 0-.907-.378c-.727 0-1.318.607-1.318 1.353 0 .261.073.517.212.736.138.22.336.393.569.498-.021.13-.033.271-.033.412C6.748 16.322 9.1 18 12.011 18c2.91 0 5.262-1.678 5.262-3.757 0-.134-.01-.268-.032-.4.432-.217.759-.694.759-1.246 0-.746-.59-1.353-1.318-1.353-.358 0-.675.14-.907.379-.897-.66-2.14-1.094-3.511-1.148l.6-2.89 1.952.422c.013.25.121.484.3.654a.925.925 0 0 0 1.306-.03.977.977 0 0 0 .27-.668Zm-7.709 5.598c0-.53.422-.964.94-.964.516 0 .937.433.937.964 0 .53-.421.963-.938.963a.953.953 0 0 1-.939-.963Zm4.134 0c0-.531.421-.964.938-.964.517 0 .939.434.939.964s-.422.963-.939.963a.953.953 0 0 1-.938-.963Zm-3.343 2.187a.243.243 0 0 1 .268-.055c.03.013.057.031.08.055.4.412 1.265.563 1.888.563.622 0 1.476-.152 1.887-.563a.245.245 0 0 1 .348 0 .283.283 0 0 1-.021.357c-.643.66-1.867.704-2.225.704-.358 0-1.592-.055-2.225-.704a.258.258 0 0 1 0-.357Z" fill="currentColor"/> </g> <g id="icon-rss"> <path d="M5.5 17c.945 0 1.5.615 1.5 1.5 0 .87-.555 1.5-1.5 1.5S4 19.37 4 18.5c0-.885.54-1.5 1.5-1.5Z" fill="currentColor"/> <path d="M18.405 20v.05H19.159V20A15.159 15.159 0 0 0 4 4.84h-.05V5.596H4a14.405 14.405 0 0 1 14.405 14.404Z" fill="currentColor" stroke="currentColor" stroke-width=".5"/> <path d="M12.06 19.997v.1h.568v-.1A8.628 8.628 0 0 0 4 11.37h-.1v.569H4a8.06 8.06 0 0 1 8.06 8.06Z" fill="currentColor" stroke="currentColor" stroke-width=".5"/> </g> <g id="icon-soundcloud"> <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"/> </g> <g id="icon-spotify"> <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 2Zm3.355 14.164a.56.56 0 1 0 .586-.958c-2.372-1.45-5.313-1.787-8.741-1.003a.56.56 0 1 0 .25 1.094c3.132-.716 5.792-.424 7.905.867Zm.908-2.405a.702.702 0 0 0 .735-1.196c-2.779-1.707-6.842-2.188-10.11-1.196a.703.703 0 0 0 .407 1.343c2.862-.87 6.55-.438 8.968 1.049ZM6.867 9.935c2.77-.84 7.555-.682 10.456 1.04a.842.842 0 1 0 .86-1.447c-3.34-1.983-8.625-2.17-11.804-1.204a.842.842 0 0 0 .488 1.61Z" fill="currentColor"/> </g> <g id="icon-twitter"> <path d="M7.43644 0H0.0554206L9.23954 13.3075L0 24H2.56169L10.3768 14.9554L16.6191 24H24.0001L14.4803 10.2064L23.2993 0H20.7378L13.3428 8.55825L7.43644 0ZM11.6249 13.3737L3.58747 1.92749H6.256L20.4505 22.1423H17.7819L11.6249 13.3742V13.3737Z" fill="currentColor"/> </g> <g id="icon-user"> <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"/> </g> <g id="icon-video"> <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"/> </g> <g id="icon-youtube"> <path d="M12 4.856c-.603 0-5.922.012-7.417.407A3.06 3.06 0 0 0 2.41 7.41C2.005 8.91 2 11.874 2 11.998c0 .125.005 3.088.412 4.59a3.06 3.06 0 0 0 2.172 2.147c1.494.394 6.814.406 7.415.406s5.922-.012 7.417-.408a3.06 3.06 0 0 0 2.172-2.146c.407-1.503.412-4.464.412-4.589 0-.124-.005-3.087-.412-4.588a3.06 3.06 0 0 0-2.172-2.147c-1.494-.395-6.814-.407-7.415-.407h-.002Zm0 12.782c-1.58 0-5.92-.065-7.023-.357A1.54 1.54 0 0 1 3.882 16.2c-.356-1.312-.361-4.172-.361-4.2 0-.03.005-2.89.36-4.202a1.54 1.54 0 0 1 1.096-1.082c1.102-.291 5.443-.356 7.022-.356 1.58 0 5.92.065 7.023.356.534.142.954.556 1.095 1.082.356 1.313.36 4.173.36 4.201 0 .029-.004 2.89-.36 4.201a1.541 1.541 0 0 1-1.095 1.082c-1.103.292-5.444.357-7.023.357Z" fill="currentColor"/> <path d="m14.41 11.997-3.598 2.399V9.598l3.599 2.4Z" fill="currentColor" stroke="currentColor"/> </g> <g id="icon-xing" > <path d="M6.08293 6.85766C5.93537 6.85766 5.81119 6.90951 5.74854 7.01091C5.68394 7.11555 5.69372 7.25044 5.76265 7.38695L7.42041 10.2566C7.42321 10.2621 7.42321 10.2656 7.42041 10.2706L4.81533 14.8677C4.74741 15.003 4.75073 15.139 4.81533 15.2438C4.87789 15.3447 4.98813 15.411 5.13586 15.411H7.5876C7.95412 15.411 8.13101 15.1636 8.2563 14.9375C8.2563 14.9375 10.804 10.4317 10.9032 10.2567C10.8932 10.2406 9.21765 7.31742 9.21765 7.31742C9.09533 7.10008 8.91114 6.85757 8.5351 6.85757L6.08293 6.85766Z" fill="currentColor"/> <path d="M16.3825 3.50025C16.0162 3.50025 15.8575 3.73095 15.726 3.96725C15.726 3.96725 10.4441 13.3342 10.27 13.6418C10.279 13.6584 13.7537 20.033 13.7537 20.033C13.8754 20.2504 14.0632 20.5 14.4388 20.5H16.8876C17.0354 20.5 17.1508 20.4444 17.213 20.3433C17.2784 20.2388 17.2766 20.1005 17.208 19.9644L13.7515 13.6493C13.7499 13.647 13.7491 13.6442 13.7491 13.6413C13.7491 13.6384 13.7499 13.6356 13.7515 13.6333L19.1799 4.03507C19.2482 3.89958 19.2496 3.76138 19.1851 3.65666C19.1225 3.55568 19.0068 3.5 18.859 3.5L16.3825 3.50025Z" fill="currentColor"/> </g> </defs> </svg> <div id="page" class="site"> <header class="header header--bg-iw-black"> <div id="primaryNav" class="container header__container"> <!-- header logo --> <div class="header__logo-container"> <a 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="header__nav"> <!-- primary menu nevigation --> <div class="header__nav-left"> <ul class="header__nav-items"> <li class="header__nav-item"> <button class="header__nav-link" type="button" aria-label="Open topics menu" data-menu-trigger="topics"> <span> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-layer-group"></use> </svg> Topics </span> </button> </li> <li class='header__nav-item'><a class='header__nav-link' href='https://www.infoworld.com/spotlight-ai-in-enterprise/'>Spotlight: AI in Enterprise</a></li><li class='header__nav-item'><a class='header__nav-link' href='https://www.infoworld.com/videos/'>Videos</a></li><li class='header__nav-item'><a class='header__nav-link' href='/newsletters/signup/'>Newsletters</a></li><li class='header__nav-item'><a class='header__nav-link' href='https://us.resources.infoworld.com/'>Resources</a></li> </ul> </div> <!-- right side header navigation --> <div class="header__nav-right"> <button class="header__icon-button" type="button" aria-label="Open search" data-menu-trigger="search" > <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" > <use xlink:href="#icon-magnifying-glass"></use> </svg> </button> <button class="header__main-menu-button header__main-menu-button--mobile" type="button" aria-label="Open main menu" data-menu-trigger="main-mobile"> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-bars"></use> </svg> </button> <button class="header__main-menu-button" type="button" aria-label="Open main menu" data-menu-trigger="main"> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-bars"></use> </svg> </button> </div> <!-- right section menu container --> <div class="header__menu" data-menu="main"> <div class="container container--no-padding header__menu-container"> <button class="header__menu-close-main-button" type="button" aria-label="Close main menu" data-menu-close="main"> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </button> <div class="container grid header__menu-content"><div class="col-12 col-3@lg"><h2 class="header__menu-title header__menu-title--large">About</h2><ul class="header__menu-items"><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/about-us/">About us</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/our-brands/infoworld/">Advertise</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/contact-us/">Contact Us</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/work-here/">Foundry Careers</a></li><li class="header__menu-item"><a class="header__menu-link" href="/newsletters/signup/">Newsletters</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/contact-us/#republication-permissions">Reprints</a></li></ul></div><div class="col-12 col-3@lg"><h2 class="header__menu-title header__menu-title--large">Policies</h2><ul class="header__menu-items"><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/terms-of-service-agreement/">Terms of Service</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/privacy-policy/">Privacy Policy</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/cookie-policy/">Cookie Policy</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/copyright-notice/">Copyright Notice</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/member-preferences/">Member Preferences</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/about-adchoices/">About AdChoices</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/e-commerce-affiliate-relationships/">E-commerce Affiliate Relationships</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/your-california-privacy-rights/">Your California Privacy Rights</a></li></ul></div><div class="col-12 col-3@lg"><h2 class="header__menu-title header__menu-title--large">Our Network</h2><ul class="header__menu-items"><li class="header__menu-item"><a class="header__menu-link" href="https://www.cio.com/">CIO</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.computerworld.com/">Computerworld</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.csoonline.com/">CSO</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.networkworld.com/">Network World</a></li></ul></div><div class="col-12 col-3@lg"><h2 class="header__menu-title header__menu-title--large">More</h2><ul class="header__menu-items"><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/blogs/">Blogs</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/brandposts/">BrandPosts</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/events/">Events</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/videos/">Videos</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/enterprise-buyers-guide/">Enterprise Buyer鈥檚 Guides</a></li></div> </div> </div> </nav> </div> <!-- Topic menu --> <div class="header__menu" data-menu="topics"> <div class="container container--no-padding header__menu-container"> <div class="container grid header__menu-content"> <div class="header__menu-close-button"> <button class="button button--quaternary" type="button" data-menu-close="topics" aria-label="Close topics menu"> <span>Close</span> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </span> </button> </div> <div class='col-12 col-6@lg'> <ul class='header__menu-items header__menu-items--large'><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/analytics/'>Analytics</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/artificial-intelligence/'>Artificial Intelligence</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/generative-ai/'>Generative AI</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/careers/'>Careers</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/cloud-computing/'>Cloud Computing</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/data-management/'>Data Management</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/database/'>Databases</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/emerging-technology/'>Emerging Technology</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/technology-business/'>Technology Industry</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/security/'>Security</a></li></ul></div><div class='col-12 col-6@lg'> <ul class='header__menu-items header__menu-items--large'><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/software-development/'>Software Development</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/microsoft-net/'>Microsoft .NET</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/development-tools/'>Development Tools</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/devops/'>Devops</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/open-source/'>Open Source</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/programming-languages/'>Programming Languages</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/java/'>Java</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/javascript/'>JavaScript</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/python/'>Python</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/enterprise-buyers-guide/'>Enterprise Buyer鈥檚 Guides</a></li></ul></div> </div> </div> </div> <!-- edition menu --> <div class="header__menu" data-menu="location"> <div class="container container--no-padding header__menu-container"> <div class="header__menu-back-button"> <button class="button button--quaternary" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-chevron-left"></use> </svg> </span> <span>Back</span> </button> </div> <div class="container grid header__menu-content"> <div class="header__menu-close-button"> <button class="button button--quaternary" type="button" data-menu-close="location" aria-label="Close location menu"> <span>Close</span> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </span> </button> </div> </div> </div> </div> <div class="header__menu header__menu--inverted" data-menu="search"> <div class="header__menu-container"> <div class="header__menu-back-button"> <button class="button button--quaternary" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-chevron-left"></use> </svg> </span> <span>Back</span> </button> </div> <div class="container header__menu-content"> <div class="header__menu-close-button"> <button class="button button--quaternary" type="button" data-menu-close="search" aria-label="Close search"> <span>Close</span> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </span> </button> </div> <div class="google-programmable-search"> <div class="google-programmable-search__searchbox"> <div class="gcse-searchbox-only" data-resultsUrl="https://www.infoworld.com/search"></div> </div> <div class="grid google-programmable-search__popular-topics-container"> <div class="col-12 google-programmable-search__popular-topics-title"> Popular Topics </div> <div class="col-12 col-6@lg"> <div class='grid grid--cols-6@lg'> <ul class='col-12 col-6@md col-3@lg google-programmable-search__menu-items'><li><a class='google-programmable-search__menu-link' href='https://www.infoworld.com/artificial-intelligence/'>Artificial Intelligence</a></li><li><a class='google-programmable-search__menu-link' href='https://www.infoworld.com/cloud-computing/'>Cloud Computing</a></li></ul><ul class='col-12 col-6@md col-3@lg google-programmable-search__menu-items'><li><a class='google-programmable-search__menu-link' href='https://www.infoworld.com/data-management/'>Data Management</a></li><li><a class='google-programmable-search__menu-link' href='https://www.infoworld.com/software-development/'>Software Development</a></li></ul></div> </div> </div> </div> </div> </div> </div> <div id="primaryNav" class="header__menu" data-menu="main-mobile"> <div class="container container--no-padding header__menu-container"> <button class="header__menu-close-main-button" type="button" aria-label="Close main menu" data-menu-close="main-mobile"> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </button> <div class="container grid header__menu-content"> <div class="col-12"> <ul class="header__menu-items header__menu-items--small"> <li class="header__menu-item"> <button class="header__menu-link" type="button" aria-label="Open search" data-menu-trigger="search"> <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-magnifying-glass"></use> </svg> </span> <span>Search</span> </button> </li> </ul> </div> <div class="col-12"> <ul class="header__menu-items"> <li class="header__menu-item"> <button class="header__menu-link" type="button" aria-label="Open topics menu" data-menu-trigger="topics-mobile"> <span>Topics</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-layer-group"></use> </svg> </span> </button> </li> <li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/spotlight-ai-in-enterprise/'>Spotlight: AI in Enterprise</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/videos/'>Videos</a></li><li class='header__menu-item'><a class='header__menu-link' href='/newsletters/signup/'>Newsletters</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://us.resources.infoworld.com/'>Resources</a></li><li class='header__menu-item'><button class='header__menu-link' type='button' data-menu-trigger='hamburger-100007742'>About</button><li class='header__menu-item'><button class='header__menu-link' type='button' data-menu-trigger='hamburger-100007749'>Policies</button><li class='header__menu-item'><button class='header__menu-link' type='button' data-menu-trigger='hamburger-100007758'>Our Network</button><li class='header__menu-item'><button class='header__menu-link' type='button' data-menu-trigger='hamburger-100007763'>More</button> </ul> </div> </div> </div> </div> <div class="header__menu" data-menu="topics-mobile"> <div class="container container--no-padding header__menu-container"> <div class="header__menu-back-button"> <button class="button button--quaternary" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-chevron-left"></use> </svg> </span> <span>Back</span> </button> </div> <div class="container grid header__menu-content"> <div class="col-12"> <h2 class="header__menu-title"> <span>Topics</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-layer-group"></use> </svg> </h2> <ul class="header__menu-items header__menu-items--small header__menu-items--divider"> <li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/analytics/'>Analytics</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/artificial-intelligence/'>Artificial Intelligence</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/generative-ai/'>Generative AI</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/careers/'>Careers</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/cloud-computing/'>Cloud Computing</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/data-management/'>Data Management</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/database/'>Databases</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/emerging-technology/'>Emerging Technology</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/technology-business/'>Technology Industry</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/security/'>Security</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/software-development/'>Software Development</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/microsoft-net/'>Microsoft .NET</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/development-tools/'>Development Tools</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/devops/'>Devops</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/open-source/'>Open Source</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/programming-languages/'>Programming Languages</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/java/'>Java</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/javascript/'>JavaScript</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/python/'>Python</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/enterprise-buyers-guide/'>Enterprise Buyer鈥檚 Guides</a></li> </ul> </div> </div> </div> </div> <!-- hamburger menu --> <div class="header__menu" data-menu="hamburger-100007742"> <div class="container header__menu-container"> <button class="button button--quaternary header__menu-back-button" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <circle cx="12" cy="12" r="9" stroke="currentColor" /> <path d="m9.976 11.22.312.39-.312-.39Zm4.336 4.39-4.024-3.22-.624.781 4.024 3.22.624-.781Zm-4.024-4 4.024-3.22-.624-.78-4.024 3.219.624.78Zm0 .78a.5.5 0 0 1 0-.78l-.624-.781a1.5 1.5 0 0 0 0 2.342l.624-.78Z" fill="currentColor" /> </svg> Back </button> <div class="grid header__menu-content"> <button class="header__menu-close-button" type="button" aria-label="Close hamburger menu" data-menu-close="hamburger"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path stroke="currentColor" stroke-width="2" d="M1.293 22.506 22.506 1.293M1.707 1.293 22.92 22.506" /> </svg> </button> <div class="col-12 col-2@lg"><h2 class="header__menu-title">About</h2><ul class="header__menu-items header__menu-items--small header__menu-items--divider"><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/about-us/">About us</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/our-brands/infoworld/">Advertise</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/contact-us/">Contact Us</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/work-here/">Foundry Careers</a></li><li class="header__menu-item"><a class="header__menu-link" href="/newsletters/signup/">Newsletters</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/contact-us/#republication-permissions">Reprints</a></li></ul></div> </div> </div> </div> <div class="header__menu" data-menu="hamburger-100007749"> <div class="container header__menu-container"> <button class="button button--quaternary header__menu-back-button" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <circle cx="12" cy="12" r="9" stroke="currentColor" /> <path d="m9.976 11.22.312.39-.312-.39Zm4.336 4.39-4.024-3.22-.624.781 4.024 3.22.624-.781Zm-4.024-4 4.024-3.22-.624-.78-4.024 3.219.624.78Zm0 .78a.5.5 0 0 1 0-.78l-.624-.781a1.5 1.5 0 0 0 0 2.342l.624-.78Z" fill="currentColor" /> </svg> Back </button> <div class="grid header__menu-content"> <button class="header__menu-close-button" type="button" aria-label="Close hamburger menu" data-menu-close="hamburger"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path stroke="currentColor" stroke-width="2" d="M1.293 22.506 22.506 1.293M1.707 1.293 22.92 22.506" /> </svg> </button> <div class="col-12 col-2@lg"><h2 class="header__menu-title">Policies</h2><ul class="header__menu-items header__menu-items--small header__menu-items--divider"><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/terms-of-service-agreement/">Terms of Service</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/privacy-policy/">Privacy Policy</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/cookie-policy/">Cookie Policy</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/copyright-notice/">Copyright Notice</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/member-preferences/">Member Preferences</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/about-adchoices/">About AdChoices</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/e-commerce-affiliate-relationships/">E-commerce Affiliate Relationships</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/your-california-privacy-rights/">Your California Privacy Rights</a></li></ul></div> </div> </div> </div> <div class="header__menu" data-menu="hamburger-100007758"> <div class="container header__menu-container"> <button class="button button--quaternary header__menu-back-button" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <circle cx="12" cy="12" r="9" stroke="currentColor" /> <path d="m9.976 11.22.312.39-.312-.39Zm4.336 4.39-4.024-3.22-.624.781 4.024 3.22.624-.781Zm-4.024-4 4.024-3.22-.624-.78-4.024 3.219.624.78Zm0 .78a.5.5 0 0 1 0-.78l-.624-.781a1.5 1.5 0 0 0 0 2.342l.624-.78Z" fill="currentColor" /> </svg> Back </button> <div class="grid header__menu-content"> <button class="header__menu-close-button" type="button" aria-label="Close hamburger menu" data-menu-close="hamburger"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path stroke="currentColor" stroke-width="2" d="M1.293 22.506 22.506 1.293M1.707 1.293 22.92 22.506" /> </svg> </button> <div class="col-12 col-2@lg"><h2 class="header__menu-title">Our Network</h2><ul class="header__menu-items header__menu-items--small header__menu-items--divider"><li class="header__menu-item"><a class="header__menu-link" href="https://www.cio.com/">CIO</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.computerworld.com/">Computerworld</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.csoonline.com/">CSO</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.networkworld.com/">Network World</a></li></ul></div> </div> </div> </div> <div class="header__menu" data-menu="hamburger-100007763"> <div class="container header__menu-container"> <button class="button button--quaternary header__menu-back-button" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <circle cx="12" cy="12" r="9" stroke="currentColor" /> <path d="m9.976 11.22.312.39-.312-.39Zm4.336 4.39-4.024-3.22-.624.781 4.024 3.22.624-.781Zm-4.024-4 4.024-3.22-.624-.78-4.024 3.219.624.78Zm0 .78a.5.5 0 0 1 0-.78l-.624-.781a1.5 1.5 0 0 0 0 2.342l.624-.78Z" fill="currentColor" /> </svg> Back </button> <div class="grid header__menu-content"> <button class="header__menu-close-button" type="button" aria-label="Close hamburger menu" data-menu-close="hamburger"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path stroke="currentColor" stroke-width="2" d="M1.293 22.506 22.506 1.293M1.707 1.293 22.92 22.506" /> </svg> </button> <div class="col-12 col-2@lg"><h2 class="header__menu-title">More</h2><ul class="header__menu-items header__menu-items--small header__menu-items--divider"><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/blogs/">Blogs</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/brandposts/">BrandPosts</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/events/">Events</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/videos/">Videos</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/enterprise-buyers-guide/">Enterprise Buyer鈥檚 Guides</a></li> </header> <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"> <div id="remove_no_follow"> <section class="wp-block-bigbite-multi-title"><div class="container"></div></section> <section class="latest-content " id="latest"> <div class="container"><div class="latest-content__head"></div><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/3583482/14-preprocessors-for-programmers-who-love-to-code.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/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?quality=50&strip=all&w=1046" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?quality=50&strip=all 6488w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=300%2C200&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=768%2C512&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=1024%2C683&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=1536%2C1024&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=2048%2C1365&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=1240%2C826&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=150%2C100&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=1046%2C697&quality=50&strip=all 1046w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=252%2C168&quality=50&strip=all 252w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=126%2C84&quality=50&strip=all 126w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=720%2C480&quality=50&strip=all 720w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=540%2C360&quality=50&strip=all 540w, https://www.infoworld.com/wp-content/uploads/2024/11/3583482-0-31106300-1732066944-shutterstock_1649812132-100963054-orig.jpg?resize=375%2C250&quality=50&strip=all 375w" 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><h4 class="card__title" id="14-great-preprocessors-for-developers-who-love-to-code">14 great preprocessors for developers who love to code</h4><p class="card__description">Sometimes it seems like the rules of programming are designed to make coding a chore. Here are 14 ways preprocessors can help make software development fun again.</p><div class="card__info"><span>By Peter Wayner</span></div><div class="card__info card__info--light"><span>Nov 18, 2024</span><span>10 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">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/3610696/aws-prepares-to-command-an-army-of-ai-agents.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type">analysis</span></div><div class="card__image"> <div class="insider-image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?quality=50&strip=all&w=1046" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?quality=50&strip=all 2400w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=300%2C200&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=768%2C512&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=1024%2C683&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=1536%2C1024&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=2048%2C1365&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=1240%2C826&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=150%2C100&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=1046%2C697&quality=50&strip=all 1046w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=252%2C168&quality=50&strip=all 252w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=126%2C84&quality=50&strip=all 126w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=720%2C480&quality=50&strip=all 720w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=540%2C360&quality=50&strip=all 540w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=375%2C250&quality=50&strip=all 375w" 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><h4 class="card__title" id="aws-prepares-to-command-an-army-of-ai-agents">AWS prepares to command an army of AI agents</h4><div class="card__info"><span>By David Linthicum</span></div><div class="card__info card__info--light"><span>Nov 22, 2024</span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Cloud Native</span></span><span class="card__tag"><span class="tag">Artificial Intelligence</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/3609020/azure-ai-foundry-tools-up-for-changes-in-ai-applications.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type">analysis</span></div><div class="card__image"> <div class="insider-image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?quality=50&strip=all&w=1046" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?quality=50&strip=all 3800w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=300%2C200&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=768%2C512&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=1024%2C683&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=1536%2C1024&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=2048%2C1365&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=1240%2C826&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=150%2C100&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=1046%2C697&quality=50&strip=all 1046w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=252%2C168&quality=50&strip=all 252w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=126%2C84&quality=50&strip=all 126w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=720%2C480&quality=50&strip=all 720w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=540%2C360&quality=50&strip=all 540w, https://www.infoworld.com/wp-content/uploads/2024/11/3609020-0-82924400-1732244461-shutterstock_193844330-100943986-orig.jpg?resize=375%2C250&quality=50&strip=all 375w" 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><h4 class="card__title" id="azure-ai-foundry-tools-up-for-changes-in-ai-applications">Azure AI Foundry tools up for changes in AI applications</h4><div class="card__info"><span>By Simon Bisson</span></div><div class="card__info card__info--light"><span>Nov 20, 2024</span><span>7 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Microsoft Azure</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Development Tools</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/3557641/typescript-5-7-arrives-with-improved-error-reporting.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h4 class="card__title" id="typescript-5-7-arrives-with-improved-error-reporting">TypeScript 5.7 arrives with improved error reporting</h4><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 22, 2024</span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">JavaScript</span></span><span class="card__tag"><span class="tag">Typescript</span></span><span class="card__tag"><span class="tag">Programming Languages</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/3491404/jdk-24-the-new-features-in-java-24.html" backfill="true" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h4 class="card__title" id="jdk-24-the-new-features-in-java-24">JDK 24: The new features in Java 24</h4><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 22, 2024</span><span>13 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Programming Languages</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/2255250/what-is-rust-safe-fast-and-easy-software-development.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">feature</span></div><h4 class="card__title" id="what-is-rust-safe-fast-and-easy-software-development">What is Rust? Safe, fast, and easy software development</h4><div class="card__info"><span>By Serdar Yegulalp</span></div> <div class="card__info card__info--light"><span>Nov 20, 2024</span><span>11 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Rust</span></span><span class="card__tag"><span class="tag">Programming Languages</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/3610712/angular-19-bolsters-server-side-rendering-with-incremental-hydration.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h4 class="card__title" id="angular-19-bolsters-server-side-rendering-with-incremental-hydration">Angular 19 bolsters server-side rendering with incremental hydration</h4><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 21, 2024</span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Angular</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/3595651/advanced-programming-with-java-generics.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">how-to</span></div><h4 class="card__title" id="advanced-programming-with-java-generics">Advanced programming with Java generics</h4><div class="card__info"><span>By Rafael del Nero</span></div> <div class="card__info card__info--light"><span>Nov 21, 2024</span><span>18 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Programming Languages</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/3610508/red-hat-linux-to-be-official-wsl-distro.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h4 class="card__title" id="red-hat-linux-to-be-official-wsl-distro">Red Hat Linux to be official WSL distro</h4><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 21, 2024</span><span>2 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">Software Development</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/3608206/kotlin-for-java-developers-classes-and-coroutines.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">how-to</span></div><h4 class="card__title" id="kotlin-for-java-developers-classes-and-coroutines">Kotlin for Java developers: Classes and coroutines</h4><p class="card__description">Kotlin was designed to bring more flexibility and flow to programming in the JVM. Here's an in-depth look at how Kotlin makes working with classes and objects easier and introduces coroutines to modernize concurrency. </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 Matthew Tyson</span></div> <div class="card__info card__info--light"><span>Nov 20, 2024 </span><span>9 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Kotlin</span></span><span class="card__tag"><span class="tag">Programming Languages</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/3604741/understanding-hyperlight-microsofts-minimal-vm-manager.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><h4 class="card__title" id="understanding-hyperlight-microsofts-minimal-vm-manager">Understanding Hyperlight, Microsoft’s minimal VM manager</h4><p class="card__description">Microsoft is making its Rust-based, functions-focused VM tool available on Azure at last, ready to help event-driven applications at scale.</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>Nov 14, 2024 </span><span>8 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Microsoft Azure</span></span><span class="card__tag"><span class="tag">Rust</span></span><span class="card__tag"><span class="tag">Serverless Computing</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/3604732/a-grc-framework-for-securing-generative-ai.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><h4 class="card__title" id="a-grc-framework-for-securing-generative-ai">A GRC framework for securing generative AI</h4><p class="card__description">How can enterprises secure and manage the expanding ecosystem of AI applications that touch sensitive business data? Start with a governance framework. </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 Trevor Welsh</span></div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>11 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Data Governance</span></span><span class="card__tag"><span class="tag">Application Security</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/3604648/designing-the-apis-that-accidentally-power-businesses.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><h4 class="card__title" id="designing-the-apis-that-accidentally-power-businesses">Designing the APIs that accidentally power businesses</h4><p class="card__description">Well-designed APIs, even those often-neglected internal APIs, make developers more productive and businesses more agile. </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 Jean Yang</span></div> <div class="card__info card__info--light"><span>Nov 18, 2024 </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">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/3600287/can-wasm-replace-containers.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><h4 class="card__title" id="can-wasm-replace-containers">Can Wasm replace containers?</h4><p class="card__description">WebAssembly revolutionized browser apps, and promises to upend the server stack. How will it impact containers and Kubernetes? Six experts weigh in.</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 Bill Doerrfeld</span></div> <div class="card__info card__info--light"><span>Nov 11, 2024 </span><span>12 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Containers</span></span><span class="card__tag"><span class="tag">Kubernetes</span></span><span class="card__tag"><span class="tag">Cloud Native</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/3603580/kotlin-for-java-developers.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">how-to</span></div><h4 class="card__title" id="kotlin-for-java-developers-getting-started">Kotlin for Java developers: Getting started</h4><p class="card__description">Kotlin is a modern alternative to Java that supports functional programming in the JVM. Here's a first look at programming with Kotlin using some of the concepts and syntax you already know from Java.</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 Matthew Tyson</span></div> <div class="card__info card__info--light"><span>Nov 13, 2024 </span><span>10 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Programming Languages</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/3603707/the-agile-manifesto-was-ahead-of-its-time.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><h4 class="card__title" id="the-agile-manifesto-was-ahead-of-its-time">The Agile Manifesto was ahead of its time</h4><p class="card__description">Back in the day, technology limitations forced software development teams to be disciplined, rigid, and inflexible. Thank goodness for SaaS and CI/CD. </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>Nov 13, 2024 </span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Agile Development</span></span><span class="card__tag"><span class="tag">CI/CD</span></span><span class="card__tag"><span class="tag">SaaS</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/2268611/docker-tutorial-get-started-with-docker-volumes.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">how-to</span></div><h4 class="card__title" id="docker-tutorial-get-started-with-docker-volumes">Docker tutorial: Get started with Docker volumes</h4><p class="card__description">Learn the ins, outs, and limits of Docker's native technology for integrating containers with local file systems.</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>Nov 13, 2024 </span><span>8 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Devops</span></span><span class="card__tag"><span class="tag">Cloud Computing</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/3602661/the-rise-of-specialized-private-clouds.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><h4 class="card__title" id="the-rise-of-specialized-private-clouds">The rise of specialized private clouds</h4><p class="card__description">For years, private clouds pushed traditional on-prem hardware. Will the recent move towards specialized private clouds, especially for AI, be different? </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>Nov 11, 2024 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Private Cloud</span></span><span class="card__tag"><span class="tag">Artificial Intelligence</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/3600418/github-copilot-learns-new-tricks.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><h4 class="card__title" id="github-copilot-learns-new-tricks">GitHub Copilot learns new tricks</h4><p class="card__description">GitHub and Microsoft have taken their AI-powered programming assistant into new territories, tackling code reviews, simple web apps, Java upgrades, and Azure help and troubleshooting. </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>Nov 07, 2024 </span><span>8 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">GitHub</span></span><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Microsoft Azure</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/article/2512988/7-steps-to-improve-analytics-for-data-driven-organizations.html" 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"><a class="card card--xl" href="https://www.infoworld.com/video/3610349/use-__main__-in-python-to-make-packages-runnable.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">video</span></div><h4 class="card__title" id="use-__main__-in-python-to-make-packages-runnable">Use \”__main__\” in Python to make packages runnable</h4><p class="card__description">Python packages are typically things you pip install and run by importing into your code. But you can make packages runnable from the Python command line using the \”-m\” option — and by configuring your package with a \”__main__\” module. This video steps you through the basics of using \”__main__\” in a package, and how it differs from \”__init__\” in a package (and elsewhere, too).</p> <div class="card__info card__info--light"><span>Nov 22, 2024 </span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></a> <div class="related-content-video__social"> <div class="social-share-menu"><ul class="social-share-menu__buttons"> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="linked-in" aria-label="Share on LinkedIn"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-linked-in"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="twitter" aria-label="Share on Twitter"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-twitter"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="facebook" aria-label="Share on Facebook"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-facebook"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="reddit" aria-label="Share on Reddit"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-reddit"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="email" aria-label="Share via Email"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-envelope"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="print" aria-label="Print"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-print"></use></svg> </button></li></ul> </div></div></div><div class="col-12 col-8@lg related-content-video__video"><div class="youtube-video"><iframe width="560" height="315" src="https://www.youtube.com/embed/0Qf1ZB1RBTk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></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/3606691/building-python-wheels-to-distribute-your-programs.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/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?quality=50&strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=300%2C168&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=768%2C432&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=1024%2C576&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=1240%2C697&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=150%2C84&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=854%2C480&quality=50&strip=all 854w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=640%2C360&quality=50&strip=all 640w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=444%2C250&quality=50&strip=all 444w" sizes="300px" loading="lazy" width="400px"></div></div><div class="card card--xs"><h4 class="card__title" id="building-python-wheels-to-distribute-your-programs">Building Python wheels to distribute your programs</h4> <div class="card__info card__info--light"><span>Nov 15, 2024 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span><span class="card__tag"><span class="tag">Software Development</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/3606689/creating-a-pip-install-able-python-package.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/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?quality=50&strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=300%2C168&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=768%2C432&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=1024%2C576&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=1240%2C697&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=150%2C84&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=854%2C480&quality=50&strip=all 854w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=640%2C360&quality=50&strip=all 640w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=444%2C250&quality=50&strip=all 444w" sizes="300px" loading="lazy" width="400px"></div></div><div class="card card--xs"><h4 class="card__title" id="creating-a-pip-install-able-python-package">Creating a pip install-able Python package</h4> <div class="card__info card__info--light"><span>Nov 14, 2024 </span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span><span class="card__tag"><span class="tag">Software Development</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/3550024/how-to-get-better-web-requests-in-python-with-httpx.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/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?quality=50&strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=300%2C168&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=768%2C432&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=1024%2C576&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=1240%2C697&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=150%2C84&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=854%2C480&quality=50&strip=all 854w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=640%2C360&quality=50&strip=all 640w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=444%2C250&quality=50&strip=all 444w" sizes="300px" loading="lazy" width="400px"></div></div><div class="card card--xs"><h4 class="card__title" id="how-to-get-better-web-requests-in-python-with-httpx">How to get better web requests in Python with httpx</h4> <div class="card__info card__info--light"><span>Oct 07, 2024 </span><span>4 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="" 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"><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/analytics/">Analytics </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/artificial-intelligence/">Artificial Intelligence </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/careers/">Careers </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/cloud-computing/">Cloud Computing </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/data-management/">Data Management </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/database/">Databases </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/development-tools/">Development Tools </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/devops/">Devops </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/emerging-technology/">Emerging Technology </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/generative-ai/">Generative AI </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/java/">Java </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/javascript/">JavaScript </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/microsoft-net/">Microsoft .NET </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" 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"><div class="popular-topics-selector__modal-content"> <header class="popular-topics-selector__modal-header"> <h1 class="popular-topics-selector__modal-title" id="all-topics">All topics</h1> <div class="popular-topics-selector__modal-close-button"> <button class="button button--quaternary" type="button" data-modal-close="popular-topics-selector-modal"> <span>Close</span> <span class="icon"></span> </button> </div> </header><ul class="popular-topics-selector__modal-list"><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/analytics/" class="popular-topics-selector__modal-list-item-link"> Analytics </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/artificial-intelligence/" class="popular-topics-selector__modal-list-item-link"> Artificial Intelligence </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/careers/" class="popular-topics-selector__modal-list-item-link"> Careers </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/cloud-computing/" class="popular-topics-selector__modal-list-item-link"> Cloud Computing </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/data-management/" class="popular-topics-selector__modal-list-item-link"> Data Management </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/database/" class="popular-topics-selector__modal-list-item-link"> Databases </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/development-tools/" class="popular-topics-selector__modal-list-item-link"> Development Tools </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/devops/" class="popular-topics-selector__modal-list-item-link"> Devops </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/emerging-technology/" class="popular-topics-selector__modal-list-item-link"> Emerging Technology </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/generative-ai/" class="popular-topics-selector__modal-list-item-link"> Generative AI </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/java/" class="popular-topics-selector__modal-list-item-link"> Java </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/javascript/" class="popular-topics-selector__modal-list-item-link"> JavaScript </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/microsoft-net/" class="popular-topics-selector__modal-list-item-link"> Microsoft .NET </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/open-source/" class="popular-topics-selector__modal-list-item-link"> Open Source </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/programming-languages/" class="popular-topics-selector__modal-list-item-link"> Programming Languages </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/python/" class="popular-topics-selector__modal-list-item-link"> Python </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/security/" class="popular-topics-selector__modal-list-item-link"> Security </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/software-development/" class="popular-topics-selector__modal-list-item-link"> Software Development </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/technology-business/" class="popular-topics-selector__modal-list-item-link"> Technology Industry </a></li></ul></div></div> </div> </div> </section> <section class="content-spotlight-article"> <div class="container"><div class="grid content-spotlight-article__content"> <div class="col-12 col-6@md community-promo__content-main"><div class="content-spotlight-article__main-top"> <a class="card card--xxl" href="https://www.infoworld.com/spotlight-ai-in-enterprise/" aria-label="Go to content"><div class="card__header"></div><h4 class="card__title" id="spotlight-ai-in-enterprise">Spotlight: <em> AI in Enterprise</em></h4><div class="community-promo__benefits"><span>Articles * Buyer’s Guide</span></div><p class="card__description">We showcase practical AI deployments, implementation strategies, and real-world considerations such as for data management and AI governance that IT and business leaders alike should know before plunging into AI. ​</p><div class="content-spotlight-article__cta"><a class="button button--primary" href="https://www.infoworld.com/spotlight-ai-in-enterprise/"> View all </a></div></a></div> </div> <div class="col-12 col-6@md col-5@lg col-4@xl col-start-9@xl community-promo__content-image"> <img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_2366647495-100963142-orig-2.jpg?quality=50&strip=all" role="presentation" width="!00%" loading="lazy"></div> </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/3609931/rhel-ai-jboss-eap-8-coming-to-azure-cloud.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/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?quality=50&strip=all&w=246" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?quality=50&strip=all 6448w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=300%2C205&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=768%2C524&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=1024%2C698&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=1536%2C1047&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=2048%2C1396&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=1022%2C697&quality=50&strip=all 1022w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=246%2C168&quality=50&strip=all 246w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=123%2C84&quality=50&strip=all 123w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=704%2C480&quality=50&strip=all 704w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=528%2C360&quality=50&strip=all 528w, https://www.infoworld.com/wp-content/uploads/2024/11/3609931-0-83135200-1732293429-shutterstock_392706931-100941119-orig.jpg?resize=367%2C250&quality=50&strip=all 367w" 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><h4 class="card__title" id="rhel-ai-jboss-eap-8-coming-to-azure-cloud">RHEL AI, JBoss EAP 8 coming to Azure cloud</h4><div class="card__info"><span>By Paul Krill</span> </div> <div class="card__info card__info--light"><span>Nov 20, 2024 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Microsoft Azure</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/3609153/microsoft-unveils-imaging-apis-for-windows-copilot-runtime.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h4 class="card__title" id="microsoft-unveils-imaging-apis-for-windows-copilot-runtime">Microsoft unveils imaging APIs for Windows Copilot Runtime</h4><div class="card__info"><span>By Paul Krill</span> </div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">APIs</span></span><span class="card__tag"><span class="tag">Development 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/3607388/go-language-evolving-for-future-hardware-ai-workloads.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h4 class="card__title" id="go-language-evolving-for-future-hardware-ai-workloads">Go language evolving for future hardware, AI workloads</h4><div class="card__info"><span>By Paul Krill</span> </div> <div class="card__info card__info--light"><span>Nov 15, 2024 </span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Google Go</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Programming Languages</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/3609843/azure-container-apps-launches-python-javascript-interpreters.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/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?quality=50&strip=all&w=300" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?quality=50&strip=all 7282w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=300%2C168&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=768%2C432&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=1024%2C576&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=1536%2C864&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=2048%2C1152&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=1240%2C697&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=150%2C84&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=854%2C480&quality=50&strip=all 854w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=640%2C360&quality=50&strip=all 640w, https://www.infoworld.com/wp-content/uploads/2024/11/3609843-0-74261000-1732141618-shutterstock_2256482287_16.jpg?resize=444%2C250&quality=50&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><h4 class="card__title" id="azure-container-apps-launches-python-javascript-interpreters">Azure Container Apps launches Python, JavaScript interpreters</h4><div class="card__info"><span>By Paul Krill</span> </div> <div class="card__info card__info--light"><span>Nov 20, 2024 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">JavaScript</span></span><span class="card__tag"><span class="tag">Python</span></span><span class="card__tag"><span class="tag">Cloud Computing</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/3608112/succeeding-with-observability-in-the-cloud.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> analysis</span></div><h4 class="card__title" id="succeeding-with-observability-in-the-cloud">Succeeding with observability in the cloud</h4><div class="card__info"><span>By David Linthicum</span> </div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>5 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">Cloud Computing</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/3608256/akka-distributed-computing-platform-adds-java-sdk.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h4 class="card__title" id="akka-distributed-computing-platform-adds-java-sdk">Akka distributed computing platform adds Java SDK</h4><div class="card__info"><span>By Paul Krill</span> </div> <div class="card__info card__info--light"><span>Nov 18, 2024 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Scala</span></span><span class="card__tag"><span class="tag">Serverless Computing</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/3568247/dataframes-explained-the-modern-in-memory-data-science-format.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 image--aspect-ratio-16-9 image--crop-position-center-center"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?quality=50&strip=all&w=290" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?quality=50&strip=all 6944w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=300%2C174&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=768%2C444&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=1024%2C592&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=1536%2C888&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=2048%2C1184&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=1205%2C697&quality=50&strip=all 1205w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=290%2C168&quality=50&strip=all 290w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=145%2C84&quality=50&strip=all 145w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=830%2C480&quality=50&strip=all 830w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=622%2C360&quality=50&strip=all 622w, https://www.infoworld.com/wp-content/uploads/2024/11/3568247-0-03281300-1730883690-shutterstock_2490883453_TeeStocker.jpg?resize=432%2C250&quality=50&strip=all 432w" 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><h4 class="card__title" id="dataframes-explained-the-modern-in-memory-data-science-format">Dataframes explained: The modern in-memory data science format</h4><div class="card__info"><span>By Serdar Yegulalp</span> </div> <div class="card__info card__info--light"><span>Nov 06, 2024 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Data Science</span></span><span class="card__tag"><span class="tag">Data Management</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/3599030/cloud-providers-make-bank-with-genai-while-projects-fail.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> analysis</span></div><h4 class="card__title" id="cloud-providers-make-bank-with-genai-while-projects-fail">Cloud providers make bank with genAI while projects fail</h4><div class="card__info"><span>By David Linthicum</span> </div> <div class="card__info card__info--light"><span>Nov 05, 2024 </span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Cloud Computing</span></span><span class="card__tag"><span class="tag">Data Management</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/3596771/overcoming-data-inconsistency-with-a-universal-semantic-layer.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> feature</span></div><h4 class="card__title" id="overcoming-data-inconsistency-with-a-universal-semantic-layer">Overcoming data inconsistency with a universal semantic layer</h4><div class="card__info"><span>By Artyom Keydunov</span> </div> <div class="card__info card__info--light"><span>Nov 01, 2024 </span><span>7 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Business Intelligence</span></span><span class="card__tag"><span class="tag">Data Management</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/3607426/how-to-transform-your-architecture-review-board.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> analysis</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/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?quality=50&strip=all&w=252" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?quality=50&strip=all 4938w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=300%2C200&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=768%2C512&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=1024%2C683&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=1536%2C1024&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=2048%2C1365&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=1240%2C826&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=150%2C100&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=1046%2C697&quality=50&strip=all 1046w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=252%2C168&quality=50&strip=all 252w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=126%2C84&quality=50&strip=all 126w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=720%2C480&quality=50&strip=all 720w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=540%2C360&quality=50&strip=all 540w, https://www.infoworld.com/wp-content/uploads/2024/11/3607426-0-13171300-1732007057-shutterstock_2301505129.jpg?resize=375%2C250&quality=50&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><h4 class="card__title" id="how-to-transform-your-architecture-review-board">How to transform your architecture review board</h4><div class="card__info"><span>By Isaac Sacolick</span> </div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>7 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Agile Development</span></span><span class="card__tag"><span class="tag">Devops</span></span><span class="card__tag"><span class="tag">Software Development</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/3608397/f-sharp-9-adds-nullable-reference-types.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h4 class="card__title" id="f-9-adds-nullable-reference-types">F# 9 adds nullable reference types</h4><div class="card__info"><span>By Paul Krill</span> </div> <div class="card__info card__info--light"><span>Nov 18, 2024 </span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Microsoft .NET</span></span><span class="card__tag"><span class="tag">Programming Languages</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/3607483/spin-3-0-supports-polyglot-development-using-wasm-components.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type"> news</span></div><h4 class="card__title" id="spin-3-0-supports-polyglot-development-using-wasm-components">Spin 3.0 supports polyglot development using Wasm components</h4><div class="card__info"><span>By Paul Krill</span> </div> <div class="card__info card__info--light"><span>Nov 18, 2024 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Microservices</span></span><span class="card__tag"><span class="tag">Serverless Computing</span></span><span class="card__tag"><span class="tag">Development Libraries and Frameworks</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><h4 class="card__title" id="10-principles-for-creating-a-great-developer-experience">10 principles for creating a great developer experience</h4><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>May 06, 2024</span><span>12 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Developer</span></span><span class="card__tag"><span class="tag">Technology Industry</span></span><span class="card__tag"><span class="tag">Software Development</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/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?quality=50&strip=all&w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?quality=50&strip=all 6720w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=300%2C143&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=768%2C365&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=1024%2C487&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=1536%2C730&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=2048%2C973&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=1240%2C589&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=150%2C71&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=854%2C406&quality=50&strip=all 854w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=640%2C304&quality=50&strip=all 640w, https://www.infoworld.com/wp-content/uploads/2024/06/shutterstock_1869308242-100937531-orig-100945937-orig.jpg?resize=444%2C211&quality=50&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><section class="suggested-content-upcoming-events" id="upcoming_events"><div class="container"> <h2 class="suggested-content-upcoming-events__title" id="upcoming-events">Upcoming Events</h2><a class="grid suggested-content-upcoming-events__item" href="https://www.idgevents.com/P7zbE?rt=D6xu4cPNx0-y6xS43PXNPA&RefId=evp" aria-label="Go to content"><div class="col-12 col-3@md suggested-content-upcoming-events__date-label dd"><span class="date-label">28/Nov</span></div><div class="col-12 col-4@md col-5@xl suggested-content-upcoming-events__image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?quality=50&strip=all%201920w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=300%2C168&quality=50&strip=all%20300w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=768%2C432&quality=50&strip=all%20768w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=1024%2C576&quality=50&strip=all%201024w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=1536%2C864&quality=50&strip=all%201536w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=1240%2C697&quality=50&strip=all%201240w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=150%2C84&quality=50&strip=all%20150w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=854%2C480&quality=50&strip=all%20854w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=640%2C360&quality=50&strip=all%20640w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=444%2C250&quality=50&strip=all%20444w" alt="Image" loading="lazy" width="400px"></div></div> <div class="col-12 col-5@md col-4@xl suggested-content-upcoming-events__card"> <div class="card card--xl"> <div class="card__header"><span class="card__content-type">conference</span><span class="card__external-link-icon" data-url="https://www.idgevents.com/P7zbE?rt=D6xu4cPNx0-y6xS43PXNPA&RefId=evp"><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-arrow-up-right-from-square"></use></svg></span></div><h4 class="card__title" id="the-official-cso-security-summit-uk">The Official CSO Security Summit UK</h4><div class="card__info card__info--light"><span>Nov 28, 2024</span><span>9:30 am – 17:30 GMT</span><span>Andaz London Liverpool Street</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">CSO and CISO</span></span></div></div> </div> </a><a class="grid suggested-content-upcoming-events__item" href="https://www.idgevents.com/cso-30-awards-uk" aria-label="Go to content"><div class="col-12 col-3@md suggested-content-upcoming-events__date-label dd"><span class="date-label">28/Nov</span></div><div class="col-12 col-4@md col-5@xl suggested-content-upcoming-events__image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?quality=50&strip=all%201920w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=300%2C168&quality=50&strip=all%20300w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=768%2C432&quality=50&strip=all%20768w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=1024%2C576&quality=50&strip=all%201024w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=1536%2C864&quality=50&strip=all%201536w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=1240%2C697&quality=50&strip=all%201240w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=150%2C84&quality=50&strip=all%20150w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=854%2C480&quality=50&strip=all%20854w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=640%2C360&quality=50&strip=all%20640w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=444%2C250&quality=50&strip=all%20444w" alt="Image" loading="lazy" width="400px"></div></div> <div class="col-12 col-5@md col-4@xl suggested-content-upcoming-events__card"> <div class="card card--xl"> <div class="card__header"><span class="card__content-type">awards</span><span class="card__external-link-icon" data-url="https://www.idgevents.com/cso-30-awards-uk"><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-arrow-up-right-from-square"></use></svg></span></div><h4 class="card__title" id="cso-30-awards-uk">CSO 30 Awards UK</h4><div class="card__info card__info--light"><span>Nov 28, 2024</span><span>18:30-21:30 GMT</span><span>Andaz London Liverpool Street</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">CSO and CISO</span></span></div></div> </div> </a><a class="grid suggested-content-upcoming-events__item" href="https://www.idgevents.com/event/next-cso-2024/summary" aria-label="Go to content"><div class="col-12 col-3@md suggested-content-upcoming-events__date-label dd"><span class="date-label">28/Nov</span></div><div class="col-12 col-4@md col-5@xl suggested-content-upcoming-events__image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?quality=50&strip=all%201920w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=300%2C168&quality=50&strip=all%20300w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=768%2C432&quality=50&strip=all%20768w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=1024%2C576&quality=50&strip=all%201024w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=1536%2C864&quality=50&strip=all%201536w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=1240%2C697&quality=50&strip=all%201240w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=150%2C84&quality=50&strip=all%20150w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=854%2C480&quality=50&strip=all%20854w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=640%2C360&quality=50&strip=all%20640w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=444%2C250&quality=50&strip=all%20444w" alt="Image" loading="lazy" width="400px"></div></div> <div class="col-12 col-5@md col-4@xl suggested-content-upcoming-events__card"> <div class="card card--xl"> <div class="card__header"><span class="card__content-type">awards</span><span class="card__external-link-icon" data-url="https://www.idgevents.com/event/next-cso-2024/summary"><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-arrow-up-right-from-square"></use></svg></span></div><h4 class="card__title" id="next-cso-awards-uk">Next CSO Awards UK</h4><div class="card__info card__info--light"><span>Nov 28, 2024</span><span>18:30-21:30 GMT</span><span>Andaz London Liverpool Street</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">CSO and CISO</span></span></div></div> </div> </a></div><div class="suggested-content-upcoming-events__button-container container"> <a class="button" href="https://www.infoworld.com/events/"> View all events</a> </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="suggested-content-various"><div class="container"><div class="grid suggested-content-various__content"><div class="col-12 col-3@lg"> <h4 class="suggested-content-various__title" id="show-me-more">Show me more</h4><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/3609015/microsoft-extends-entra-id-to-wsl-winget.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">news</span> </div> <h4 class="card__title" id="microsoft-extends-entra-id-to-wsl-winget">Microsoft extends Entra ID to WSL, WinGet </h4> <div class="card__info"><span>By Paul Krill</span></div><div class="card__info card__info--light"> <span>Nov 19, 2024</span><span>2 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">Application Security</span></span><span class="card__tag"><span class="tag">Identity and Access Management</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3609015-0-23892700-1732118817-digital-access-machine-identity-non-human-management.jpg?quality=50&strip=all&w=375" 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/3608598/microsoft-rebrands-azure-ai-studio-to-azure-ai-foundry.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">news</span> </div> <h4 class="card__title" id="microsoft-rebrands-azure-ai-studio-to-azure-ai-foundry">Microsoft rebrands Azure AI Studio to Azure AI Foundry</h4> <div class="card__info"><span>By Anirban Ghoshal</span></div><div class="card__info card__info--light"> <span>Nov 19, 2024</span><span>4 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Microsoft Azure</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Development Tools</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3608598-0-80808600-1732033940-shutterstock_1850894143.jpg?quality=50&strip=all&w=333" 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/3607754/the-dirty-little-secret-of-open-source-contributions.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">opinion</span> </div> <h4 class="card__title" id="the-dirty-little-secret-of-open-source-contributions">The dirty little secret of open source contributions</h4> <div class="card__info"><span>By Matt Asay</span></div><div class="card__info card__info--light"> <span>Nov 18, 2024</span><span>4 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Technology Industry</span></span><span class="card__tag"><span class="tag">Open Source</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3607754-0-68367100-1731957330-shutterstock_2355607633.jpg?quality=50&strip=all&w=386" 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/3545184/how-to-better-integrate-python-c-with-cffi.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">video</span> </div> <h4 class="card__title" id="how-to-better-integrate-python-c-with-cffi">How to better integrate Python/C with CFFI</h4> <div class="card__info"><span></span></div><div class="card__info card__info--light"> <span>Oct 03, 2024</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/2024/10/3545184-0-41210000-1727984576-Youtube-Thumbnails_Template-OLD-1.png?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/3543373/how-to-create-and-work-with-zip-archives-using-python.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">video</span> </div> <h4 class="card__title" id="how-to-create-and-work-with-zip-archives-using-python">How to create and work with zip archives using Python</h4> <div class="card__info"><span></span></div><div class="card__info card__info--light"> <span>Oct 01, 2024</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/2024/10/3543373-0-24502000-1727791824-Youtube-Thumbnails_Template-OLD.png?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/3518570/how-to-implement-modes-in-software-with-a-game-as-an-example.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">video</span> </div> <h4 class="card__title" id="how-to-implement-modes-in-software-with-a-game-as-an-example">How to implement "modes" in software, with a game as an example</h4> <div class="card__info"><span></span></div><div class="card__info card__info--light"> <span>Sep 12, 2024</span><span>4 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/2024/09/3518570-0-51110700-1726158878-Youtube-Thumbnails_Template-OLD-1.png?w=444" alt="Image" loading="lazy" width="400px"></div> </a> </div></div></div></div></div></section></div> </div><!-- .entry-content --> </article><!-- #post-100007471 --> </main><!-- #main --> <footer class="footer"> <div class="container footer__container"> <div class="grid footer__content"> <div class="col-12 col-9@lg grid grid--cols-9@lg footer__main"> <div class="col-12 col-6@md col-3@lg footer__menu"> <details class="accordion" data-accordion-enabled="mobile" data-accordion-expanded="desktop"> <summary data-accordion-summary class="accordion__summary"> <div class="accordion__title"> <div class="footer__menu-title">About</div> </div> <div class="accordion__icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" > <use xlink:href="#icon-circle-chevron-down"></use> </svg> </div> </summary> <div class="accordion__content" data-accordion-content> <nav data-content aria-label="About navigation menu"> <ul class="footer__menu-items"> <li class="footer__menu-item"> <a href="https://www.infoworld.com/about-us/" class="footer__menu-link">About us</a> </li> <li class="footer__menu-item"> <a href="https://foundryco.com/our-brands/infoworld/" class="footer__menu-link">Advertise</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/contact-us/" class="footer__menu-link">Contact Us</a> </li> <li class="footer__menu-item"> <a href="https://foundryco.com/work-here/" class="footer__menu-link">Foundry Careers</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/contact-us/#republication-permissions" class="footer__menu-link">Reprints</a> </li> <li class="footer__menu-item"> <a href="/newsletters/signup/" class="footer__menu-link">Newsletters</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/brandposts/" class="footer__menu-link">BrandPosts</a> </li> </ul> </nav> </div> </details> </div> <div class="col-12 col-6@md col-3@lg footer__menu"> <details class="accordion" data-accordion-enabled="mobile" data-accordion-expanded="desktop"> <summary data-accordion-summary class="accordion__summary"> <div class="accordion__title"> <div class="footer__menu-title">Policies</div> </div> <div class="accordion__icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" > <use xlink:href="#icon-circle-chevron-down"></use> </svg> </div> </summary> <div class="accordion__content" data-accordion-content> <nav data-content aria-label="Policies navigation menu"> <ul class="footer__menu-items"> <li class="footer__menu-item"> <a href="https://foundryco.com/terms-of-service-agreement/" class="footer__menu-link">Terms of Service</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/privacy-policy/" class="footer__menu-link">Privacy Policy</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/cookie-policy/" class="footer__menu-link">Cookie Policy</a> </li> <li class="footer__menu-item"> <a href="https://foundryco.com/copyright-notice/" class="footer__menu-link">Copyright Notice</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/member-preferences/" class="footer__menu-link">Member Preferences</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/about-adchoices/" class="footer__menu-link">About AdChoices</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/e-commerce-affiliate-relationships/" class="footer__menu-link">E-commerce Affiliate Relationships</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/your-california-privacy-rights/" class="footer__menu-link">Your California Privacy Rights</a> </li> <li class="footer__menu-item"> <a class="ccpa-btn eea-consent-ui footer__menu-link">Privacy Settings</a> </li> </ul> </nav> </div> </details> </div> <div class="col-12 col-6@md col-3@lg footer__menu"> <details class="accordion" data-accordion-enabled="mobile" data-accordion-expanded="desktop"> <summary data-accordion-summary class="accordion__summary"> <div class="accordion__title"> <div class="footer__menu-title">Our Network</div> </div> <div class="accordion__icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" > <use xlink:href="#icon-circle-chevron-down"></use> </svg> </div> </summary> <div class="accordion__content" data-accordion-content> <nav data-content aria-label="Our Network navigation menu"> <ul class="footer__menu-items"> <li class="footer__menu-item"> <a href="https://www.cio.com/" target="_blank" class="footer__menu-link">CIO</a> </li> <li class="footer__menu-item"> <a href="https://www.computerworld.com/" target="_blank" class="footer__menu-link">Computerworld</a> </li> <li class="footer__menu-item"> <a href="https://www.csoonline.com/" target="_blank" class="footer__menu-link">CSO</a> </li> <li class="footer__menu-item"> <a href="https://www.networkworld.com/" target="_blank" class="footer__menu-link">Network World</a> </li> </ul> </nav> </div> </details> </div> <div class="col-12 col-9@lg footer__logo-container"> <a href="https://foundryco.com/" target="_blank" rel="noreferrer" aria-label="Go to Foundry website"> <svg id="a" width="156" height="57" version="1.1" viewBox="0 0 156 57" xmlns="http://www.w3.org/2000/svg"><defs><style>.b{fill:#fff;}</style></defs><g transform="matrix(.67576 0 0 .67576 .37936 .26588)"><path class="b" d="m35.79 77.23c0-1.83 1.94-2.45 3.97-2.45h1.14v-0.57c0-1.26-0.48-1.79-1.7-1.79-1.09 0-1.7 0.46-1.82 1.42h-1.26c0.17-1.8 1.6-2.47 3.13-2.47s2.89 0.62 2.89 2.83v5.22h-1.26v-1c-0.59 0.74-1.3 1.13-2.47 1.13-1.47 0-2.63-0.71-2.63-2.33zm5.1-0.58v-0.98h-1.09c-1.59 0-2.75 0.39-2.75 1.56 0 0.82 0.39 1.33 1.5 1.33 1.33 0 2.35-0.68 2.35-1.91z"/><path class="b" d="m44.65 71.5h1.26v1.26c0.36-0.74 1.24-1.39 2.54-1.39 1.63 0 2.79 0.89 2.79 3.19v4.86h-1.26v-4.95c0-1.39-0.59-2.01-1.86-2.01-1.17 0-2.21 0.74-2.21 2.17v4.8h-1.26v-7.92z"/><path class="b" d="m58.32 68.6h1.32v10.82h-1.32z"/><path class="b" d="m62.47 68.6h2.86c3.72 0 5.48 2.3 5.48 5.31v0.14c0 3-1.73 5.37-5.51 5.37h-2.83zm2.8 9.75c2.79 0 4.18-1.66 4.18-4.31v-0.12c0-2.5-1.21-4.25-4.19-4.25h-1.47v8.69h1.48z"/><path class="b" d="m72.5 74.08v-0.12c0-3.16 2.13-5.53 5.24-5.53 2.15 0 4.07 1 4.4 3.44h-1.32c-0.3-1.72-1.48-2.39-3.06-2.39-2.48 0-3.91 1.82-3.91 4.46v0.12c0 2.68 1.33 4.44 3.88 4.44 2.35 0 3.36-1.53 3.41-3.45h-3.16v-1.09h4.45v0.8c0 3.13-1.92 4.8-4.69 4.8-3.33 0-5.24-2.32-5.24-5.48z"/><path class="b" d="m83.75 80.19c0.65-0.09 0.94-0.35 0.94-0.82-0.58 0-0.97-0.32-0.97-0.91 0-0.51 0.44-0.91 0.94-0.91 0.58 0 1 0.41 1 1.11v0.29c0 1.33-0.85 1.91-1.91 1.97z"/><path class="b" d="m91.33 68.6h1.32v10.82h-1.32z"/><path class="b" d="m95.39 71.5h1.26v1.26c0.36-0.74 1.24-1.39 2.54-1.39 1.63 0 2.79 0.89 2.79 3.19v4.86h-1.26v-4.95c0-1.39-0.59-2.01-1.86-2.01-1.17 0-2.21 0.74-2.21 2.17v4.8h-1.26v-7.92z"/><path class="b" d="m103.88 75.55v-0.12c0-2.42 1.73-4.06 3.84-4.06 1.65 0 3.19 0.76 3.44 2.77h-1.24c-0.2-1.26-1.1-1.73-2.19-1.73-1.44 0-2.54 1.15-2.54 3.01v0.12c0 1.94 1.06 2.97 2.59 2.97 1.12 0 2.13-0.65 2.27-1.94h1.17c-0.17 1.71-1.54 2.98-3.45 2.98-2.21 0-3.88-1.56-3.88-4.01z"/><path class="b" d="m112.87 78.53c0-0.54 0.44-0.97 0.97-0.97s0.97 0.42 0.97 0.97-0.44 0.97-0.97 0.97-0.97-0.42-0.97-0.97z"/><path class="b" d="m119.75 75.55v-0.12c0-2.42 1.73-4.06 3.84-4.06 1.65 0 3.19 0.76 3.44 2.77h-1.24c-0.2-1.26-1.1-1.73-2.19-1.73-1.44 0-2.54 1.15-2.54 3.01v0.12c0 1.94 1.06 2.97 2.59 2.97 1.12 0 2.13-0.65 2.27-1.94h1.17c-0.17 1.71-1.54 2.98-3.45 2.98-2.21 0-3.88-1.56-3.88-4.01z"/><path class="b" d="m128.41 75.53v-0.12c0-2.38 1.65-4.04 3.89-4.04s3.89 1.65 3.89 4.03v0.12c0 2.39-1.65 4.04-3.91 4.04s-3.88-1.71-3.88-4.03zm6.48 0v-0.11c0-1.83-1.01-3.01-2.59-3.01s-2.59 1.18-2.59 3v0.12c0 1.8 0.98 2.98 2.59 2.98s2.59-1.2 2.59-2.98z"/><path class="b" d="m138.17 71.5h1.26v1.21c0.36-0.74 1.23-1.35 2.36-1.35 1.01 0 1.91 0.42 2.32 1.48 0.54-1.03 1.73-1.48 2.71-1.48 1.42 0 2.66 0.85 2.66 3.15v4.9h-1.26v-5c0-1.39-0.59-1.97-1.68-1.97-1.03 0-2.09 0.7-2.09 2.12v4.84h-1.26v-5c0-1.39-0.59-1.97-1.68-1.97-1.03 0-2.09 0.7-2.09 2.12v4.84h-1.26v-7.92z"/><path class="b" d="m151.98 71.5h1.26v1.33c0.45-0.77 1.53-1.47 2.68-1.47 2.07 0 3.6 1.51 3.6 3.98v0.12c0 2.42-1.42 4.09-3.6 4.09-1.3 0-2.23-0.65-2.68-1.44v4.06h-1.26zm6.24 4.03v-0.12c0-2-1.1-3-2.44-3-1.47 0-2.59 0.97-2.59 3v0.12c0 2.03 1.06 2.98 2.6 2.98s2.42-1.06 2.42-2.98z"/><path class="b" d="m160.85 77.23c0-1.83 1.94-2.45 3.97-2.45h1.14v-0.57c0-1.26-0.48-1.79-1.7-1.79-1.09 0-1.7 0.46-1.82 1.42h-1.26c0.17-1.8 1.6-2.47 3.13-2.47s2.89 0.62 2.89 2.83v5.22h-1.26v-1c-0.59 0.74-1.3 1.13-2.47 1.13-1.47 0-2.63-0.71-2.63-2.33zm5.1-0.58v-0.98h-1.09c-1.59 0-2.75 0.39-2.75 1.56 0 0.82 0.39 1.33 1.5 1.33 1.33 0 2.35-0.68 2.35-1.91z"/><path class="b" d="m169.71 71.5h1.26v1.26c0.36-0.74 1.24-1.39 2.54-1.39 1.63 0 2.79 0.89 2.79 3.19v4.86h-1.26v-4.95c0-1.39-0.59-2.01-1.86-2.01-1.17 0-2.21 0.74-2.21 2.17v4.8h-1.26v-7.92z"/><path class="b" d="m180.77 78.6-3.1-7.1h1.35l2.42 5.68 2.19-5.68h1.29l-4.37 10.67h-1.27l1.5-3.57z"/><path class="b" d="m113.87 0.82c4.27 0 6.75 2.78 6.75 6.75s-2.47 6.75-6.8 6.75-6.75-2.83-6.75-6.75 2.47-6.75 6.8-6.75"/><path class="b" d="m95.74 39.61c0 2.78-0.26 5.2-1.13 7.21-2.32 5.3-7.16 8.09-13.75 8.09s-11.69-2.78-14.01-8.09c-0.88-2.01-1.13-4.43-1.13-7.21v-21.48h9.27v20.96c0 1.65 0.1 2.99 0.57 4.07 0.98 2.27 3.09 3.09 5.31 3.09 1.96 0 4.07-0.82 5.05-3.09 0.46-1.08 0.57-2.42 0.57-4.07v-20.96h9.27v21.48z"/><path class="b" d="m129.16 32.6v21.58h-9.27v-20.91c0-1.65-0.1-2.99-0.57-4.07-0.98-2.27-3.09-3.3-5.46-3.3s-4.48 1.03-5.46 3.3c-0.46 1.08-0.57 2.42-0.57 4.07v20.91h-9.27v-21.58c0-2.78 0.26-5.2 1.13-7.21 2.32-5.3 7.16-8.14 14.16-8.14s11.85 2.83 14.16 8.14c0.88 2.01 1.13 4.43 1.13 7.21"/><polygon class="b" points="193.6 18.13 203.79 18.13 211.37 32.19 218.99 18.13 228.83 18.13 215.9 41.51 215.9 54.18 206.42 54.18 206.42 41.51"/><polygon class="b" points="10.44 33.63 10.44 26.53 26.98 26.53 26.98 18.13 1.17 18.13 1.17 54.18 10.44 54.18 10.44 41.98 25.85 41.98 25.85 33.63"/><path class="b" d="m113.87 0.82c4.27 0 6.75 2.78 6.75 6.75s-2.47 6.75-6.8 6.75-6.75-2.83-6.75-6.75 2.47-6.75 6.8-6.75"/><path class="b" d="m95.74 39.61c0 2.78-0.26 5.2-1.13 7.21-2.32 5.3-7.16 8.09-13.75 8.09s-11.69-2.78-14.01-8.09c-0.88-2.01-1.13-4.43-1.13-7.21v-21.48h9.27v20.96c0 1.65 0.1 2.99 0.57 4.07 0.98 2.27 3.09 3.09 5.31 3.09 1.96 0 4.07-0.82 5.05-3.09 0.46-1.08 0.57-2.42 0.57-4.07v-20.96h9.27v21.48z"/><path class="b" d="m129.16 32.6v21.58h-9.27v-20.91c0-1.65-0.1-2.99-0.57-4.07-0.98-2.27-3.09-3.3-5.46-3.3s-4.48 1.03-5.46 3.3c-0.46 1.08-0.57 2.42-0.57 4.07v20.91h-9.27v-21.58c0-2.78 0.26-5.2 1.13-7.21 2.32-5.3 7.16-8.14 14.16-8.14s11.85 2.83 14.16 8.14c0.88 2.01 1.13 4.43 1.13 7.21"/><path class="b" d="m181.65 42.8h-5.82v11.38h-9.27v-36.05h17.2c6.9 0 12.05 4.58 12.05 12.26 0 4.74-1.96 8.34-5.36 10.51l5.56 13.29h-9.89l-4.48-11.38zm-5.82-16.69v8.6h5.82c3.45 0 4.94-1.65 4.94-4.33 0-2.52-1.49-4.28-4.94-4.28h-5.82zm5.82 16.69h-5.82v11.38h-9.27v-36.05h17.2c6.9 0 12.05 4.58 12.05 12.26 0 4.74-1.96 8.34-5.36 10.51l5.56 13.29h-9.89l-4.48-11.38zm-5.82-16.69v8.6h5.82c3.45 0 4.94-1.65 4.94-4.33 0-2.52-1.49-4.28-4.94-4.28h-5.82z"/><path class="b" d="m132.31 54.18v-36.05h13.34c11.69 0 18.54 7.11 18.54 18.03s-6.13 18.03-17.98 18.03h-13.91zm9.27-8.14h3.86c6.03 0 9.27-3.3 9.27-9.89s-3.25-9.89-9.27-9.89h-3.86zm-9.27 8.14v-36.05h13.34c11.69 0 18.54 7.11 18.54 18.03s-6.13 18.03-17.98 18.03h-13.91zm9.27-8.14h3.86c6.03 0 9.27-3.3 9.27-9.89s-3.25-9.89-9.27-9.89h-3.86z"/><path class="b" d="m45.93 17.41c10.87 0 17.31 7.98 17.31 18.75s-6.7 18.75-17.31 18.75-17.36-7.93-17.36-18.75 6.75-18.75 17.36-18.75m-0.05 29.05c4.89 0 7.98-4.07 7.98-10.04 0-6.59-3.09-10.56-7.73-10.56-5.05 0-8.14 3.97-8.14 10.04 0 6.49 3.09 10.56 7.88 10.56m0.05-29.05c10.87 0 17.31 7.98 17.31 18.75s-6.7 18.75-17.31 18.75-17.36-7.93-17.36-18.75 6.75-18.75 17.36-18.75m-0.05 29.05c4.89 0 7.98-4.07 7.98-10.04 0-6.59-3.09-10.56-7.73-10.56-5.05 0-8.14 3.97-8.14 10.04 0 6.49 3.09 10.56 7.88 10.56"/><polygon class="b" points="10.44 33.63 10.44 26.53 26.98 26.53 26.98 18.13 1.17 18.13 1.17 54.18 10.44 54.18 10.44 41.98 25.85 41.98 25.85 33.63"/></g></svg> </a> </div> </div> <div class="col-12 col-3@lg footer__social"> <ul class="footer__social-items"> <li class="footer__social-item"> <a class="footer__social-link" href="https://www.linkedin.com/company/164364" target="_blank" rel="noreferrer" aria-label="LinkedIn"> <span class="footer__social-link-text">LinkedIn</span> <span class="footer__social-link-icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-linked-in"></use> </svg> </span> </a> </li> <li class="footer__social-item"> <a class="footer__social-link" href="https://twitter.com/infoworld" target="_blank" rel="noreferrer" aria-label="X"> <span class="footer__social-link-text">X</span> <span class="footer__social-link-icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-twitter"></use> </svg> </span> </a> </li> <li class="footer__social-item"> <a class="footer__social-link" href="https://www.facebook.com/InfoWorld" target="_blank" rel="noreferrer" aria-label="Facebook"> <span class="footer__social-link-text">Facebook</span> <span class="footer__social-link-icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-facebook"></use> </svg> </span> </a> </li> <li class="footer__social-item"> <a class="footer__social-link" href="https://www.youtube.com/@InfoWorld" target="_blank" rel="noreferrer" aria-label="Youtube"> <span class="footer__social-link-text">Youtube</span> <span class="footer__social-link-icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-youtube"></use> </svg> </span> </a> </li> </ul> </div> </div> <div class="footer__copyright"> <div class="entry-copyright"> <a href="https://foundryco.com/terms-of-service-agreement/">Copyright 漏 2024 IDG Communications, Inc.</a></div> </div> </div> </footer> </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 --> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5JGZ3LH" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <link rel='stylesheet' id='typekit-styles-css' href='https://use.typekit.net/uow1hrg.css?ver=1.0.0' media='all' /> <link rel='stylesheet' id='robotofont-css' href='https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/fonts/roboto.css?ver=1.0.0' media='1' /> <script id="child_ajaxload_posts-js-extra"> var ajaxload_params = {"ajaxurl":"https:\/\/www.infoworld.com\/wp-admin\/admin-ajax.php","nonce":"000dd4877d"}; </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":"9af8550e6a"}; </script> <script id="ajaxload_events-js-extra"> var ajaxload_event_params = {"ajaxurl":"https:\/\/www.infoworld.com\/wp-admin\/admin-ajax.php","nonce":"57df80a10b"}; </script> <script type="text/javascript" src="https://www.infoworld.com/_static/??-eJyl0N0KwjAMBeAXMpYp/uxCfJa2qVtm15Ymc/r21l0MBUXQq0DgfDlEjQlsDOKCKOupDOgHSH5oKLAibEBayghJZ7kpJBbFNlMSVqc85RBM1gFTZAHjoz0vO16oJ1Za17tijWBWBmxLHmHavXK601cfNUKjxZWDxeNPVKn1sIxm944yQ0DvfgzPPf5pMCPuUlIflW8vSakkj/2h2q2rut7U+213B6Fjn/w=" ></script> </body> </html>