CINXE.COM
OCR Engine Tesseract 5.0 converts to float for faster training and recognition • DEVCLASS
<!doctype html > <html lang="en-GB"> <head> <meta charset="UTF-8" /> <title>OCR Engine Tesseract 5.0 converts to float for faster training and recognition • DEVCLASS</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="pingback" href="https://devclass.com/xmlrpc.php" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <link rel="icon" type="image/png" href="https://devclass.com/wp-content/uploads/2018/08/DevClass_logo_Black.png"> <!-- This site is optimized with the Yoast SEO plugin v23.9 - https://yoast.com/wordpress/plugins/seo/ --> <meta name="description" content="After more than 2.5 years in alpha, Tesseract 5.0 looks to impress users with faster training and recognition out of the box." /> <link rel="canonical" href="https://devclass.com/2021/12/01/tesseract-ocr-5/" /> <meta property="og:locale" content="en_GB" /> <meta property="og:type" content="article" /> <meta property="og:title" content="OCR Engine Tesseract 5.0 converts to float for faster training and recognition • DEVCLASS" /> <meta property="og:description" content="After more than 2.5 years in alpha, Tesseract 5.0 looks to impress users with faster training and recognition out of the box." /> <meta property="og:url" content="https://devclass.com/2021/12/01/tesseract-ocr-5/" /> <meta property="og:site_name" content="DEVCLASS" /> <meta property="article:published_time" content="2021-12-01T15:17:52+00:00" /> <meta property="article:modified_time" content="2021-12-01T23:15:27+00:00" /> <meta property="og:image" content="https://devclass.com/wp-content/uploads/2021/12/stack-of-letters-gbdc9a3bff_1920.jpg" /> <meta property="og:image:width" content="1920" /> <meta property="og:image:height" content="1271" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="author" content="Julia Schmidt" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Written by" /> <meta name="twitter:data1" content="Julia Schmidt" /> <meta name="twitter:label2" content="Estimated reading time" /> <meta name="twitter:data2" content="2 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://devclass.com/2021/12/01/tesseract-ocr-5/","url":"https://devclass.com/2021/12/01/tesseract-ocr-5/","name":"OCR Engine Tesseract 5.0 converts to float for faster training and recognition • DEVCLASS","isPartOf":{"@id":"https://devclass.com/#website"},"primaryImageOfPage":{"@id":"https://devclass.com/2021/12/01/tesseract-ocr-5/#primaryimage"},"image":{"@id":"https://devclass.com/2021/12/01/tesseract-ocr-5/#primaryimage"},"thumbnailUrl":"https://devclass.com/wp-content/uploads/2021/12/stack-of-letters-gbdc9a3bff_1920.jpg","datePublished":"2021-12-01T15:17:52+00:00","dateModified":"2021-12-01T23:15:27+00:00","author":{"@id":"https://devclass.com/#/schema/person/8a6fbfcf4c19832ace11a834477b61f3"},"description":"After more than 2.5 years in alpha, Tesseract 5.0 looks to impress users with faster training and recognition out of the box.","breadcrumb":{"@id":"https://devclass.com/2021/12/01/tesseract-ocr-5/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https://devclass.com/2021/12/01/tesseract-ocr-5/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https://devclass.com/2021/12/01/tesseract-ocr-5/#primaryimage","url":"https://devclass.com/wp-content/uploads/2021/12/stack-of-letters-gbdc9a3bff_1920.jpg","contentUrl":"https://devclass.com/wp-content/uploads/2021/12/stack-of-letters-gbdc9a3bff_1920.jpg","width":1920,"height":1271,"caption":"Tesseract 5.0"},{"@type":"BreadcrumbList","@id":"https://devclass.com/2021/12/01/tesseract-ocr-5/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://devclass.com/"},{"@type":"ListItem","position":2,"name":"OCR Engine Tesseract 5.0 converts to float for faster training and recognition"}]},{"@type":"WebSite","@id":"https://devclass.com/#website","url":"https://devclass.com/","name":"DEVCLASS","description":"A publication for Developers","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://devclass.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https://devclass.com/#/schema/person/8a6fbfcf4c19832ace11a834477b61f3","name":"Julia Schmidt","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https://devclass.com/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/834c44804c030f52517cf7c5d3d2d99a?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/834c44804c030f52517cf7c5d3d2d99a?s=96&d=mm&r=g","caption":"Julia Schmidt"},"description":"Julia Schmidt previously worked as editor of devClass. Before that she reported on software development, organised conferences, and worked as an engineer and software developer.","url":"https://devclass.com/author/julia/"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel="alternate" type="application/rss+xml" title="DEVCLASS » Feed" href="https://devclass.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="DEVCLASS » Comments Feed" href="https://devclass.com/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="DEVCLASS » OCR Engine Tesseract 5.0 converts to float for faster training and recognition Comments Feed" href="https://devclass.com/2021/12/01/tesseract-ocr-5/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/devclass.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.1"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://devclass.com/wp-includes/css/dist/block-library/style.min.css?ver=6.6.1' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/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' type='text/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: 11px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 32px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--regular: 15px;--wp--preset--font-size--larger: 50px;--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='contact-form-7-css' href='https://devclass.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0' type='text/css' media='all' /> <link rel='stylesheet' id='rpt_front_style-css' href='https://devclass.com/wp-content/plugins/related-posts-thumbnails/assets/css/front.css?ver=1.9.0' type='text/css' media='all' /> <link rel='stylesheet' id='td-plugin-multi-purpose-css' href='https://devclass.com/wp-content/plugins/td-composer/td-multi-purpose/style.css?ver=e12b81d6cbdf467845997a891495df2cx' type='text/css' media='all' /> <link rel='stylesheet' id='google-fonts-style-css' href='https://fonts.googleapis.com/css?family=Work+Sans%3A400%2C600%7CPT+Sans%3A400%2C600%7CRoboto+Condensed%3A400%2C600%7CRoboto%3A400%2C500%2C700%2C600%7CMontserrat%3A400%2C600%7COpen+Sans%3A400%2C600%2C700&display=swap&ver=12.5.1' type='text/css' media='all' /> <link rel='stylesheet' id='td-theme-css' href='https://devclass.com/wp-content/themes/Newspaper/style.css?ver=12.5.1' type='text/css' media='all' /> <style id='td-theme-inline-css' type='text/css'> @media (max-width: 767px) { .td-header-desktop-wrap { display: none; } } @media (min-width: 767px) { .td-header-mobile-wrap { display: none; } } </style> <link rel='stylesheet' id='td-theme-child-css' href='https://devclass.com/wp-content/themes/Newspaper-child/style.css?ver=12.5.1c' type='text/css' media='all' /> <link rel='stylesheet' id='td-legacy-framework-front-style-css' href='https://devclass.com/wp-content/plugins/td-composer/legacy/Newspaper/assets/css/td_legacy_main.css?ver=e12b81d6cbdf467845997a891495df2cx' type='text/css' media='all' /> <link rel='stylesheet' id='td-theme-demo-style-css' href='https://devclass.com/wp-content/plugins/td-composer/legacy/Newspaper/includes/demos/lifestyle/demo_style.css?ver=12.5.1' type='text/css' media='all' /> <link rel='stylesheet' id='tdb_style_cloud_templates_front-css' href='https://devclass.com/wp-content/plugins/td-cloud-library/assets/css/tdb_main.css?ver=0390de2d4222fae8efaeae107c326a4e' type='text/css' media='all' /> <script type="text/javascript" src="https://devclass.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://devclass.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <link rel="https://api.w.org/" href="https://devclass.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://devclass.com/wp-json/wp/v2/posts/4192" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://devclass.com/xmlrpc.php?rsd" /> <link rel='shortlink' href='https://devclass.com/?p=4192' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://devclass.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdevclass.com%2F2021%2F12%2F01%2Ftesseract-ocr-5%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://devclass.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdevclass.com%2F2021%2F12%2F01%2Ftesseract-ocr-5%2F&format=xml" /> <style> #related_posts_thumbnails li { border-right: 1px solid#ffffff; background-color: #ffffff } #related_posts_thumbnails li:hover { background-color: #eeeeee; } .relpost_content { font-size: 13px; color: #333333; } .relpost-block-single { background-color: #ffffff; border-right: 1px solid#ffffff; border-left: 1px solid#ffffff; margin-right: -1px; } .relpost-block-single:hover { background-color: #eeeeee; } </style> <!-- BEGIN GAM SETUP --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script src="https://nir.theregister.com/?g=c&g=sa&s=c/devc.all"></script> <script> function show_gpt (div) { googletag.cmd.push(function() { googletag.display(div); }); } function getParameterByName(name) { var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search); return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); } function init_gpt(platcats, plattags, platid) { var tile = 1; var tag = '/6978/DevClass'; // Define the allowed dimensions for each unit, at various page widths. var adsizes__condor = googletag.sizeMapping() .addSize([ 1,10] , [ [ 300,250] , 'fluid' ]) .addSize([ 758,10] , [ [ 728, 91] , [ 728, 90] , [468, 61] , [468,60], 'fluid' ]) .addSize([1000,10] , [ [ 970, 91] , [ 970, 90] , [970,251] , [970,250] , [728, 91] , [728,90] , [468,61] , [468,60], 'fluid' ]) .addSize([1260,10] , [ [1200,271] , [1200,270] , [970, 91] , [970, 90] , [970,250] , [728,90] , [728,91] , [468,60] , [468,61], 'fluid' ]) .build(); // Falcon sizes (and +2) var adsizes__falcon = googletag.sizeMapping() .addSize([1 ,10] , [ [300,252] , [300,250], 'fluid' ]) .build(); // Eagle sizes (and +3) var adsizes__eagle = googletag.sizeMapping() .addSize([ 1,10] , [ [300,603] , [300,600] , [300,253], [300,250] ]) .build(); // Hawk sizes (and +4) var adsizes__hawk = googletag.sizeMapping() .addSize([ 1,10] , [ [ 300,254] , [ 300,250], 'fluid' ]) .addSize([ 758,10] , [ [ 728, 94] , [ 728, 90] , [468,64] , [468,60], 'fluid' ]) .addSize([1000,10] , [ [ 728, 94] , [ 728, 90] , [468,64] , [468,60], 'fluid' ]) .addSize([1260,10] , [ [1200,604] , [1200,600] , [1200,274] , [1200,270] , [970,94] , [970,90] , [970,250] , [728,90] , [728,91] , [468,60] , [468,61], 'fluid' ]) .build(); // Set up the units themselves googletag.defineOutOfPageSlot(tag, 'ad-kite') .addService(googletag.pubads()) .setTargeting("pos", "top") .setTargeting("raptor", "kite") .setTargeting("unitnum", tile++); googletag.defineSlot(tag, [728 , 90], 'ad-condor') .defineSizeMapping(adsizes__condor) .addService(googletag.pubads()) .setTargeting("pos", "top") .setTargeting("raptor", "condor") .setTargeting("unitnum", tile++); googletag.defineSlot(tag, [300 , 250], 'ad-falcon') .addService(googletag.pubads()) .defineSizeMapping(adsizes__falcon) .setTargeting("pos", "mid") .setTargeting("raptor", "falcon") .setTargeting("unitnum", tile++); googletag.defineSlot(tag, [300 , 600], 'ad-eagle') .addService(googletag.pubads()) .defineSizeMapping(adsizes__eagle) .setTargeting("pos", "top") .setTargeting("raptor", "eagle") .setTargeting("unitnum", tile++); googletag.defineSlot(tag, [728 , 90], 'ad-hawk') .defineSizeMapping(adsizes__hawk) .addService(googletag.pubads()) .setTargeting("pos", "btm") .setTargeting("raptor", "hawk") .setTargeting("unitnum", tile++); if (platcats != "") googletag.pubads().setTargeting('platcats' , platcats); if (plattags != "") { googletag.pubads().setTargeting('plattags' , plattags); googletag.pubads().setTargeting('pt' , 'a'); } else { googletag.pubads().setTargeting('pt' , 'i'); } if (platid != "") googletag.pubads().setTargeting('platid' , platid); googletag.pubads().setTargeting('test' , getParameterByName('test') || '0'); var width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); googletag.pubads().setTargeting('bwidth',Math.floor(width/100) + ''); // (parseString) if (typeof VCs === 'object') googletag.pubads().setTargeting('vc',VCs); if (typeof SAs === 'object') googletag.pubads().setTargeting('sa',SAs); googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.enableServices(); } </script> <script>window.googletag = window.googletag || {cmd: []}; googletag.cmd.push(function() {init_gpt('ai-ml', 'digitalisation,OCR,optical character recognition,Tesseract', '4192');});</script><!-- END GAM SETUP --> <!--[if lt IE 9]><script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script><![endif]--> <script> window.tdb_global_vars = {"wpRestUrl":"https:\/\/devclass.com\/wp-json\/","permalinkStructure":"\/%year%\/%monthnum%\/%day%\/%postname%\/"}; window.tdb_p_autoload_vars = {"isAjax":false,"isAdminBarShowing":false,"autoloadScrollPercent":50,"postAutoloadStatus":"off","origPostEditUrl":null}; </script> <style id="tdb-global-colors"> :root {--accent-color: #fff;} </style> <!-- JS generated by theme --> <script> var tdBlocksArray = []; //here we store all the items for the current page // td_block class - each ajax block uses a object of this class for requests function tdBlock() { this.id = ''; this.block_type = 1; //block type id (1-234 etc) this.atts = ''; this.td_column_number = ''; this.td_current_page = 1; // this.post_count = 0; //from wp this.found_posts = 0; //from wp this.max_num_pages = 0; //from wp this.td_filter_value = ''; //current live filter value this.is_ajax_running = false; this.td_user_action = ''; // load more or infinite loader (used by the animation) this.header_color = ''; this.ajax_pagination_infinite_stop = ''; //show load more at page x } // td_js_generator - mini detector ( function () { var htmlTag = document.getElementsByTagName("html")[0]; if ( navigator.userAgent.indexOf("MSIE 10.0") > -1 ) { htmlTag.className += ' ie10'; } if ( !!navigator.userAgent.match(/Trident.*rv\:11\./) ) { htmlTag.className += ' ie11'; } if ( navigator.userAgent.indexOf("Edge") > -1 ) { htmlTag.className += ' ieEdge'; } if ( /(iPad|iPhone|iPod)/g.test(navigator.userAgent) ) { htmlTag.className += ' td-md-is-ios'; } var user_agent = navigator.userAgent.toLowerCase(); if ( user_agent.indexOf("android") > -1 ) { htmlTag.className += ' td-md-is-android'; } if ( -1 !== navigator.userAgent.indexOf('Mac OS X') ) { htmlTag.className += ' td-md-is-os-x'; } if ( /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()) ) { htmlTag.className += ' td-md-is-chrome'; } if ( -1 !== navigator.userAgent.indexOf('Firefox') ) { htmlTag.className += ' td-md-is-firefox'; } if ( -1 !== navigator.userAgent.indexOf('Safari') && -1 === navigator.userAgent.indexOf('Chrome') ) { htmlTag.className += ' td-md-is-safari'; } if( -1 !== navigator.userAgent.indexOf('IEMobile') ){ htmlTag.className += ' td-md-is-iemobile'; } })(); var tdLocalCache = {}; ( function () { "use strict"; tdLocalCache = { data: {}, remove: function (resource_id) { delete tdLocalCache.data[resource_id]; }, exist: function (resource_id) { return tdLocalCache.data.hasOwnProperty(resource_id) && tdLocalCache.data[resource_id] !== null; }, get: function (resource_id) { return tdLocalCache.data[resource_id]; }, set: function (resource_id, cachedData) { tdLocalCache.remove(resource_id); tdLocalCache.data[resource_id] = cachedData; } }; })(); var td_viewport_interval_list=[{"limitBottom":767,"sidebarWidth":228},{"limitBottom":1018,"sidebarWidth":300},{"limitBottom":1140,"sidebarWidth":324}]; var td_animation_stack_effect="type2"; var tds_animation_stack=true; var td_animation_stack_specific_selectors=".entry-thumb, img[class*=\"wp-image-\"], a.td-sml-link-to-image > img, .td-lazy-img"; var td_animation_stack_general_selectors=".td-animation-stack .entry-thumb, .post .entry-thumb, .post img[class*=\"wp-image-\"], a.td-sml-link-to-image > img, .td-animation-stack .td-lazy-img"; var tdc_is_installed="yes"; var td_ajax_url="https:\/\/devclass.com\/wp-admin\/admin-ajax.php?td_theme_name=Newspaper&v=12.5.1"; var td_get_template_directory_uri="https:\/\/devclass.com\/wp-content\/plugins\/td-composer\/legacy\/common"; var tds_snap_menu="smart_snap_always"; var tds_logo_on_sticky=""; var tds_header_style="6"; var td_please_wait="Please wait..."; var td_email_user_pass_incorrect="User or password incorrect!"; var td_email_user_incorrect="Email or username incorrect!"; var td_email_incorrect="Email incorrect!"; var td_user_incorrect="Username incorrect!"; var td_email_user_empty="Email or username empty!"; var td_pass_empty="Pass empty!"; var td_pass_pattern_incorrect="Invalid Pass Pattern!"; var td_retype_pass_incorrect="Retyped Pass incorrect!"; var tds_more_articles_on_post_enable=""; var tds_more_articles_on_post_time_to_wait=""; var tds_more_articles_on_post_pages_distance_from_top=0; var tds_theme_color_site_wide="#8b4cd1"; var tds_smart_sidebar="enabled"; var tdThemeName="Newspaper"; var tdThemeNameWl="Newspaper"; var td_magnific_popup_translation_tPrev="Previous (Left arrow key)"; var td_magnific_popup_translation_tNext="Next (Right arrow key)"; var td_magnific_popup_translation_tCounter="%curr% of %total%"; var td_magnific_popup_translation_ajax_tError="The content from %url% could not be loaded."; var td_magnific_popup_translation_image_tError="The image #%curr% could not be loaded."; var tdBlockNonce="f987305996"; var tdDateNamesI18n={"month_names":["January","February","March","April","May","June","July","August","September","October","November","December"],"month_names_short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"day_names":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"day_names_short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}; var tdb_modal_confirm="Save"; var tdb_modal_cancel="Cancel"; var tdb_modal_confirm_alt="Yes"; var tdb_modal_cancel_alt="No"; var td_ad_background_click_link=""; var td_ad_background_click_target=""; </script> <!-- Header style compiled by theme --> <style> body { background-color:#000000; } .td-header-wrap .black-menu .sf-menu > .current-menu-item > a, .td-header-wrap .black-menu .sf-menu > .current-menu-ancestor > a, .td-header-wrap .black-menu .sf-menu > .current-category-ancestor > a, .td-header-wrap .black-menu .sf-menu > li > a:hover, .td-header-wrap .black-menu .sf-menu > .sfHover > a, .sf-menu > .current-menu-item > a:after, .sf-menu > .current-menu-ancestor > a:after, .sf-menu > .current-category-ancestor > a:after, .sf-menu > li:hover > a:after, .sf-menu > .sfHover > a:after, .header-search-wrap .td-drop-down-search:after, .header-search-wrap .td-drop-down-search .btn:hover, input[type=submit]:hover, .td-read-more a, .td-post-category:hover, body .td_top_authors .td-active .td-author-post-count, body .td_top_authors .td-active .td-author-comments-count, body .td_top_authors .td_mod_wrap:hover .td-author-post-count, body .td_top_authors .td_mod_wrap:hover .td-author-comments-count, .td-404-sub-sub-title a:hover, .td-search-form-widget .wpb_button:hover, .td-rating-bar-wrap div, .dropcap, .td_wrapper_video_playlist .td_video_controls_playlist_wrapper, .wpb_default, .wpb_default:hover, .td-left-smart-list:hover, .td-right-smart-list:hover, #bbpress-forums button:hover, .bbp_widget_login .button:hover, .td-footer-wrapper .td-post-category, .td-footer-wrapper .widget_product_search input[type="submit"]:hover, .single-product .product .summary .cart .button:hover, .td-next-prev-wrap a:hover, .td-load-more-wrap a:hover, .td-post-small-box a:hover, .page-nav .current, .page-nav:first-child > div, #bbpress-forums .bbp-pagination .current, #bbpress-forums #bbp-single-user-details #bbp-user-navigation li.current a, .td-theme-slider:hover .slide-meta-cat a, a.vc_btn-black:hover, .td-trending-now-wrapper:hover .td-trending-now-title, .td-scroll-up, .td-smart-list-button:hover, .td-weather-information:before, .td-weather-week:before, .td_block_exchange .td-exchange-header:before, .td-pulldown-syle-2 .td-subcat-dropdown ul:after, .td_block_template_9 .td-block-title:after, .td_block_template_15 .td-block-title:before, div.wpforms-container .wpforms-form div.wpforms-submit-container button[type=submit], .td-close-video-fixed { background-color: #8b4cd1; } .td_block_template_4 .td-related-title .td-cur-simple-item:before { border-color: #8b4cd1 transparent transparent transparent !important; } .td_block_template_4 .td-related-title .td-cur-simple-item, .td_block_template_3 .td-related-title .td-cur-simple-item, .td_block_template_9 .td-related-title:after { background-color: #8b4cd1; } a, cite a:hover, .td-page-content blockquote p, .td-post-content blockquote p, .mce-content-body blockquote p, .comment-content blockquote p, .wpb_text_column blockquote p, .td_block_text_with_title blockquote p, .td_module_wrap:hover .entry-title a, .td-subcat-filter .td-subcat-list a:hover, .td-subcat-filter .td-subcat-dropdown a:hover, .td_quote_on_blocks, .dropcap2, .dropcap3, body .td_top_authors .td-active .td-authors-name a, body .td_top_authors .td_mod_wrap:hover .td-authors-name a, .td-post-next-prev-content a:hover, .author-box-wrap .td-author-social a:hover, .td-author-name a:hover, .td-author-url a:hover, .comment-reply-link:hover, .logged-in-as a:hover, #cancel-comment-reply-link:hover, .td-search-query, .widget a:hover, .td_wp_recentcomments a:hover, .archive .widget_archive .current, .archive .widget_archive .current a, .widget_calendar tfoot a:hover, #bbpress-forums li.bbp-header .bbp-reply-content span a:hover, #bbpress-forums .bbp-forum-freshness a:hover, #bbpress-forums .bbp-topic-freshness a:hover, #bbpress-forums .bbp-forums-list li a:hover, #bbpress-forums .bbp-forum-title:hover, #bbpress-forums .bbp-topic-permalink:hover, #bbpress-forums .bbp-topic-started-by a:hover, #bbpress-forums .bbp-topic-started-in a:hover, #bbpress-forums .bbp-body .super-sticky li.bbp-topic-title .bbp-topic-permalink, #bbpress-forums .bbp-body .sticky li.bbp-topic-title .bbp-topic-permalink, .widget_display_replies .bbp-author-name, .widget_display_topics .bbp-author-name, .td-subfooter-menu li a:hover, a.vc_btn-black:hover, .td-smart-list-dropdown-wrap .td-smart-list-button:hover, .td-instagram-user a, .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option:hover, .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option:hover i, .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-link:hover, .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-item .td-cur-simple-item, .td-pulldown-syle-2 .td-subcat-dropdown:hover .td-subcat-more span, .td-pulldown-syle-2 .td-subcat-dropdown:hover .td-subcat-more i, .td-pulldown-syle-3 .td-subcat-dropdown:hover .td-subcat-more span, .td-pulldown-syle-3 .td-subcat-dropdown:hover .td-subcat-more i, .td_block_template_2 .td-related-title .td-cur-simple-item, .td_block_template_5 .td-related-title .td-cur-simple-item, .td_block_template_6 .td-related-title .td-cur-simple-item, .td_block_template_7 .td-related-title .td-cur-simple-item, .td_block_template_8 .td-related-title .td-cur-simple-item, .td_block_template_9 .td-related-title .td-cur-simple-item, .td_block_template_10 .td-related-title .td-cur-simple-item, .td_block_template_11 .td-related-title .td-cur-simple-item, .td_block_template_12 .td-related-title .td-cur-simple-item, .td_block_template_13 .td-related-title .td-cur-simple-item, .td_block_template_14 .td-related-title .td-cur-simple-item, .td_block_template_15 .td-related-title .td-cur-simple-item, .td_block_template_16 .td-related-title .td-cur-simple-item, .td_block_template_17 .td-related-title .td-cur-simple-item, .td-theme-wrap .sf-menu ul .td-menu-item > a:hover, .td-theme-wrap .sf-menu ul .sfHover > a, .td-theme-wrap .sf-menu ul .current-menu-ancestor > a, .td-theme-wrap .sf-menu ul .current-category-ancestor > a, .td-theme-wrap .sf-menu ul .current-menu-item > a, .td_outlined_btn, body .td_block_categories_tags .td-ct-item:hover, body .td_block_list_menu li.current-menu-item > a, body .td_block_list_menu li.current-menu-ancestor > a, body .td_block_list_menu li.current-category-ancestor > a { color: #8b4cd1; } a.vc_btn-black.vc_btn_square_outlined:hover, a.vc_btn-black.vc_btn_outlined:hover { color: #8b4cd1 !important; } .td-next-prev-wrap a:hover, .td-load-more-wrap a:hover, .td-post-small-box a:hover, .page-nav .current, .page-nav:first-child > div, #bbpress-forums .bbp-pagination .current, .post .td_quote_box, .page .td_quote_box, a.vc_btn-black:hover, .td_block_template_5 .td-block-title > *, .td_outlined_btn { border-color: #8b4cd1; } .td_wrapper_video_playlist .td_video_currently_playing:after { border-color: #8b4cd1 !important; } .header-search-wrap .td-drop-down-search:before { border-color: transparent transparent #8b4cd1 transparent; } .block-title > span, .block-title > a, .block-title > label, .widgettitle, .widgettitle:after, body .td-trending-now-title, .td-trending-now-wrapper:hover .td-trending-now-title, .wpb_tabs li.ui-tabs-active a, .wpb_tabs li:hover a, .vc_tta-container .vc_tta-color-grey.vc_tta-tabs-position-top.vc_tta-style-classic .vc_tta-tabs-container .vc_tta-tab.vc_active > a, .vc_tta-container .vc_tta-color-grey.vc_tta-tabs-position-top.vc_tta-style-classic .vc_tta-tabs-container .vc_tta-tab:hover > a, .td_block_template_1 .td-related-title .td-cur-simple-item, .td-subcat-filter .td-subcat-dropdown:hover .td-subcat-more, .td_3D_btn, .td_shadow_btn, .td_default_btn, .td_round_btn, .td_outlined_btn:hover { background-color: #8b4cd1; } .block-title, .td_block_template_1 .td-related-title, .wpb_tabs .wpb_tabs_nav, .vc_tta-container .vc_tta-color-grey.vc_tta-tabs-position-top.vc_tta-style-classic .vc_tta-tabs-container { border-color: #8b4cd1; } .td_block_wrap .td-subcat-item a.td-cur-simple-item { color: #8b4cd1; } .td-grid-style-4 .entry-title { background-color: rgba(139, 76, 209, 0.7); } .block-title > span, .block-title > span > a, .block-title > a, .block-title > label, .widgettitle, .widgettitle:after, body .td-trending-now-title, .td-trending-now-wrapper:hover .td-trending-now-title, .wpb_tabs li.ui-tabs-active a, .wpb_tabs li:hover a, .vc_tta-container .vc_tta-color-grey.vc_tta-tabs-position-top.vc_tta-style-classic .vc_tta-tabs-container .vc_tta-tab.vc_active > a, .vc_tta-container .vc_tta-color-grey.vc_tta-tabs-position-top.vc_tta-style-classic .vc_tta-tabs-container .vc_tta-tab:hover > a, .td_block_template_1 .td-related-title .td-cur-simple-item, .td-subcat-filter .td-subcat-dropdown:hover .td-subcat-more, .td-weather-information:before, .td-weather-week:before, .td_block_exchange .td-exchange-header:before, .td-theme-wrap .td_block_template_3 .td-block-title > *, .td-theme-wrap .td_block_template_4 .td-block-title > *, .td-theme-wrap .td_block_template_7 .td-block-title > *, .td-theme-wrap .td_block_template_9 .td-block-title:after, .td-theme-wrap .td_block_template_10 .td-block-title::before, .td-theme-wrap .td_block_template_11 .td-block-title::before, .td-theme-wrap .td_block_template_11 .td-block-title::after, .td-theme-wrap .td_block_template_14 .td-block-title, .td-theme-wrap .td_block_template_15 .td-block-title:before, .td-theme-wrap .td_block_template_17 .td-block-title:before { background-color: #000000; } .block-title, .td_block_template_1 .td-related-title, .wpb_tabs .wpb_tabs_nav, .vc_tta-container .vc_tta-color-grey.vc_tta-tabs-position-top.vc_tta-style-classic .vc_tta-tabs-container, .td-theme-wrap .td_block_template_5 .td-block-title > *, .td-theme-wrap .td_block_template_17 .td-block-title, .td-theme-wrap .td_block_template_17 .td-block-title::before { border-color: #000000; } .td-theme-wrap .td_block_template_4 .td-block-title > *:before, .td-theme-wrap .td_block_template_17 .td-block-title::after { border-color: #000000 transparent transparent transparent; } .td-theme-wrap .td_block_template_4 .td-related-title .td-cur-simple-item:before { border-color: #000000 transparent transparent transparent !important; } .td-theme-wrap .block-title > span, .td-theme-wrap .block-title > span > a, .td-theme-wrap .widget_rss .block-title .rsswidget, .td-theme-wrap .block-title > a, .widgettitle, .widgettitle > a, body .td-trending-now-title, .wpb_tabs li.ui-tabs-active a, .wpb_tabs li:hover a, .vc_tta-container .vc_tta-color-grey.vc_tta-tabs-position-top.vc_tta-style-classic .vc_tta-tabs-container .vc_tta-tab.vc_active > a, .vc_tta-container .vc_tta-color-grey.vc_tta-tabs-position-top.vc_tta-style-classic .vc_tta-tabs-container .vc_tta-tab:hover > a, .td-related-title .td-cur-simple-item, .td-theme-wrap .td_block_template_2 .td-block-title > *, .td-theme-wrap .td_block_template_3 .td-block-title > *, .td-theme-wrap .td_block_template_4 .td-block-title > *, .td-theme-wrap .td_block_template_5 .td-block-title > *, .td-theme-wrap .td_block_template_6 .td-block-title > *, .td-theme-wrap .td_block_template_6 .td-block-title:before, .td-theme-wrap .td_block_template_7 .td-block-title > *, .td-theme-wrap .td_block_template_8 .td-block-title > *, .td-theme-wrap .td_block_template_9 .td-block-title > *, .td-theme-wrap .td_block_template_10 .td-block-title > *, .td-theme-wrap .td_block_template_11 .td-block-title > *, .td-theme-wrap .td_block_template_12 .td-block-title > *, .td-theme-wrap .td_block_template_13 .td-block-title > span, .td-theme-wrap .td_block_template_13 .td-block-title > a, .td-theme-wrap .td_block_template_14 .td-block-title > *, .td-theme-wrap .td_block_template_14 .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option, .td-theme-wrap .td_block_template_14 .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option i, .td-theme-wrap .td_block_template_14 .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option:hover, .td-theme-wrap .td_block_template_14 .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option:hover i, .td-theme-wrap .td_block_template_15 .td-block-title > *, .td-theme-wrap .td_block_template_15 .td-block-title-wrap .td-wrapper-pulldown-filter, .td-theme-wrap .td_block_template_15 .td-block-title-wrap .td-wrapper-pulldown-filter i, .td-theme-wrap .td_block_template_16 .td-block-title > *, .td-theme-wrap .td_block_template_17 .td-block-title > * { color: #ffffff; } @media (max-width: 767px) { body .td-header-wrap .td-header-main-menu { background-color: #000000 !important; } } .td-menu-background:before, .td-search-background:before { background: rgba(0,0,0,0.8); background: -moz-linear-gradient(top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.7) 100%); background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(0,0,0,0.8)), color-stop(100%, rgba(0,0,0,0.7))); background: -webkit-linear-gradient(top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.7) 100%); background: -o-linear-gradient(top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.7) 100%); background: -ms-linear-gradient(top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.7) 100%); background: linear-gradient(to bottom, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.7) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='rgba(0,0,0,0.8)', endColorstr='rgba(0,0,0,0.7)', GradientType=0 ); } .td-mobile-content .current-menu-item > a, .td-mobile-content .current-menu-ancestor > a, .td-mobile-content .current-category-ancestor > a, #td-mobile-nav .td-menu-login-section a:hover, #td-mobile-nav .td-register-section a:hover, #td-mobile-nav .td-menu-socials-wrap a:hover i, .td-search-close span:hover i { color: #ffd800; } .td-page-header h1, .td-page-title { color: #ffffff; } .td-page-content p, .td-page-content .td_block_text_with_title { color: #ffffff; } .td-page-content h1, .td-page-content h2, .td-page-content h3, .td-page-content h4, .td-page-content h5, .td-page-content h6 { color: #ffffff; } .td-page-content .widgettitle { color: #fff; } ul.sf-menu > .menu-item > a { font-family:"Work Sans"; font-size:13px; font-weight:500; } .sf-menu ul .menu-item a { font-family:"Work Sans"; font-size:12px; font-weight:normal; } .td-page-title, .td-category-title-holder .td-page-title { font-family:"Work Sans"; font-size:25px; font-weight:500; } body, p { font-family:"PT Sans"; font-size:18px; } .mfp-content .td-login-button:active, .mfp-content .td-login-button:hover { background-color: #ffd800; } .white-popup-block:after { background: #ffd800; background: -moz-linear-gradient(45deg, #ffd800 0%, #8b4cd1 100%); background: -webkit-gradient(left bottom, right top, color-stop(0%, #ffd800), color-stop(100%, #8b4cd1)); background: -webkit-linear-gradient(45deg, #ffd800 0%, #8b4cd1 100%); background: linear-gradient(45deg, #ffd800 0%, #8b4cd1 100%); } /* Style generated by theme for demo: lifestyle */ .td-lifestyle .td-header-style-1 .sf-menu > li > a:hover, .td-lifestyle .td-header-style-1 .sf-menu > .sfHover > a, .td-lifestyle .td-header-style-1 .sf-menu > .current-menu-item > a, .td-lifestyle .td-header-style-1 .sf-menu > .current-menu-ancestor > a, .td-lifestyle .td-header-style-1 .sf-menu > .current-category-ancestor > a, .td-lifestyle .td-social-style3 .td_social_type .td_social_button a:hover { color: #8b4cd1; } .td-lifestyle .td_block_template_8 .td-block-title:after, .td-lifestyle .td-module-comments a, .td-lifestyle.td_category_template_7 .td-category-header .td-page-title:after, .td-lifestyle .td-social-style3 .td_social_type:hover .td-sp { background-color: #8b4cd1; } .td-lifestyle .td-module-comments a:after { border-color: #8b4cd1 transparent transparent transparent; } </style> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-0LM0KFSY6C"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-0LM0KFSY6C'); </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@type": "WebSite", "@id": "https://devclass.com/", "name": "Home" } }, { "@type": "ListItem", "position": 2, "item": { "@type": "WebPage", "@id": "https://devclass.com/category/ai-ml/", "name": "AI/ML" } } ,{ "@type": "ListItem", "position": 3, "item": { "@type": "WebPage", "@id": "https://devclass.com/2021/12/01/tesseract-ocr-5/", "name": "OCR Engine Tesseract 5.0 converts to float for faster training and recognition" } } ] } </script> <link rel="icon" href="https://devclass.com/wp-content/uploads/2018/08/cropped-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://devclass.com/wp-content/uploads/2018/08/cropped-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://devclass.com/wp-content/uploads/2018/08/cropped-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://devclass.com/wp-content/uploads/2018/08/cropped-favicon-270x270.png" /> <style type="text/css" id="wp-custom-css"> .tdb-logo-img-wrap img { max-height: 80px; width: 100%; } .td-element-style { background-color: #000000 !important; } .td-icon-twitter:before { content:""; background-image: url("data:image/svg+xml,%3Csvg width='1200' height='1227' viewBox='0 0 1200 1227' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z' fill='white'/%3E%3C/svg%3E%0A"); background-size: 14px 14px; width: 14px; height: 14px; display: block; } .tdm-social-item-wrap .td-icon-twitter:before { background-size: 12px 12px; width: 12px; height: 12px; margin: 10px 0 0 0; } </style> <!-- Button style compiled by theme --> <style> .tdm_block_column_content:hover .tdm-col-content-title-url .tdm-title, .tds-button2 .tdm-btn-text, .tds-button2 i, .tds-button5:hover .tdm-btn-text, .tds-button5:hover i, .tds-button6 .tdm-btn-text, .tds-button6 i, .tdm_block_list .tdm-list-item i, .tdm_block_pricing .tdm-pricing-feature i, body .tdm-social-item i { color: #8b4cd1; } .tds-button1, .tds-button6:after, .tds-title2 .tdm-title-line:after, .tds-title3 .tdm-title-line:after, .tdm_block_pricing.tdm-pricing-featured:before, .tdm_block_pricing.tds_pricing2_block.tdm-pricing-featured .tdm-pricing-header, .tds-progress-bar1 .tdm-progress-bar:after, .tds-progress-bar2 .tdm-progress-bar:after, .tds-social3 .tdm-social-item { background-color: #8b4cd1; } .tds-button2:before, .tds-button6:before, .tds-progress-bar3 .tdm-progress-bar:after { border-color: #8b4cd1; } .tdm-btn-style1 { background-color: #8b4cd1; } .tdm-btn-style2:before { border-color: #8b4cd1; } .tdm-btn-style2 { color: #8b4cd1; } .tdm-btn-style3 { -webkit-box-shadow: 0 2px 16px #8b4cd1; -moz-box-shadow: 0 2px 16px #8b4cd1; box-shadow: 0 2px 16px #8b4cd1; } .tdm-btn-style3:hover { -webkit-box-shadow: 0 4px 26px #8b4cd1; -moz-box-shadow: 0 4px 26px #8b4cd1; box-shadow: 0 4px 26px #8b4cd1; } </style> <style id="tdw-css-placeholder"></style></head> <body class="post-template-default single single-post postid-4192 single-format-standard tesseract-ocr-5 global-block-template-8 td-lifestyle tdc-header-template tdc-footer-template td-animation-stack-type2 td-boxed-layout" itemscope="itemscope" itemtype="https://schema.org/WebPage"> <div class="td-scroll-up td-hide-scroll-up-on-mob" style="display:none;"><i class="td-icon-menu-up"></i></div> <div class="td-menu-background" style="visibility:hidden"></div> <div id="td-mobile-nav" style="visibility:hidden"> <div class="td-mobile-container"> <!-- mobile menu top section --> <div class="td-menu-socials-wrap"> <!-- socials --> <div class="td-menu-socials"> <span class="td-social-icon-wrap"> <a target="_blank" href="https://www.linkedin.com/company/devclass/" title="Linkedin"> <i class="td-icon-font td-icon-linkedin"></i> <span style="display: none">Linkedin</span> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="https://devclass.com/feed/" title="RSS"> <i class="td-icon-font td-icon-rss"></i> <span style="display: none">RSS</span> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="https://twitter.com/d3vclass?lang=en" title="Twitter"> <i class="td-icon-font td-icon-twitter"></i> <span style="display: none">Twitter</span> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="https://www.youtube.com/channel/UCEk1p4Omxqi0E0ij6Bfy4HQ" title="Youtube"> <i class="td-icon-font td-icon-youtube"></i> <span style="display: none">Youtube</span> </a> </span> </div> <!-- close button --> <div class="td-mobile-close"> <span><i class="td-icon-close-mobile"></i></span> </div> </div> <!-- login section --> <!-- menu section --> <div class="td-mobile-content"> <div class="menu-td-demo-top-menu-container"><ul id="menu-td-demo-top-menu" class="td-mobile-main-menu"><li id="menu-item-352" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-first menu-item-352"><a href="https://devclass.com/newsletter/">Newsletter</a></li> <li id="menu-item-435" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-435"><a href="https://devclass.com/archive/">Archive</a></li> <li id="menu-item-3095" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3095"><a href="https://www.theregister.com/">The Register</a></li> <li id="menu-item-3097" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3097"><a href="https://blocksandfiles.com/">Blocks&Files</a></li> <li id="menu-item-3099" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3099"><a href="https://www.nextplatform.com/">The Next Platform</a></li> </ul></div> </div> </div> <!-- register/login section --> </div> <div class="td-search-background" style="visibility:hidden"></div> <div class="td-search-wrap-mob" style="visibility:hidden"> <div class="td-drop-down-search"> <form method="get" class="td-search-form" action="https://devclass.com/"> <!-- close button --> <div class="td-search-close"> <span><i class="td-icon-close-mobile"></i></span> </div> <div role="search" class="td-search-input"> <span>Search</span> <input id="td-header-search-mob" type="text" value="" name="s" autocomplete="off" /> </div> </form> <div id="td-aj-search-mob" class="td-ajax-search-flex"></div> </div> </div> <div id="td-outer-wrap" class="td-theme-wrap"> <div class="td-header-template-wrap" style="position: relative"> <div class="td-header-mobile-wrap "> <div id="tdi_1" class="tdc-zone"><div class="tdc_zone tdi_2 wpb_row td-pb-row tdc-element-style" > <style scoped> /* custom css */ .tdi_2{ min-height: 0; }.td-header-mobile-wrap{ position: relative; width: 100%; } /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_2{ position:relative; } } </style> <div class="tdi_1_rand_style td-element-style" ><style> /* phone */ @media (max-width: 767px) { .tdi_1_rand_style{ background-color:#222222 !important; } } </style></div><div id="tdi_3" class="tdc-row"><div class="vc_row tdi_4 wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_4, .tdi_4 .tdc-columns{ min-height: 0; }.tdi_4, .tdi_4 .tdc-columns{ display: block; }.tdi_4 .tdc-columns{ width: 100%; } /* phone */ @media (max-width: 767px){ @media (min-width: 768px) { .tdi_4 { margin-left: -0px; margin-right: -0px; } .tdi_4 .tdc-row-video-background-error, .tdi_4 .vc_column { padding-left: 0px; padding-right: 0px; } } } </style><div class="vc_column tdi_6 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped> /* custom css */ .tdi_6{ vertical-align: baseline; }.tdi_6 > .wpb_wrapper, .tdi_6 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_6 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_6 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_6 > .wpb_wrapper{ width: auto; height: auto; } /* phone */ @media (max-width: 767px){ .tdi_6{ vertical-align: middle; } } /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_6{ width:20% !important; display:inline-block !important; } } </style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_mobile_menu tdi_7 td-pb-border-top td_block_template_8 tdb-header-align" data-td-block-uid="tdi_7" > <style> /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_7{ margin-left:-13px !important; } } </style> <style> /* custom css */ .tdb-header-align{ vertical-align: middle; }.tdb_mobile_menu{ margin-bottom: 0; clear: none; }.tdb_mobile_menu a{ display: inline-block !important; position: relative; text-align: center; color: #4db2ec; }.tdb_mobile_menu a > span{ display: flex; align-items: center; justify-content: center; }.tdb_mobile_menu svg{ height: auto; }.tdb_mobile_menu svg, .tdb_mobile_menu svg *{ fill: #4db2ec; }#tdc-live-iframe .tdb_mobile_menu a{ pointer-events: none; }.td-menu-mob-open-menu{ overflow: hidden; }.td-menu-mob-open-menu #td-outer-wrap{ position: static; }.tdi_7{ display: inline-block; }.tdi_7 .tdb-mobile-menu-button i{ font-size: 22px; width: 55px; height: 55px; line-height: 55px; }.tdi_7 .tdb-mobile-menu-button svg{ width: 22px; }.tdi_7 .tdb-mobile-menu-button .tdb-mobile-menu-icon-svg{ width: 55px; height: 55px; }.tdi_7 .tdb-mobile-menu-button{ color: #ffffff; }.tdi_7 .tdb-mobile-menu-button svg, .tdi_7 .tdb-mobile-menu-button svg *{ fill: #ffffff; } /* phone */ @media (max-width: 767px){ .tdi_7 .tdb-mobile-menu-button i{ font-size: 27px; width: 54px; height: 54px; line-height: 54px; }.tdi_7 .tdb-mobile-menu-button svg{ width: 27px; }.tdi_7 .tdb-mobile-menu-button .tdb-mobile-menu-icon-svg{ width: 54px; height: 54px; } } </style><div class="tdb-block-inner td-fix-index"><span class="tdb-mobile-menu-button"><i class="tdb-mobile-menu-icon td-icon-mobile"></i></span></div></div> <!-- ./block --></div></div><div class="vc_column tdi_9 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped> /* custom css */ .tdi_9{ vertical-align: baseline; }.tdi_9 > .wpb_wrapper, .tdi_9 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_9 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_9 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_9 > .wpb_wrapper{ width: auto; height: auto; } /* phone */ @media (max-width: 767px){ .tdi_9{ vertical-align: middle; } } /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_9{ width:60% !important; display:inline-block !important; } } </style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_header_logo tdi_10 td-pb-border-top td_block_template_8 tdb-header-align" data-td-block-uid="tdi_10" > <style> /* custom css */ .tdb_header_logo{ margin-bottom: 0; clear: none; }.tdb_header_logo .tdb-logo-a, .tdb_header_logo h1{ display: flex; pointer-events: auto; align-items: flex-start; }.tdb_header_logo h1{ margin: 0; line-height: 0; }.tdb_header_logo .tdb-logo-img-wrap img{ display: block; }.tdb_header_logo .tdb-logo-svg-wrap + .tdb-logo-img-wrap{ display: none; }.tdb_header_logo .tdb-logo-svg-wrap svg{ width: 50px; display: block; transition: fill .3s ease; }.tdb_header_logo .tdb-logo-text-wrap{ display: flex; }.tdb_header_logo .tdb-logo-text-title, .tdb_header_logo .tdb-logo-text-tagline{ -webkit-transition: all 0.2s ease; transition: all 0.2s ease; }.tdb_header_logo .tdb-logo-text-title{ background-size: cover; background-position: center center; font-size: 75px; font-family: serif; line-height: 1.1; color: #222; white-space: nowrap; }.tdb_header_logo .tdb-logo-text-tagline{ margin-top: 2px; font-size: 12px; font-family: serif; letter-spacing: 1.8px; line-height: 1; color: #767676; }.tdb_header_logo .tdb-logo-icon{ position: relative; font-size: 46px; color: #000; }.tdb_header_logo .tdb-logo-icon-svg{ line-height: 0; }.tdb_header_logo .tdb-logo-icon-svg svg{ width: 46px; height: auto; }.tdb_header_logo .tdb-logo-icon-svg svg, .tdb_header_logo .tdb-logo-icon-svg svg *{ fill: #000; }.tdi_10 .tdb-logo-a, .tdi_10 h1{ flex-direction: row; align-items: center; justify-content: center; }.tdi_10 .tdb-logo-svg-wrap{ display: block; }.tdi_10 .tdb-logo-img-wrap{ display: none; }.tdi_10 .tdb-logo-text-tagline{ margin-top: -3px; margin-left: 0; display: block; font-family:Montserrat !important;; }.tdi_10 .tdb-logo-text-title{ display: block; color: #ffffff; }.tdi_10 .tdb-logo-text-wrap{ flex-direction: column; align-items: center; }.tdi_10 .tdb-logo-icon{ top: 0px; display: block; }@media (max-width: 767px) { .tdb_header_logo .tdb-logo-text-title { font-size: 36px; } }@media (max-width: 767px) { .tdb_header_logo .tdb-logo-text-tagline { font-size: 11px; } } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ .tdi_10 .tdb-logo-img{ max-width: 186px; }.tdi_10 .tdb-logo-text-tagline{ margin-top: -2px; margin-left: 0; } } /* phone */ @media (max-width: 767px){ .tdi_10 .tdb-logo-text-title{ font-family:Roboto !important;font-size:20px !important;font-weight:900 !important;text-transform:uppercase !important;letter-spacing:1px !important;; } } </style><div class="tdb-block-inner td-fix-index"><a class="tdb-logo-a" href="https://devclass.com/"><span class="tdb-logo-img-wrap"><img class="tdb-logo-img td-retina-data" data-retina="https://devclass.com/wp-content/uploads/2018/08/DevClass_logo_White_small-Horizontal.png" src="https://devclass.com/wp-content/uploads/2018/08/DevClass_logo_White_small-Horizontal.png" alt="DevClass" title="" /></span><span class="tdb-logo-text-wrap"><span class="tdb-logo-text-title">NewsPaper</span><span class="tdb-logo-text-tagline">Developer News</span></span></a></div></div> <!-- ./block --></div></div><div class="vc_column tdi_12 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped> /* custom css */ .tdi_12{ vertical-align: baseline; }.tdi_12 > .wpb_wrapper, .tdi_12 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_12 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_12 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_12 > .wpb_wrapper{ width: auto; height: auto; } /* phone */ @media (max-width: 767px){ .tdi_12{ vertical-align: middle; } } /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_12{ width:20% !important; display:inline-block !important; } } </style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_mobile_search tdi_13 td-pb-border-top td_block_template_8 tdb-header-align" data-td-block-uid="tdi_13" > <style> /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_13{ margin-right:-19px !important; margin-bottom:0px !important; } } </style> <style> /* custom css */ .tdb_mobile_search{ margin-bottom: 0; clear: none; }.tdb_mobile_search a{ display: inline-block !important; position: relative; text-align: center; color: #4db2ec; }.tdb_mobile_search a > span{ display: flex; align-items: center; justify-content: center; }.tdb_mobile_search svg{ height: auto; }.tdb_mobile_search svg, .tdb_mobile_search svg *{ fill: #4db2ec; }#tdc-live-iframe .tdb_mobile_search a{ pointer-events: none; }.td-search-opened{ overflow: hidden; }.td-search-opened #td-outer-wrap{ position: static; }.td-search-opened .td-search-wrap-mob{ position: fixed; height: calc(100% + 1px); }.td-search-opened .td-drop-down-search{ height: calc(~100% + 1px); overflow-y: scroll; overflow-x: hidden; }.tdi_13{ display: inline-block; float: right; clear: none; }.tdi_13 .tdb-header-search-button-mob i{ font-size: 22px; width: 55px; height: 55px; line-height: 55px; }.tdi_13 .tdb-header-search-button-mob svg{ width: 22px; }.tdi_13 .tdb-header-search-button-mob .tdb-mobile-search-icon-svg{ width: 55px; height: 55px; display: flex; justify-content: center; }.tdi_13 .tdb-header-search-button-mob{ color: #ffffff; }.tdi_13 .tdb-header-search-button-mob svg, .tdi_13 .tdb-header-search-button-mob svg *{ fill: #ffffff; } </style><div class="tdb-block-inner td-fix-index"><span class="tdb-header-search-button-mob dropdown-toggle" data-toggle="dropdown"><i class="tdb-mobile-search-icon td-icon-search"></i></span></div></div> <!-- ./block --></div></div></div></div></div></div> </div> <div class="td-header-mobile-sticky-wrap tdc-zone-sticky-invisible tdc-zone-sticky-inactive" style="display: none"> <div id="tdi_14" class="tdc-zone"><div class="tdc_zone tdi_15 wpb_row td-pb-row" data-sticky-offset="0" > <style scoped> /* custom css */ .tdi_15{ min-height: 0; }.td-header-mobile-sticky-wrap.td-header-active{ opacity: 1; } </style><div id="tdi_16" class="tdc-row"><div class="vc_row tdi_17 wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_17, .tdi_17 .tdc-columns{ min-height: 0; }.tdi_17, .tdi_17 .tdc-columns{ display: block; }.tdi_17 .tdc-columns{ width: 100%; } </style><div class="vc_column tdi_19 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped> /* custom css */ .tdi_19{ vertical-align: baseline; }.tdi_19 > .wpb_wrapper, .tdi_19 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_19 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_19 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_19 > .wpb_wrapper{ width: auto; height: auto; } </style><div class="wpb_wrapper" ></div></div></div></div></div></div> </div> <div class="td-header-desktop-wrap "> <div id="tdi_20" class="tdc-zone"><div class="tdc_zone tdi_21 devclass_header wpb_row td-pb-row tdc-element-style" > <style scoped> /* custom css */ .tdi_21{ min-height: 0; }.td-header-desktop-wrap{ position: relative; } /* inline tdc_css att */ .tdi_21{ border-color:#000000 !important; border-style:solid !important; border-width:0 !important; position:relative; } </style> <div class="tdi_20_rand_style td-element-style" ><style> .tdi_20_rand_style{ background-color:#000000 !important; } </style></div><div id="tdi_22" class="tdc-row stretch_row"><div class="vc_row tdi_23 wpb_row td-pb-row tdc-element-style tdc-row-content-vert-center" > <style scoped> /* custom css */ .tdi_23, .tdi_23 .tdc-columns{ min-height: 0; }.tdi_23, .tdi_23 .tdc-columns{ display: block; }.tdi_23 .tdc-columns{ width: 100%; }@media (min-width: 768px) { .tdi_23 { margin-left: -0px; margin-right: -0px; } .tdi_23 .tdc-row-video-background-error, .tdi_23 .vc_column { padding-left: 0px; padding-right: 0px; } }@media (min-width: 767px) { .tdi_23.tdc-row-content-vert-center, .tdi_23.tdc-row-content-vert-center .tdc-columns { display: flex; align-items: center; flex: 1; } .tdi_23.tdc-row-content-vert-bottom, .tdi_23.tdc-row-content-vert-bottom .tdc-columns { display: flex; align-items: flex-end; flex: 1; } .tdi_23.tdc-row-content-vert-center .td_block_wrap { vertical-align: middle; } .tdi_23.tdc-row-content-vert-bottom .td_block_wrap { vertical-align: bottom; } } /* inline tdc_css att */ .tdi_23{ padding-top:2px !important; padding-bottom:2px !important; position:relative; } .tdi_23 .td_block_wrap{ text-align:left } </style> <div class="tdi_22_rand_style td-element-style" ><style> .tdi_22_rand_style{ background-color:#000000 !important; } </style></div><div class="vc_column tdi_25 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped> /* custom css */ .tdi_25{ vertical-align: baseline; }.tdi_25 > .wpb_wrapper, .tdi_25 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_25 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_25 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_25 > .wpb_wrapper{ width: auto; height: auto; }div.tdi_25{ width: 100% !important; } /* inline tdc_css att */ .tdi_25{ border-color:#000000 !important; width:100% !important; border-style:solid !important; border-width:0 !important; position:relative; } </style> <div class="tdi_24_rand_style td-element-style" ><style> .tdi_24_rand_style{ background-color:#000000 !important; } </style></div><div class="wpb_wrapper" ><div class="td_block_wrap tdb_mobile_horiz_menu tdi_26 td-pb-border-top td_block_template_8 tdb-header-align" data-td-block-uid="tdi_26" style=" z-index: 999;"> <style> /* inline tdc_css att */ .tdi_26{ margin-top:-2px !important; margin-bottom:0px !important; } /* portrait */ @media (min-width: 768px) and (max-width: 1018px) { .tdi_26{ display:none !important; } } </style> <style> /* custom css */ .tdb_mobile_horiz_menu{ margin-bottom: 0; clear: none; }.tdb_mobile_horiz_menu.tdb-horiz-menu-singleline{ width: 100%; }.tdb_mobile_horiz_menu.tdb-horiz-menu-singleline .tdb-horiz-menu{ display: block; width: 100%; overflow-x: auto; overflow-y: hidden; font-size: 0; white-space: nowrap; }.tdb_mobile_horiz_menu.tdb-horiz-menu-singleline .tdb-horiz-menu > li{ position: static; display: inline-block; float: none; }.tdb_mobile_horiz_menu.tdb-horiz-menu-singleline .tdb-horiz-menu ul{ left: 0; width: 100%; z-index: -1; }.tdb-horiz-menu{ display: table; margin: 0; }.tdb-horiz-menu, .tdb-horiz-menu ul{ list-style-type: none; }.tdb-horiz-menu ul, .tdb-horiz-menu li{ line-height: 1; }.tdb-horiz-menu li{ margin: 0; font-family: 'Open Sans', 'Open Sans Regular', sans-serif; }.tdb-horiz-menu li.current-menu-item > a, .tdb-horiz-menu li.current-menu-ancestor > a, .tdb-horiz-menu li.current-category-ancestor > a, .tdb-horiz-menu li:hover > a, .tdb-horiz-menu li.tdb-hover > a{ color: #4db2ec; }.tdb-horiz-menu li.current-menu-item > a .tdb-sub-menu-icon-svg, .tdb-horiz-menu li.current-menu-ancestor > a .tdb-sub-menu-icon-svg, .tdb-horiz-menu li.current-category-ancestor > a .tdb-sub-menu-icon-svg, .tdb-horiz-menu li:hover > a .tdb-sub-menu-icon-svg, .tdb-horiz-menu li.tdb-hover > a .tdb-sub-menu-icon-svg, .tdb-horiz-menu li.current-menu-item > a .tdb-sub-menu-icon-svg *, .tdb-horiz-menu li.current-menu-ancestor > a .tdb-sub-menu-icon-svg *, .tdb-horiz-menu li.current-category-ancestor > a .tdb-sub-menu-icon-svg *, .tdb-horiz-menu li:hover > a .tdb-sub-menu-icon-svg *, .tdb-horiz-menu li.tdb-hover > a .tdb-sub-menu-icon-svg *{ fill: #4db2ec; }.tdb-horiz-menu > li{ position: relative; float: left; font-size: 0; }.tdb-horiz-menu > li:hover ul{ visibility: visible; opacity: 1; }.tdb-horiz-menu > li > a{ display: inline-block; padding: 0 9px; font-weight: 700; font-size: 13px; line-height: 41px; vertical-align: middle; -webkit-backface-visibility: hidden; color: #000; }.tdb-horiz-menu > li > a > .tdb-menu-item-text{ display: inline-block; }.tdb-horiz-menu > li > a .tdb-sub-menu-icon{ margin: 0 0 0 6px; }.tdb-horiz-menu > li > a .tdb-sub-menu-icon-svg svg{ position: relative; top: -1px; width: 13px; }.tdb-horiz-menu > li .tdb-menu-sep{ position: relative; }.tdb-horiz-menu > li:last-child .tdb-menu-sep{ display: none; }.tdb-horiz-menu .tdb-sub-menu-icon-svg, .tdb-horiz-menu .tdb-menu-sep-svg{ line-height: 0; }.tdb-horiz-menu .tdb-sub-menu-icon-svg svg, .tdb-horiz-menu .tdb-menu-sep-svg svg{ height: auto; }.tdb-horiz-menu .tdb-sub-menu-icon-svg svg, .tdb-horiz-menu .tdb-menu-sep-svg svg, .tdb-horiz-menu .tdb-sub-menu-icon-svg svg *, .tdb-horiz-menu .tdb-menu-sep-svg svg *{ fill: #000; }.tdb-horiz-menu .tdb-sub-menu-icon{ vertical-align: middle; position: relative; top: 0; padding-left: 0; }.tdb-horiz-menu .tdb-menu-sep{ vertical-align: middle; font-size: 12px; }.tdb-horiz-menu .tdb-menu-sep-svg svg{ width: 12px; }.tdb-horiz-menu ul{ position: absolute; top: auto; left: -7px; padding: 8px 0; background-color: #fff; visibility: hidden; opacity: 0; }.tdb-horiz-menu ul li > a{ white-space: nowrap; display: block; padding: 5px 18px; font-size: 11px; line-height: 18px; color: #111; }.tdb-horiz-menu ul li > a .tdb-sub-menu-icon{ float: right; font-size: 7px; line-height: 20px; }.tdb-horiz-menu ul li > a .tdb-sub-menu-icon-svg svg{ width: 7px; }.tdc-dragged .tdb-horiz-menu ul{ visibility: hidden !important; opacity: 0 !important; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }.tdi_26{ display: inline-block; float: right; clear: none; }.tdi_26 .tdb-horiz-menu{ margin-left: auto; }.tdi_26 .tdb-horiz-menu > li{ margin-right: 16px; }.tdi_26 .tdb-horiz-menu > li:last-child{ margin-right: 0; }.tdi_26 .tdb-horiz-menu > li > a{ padding: 0px; font-size:11px !important;line-height:1 !important;font-weight:400 !important; }.tdi_26 .tdb-horiz-menu > li .tdb-menu-sep{ top: 0px; }.tdi_26 .tdb-horiz-menu > li > a .tdb-sub-menu-icon{ top: 0px; }.tdi_26 .tdb-horiz-menu > li.current-menu-item > a, .tdi_26 .tdb-horiz-menu > li.current-menu-ancestor > a, .tdi_26 .tdb-horiz-menu > li.current-category-ancestor > a, .tdi_26 .tdb-horiz-menu > li:hover > a{ color: #4db2ec; }.tdi_26 .tdb-horiz-menu > li.current-menu-item > a .tdb-sub-menu-icon-svg svg, .tdi_26 .tdb-horiz-menu > li.current-menu-item > a .tdb-sub-menu-icon-svg svg *, .tdi_26 .tdb-horiz-menu > li.current-menu-ancestor > a .tdb-sub-menu-icon-svg svg, .tdi_26 .tdb-horiz-menu > li.current-menu-ancestor > a .tdb-sub-menu-icon-svg svg *, .tdi_26 .tdb-horiz-menu > li.current-category-ancestor > a .tdb-sub-menu-icon-svg svg, .tdi_26 .tdb-horiz-menu > li.current-category-ancestor > a .tdb-sub-menu-icon-svg svg *, .tdi_26 .tdb-horiz-menu > li:hover > a .tdb-sub-menu-icon-svg svg, .tdi_26 .tdb-horiz-menu > li:hover > a .tdb-sub-menu-icon-svg svg *{ fill: #4db2ec; }.tdi_26 .tdb-horiz-menu ul{ left: 0px; text-align: right; left: auto; right: 0; box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.15); }.tdi_26 .tdb-horiz-menu ul li > a{ font-weight:400 !important; } </style><div id=tdi_26 class="td_block_inner td-fix-index"><div class="menu-td-demo-top-menu-container"><ul id="menu-td-demo-top-menu-1" class="tdb-horiz-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-352"><a href="https://devclass.com/newsletter/"><div class="tdb-menu-item-text">Newsletter</div></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-435"><a href="https://devclass.com/archive/"><div class="tdb-menu-item-text">Archive</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3095"><a href="https://www.theregister.com/"><div class="tdb-menu-item-text">The Register</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3097"><a href="https://blocksandfiles.com/"><div class="tdb-menu-item-text">Blocks&Files</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3099"><a href="https://www.nextplatform.com/"><div class="tdb-menu-item-text">The Next Platform</div></a></li> </ul></div></div></div></div></div></div></div><div id="tdi_27" class="tdc-row stretch_row"><div id="dev_header" class="vc_row tdi_28 wpb_row td-pb-row tdc-element-style tdc-row-content-vert-center" > <style scoped> /* custom css */ .tdi_28, .tdi_28 .tdc-columns{ min-height: 0; }.tdi_28, .tdi_28 .tdc-columns{ display: block; }.tdi_28 .tdc-columns{ width: 100%; }@media (min-width: 768px) { .tdi_28 { margin-left: -21px; margin-right: -21px; } .tdi_28 .tdc-row-video-background-error, .tdi_28 .vc_column { padding-left: 21px; padding-right: 21px; } }@media (min-width: 767px) { .tdi_28.tdc-row-content-vert-center, .tdi_28.tdc-row-content-vert-center .tdc-columns { display: flex; align-items: center; flex: 1; } .tdi_28.tdc-row-content-vert-bottom, .tdi_28.tdc-row-content-vert-bottom .tdc-columns { display: flex; align-items: flex-end; flex: 1; } .tdi_28.tdc-row-content-vert-center .td_block_wrap { vertical-align: middle; } .tdi_28.tdc-row-content-vert-bottom .td_block_wrap { vertical-align: bottom; } } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ @media (min-width: 768px) { .tdi_28 { margin-left: -10px; margin-right: -10px; } .tdi_28 .tdc-row-video-background-error, .tdi_28 .vc_column { padding-left: 10px; padding-right: 10px; } } } /* inline tdc_css att */ .tdi_28{ position:relative; } .tdi_28 .td_block_wrap{ text-align:left } </style> <div class="tdi_27_rand_style td-element-style" ><div class="td-element-style-before"><style> .tdi_27_rand_style > .td-element-style-before { content:'' !important; width:100% !important; height:100% !important; position:absolute !important; top:0 !important; left:0 !important; display:block !important; z-index:0 !important; border-color:#000000 !important; border-style:solid !important; border-width:0 !important; background-size:cover !important; background-position:center top !important; } </style></div><style> .tdi_27_rand_style{ background-color:#151515 !important; } </style></div><div class="vc_column tdi_30 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped> /* custom css */ .tdi_30{ vertical-align: baseline; }.tdi_30 > .wpb_wrapper, .tdi_30 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_30 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_30 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_30 > .wpb_wrapper{ width: auto; height: auto; } /* inline tdc_css att */ .tdi_30{ border-color:#000000 !important; border-style:solid !important; border-width:0 !important; position:relative; } </style> <div class="tdi_29_rand_style td-element-style" ><style> .tdi_29_rand_style{ background-color:#000000 !important; } </style></div><div class="wpb_wrapper" ><div class="td_block_wrap td_block_list_menu tdi_31 td-blm-display-horizontal td-pb-border-top devclass_top_menu td_block_template_8 widget" data-td-block-uid="tdi_31" > <style> /* inline tdc_css att */ .tdi_31{ width:100% !important; justify-content:flex-end !important; text-align:right !important; } </style> <style> /* custom css */ .td_block_list_menu ul{ flex-wrap: wrap; margin-left: 12px; }.td_block_list_menu ul li{ margin-left: 0; }.td_block_list_menu ul li a{ display: flex; margin-left: 0; }.td_block_list_menu .td-blm-menu-item-txt{ display: flex; align-items: center; flex-grow: 1; }.td_block_list_menu .sub-menu{ padding-left: 22px; }.td_block_list_menu .sub-menu li{ font-size: 13px; }.td_block_list_menu li.current-menu-item > a, .td_block_list_menu li.current-menu-ancestor > a, .td_block_list_menu li.current-category-ancestor > a{ color: #4db2ec; }.td_block_list_menu .td-blm-sub-icon{ display: flex; align-items: center; justify-content: center; margin-left: .6em; padding: 0 .6em; transition: transform .2s ease-in-out; }.td_block_list_menu .td-blm-sub-icon svg{ display: block; width: 1em; height: auto; }.td_block_list_menu .td-blm-sub-icon svg, .td_block_list_menu .td-blm-sub-icon svg *{ fill: currentColor; }.td_block_list_menu.td-blm-display-accordion .menu-item-has-children ul{ display: none; }.td_block_list_menu.td-blm-display-accordion .menu-item-has-children-open > a > .td-blm-sub-icon{ transform: rotate(180deg); }.td_block_list_menu.td-blm-display-horizontal ul{ display: flex; }body .tdi_31 ul{ text-align: right; justify-content: flex-end; margin: 0px; }body .tdi_31 ul li a{ justify-content: flex-end; }body .tdi_31 .td-blm-menu-item-txt{ flex-grow: unset; }body .tdi_31 ul li{ margin-right: 10px; }body .tdi_31 ul li:last-child{ margin-right: 0; }body .tdi_31 a, body .tdi_31 .td-blm-sub-icon{ color: #8b4cd1; } </style><div class="td-block-title-wrap"></div><div id=tdi_31 class="td_block_inner td-fix-index"><div class="menu-td-demo-top-menu-container"><ul id="menu-td-demo-top-menu-2" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-352"><a href="https://devclass.com/newsletter/"><span class="td-blm-menu-item-txt">Newsletter</span></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-435"><a href="https://devclass.com/archive/"><span class="td-blm-menu-item-txt">Archive</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3095"><a href="https://www.theregister.com/"><span class="td-blm-menu-item-txt">The Register</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3097"><a href="https://blocksandfiles.com/"><span class="td-blm-menu-item-txt">Blocks&Files</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3099"><a href="https://www.nextplatform.com/"><span class="td-blm-menu-item-txt">The Next Platform</span></a></li> </ul></div></div></div></div></div></div></div><div id="tdi_32" class="tdc-row stretch_row"><div class="vc_row tdi_33 wpb_row td-pb-row tdc-element-style tdc-row-content-vert-center" > <style scoped> /* custom css */ .tdi_33, .tdi_33 .tdc-columns{ min-height: 0; }.tdi_33, .tdi_33 .tdc-columns{ display: block; }.tdi_33 .tdc-columns{ width: 100%; }@media (min-width: 768px) { .tdi_33 { margin-left: -21px; margin-right: -21px; } .tdi_33 .tdc-row-video-background-error, .tdi_33 .vc_column { padding-left: 21px; padding-right: 21px; } }@media (min-width: 767px) { .tdi_33.tdc-row-content-vert-center, .tdi_33.tdc-row-content-vert-center .tdc-columns { display: flex; align-items: center; flex: 1; } .tdi_33.tdc-row-content-vert-bottom, .tdi_33.tdc-row-content-vert-bottom .tdc-columns { display: flex; align-items: flex-end; flex: 1; } .tdi_33.tdc-row-content-vert-center .td_block_wrap { vertical-align: middle; } .tdi_33.tdc-row-content-vert-bottom .td_block_wrap { vertical-align: bottom; } } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ @media (min-width: 768px) { .tdi_33 { margin-left: -10px; margin-right: -10px; } .tdi_33 .tdc-row-video-background-error, .tdi_33 .vc_column { padding-left: 10px; padding-right: 10px; } } } /* inline tdc_css att */ .tdi_33{ position:relative; } .tdi_33 .td_block_wrap{ text-align:left } </style> <div class="tdi_32_rand_style td-element-style" ><div class="td-element-style-before"><style> .tdi_32_rand_style > .td-element-style-before { content:'' !important; width:100% !important; height:100% !important; position:absolute !important; top:0 !important; left:0 !important; display:block !important; z-index:0 !important; border-color:#000000 !important; border-style:solid !important; border-width:0 !important; background-size:cover !important; background-position:center top !important; } </style></div><style> .tdi_32_rand_style{ background-color:#151515 !important; } </style></div><div class="vc_column tdi_35 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped> /* custom css */ .tdi_35{ vertical-align: baseline; }.tdi_35 > .wpb_wrapper, .tdi_35 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_35 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_35 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_35 > .wpb_wrapper{ width: auto; height: auto; } /* inline tdc_css att */ .tdi_35{ border-color:#000000 !important; border-style:solid !important; border-width:0 !important; position:relative; } </style> <div class="tdi_34_rand_style td-element-style" ><style> .tdi_34_rand_style{ background-color:#000000 !important; } </style></div><div class="wpb_wrapper" ><div class="td_block_wrap tdb_header_logo tdi_36 td-pb-border-top td_block_template_8 tdb-header-align" data-td-block-uid="tdi_36" > <style> /* custom css */ .tdi_36{ display: inline-block; }.tdi_36 .tdb-logo-a, .tdi_36 h1{ flex-direction: row; align-items: center; justify-content: flex-start; }.tdi_36 .tdb-logo-svg-wrap{ display: block; }.tdi_36 .tdb-logo-svg-wrap + .tdb-logo-img-wrap{ display: none; }.tdi_36 .tdb-logo-text-tagline{ margin-top: -3px; margin-left: 0; display: none; font-family:Montserrat !important;; }.tdi_36 .tdb-logo-text-title{ display: none; color: #ffffff; font-family:Roboto !important;font-size:33px !important;line-height:80px !important;font-weight:900 !important;text-transform:uppercase !important;letter-spacing:1px !important;; }.tdi_36 .tdb-logo-text-wrap{ flex-direction: column; align-items: center; }.tdi_36 .tdb-logo-icon{ top: 0px; display: block; } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ .tdi_36 .tdb-logo-img{ max-width: 186px; }.tdi_36 .tdb-logo-text-tagline{ margin-top: -2px; margin-left: 0; }.tdi_36 .tdb-logo-text-title{ font-size:29px !important;line-height:60px !important;; } } </style><div class="tdb-block-inner td-fix-index"><a class="tdb-logo-a" href="https://devclass.com/"><span class="tdb-logo-img-wrap"><img class="tdb-logo-img td-retina-data" data-retina="https://devclass.com/wp-content/uploads/2018/08/DevClass_logo_White_small-Horizontal.png" src="https://devclass.com/wp-content/uploads/2018/08/DevClass_logo_White_small-Horizontal.png" alt="DevClass" title="" width="1901" height="607" /></span><span class="tdb-logo-text-wrap"><span class="tdb-logo-text-title">DevClass</span><span class="tdb-logo-text-tagline">Developer News</span></span></a></div></div> <!-- ./block --><div class="td_block_wrap tdb_header_search tdi_37 tdb-header-search-trigger-enabled td-pb-border-top td_block_template_8 tdb-header-align" data-td-block-uid="tdi_37" > <style> /* custom css */ .tdb_module_header{ width: 100%; padding-bottom: 0; }.tdb_module_header .td-module-container{ display: flex; flex-direction: column; position: relative; }.tdb_module_header .td-module-container:before{ content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; }.tdb_module_header .td-image-wrap{ display: block; position: relative; padding-bottom: 70%; }.tdb_module_header .td-image-container{ position: relative; width: 100%; flex: 0 0 auto; }.tdb_module_header .td-module-thumb{ margin-bottom: 0; }.tdb_module_header .td-module-meta-info{ width: 100%; margin-bottom: 0; padding: 7px 0 0 0; z-index: 1; border: 0 solid #eaeaea; min-height: 0; }.tdb_module_header .entry-title{ margin: 0; font-size: 13px; font-weight: 500; line-height: 18px; }.tdb_module_header .td-post-author-name, .tdb_module_header .td-post-date, .tdb_module_header .td-module-comments{ vertical-align: text-top; }.tdb_module_header .td-post-author-name, .tdb_module_header .td-post-date{ top: 3px; }.tdb_module_header .td-thumb-css{ width: 100%; height: 100%; position: absolute; background-size: cover; background-position: center center; }.tdb_module_header .td-category-pos-image .td-post-category:not(.td-post-extra-category), .tdb_module_header .td-post-vid-time{ position: absolute; z-index: 2; bottom: 0; }.tdb_module_header .td-category-pos-image .td-post-category:not(.td-post-extra-category){ left: 0; }.tdb_module_header .td-post-vid-time{ right: 0; background-color: #000; padding: 3px 6px 4px; font-family: 'Open Sans', 'Open Sans Regular', sans-serif; font-size: 10px; font-weight: 600; line-height: 1; color: #fff; }.tdb_module_header .td-excerpt{ margin: 20px 0 0; line-height: 21px; }.tdb_module_header .td-read-more{ margin: 20px 0 0; }.tdb_module_search .tdb-author-photo{ display: inline-block; }.tdb_module_search .tdb-author-photo, .tdb_module_search .tdb-author-photo img{ vertical-align: middle; }.tdb_module_search .td-post-author-name{ white-space: normal; }.tdb_header_search{ margin-bottom: 0; clear: none; }.tdb_header_search .tdb-block-inner{ position: relative; display: inline-block; width: 100%; }.tdb_header_search .tdb-search-form{ position: relative; padding: 20px; border-width: 3px 0 0; border-style: solid; border-color: #4db2ec; pointer-events: auto; }.tdb_header_search .tdb-search-form:before{ content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #fff; }.tdb_header_search .tdb-search-form-inner{ position: relative; display: flex; background-color: #fff; }.tdb_header_search .tdb-search-form-inner:after{ content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 1px solid #e1e1e1; pointer-events: none; }.tdb_header_search .tdb-head-search-placeholder{ position: absolute; top: 50%; transform: translateY(-50%); padding: 3px 9px; font-size: 12px; line-height: 21px; color: #999; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; pointer-events: none; }.tdb_header_search .tdb-head-search-form-input:focus + .tdb-head-search-placeholder, .tdb-head-search-form-input:not(:placeholder-shown) ~ .tdb-head-search-placeholder{ opacity: 0; }.tdb_header_search .tdb-head-search-form-btn, .tdb_header_search .tdb-head-search-form-input{ height: auto; min-height: 32px; }.tdb_header_search .tdb-head-search-form-input{ color: #444; flex: 1; background-color: transparent; border: 0; }.tdb_header_search .tdb-head-search-form-input.tdb-head-search-nofocus{ color: transparent; text-shadow: 0 0 0 #444; }.tdb_header_search .tdb-head-search-form-btn{ margin-bottom: 0; padding: 0 15px; background-color: #222222; font-family: 'Roboto', sans-serif; font-size: 13px; font-weight: 500; color: #fff; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; z-index: 1; }.tdb_header_search .tdb-head-search-form-btn:hover{ background-color: #4db2ec; }.tdb_header_search .tdb-head-search-form-btn i, .tdb_header_search .tdb-head-search-form-btn span{ display: inline-block; vertical-align: middle; }.tdb_header_search .tdb-head-search-form-btn i{ font-size: 12px; }.tdb_header_search .tdb-head-search-form-btn .tdb-head-search-form-btn-icon{ position: relative; }.tdb_header_search .tdb-head-search-form-btn .tdb-head-search-form-btn-icon-svg{ line-height: 0; }.tdb_header_search .tdb-head-search-form-btn svg{ width: 12px; height: auto; }.tdb_header_search .tdb-head-search-form-btn svg, .tdb_header_search .tdb-head-search-form-btn svg *{ fill: #fff; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }.tdb_header_search .tdb-aj-search-results{ padding: 20px; background-color: rgba(144, 144, 144, 0.02); border-width: 1px 0; border-style: solid; border-color: #ededed; background-color: #fff; }.tdb_header_search .tdb-aj-search-results .td_module_wrap:last-child{ margin-bottom: 0; padding-bottom: 0; }.tdb_header_search .tdb-aj-search-results .td_module_wrap:last-child .td-module-container:before{ display: none; }.tdb_header_search .tdb-aj-search-inner{ display: flex; flex-wrap: wrap; *zoom: 1; }.tdb_header_search .tdb-aj-search-inner:before, .tdb_header_search .tdb-aj-search-inner:after{ display: table; content: ''; line-height: 0; }.tdb_header_search .tdb-aj-search-inner:after{ clear: both; }.tdb_header_search .result-msg{ padding: 4px 0 6px 0; font-family: 'Roboto', sans-serif; font-size: 12px; font-style: italic; background-color: #fff; }.tdb_header_search .result-msg a{ color: #222; }.tdb_header_search .result-msg a:hover{ color: #4db2ec; }.tdb_header_search .td-module-meta-info, .tdb_header_search .td-next-prev-wrap{ text-align: left; }.tdb_header_search .td_module_wrap:hover .entry-title a{ color: #4db2ec; }.tdb_header_search .tdb-aj-cur-element .entry-title a{ color: #4db2ec; }.tdc-dragged .tdb-head-search-btn:after, .tdc-dragged .tdb-drop-down-search{ visibility: hidden !important; opacity: 0 !important; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }.tdb-header-search-trigger-enabled{ z-index: 1000; }.tdb-header-search-trigger-enabled .tdb-head-search-btn{ display: flex; align-items: center; position: relative; text-align: center; color: #4db2ec; }.tdb-header-search-trigger-enabled .tdb-head-search-btn:after{ visibility: hidden; opacity: 0; content: ''; display: block; position: absolute; bottom: 0; left: 0; right: 0; margin: 0 auto; width: 0; height: 0; border-style: solid; border-width: 0 6.5px 7px 6.5px; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); -webkit-transition: all 0.4s ease; transition: all 0.4s ease; border-color: transparent transparent #4db2ec transparent; }.tdb-header-search-trigger-enabled .tdb-drop-down-search-open + .tdb-head-search-btn:after{ visibility: visible; opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }.tdb-header-search-trigger-enabled .tdb-search-icon, .tdb-header-search-trigger-enabled .tdb-search-txt, .tdb-header-search-trigger-enabled .tdb-search-icon-svg svg *{ -webkit-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; }.tdb-header-search-trigger-enabled .tdb-search-icon-svg{ display: flex; align-items: center; justify-content: center; }.tdb-header-search-trigger-enabled .tdb-search-icon-svg svg{ height: auto; }.tdb-header-search-trigger-enabled .tdb-search-icon-svg svg, .tdb-header-search-trigger-enabled .tdb-search-icon-svg svg *{ fill: #4db2ec; }.tdb-header-search-trigger-enabled .tdb-search-txt{ position: relative; line-height: 1; }.tdb-header-search-trigger-enabled .tdb-drop-down-search{ visibility: hidden; opacity: 0; position: absolute; top: 100%; left: 0; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); -webkit-transition: all 0.4s ease; transition: all 0.4s ease; pointer-events: none; z-index: 10; }.tdb-header-search-trigger-enabled .tdb-drop-down-search-open{ visibility: visible; opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }.tdb-header-search-trigger-enabled .tdb-drop-down-search-inner{ position: relative; max-width: 300px; pointer-events: all; }.rtl .tdb-header-search-trigger-enabled .tdb-drop-down-search-inner{ margin-left: 0; margin-right: auto; }.tdb_header_search .tdb-aj-srs-title{ margin-bottom: 10px; font-family: 'Roboto', sans-serif; font-weight: 500; font-size: 13px; line-height: 1.3; color: #888; }.tdb_header_search .tdb-aj-sr-taxonomies{ display: flex; flex-direction: column; }.tdb_header_search .tdb-aj-sr-taxonomy{ font-family: 'Roboto', sans-serif; font-size: 13px; font-weight: 500; line-height: 18px; color: #111; }.tdb_header_search .tdb-aj-sr-taxonomy:not(:last-child){ margin-bottom: 5px; }.tdb_header_search .tdb-aj-sr-taxonomy:hover{ color: #4db2ec; }.tdi_37 .tdb-head-search-btn i{ font-size: 20px; width: 80px; height: 80px; line-height: 80px; color: #ffffff; }.tdi_37 .tdb-head-search-btn svg{ width: 20px; }.tdi_37 .tdb-search-icon-svg{ width: 80px; height: 80px; }.tdi_37{ display: inline-block; float: right; clear: none; }.tdi_37 .tdb-search-txt{ top: 0px; }.tdi_37 .tdb-drop-down-search{ left: auto; right: 0; }body .tdi_37 .tdb-drop-down-search-inner, .tdi_37 .tdb-search-form, .tdi_37 .tdb-aj-search{ margin-left: auto; margin-right: 0; }.tdi_37 .tdb-head-search-form-btn-icon{ top: 0px; }.tdi_37 .result-msg{ text-align: center; }.tdi_37 .tdb-head-search-btn svg, .tdi_37 .tdb-head-search-btn svg *{ fill: #ffffff; }.tdi_37 .tdb-drop-down-search-inner{ box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.2); }.tdi_37 .td_module_wrap{ width: 100%; float: left; padding-left: 11px; padding-right: 11px; padding-bottom: 10px; margin-bottom: 10px; }.tdi_37 .td_module_wrap:nth-last-child(-n+1){ margin-bottom: 0; padding-bottom: 0; }.tdi_37 .td_module_wrap:nth-last-child(-n+1) .td-module-container:before{ display: none; }.tdi_37 .tdb-aj-search-inner{ margin-left: -11px; margin-right: -11px; }.tdi_37 .td-module-container:before{ bottom: -10px; border-color: #eaeaea; }.tdi_37 .td-module-container{ border-color: #eaeaea; flex-direction: row; }.tdi_37 .entry-thumb{ background-position: center 50%; }.tdi_37 .td-image-container{ flex: 0 0 30%; width: 30%; display: block; order: 0; }.ie10 .tdi_37 .td-image-container, .ie11 .tdi_37 .td-image-container{ flex: 0 0 auto; }.ie10 .tdi_37 .td-module-meta-info, .ie11 .tdi_37 .td-module-meta-info{ flex: 1; }.tdi_37 .td-post-vid-time{ display: block; }.tdi_37 .td-module-meta-info{ padding: 2px 0 0 15px; border-color: #eaeaea; }.tdi_37 .entry-title{ margin: 0 0 5px; }.tdi_37 .td-excerpt{ column-count: 1; column-gap: 48px; display: none; }.tdi_37 .td-post-category:not(.td-post-extra-category){ display: none; }.tdi_37 .td-read-more{ display: none; }.tdi_37 .td-author-date{ display: inline; }.tdi_37 .td-post-author-name{ display: none; }.tdi_37 .entry-review-stars{ display: none; }.tdi_37 .td-icon-star, .tdi_37 .td-icon-star-empty, .tdi_37 .td-icon-star-half{ font-size: 15px; }.tdi_37 .td-module-comments{ display: none; }.tdi_37 .tdb-author-photo .avatar{ width: 20px; height: 20px; margin-right: 6px; border-radius: 50%; }.tdi_37 .td-module-title a{ box-shadow: inset 0 0 0 0 #000; }@media (min-width: 768px) { .tdi_37 .td-module-title a { transition: all 0.2s ease; -webkit-transition: all 0.2s ease; } } /* landscape */ @media (min-width: 1019px) and (max-width: 1140px){ .tdi_37 .td_module_wrap{ padding-bottom: 10px !important; margin-bottom: 10px !important; padding-bottom: 10px; margin-bottom: 10px; }.tdi_37 .td_module_wrap:nth-last-child(-n+1){ margin-bottom: 0 !important; padding-bottom: 0 !important; }.tdi_37 .td_module_wrap .td-module-container:before{ display: block !important; }.tdi_37 .td_module_wrap:nth-last-child(-n+1) .td-module-container:before{ display: none !important; }.tdi_37 .td-module-container:before{ bottom: -10px; }.tdi_37 .td-module-title a{ box-shadow: inset 0 0 0 0 #000; }@media (min-width: 768px) { .tdi_37 .td-module-title a { transition: all 0.2s ease; -webkit-transition: all 0.2s ease; } } } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ .tdi_37 .tdb-head-search-btn i{ font-size: 15px; width: 60px; height: 60px; line-height: 60px; }.tdi_37 .tdb-head-search-btn svg{ width: 15px; }.tdi_37 .tdb-search-icon-svg{ width: 60px; height: 60px; }.tdi_37 .td_module_wrap{ padding-bottom: 10px !important; margin-bottom: 10px !important; padding-bottom: 10px; margin-bottom: 10px; }.tdi_37 .td_module_wrap:nth-last-child(-n+1){ margin-bottom: 0 !important; padding-bottom: 0 !important; }.tdi_37 .td_module_wrap .td-module-container:before{ display: block !important; }.tdi_37 .td_module_wrap:nth-last-child(-n+1) .td-module-container:before{ display: none !important; }.tdi_37 .td-module-container:before{ bottom: -10px; }.tdi_37 .td-module-title a{ box-shadow: inset 0 0 0 0 #000; }@media (min-width: 768px) { .tdi_37 .td-module-title a { transition: all 0.2s ease; -webkit-transition: all 0.2s ease; } } } /* phone */ @media (max-width: 767px){ .tdi_37 .td_module_wrap{ padding-bottom: 10px !important; margin-bottom: 10px !important; padding-bottom: 10px; margin-bottom: 10px; }.tdi_37 .td_module_wrap:nth-last-child(-n+1){ margin-bottom: 0 !important; padding-bottom: 0 !important; }.tdi_37 .td_module_wrap .td-module-container:before{ display: block !important; }.tdi_37 .td_module_wrap:nth-last-child(-n+1) .td-module-container:before{ display: none !important; }.tdi_37 .td-module-container:before{ bottom: -10px; }.tdi_37 .td-module-title a{ box-shadow: inset 0 0 0 0 #000; }@media (min-width: 768px) { .tdi_37 .td-module-title a { transition: all 0.2s ease; -webkit-transition: all 0.2s ease; } } } </style><div class="tdb-block-inner td-fix-index"><div class="tdb-drop-down-search" aria-labelledby="td-header-search-button"><div class="tdb-drop-down-search-inner"><form method="get" class="tdb-search-form" action="https://devclass.com/"><div class="tdb-search-form-inner"><input class="tdb-head-search-form-input" placeholder=" " type="text" value="" name="s" autocomplete="off" /><button class="wpb_button wpb_btn-inverse btn tdb-head-search-form-btn" type="submit"><span>Search</span></button></div></form><div class="tdb-aj-search"></div></div></div><a href="#" role="button" aria-label="Search" class="tdb-head-search-btn dropdown-toggle" data-toggle="dropdown"><i class="tdb-search-icon td-icon-search"></i></a></div></div> <!-- ./block --><div class="td_block_wrap tdb_header_menu tdi_38 tds_menu_active3 tds_menu_sub_active1 tdb-mm-align-screen td-pb-border-top td_block_template_8 tdb-header-align" data-td-block-uid="tdi_38" style=" z-index: 999;"> <style> /* custom css */ .tdb_header_menu{ margin-bottom: 0; z-index: 999; clear: none; }.tdb_header_menu .tdb-main-sub-icon-fake, .tdb_header_menu .tdb-sub-icon-fake{ display: none; }.rtl .tdb_header_menu .tdb-menu{ display: flex; }.tdb_header_menu .tdb-menu{ display: inline-block; vertical-align: middle; margin: 0; }.tdb_header_menu .tdb-menu .tdb-mega-menu-inactive, .tdb_header_menu .tdb-menu .tdb-menu-item-inactive{ pointer-events: none; }.tdb_header_menu .tdb-menu .tdb-mega-menu-inactive > ul, .tdb_header_menu .tdb-menu .tdb-menu-item-inactive > ul{ visibility: hidden; opacity: 0; }.tdb_header_menu .tdb-menu .sub-menu{ font-size: 14px; position: absolute; top: -999em; background-color: #fff; z-index: 99; }.tdb_header_menu .tdb-menu .sub-menu > li{ list-style-type: none; margin: 0; font-family: 'Open Sans', 'Open Sans Regular', sans-serif; }.tdb_header_menu .tdb-menu > li{ float: left; list-style-type: none; margin: 0; }.tdb_header_menu .tdb-menu > li > a{ position: relative; display: inline-block; padding: 0 14px; font-weight: 700; font-size: 14px; line-height: 48px; vertical-align: middle; text-transform: uppercase; -webkit-backface-visibility: hidden; color: #000; font-family: 'Open Sans', 'Open Sans Regular', sans-serif; }.tdb_header_menu .tdb-menu > li > a:after{ content: ''; position: absolute; bottom: 0; left: 0; right: 0; margin: 0 auto; width: 0; height: 3px; background-color: #4db2ec; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); -webkit-transition: width 0.2s ease; transition: width 0.2s ease; }.tdb_header_menu .tdb-menu > li > a > .tdb-menu-item-text{ display: inline-block; }.tdb_header_menu .tdb-menu > li > a .tdb-menu-item-text, .tdb_header_menu .tdb-menu > li > a span{ vertical-align: middle; float: left; }.tdb_header_menu .tdb-menu > li > a .tdb-sub-menu-icon{ margin: 0 0 0 7px; }.tdb_header_menu .tdb-menu > li > a .tdb-sub-menu-icon-svg{ float: none; line-height: 0; }.tdb_header_menu .tdb-menu > li > a .tdb-sub-menu-icon-svg svg{ width: 14px; height: auto; }.tdb_header_menu .tdb-menu > li > a .tdb-sub-menu-icon-svg svg, .tdb_header_menu .tdb-menu > li > a .tdb-sub-menu-icon-svg svg *{ fill: #000; }.tdb_header_menu .tdb-menu > li.current-menu-item > a:after, .tdb_header_menu .tdb-menu > li.current-menu-ancestor > a:after, .tdb_header_menu .tdb-menu > li.current-category-ancestor > a:after, .tdb_header_menu .tdb-menu > li:hover > a:after, .tdb_header_menu .tdb-menu > li.tdb-hover > a:after{ width: 100%; }.tdb_header_menu .tdb-menu > li:hover > ul, .tdb_header_menu .tdb-menu > li.tdb-hover > ul{ top: auto; display: block !important; }.tdb_header_menu .tdb-menu > li.td-normal-menu > ul.sub-menu{ top: auto; left: 0; z-index: 99; }.tdb_header_menu .tdb-menu > li .tdb-menu-sep{ position: relative; vertical-align: middle; font-size: 14px; }.tdb_header_menu .tdb-menu > li .tdb-menu-sep-svg{ line-height: 0; }.tdb_header_menu .tdb-menu > li .tdb-menu-sep-svg svg{ width: 14px; height: auto; }.tdb_header_menu .tdb-menu > li:last-child .tdb-menu-sep{ display: none; }.tdb_header_menu .tdb-menu-item-text{ word-wrap: break-word; }.tdb_header_menu .tdb-menu-item-text, .tdb_header_menu .tdb-sub-menu-icon, .tdb_header_menu .tdb-menu-more-subicon{ vertical-align: middle; }.tdb_header_menu .tdb-sub-menu-icon, .tdb_header_menu .tdb-menu-more-subicon{ position: relative; top: 0; padding-left: 0; }.tdb_header_menu .tdb-normal-menu{ position: relative; }.tdb_header_menu .tdb-normal-menu ul{ left: 0; padding: 15px 0; text-align: left; }.tdb_header_menu .tdb-normal-menu ul ul{ margin-top: -15px; }.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item{ position: relative; list-style-type: none; }.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item > a{ position: relative; display: block; padding: 7px 30px; font-size: 12px; line-height: 20px; color: #111; }.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item > a .tdb-sub-menu-icon, .tdb_header_menu .td-pulldown-filter-list .tdb-menu-item > a .tdb-sub-menu-icon{ position: absolute; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); right: 0; padding-right: inherit; font-size: 7px; line-height: 20px; }.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item > a .tdb-sub-menu-icon-svg, .tdb_header_menu .td-pulldown-filter-list .tdb-menu-item > a .tdb-sub-menu-icon-svg{ line-height: 0; }.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item > a .tdb-sub-menu-icon-svg svg, .tdb_header_menu .td-pulldown-filter-list .tdb-menu-item > a .tdb-sub-menu-icon-svg svg{ width: 7px; height: auto; }.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item > a .tdb-sub-menu-icon-svg svg, .tdb_header_menu .tdb-normal-menu ul .tdb-menu-item > a .tdb-sub-menu-icon-svg svg *, .tdb_header_menu .td-pulldown-filter-list .tdb-menu-item > a .tdb-sub-menu-icon svg, .tdb_header_menu .td-pulldown-filter-list .tdb-menu-item > a .tdb-sub-menu-icon svg *{ fill: #000; }.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item:hover > ul, .tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.tdb-hover > ul{ top: 0; display: block !important; }.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.current-menu-item > a, .tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.current-menu-ancestor > a, .tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.current-category-ancestor > a, .tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.tdb-hover > a, .tdb_header_menu .tdb-normal-menu ul .tdb-menu-item:hover > a{ color: #4db2ec; }.tdb_header_menu .tdb-normal-menu > ul{ left: -15px; }.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu ul, .tdb_header_menu.tdb-menu-sub-inline .td-pulldown-filter-list{ width: 100% !important; }.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu ul li, .tdb_header_menu.tdb-menu-sub-inline .td-pulldown-filter-list li{ display: inline-block; width: auto !important; }.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu, .tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu .tdb-menu-item{ position: static; }.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu ul ul{ margin-top: 0 !important; }.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu > ul{ left: 0 !important; }.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu .tdb-menu-item > a .tdb-sub-menu-icon{ float: none; line-height: 1; }.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu .tdb-menu-item:hover > ul, .tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu .tdb-menu-item.tdb-hover > ul{ top: 100%; }.tdb_header_menu.tdb-menu-sub-inline .tdb-menu-items-dropdown{ position: static; }.tdb_header_menu.tdb-menu-sub-inline .td-pulldown-filter-list{ left: 0 !important; }.tdb-menu .tdb-mega-menu .sub-menu{ -webkit-transition: opacity 0.3s ease; transition: opacity 0.3s ease; width: 1114px !important; }.tdb-menu .tdb-mega-menu .sub-menu, .tdb-menu .tdb-mega-menu .sub-menu > li{ position: absolute; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); }.tdb-menu .tdb-mega-menu .sub-menu > li{ top: 0; width: 100%; max-width: 1114px !important; height: auto; background-color: #fff; border: 1px solid #eaeaea; overflow: hidden; }.tdc-dragged .tdb-block-menu ul{ visibility: hidden !important; opacity: 0 !important; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }.tdb-mm-align-screen .tdb-menu .tdb-mega-menu .sub-menu{ -webkit-transform: translateX(0); transform: translateX(0); }.tdb-mm-align-parent .tdb-menu .tdb-mega-menu{ position: relative; }.tdb-menu .tdb-mega-menu .tdc-row:not([class*='stretch_row_']), .tdb-menu .tdb-mega-menu .tdc-row-composer:not([class*='stretch_row_']){ width: auto !important; max-width: 1240px; }.tdb-menu .tdb-mega-menu-page > .sub-menu > li .tdb-page-tpl-edit-btns{ position: absolute; top: 0; left: 0; display: none; flex-wrap: wrap; gap: 0 4px; }.tdb-menu .tdb-mega-menu-page > .sub-menu > li:hover .tdb-page-tpl-edit-btns{ display: flex; }.tdb-menu .tdb-mega-menu-page > .sub-menu > li .tdb-page-tpl-edit-btn{ background-color: #000; padding: 1px 8px 2px; font-size: 11px; color: #fff; z-index: 100; }.tdi_38{ float: right; clear: none; }.tdi_38 .tdb-menu > li .tdb-menu-sep, .tdi_38 .tdb-menu-items-dropdown .tdb-menu-sep{ top: -1px; }.tdi_38 .tdb-menu > li > a .tdb-sub-menu-icon, .tdi_38 .td-subcat-more .tdb-menu-more-subicon{ top: -1px; }.tdi_38 .td-subcat-more .tdb-menu-more-icon{ top: 0px; }.tdi_38 .tdb-menu > li > a, .tdi_38 .td-subcat-more{ color: #ffffff; }.tdi_38 .tdb-menu > li > a .tdb-sub-menu-icon-svg svg, .tdi_38 .tdb-menu > li > a .tdb-sub-menu-icon-svg svg *, .tdi_38 .td-subcat-more .tdb-menu-more-subicon-svg svg, .tdi_38 .td-subcat-more .tdb-menu-more-subicon-svg svg *, .tdi_38 .td-subcat-more .tdb-menu-more-icon-svg, .tdi_38 .td-subcat-more .tdb-menu-more-icon-svg *{ fill: #ffffff; }.tdi_38 .tdb-menu > li > a, .tdi_38 .td-subcat-more, .tdi_38 .td-subcat-more > .tdb-menu-item-text{ line-height:80px !important; }.tdi_38 .tdb-normal-menu ul .tdb-menu-item > a .tdb-sub-menu-icon, .tdi_38 .td-pulldown-filter-list .tdb-menu-item > a .tdb-sub-menu-icon{ right: 0; margin-top: 1px; }.tdi_38 .tdb-menu .tdb-normal-menu ul, .tdi_38 .td-pulldown-filter-list, .tdi_38 .td-pulldown-filter-list .sub-menu{ box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.15); }.tdi_38 .tdb-menu .tdb-mega-menu .sub-menu > li{ box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.1); }@media (max-width: 1140px) { .tdb-menu .tdb-mega-menu .sub-menu > li { width: 100% !important; } } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ .tdi_38 .tdb-menu > li > a, .tdi_38 .td-subcat-more{ padding: 0 9px; }.tdi_38 .tdb-menu > li > a, .tdi_38 .td-subcat-more, .tdi_38 .td-subcat-more > .tdb-menu-item-text{ font-size:11px !important;line-height:60px !important; } } </style> <style> .tds_menu_active3 .tdb-menu > li > a:after{ opacity: 0; -webkit-transition: opacity 0.2s ease; transition: opacity 0.2s ease; height: 100%; z-index: -1; }.tds_menu_active3 .tdb-menu > li.current-menu-item > a:after, .tds_menu_active3 .tdb-menu > li.current-menu-ancestor > a:after, .tds_menu_active3 .tdb-menu > li.current-category-ancestor > a:after, .tds_menu_active3 .tdb-menu > li:hover > a:after, .tds_menu_active3 .tdb-menu > li.tdb-hover > a:after{ opacity: 1; }.tds_menu_active3 .tdb-menu-items-dropdown .td-subcat-more:after{ opacity: 0; -webkit-transition: opacity 0.2s ease; transition: opacity 0.2s ease; height: 100%; z-index: -1; }.tds_menu_active3 .tdb-menu-items-dropdown:hover .td-subcat-more:after{ opacity: 1; } </style> <style> </style><div id=tdi_38 class="td_block_inner td-fix-index"><div class="tdb-main-sub-icon-fake"><i class="tdb-sub-menu-icon td-icon-down tdb-main-sub-menu-icon"></i></div><div class="tdb-sub-icon-fake"><i class="tdb-sub-menu-icon td-icon-right-arrow"></i></div><ul id="menu-td-demo-header-menu-1" class="tdb-block-menu tdb-menu tdb-menu-items-visible"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home tdb-cur-menu-item menu-item-first tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-3826"><a href="https://devclass.com/"><div class="tdb-menu-item-text">Home</div></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-5829"><a href="https://devclass.com/devops/"><div class="tdb-menu-item-text">DevOps</div></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-189"><a href="https://devclass.com/serverless/"><div class="tdb-menu-item-text">Serverless</div></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-187"><a href="https://devclass.com/containers/"><div class="tdb-menu-item-text">Containers</div></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-186"><a href="https://devclass.com/ci-cd/"><div class="tdb-menu-item-text">CI/CD</div></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-188"><a href="https://devclass.com/ml-ai/"><div class="tdb-menu-item-text">ML/AI</div></a></li> </ul></div></div></div></div></div></div><div id="tdi_41" class="tdc-row"><div class="vc_row tdi_42 condor_ad wpb_row td-pb-row tdc-element-style tdc-row-content-vert-center" > <style scoped> /* custom css */ .tdi_42, .tdi_42 .tdc-columns{ min-height: 0; }.tdi_42, .tdi_42 .tdc-columns{ display: block; }.tdi_42 .tdc-columns{ width: 100%; }@media (min-width: 768px) { .tdi_42 { margin-left: -14px; margin-right: -14px; } .tdi_42 .tdc-row-video-background-error, .tdi_42 .vc_column { padding-left: 14px; padding-right: 14px; } }@media (min-width: 767px) { .tdi_42.tdc-row-content-vert-center, .tdi_42.tdc-row-content-vert-center .tdc-columns { display: flex; align-items: center; flex: 1; } .tdi_42.tdc-row-content-vert-bottom, .tdi_42.tdc-row-content-vert-bottom .tdc-columns { display: flex; align-items: flex-end; flex: 1; } .tdi_42.tdc-row-content-vert-center .td_block_wrap { vertical-align: middle; } .tdi_42.tdc-row-content-vert-bottom .td_block_wrap { vertical-align: bottom; } } /* inline tdc_css att */ .tdi_42{ padding-top:24px !important; position:relative; } .tdi_42 .td_block_wrap{ text-align:left } /* portrait */ @media (min-width: 768px) and (max-width: 1018px) { .tdi_42{ padding-top:14px !important; } } </style> <div class="tdi_41_rand_style td-element-style" ><style> .tdi_41_rand_style{ background-color:#000000 !important; } </style></div><div class="vc_column tdi_44 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped> /* custom css */ .tdi_44{ vertical-align: baseline; }.tdi_44 > .wpb_wrapper, .tdi_44 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_44 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_44 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_44 > .wpb_wrapper{ width: auto; height: auto; } </style><div class="wpb_wrapper" ><div class="td-a-rec td-a-rec-id-header tdi_45 td_block_template_8"> <style> /* inline tdc_css att */ .tdi_45{ margin-bottom:0px !important; } </style> <style> /* custom css */ .tdi_45.td-a-rec{ text-align: center; }.tdi_45 .td-element-style{ z-index: -1; }.tdi_45.td-a-rec-img{ text-align: left; }.tdi_45.td-a-rec-img img{ margin: 0 auto 0 0; }@media (max-width: 767px) { .tdi_45.td-a-rec-img { text-align: center; } } </style><!-- KITE & CONDOR via Header Ad --> <div id="ad-kite" class="adu"> <script>show_gpt('ad-kite');</script> </div> <div id="ad-condor" class="adu"> <script>show_gpt('ad-condor');</script> </div></div></div></div></div></div></div></div> </div> <div class="td-header-desktop-sticky-wrap tdc-zone-sticky-invisible tdc-zone-sticky-inactive" style="display: none"> <div id="tdi_46" class="tdc-zone"><div class="tdc_zone tdi_47 wpb_row td-pb-row" data-sticky-offset="0" > <style scoped> /* custom css */ .tdi_47{ min-height: 0; }.td-header-desktop-sticky-wrap.td-header-active{ opacity: 1; } </style><div id="tdi_48" class="tdc-row"><div class="vc_row tdi_49 wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_49, .tdi_49 .tdc-columns{ min-height: 0; }.tdi_49, .tdi_49 .tdc-columns{ display: block; }.tdi_49 .tdc-columns{ width: 100%; } </style><div class="vc_column tdi_51 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped> /* custom css */ .tdi_51{ vertical-align: baseline; }.tdi_51 > .wpb_wrapper, .tdi_51 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_51 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_51 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_51 > .wpb_wrapper{ width: auto; height: auto; } </style><div class="wpb_wrapper" ></div></div></div></div></div></div> </div> </div> <div class="td-main-content-wrap td-container-wrap"> <div class="td-container"> <div class="td-crumb-container"> <div class="entry-crumbs"><span><a title="" class="entry-crumb" href="https://devclass.com/">Home</a></span> <i class="td-icon-right td-bread-sep"></i> <span><a title="View all posts in AI/ML" class="entry-crumb" href="https://devclass.com/category/ai-ml/">AI/ML</a></span> <i class="td-icon-right td-bread-sep td-bred-no-url-last"></i> <span class="td-bred-no-url-last">OCR Engine Tesseract 5.0 converts to float for faster training and recognition</span></div> </div> <div class="td-pb-row"> <div class="td-pb-span8 td-main-content" role="main"> <div class="td-ss-main-content"> <article class="post-4192 post type-post status-publish format-standard has-post-thumbnail category-ai-ml tag-digitalisation tag-ocr tag-optical-character-recognition tag-tesseract"> <div class="td-post-header"> <ul class="td-category"> <li class="entry-category"><a href="https://devclass.com/category/ai-ml/">AI/ML</a></li> </ul> <header class="td-post-title"> <!-- title --> <h3 class="entry-title td-module-title"> <a href="https://devclass.com/2021/12/01/tesseract-ocr-5/" rel="bookmark" title="OCR Engine Tesseract 5.0 converts to float for faster training and recognition"> OCR Engine Tesseract 5.0 converts to float for faster training and recognition </a> </h3> <div class="td-module-meta-info"> <!-- author --> <div class="td-post-author-name"> By <a href="https://devclass.com/author/julia/">Julia Schmidt</a> <div class="td-author-line"> - </div> </div> <!-- date --> <span class="td-post-date"> <time class="entry-date updated td-module-date" datetime="2021-12-01T15:17:52+00:00" >December 1, 2021</time> </span> <div class="social_wrapper"> <a class="social_icon_box social-facebook" href="https://www.facebook.com/sharer.php?u=https://devclass.com/2021/12/01/tesseract-ocr-5/" style="transition: opacity 0.2s ease 0s; opacity: 1;"> <div class="td-social-but-icon"><i class="td-icon-facebook"></i></div> <div class="td-social-but-text">Facebook</div> </a> <a class="social_icon_box social-twitter" href="https://twitter.com/intent/tweet?text=OCR Engine Tesseract 5.0 converts to float for faster training and recognition&url=https://devclass.com/2021/12/01/tesseract-ocr-5/&via=DEVCLASS" style="transition: opacity 0.2s ease 0s; opacity: 1;"> <div class="td-social-but-icon"> <i class="td-icon-twitter"></i> </div> <div class="td-social-but-text">Twitter</div> </a> <a class="social_icon_box social-whatsapp" href="whatsapp://send?text=OCR Engine Tesseract 5.0 converts to float for faster training and recognition %0A%0A https://devclass.com/2021/12/01/tesseract-ocr-5/"> <div class="td-social-but-icon"> <i class="td-icon-whatsapp"></i> </div> <div class="td-social-but-text">WhatsApp</div> </a> <a class="social_icon_box social-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://devclass.com/2021/12/01/tesseract-ocr-5/&title=OCR Engine Tesseract 5.0 converts to float for faster training and recognition" style="transition: opacity 0.2s ease 0s; opacity: 1;"> <div class="td-social-but-icon"> <i class="td-icon-linkedin"></i> </div> <div class="td-social-but-text">Linkedin</div> </a> <a class="social_icon_box social-reddit" href="https://reddit.com/submit?url=https://devclass.com/2021/12/01/tesseract-ocr-5/&title=OCR Engine Tesseract 5.0 converts to float for faster training and recognition" style="transition: opacity 0.2s ease 0s; opacity: 1;"> <div class="td-social-but-icon"> <i class="td-icon-reddit"></i> </div> <div class="td-social-but-text">ReddIt</div> </a> <a class="social_icon_box social-mail" href="mailto:?subject=OCR Engine Tesseract 5.0 converts to float for faster training and recognition&body=https://devclass.com/2021/12/01/tesseract-ocr-5/" style="transition: opacity 0.2s ease 0s; opacity: 1;"> <div class="td-social-but-icon"> <i class="td-icon-mail"></i> </div> <div class="td-social-but-text">Email</div> </a> </div> </div> </header> <div class="td-post-content tagdiv-type"> <!-- image --> <div class="td-post-featured-image"> <img class="entry-thumb" src="https://devclass.com/wp-content/uploads/2021/12/stack-of-letters-gbdc9a3bff_1920-768x508.jpg" alt="OCR Engine Tesseract 5.0 converts to float for faster training and recognition" title="OCR Engine Tesseract 5.0 converts to float for faster training and recognition" /> </div> <p>After more than 2.5 years in <a href="https://github.com/tesseract-ocr/tesseract/releases/tag/5.0.0-alpha">alpha</a>, <a href="https://github.com/tesseract-ocr/tesseract/releases/tag/5.0.0">version 5.0</a> of the popular optical character recognition engine Tesseract has finally made it across the finish line.</p> <p>Tesseract was initially developed at Hewlett-Packard and has been around since 1985. The company open-sourced the project in 2005, with Google overtaking most of the development work the following year. Since 2018, Tesseract is back to being dependent on non-funded community contributions, which might be the reason for the long alpha phase. </p> <p>Optical character recognition is the capability of analysing images of text and numbers and turning them into actual text or digit series. This can be useful for further processing or just turning paper documents into a searchable digital representation. Tesseract promises to recognise more than 100 languages and supports a number of output formats including plain text, HTML, and PDF.</p> <p>While the last major release presented the addition of neural networks to improve recognition results, Tesseract 5.0 looks to impress users with faster training and recognition out of the box. Its speed-up is mainly thanks to the Tesseract authors switching from double calculations to floats — which is said to come with the added bonus of needing less system memory.</p> <p>With the update comes better support for Arm NEON, and additional binarisation options, so that users can check if using adaptive Otsu thresholding or the Sauvola method for local binarisation yields more correct results for their use-case. New options <code>-dl</code> and <code>-ld</code> in <code>combine_tessdata</code> are meant to provide developers with details of traineddata files.</p><!-- FALCON via Article Inline Ad --> <div class="inline-ad"> <div id="ad-falcon" class="adu"> <script>show_gpt("ad-falcon");</script> </div></div> <p>According to the change notes, the team also put some effort into modernising the Tesseract codebase, cleaning up renderers, and getting rid of proprietary data types in its public API, which could lead to some breakage in old software using the engine. Same goes for any code using pdf.ttf directly for some reason, as it isn’t needed anymore and has hence been removed.</p> <p>Apart from these <a href="https://github.com/tesseract-ocr/tesseract/blob/main/ChangeLog">changes</a>, the contributors got rid of bugs, improved unit and fuzzing tests, and clarified training messages.</p> <!-- QUIZ HERE --> <!-- relpost-thumb-wrapper --><div class="relpost-thumb-wrapper"><!-- filter-class --><div class="relpost-thumb-container"><div style="clear: both"></div><div style="clear: both"></div><!-- relpost-block-container --><div class="relpost-block-container"><a href="https://devclass.com/2024/11/18/jetbrains-releases-intellij-idea-2024-3-and-other-ides-still-struggles-to-convince-devs-of-benefits-of-new-ui/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-hidden="true" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2022/08/developers_shutterstock-218x150.jpg) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">JetBrains releases IntelliJ IDEA 2024.3 and other IDEs, still struggles to convince devs of benefits...</div></div></a><a href="https://devclass.com/2024/11/05/amazon-q-developer-is-not-just-for-coding-and-not-just-for-aws-claims-cloud-giant/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-label="AI programming" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2023/02/shutterstock_programmer-218x150.webp) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">Amazon Q Developer is not just for coding and not just for AWS, claims cloud giant</div></div></a><a href="https://devclass.com/2024/10/30/github-universe-anthropic-and-google-models-come-to-copilot-python-ascendant-and-a-new-take-on-citizen-development/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-hidden="true" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2024/10/github-anthropic-218x150.jpg) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">GitHub Universe: Anthropic and Google models come to Copilot, Python ascendant, and a new take on ci...</div></div></a><a href="https://devclass.com/2024/10/16/stackblitz-bolt-new-blurs-boundaries-between-web-development-and-skilled-use-of-ai-prompts/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-label="AI programming" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2023/02/shutterstock_programmer-218x150.webp) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">StackBlitz Bolt.new blurs boundaries between web development and skilled use of AI prompts</div></div></a><a href="https://devclass.com/2024/10/10/microsoft-previews-unified-net-api-for-ai-and-delivers-net-9-release-candidate-with-go-live-license/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-hidden="true" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2022/12/shutterstock_microsoft-218x150.jpeg) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">Microsoft previews unified .NET API for AI, and delivers .NET 9 Release Candidate with go-live licen...</div></div></a><a href="https://devclass.com/2024/10/07/openai-previews-major-update-to-chatgpt-visual-interface-for-writing-and-coding/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-label="AI programming" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2023/02/shutterstock_programmer-218x150.webp) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">OpenAI previews major update to ChatGPT visual interface for writing and coding</div></div></a><a href="https://devclass.com/2024/10/03/why-windows-11-24h2-is-a-big-yawn-for-developers/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-hidden="true" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2024/10/shuttertock_copilot-218x150.webp) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">Why Windows 11 24H2 is a big yawn for developers</div></div></a><a href="https://devclass.com/2024/08/05/code-is-drowning-in-security-debt-says-veracode-and-ai-is-both-problem-and-solution/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-label="Hand outstretched saved by other person, drowning" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2024/08/shutterstock_save_drowning-218x150.jpg) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">Code is "drowning in security debt" says Veracode – and AI is both problem and solution</div></div></a><a href="https://devclass.com/2024/07/22/executives-have-more-confidence-in-software-supply-chain-security-than-their-developers/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-label="Rust" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2020/06/chain-566778_1920-218x150.jpg) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">Executives have more confidence in software supply chain security than their developers</div></div></a><a href="https://devclass.com/2024/07/15/devs-say-many-of-their-hours-are-wasted-disagree-with-managers-on-how-to-fix-the-issue/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-label="Developers" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2023/02/developer_shutterstock-218x150.jpg) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">Devs say many of their hours are wasted, disagree with managers on how to fix the issue</div></div></a><a href="https://devclass.com/2024/07/10/german-court-rules-ai-output-can-be-protectable-ups-stakes-for-machine-generated-code/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-label="ai law legal copyright" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2024/07/ai_shutterstock-218x150.webp) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">German court rules AI output can be protectable, ups stakes for machine generated code</div></div></a><a href="https://devclass.com/2024/06/25/can-you-trust-ai-to-test-ai-generated-code-devclass-talks-ai-coding-with-tabnine/"class="relpost-block-single" ><div class="relpost-custom-block-single" style="width: 218px; height: 225px;"><div class="relpost-block-single-image" aria-label="AI programming" role="img" style="background: transparent url(https://devclass.com/wp-content/uploads/2023/02/shutterstock_programmer-218x150.webp) no-repeat scroll 0% 0%; width: 218px; height: 150px;"></div><div class="relpost-block-single-text" style="font-family: 'Roboto', sans-serif; font-size: 13px; color: #333333;">Can you trust AI to test AI-generated code? DevClass talks AI coding with Tabnine</div></div></a></div><!-- close relpost-block-container --><div style="clear: both"></div></div><!-- close filter class --></div><!-- close relpost-thumb-wrapper --> </div> </div> </article> </div> </div> <div class="td-pb-span4 td-main-sidebar" role="complementary"> <div class="td-ss-main-sidebar"> <div class="td-a-rec td-a-rec-id-custom_ad_1 tdi_52 td_block_template_8"> <style> /* custom css */ .tdi_52.td-a-rec{ text-align: center; }.tdi_52 .td-element-style{ z-index: -1; }.tdi_52.td-a-rec-img{ text-align: left; }.tdi_52.td-a-rec-img img{ margin: 0 auto 0 0; }@media (max-width: 767px) { .tdi_52.td-a-rec-img { text-align: center; } } </style><!-- EAGLE via Custom ad 1 --> <div id="ad-eagle" class="adu"> <script>show_gpt('ad-eagle');</script> </div></div> </div> </div> </div> </div> </div> <div class="td-footer-template-wrap" style="position: relative"> <div class="td-footer-wrap "> <div id="tdi_53" class="tdc-zone"><div class="tdc_zone tdi_54 wpb_row td-pb-row tdc-element-style" > <style scoped> /* custom css */ .tdi_54{ min-height: 0; }.tdi_54 > .td-element-style:after{ content: '' !important; width: 100% !important; height: 100% !important; position: absolute !important; top: 0 !important; left: 0 !important; z-index: 0 !important; display: block !important; background-color: #000000 !important; } /* inline tdc_css att */ .tdi_54{ border-color:#000000 !important; border-style:solid !important; border-width:0 !important; position:relative; } </style> <div class="tdi_53_rand_style td-element-style" ><div class="td-element-style-before"><style> .tdi_53_rand_style > .td-element-style-before { content:'' !important; width:100% !important; height:100% !important; position:absolute !important; top:0 !important; left:0 !important; display:block !important; z-index:0 !important; background-repeat:no-repeat !important; opacity:1 !important; background-position:center top !important; } </style></div><style> .tdi_53_rand_style{ background-color:#000000 !important; } </style></div><div id="tdi_55" class="tdc-row"><div id="hawk_ads" class="vc_row tdi_56 wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_56, .tdi_56 .tdc-columns{ min-height: 0; }.tdi_56, .tdi_56 .tdc-columns{ display: block; }.tdi_56 .tdc-columns{ width: 100%; } </style><div class="vc_column tdi_58 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped> /* custom css */ .tdi_58{ vertical-align: baseline; }.tdi_58 > .wpb_wrapper, .tdi_58 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_58 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_58 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_58 > .wpb_wrapper{ width: auto; height: auto; } </style><div class="wpb_wrapper" ><div class="td-a-rec td-a-rec-id-custom_ad_3 tdi_59 td_block_template_8"> <style> /* custom css */ .tdi_59.td-a-rec{ text-align: center; }.tdi_59 .td-element-style{ z-index: -1; } </style><!-- HAWK via Footer top --> <div id="ad-hawk" class="adu"> <script>show_gpt('ad-hawk');</script> </div></div></div></div></div></div><div id="tdi_60" class="tdc-row stretch_row"><div class="vc_row tdi_61 wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_61, .tdi_61 .tdc-columns{ min-height: 0; }.tdi_61, .tdi_61 .tdc-columns{ display: block; }.tdi_61 .tdc-columns{ width: 100%; } </style><div class="vc_column tdi_63 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped> /* custom css */ .tdi_63{ vertical-align: baseline; }.tdi_63 > .wpb_wrapper, .tdi_63 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_63 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_63 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_63 > .wpb_wrapper{ width: auto; height: auto; } </style><div class="wpb_wrapper" ><div class="vc_row_inner tdi_65 vc_row vc_inner wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_65{ position: relative !important; top: 0; transform: none; -webkit-transform: none; }.tdi_65, .tdi_65 .tdc-inner-columns{ display: block; }.tdi_65 .tdc-inner-columns{ width: 100%; } </style><div class="vc_column_inner tdi_67 wpb_column vc_column_container tdc-inner-column td-pb-span4"> <style scoped> /* custom css */ .tdi_67{ vertical-align: baseline; }.tdi_67 .vc_column-inner > .wpb_wrapper, .tdi_67 .vc_column-inner > .wpb_wrapper .tdc-elements{ display: block; }.tdi_67 .vc_column-inner > .wpb_wrapper .tdc-elements{ width: 100%; } </style><div class="vc_column-inner"><div class="wpb_wrapper" ></div></div></div><div class="vc_column_inner tdi_69 wpb_column vc_column_container tdc-inner-column td-pb-span4"> <style scoped> /* custom css */ .tdi_69{ vertical-align: baseline; }.tdi_69 .vc_column-inner > .wpb_wrapper, .tdi_69 .vc_column-inner > .wpb_wrapper .tdc-elements{ display: block; }.tdi_69 .vc_column-inner > .wpb_wrapper .tdc-elements{ width: 100%; } </style><div class="vc_column-inner"><div class="wpb_wrapper" ></div></div></div><div class="vc_column_inner tdi_71 wpb_column vc_column_container tdc-inner-column td-pb-span4"> <style scoped> /* custom css */ .tdi_71{ vertical-align: baseline; }.tdi_71 .vc_column-inner > .wpb_wrapper, .tdi_71 .vc_column-inner > .wpb_wrapper .tdc-elements{ display: block; }.tdi_71 .vc_column-inner > .wpb_wrapper .tdc-elements{ width: 100%; } </style><div class="vc_column-inner"><div class="wpb_wrapper" ></div></div></div></div><div class="vc_row_inner tdi_73 vc_row vc_inner wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_73{ position: relative !important; top: 0; transform: none; -webkit-transform: none; }.tdi_73, .tdi_73 .tdc-inner-columns{ display: block; }.tdi_73 .tdc-inner-columns{ width: 100%; } </style><div class="vc_column_inner tdi_75 wpb_column vc_column_container tdc-inner-column td-pb-span12"> <style scoped> /* custom css */ .tdi_75{ vertical-align: baseline; }.tdi_75 .vc_column-inner > .wpb_wrapper, .tdi_75 .vc_column-inner > .wpb_wrapper .tdc-elements{ display: block; }.tdi_75 .vc_column-inner > .wpb_wrapper .tdc-elements{ width: 100%; } /* inline tdc_css att */ /* portrait */ @media (min-width: 768px) and (max-width: 1018px) { .tdi_75{ margin-bottom:0px !important; } } </style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="wpb_wrapper td_block_separator td_block_wrap vc_separator tdi_77 td_separator_solid td_separator_center"><span style="border-color:rgba(255,255,255,0.1);border-width:2px;width:80%;"></span> <style scoped> /* custom css */ .td_block_separator{ width: 100%; align-items: center; margin-bottom: 38px; padding-bottom: 10px; }.td_block_separator span{ position: relative; display: block; margin: 0 auto; width: 100%; height: 1px; border-top: 1px solid #EBEBEB; }.td_separator_align_left span{ margin-left: 0; }.td_separator_align_right span{ margin-right: 0; }.td_separator_dashed span{ border-top-style: dashed; }.td_separator_dotted span{ border-top-style: dotted; }.td_separator_double span{ height: 3px; border-bottom: 1px solid #EBEBEB; }.td_separator_shadow > span{ position: relative; height: 20px; overflow: hidden; border: 0; color: #EBEBEB; }.td_separator_shadow > span > span{ position: absolute; top: -30px; left: 0; right: 0; margin: 0 auto; height: 13px; width: 98%; border-radius: 100%; }html :where([style*='border-width']){ border-style: none; } /* inline tdc_css att */ .tdi_77{ margin-top:2em !important; border-color:#ffffff !important; border-style:solid !important; border-width:0 !important; position:relative; } /* portrait */ @media (min-width: 768px) and (max-width: 1018px) { .tdi_77{ margin-bottom:20px !important; } } </style> <div class="tdi_76_rand_style td-element-style" ><div class="td-element-style-before"><style> .tdi_76_rand_style > .td-element-style-before { content:'' !important; width:100% !important; height:100% !important; position:absolute !important; top:0 !important; left:0 !important; display:block !important; z-index:0 !important; opacity:1 !important; } </style></div></div></div></div></div></div></div><div class="vc_row_inner tdi_79 vc_row vc_inner wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_79{ position: relative !important; top: 0; transform: none; -webkit-transform: none; }.tdi_79, .tdi_79 .tdc-inner-columns{ display: block; }.tdi_79 .tdc-inner-columns{ width: 100%; } /* inline tdc_css att */ .tdi_79{ padding-bottom:30px !important; } .tdi_79 .td_block_wrap{ text-align:left } /* portrait */ @media (min-width: 768px) and (max-width: 1018px) { .tdi_79{ padding-bottom:20px !important; } } </style><div class="vc_column_inner tdi_81 wpb_column vc_column_container tdc-inner-column td-pb-span4"> <style scoped> /* custom css */ .tdi_81{ vertical-align: baseline; }.tdi_81 .vc_column-inner > .wpb_wrapper, .tdi_81 .vc_column-inner > .wpb_wrapper .tdc-elements{ display: block; }.tdi_81 .vc_column-inner > .wpb_wrapper .tdc-elements{ width: 100%; } /* inline tdc_css att */ .tdi_81{ width:25% !important; } /* phone */ @media (max-width: 767px) { .tdi_81{ margin-bottom:50px !important; width:100% !important; } } </style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="td_block_wrap tdb_header_logo tdi_82 td-pb-border-top td_block_template_8 tdb-header-align" data-td-block-uid="tdi_82" > <style> /* inline tdc_css att */ .tdi_82{ margin-top:37px !important; } /* portrait */ @media (min-width: 768px) and (max-width: 1018px) { .tdi_82{ margin-top:44px !important; } } /* phone */ @media (max-width: 767px) { .tdi_82{ margin-top:0px !important; } } </style> <style> /* custom css */ .tdi_82 .tdb-logo-a, .tdi_82 h1{ flex-direction: row; align-items: flex-start; justify-content: center; }.tdi_82 .tdb-logo-svg-wrap{ display: block; }.tdi_82 .tdb-logo-svg-wrap + .tdb-logo-img-wrap{ display: none; }.tdi_82 .tdb-logo-img-wrap{ display: block; }.tdi_82 .tdb-logo-text-tagline{ margin-top: 2px; margin-left: 0; display: none; }.tdi_82 .tdb-logo-text-title{ display: none; }.tdi_82 .tdb-logo-text-wrap{ flex-direction: column; align-items: flex-start; }.tdi_82 .tdb-logo-icon{ top: 0px; display: block; } </style><div class="tdb-block-inner td-fix-index"><a class="tdb-logo-a" href="https://devclass.com/"><span class="tdb-logo-img-wrap"><img class="tdb-logo-img td-retina-data" data-retina="https://devclass.com/wp-content/uploads/2018/08/DevClass_logo_White_small-Horizontal.png" src="https://devclass.com/wp-content/uploads/2018/08/DevClass_logo_White_small-Horizontal.png" alt="DevClass" title="" width="1901" height="607" /></span><span class="tdb-logo-text-wrap"><span class="tdb-logo-text-title">DevClass</span><span class="tdb-logo-text-tagline">Developer News</span></span></a></div></div> <!-- ./block --></div></div></div><div class="vc_column_inner tdi_84 wpb_column vc_column_container tdc-inner-column td-pb-span4"> <style scoped> /* custom css */ .tdi_84{ vertical-align: baseline; }.tdi_84 .vc_column-inner > .wpb_wrapper, .tdi_84 .vc_column-inner > .wpb_wrapper .tdc-elements{ display: block; }.tdi_84 .vc_column-inner > .wpb_wrapper .tdc-elements{ width: 100%; } /* inline tdc_css att */ .tdi_84{ width:41.66666667% !important; } /* phone */ @media (max-width: 767px) { .tdi_84{ margin-bottom:50px !important; width:100% !important; justify-content:center !important; text-align:center !important; } } </style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="tdm_block td_block_wrap tdm_block_column_title tdi_85 tdm-content-horiz-left td-pb-border-top td_block_template_8" data-td-block-uid="tdi_85" > <style> /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_85{ justify-content:center !important; text-align:center !important; } } </style> <style> /* custom css */ .tdm_block_column_title{ margin-bottom: 0; display: inline-block; width: 100%; } </style><div class="td-block-row"><div class="td-block-span12 tdm-col"> <style> body .tdi_86 .tdm-title{ color: #ffffff; }.tdi_86 .tdm-title{ font-size:18px !important;line-height:1 !important;font-weight:700 !important; } </style><div class="tds-title tds-title1 td-fix-index tdi_86 "><h3 class="tdm-title tdm-title-md">ABOUT US</h3></div></div></div></div><div class="tdm_block td_block_wrap tdm_block_inline_text tdi_87 td-pb-border-top td_block_template_8" data-td-block-uid="tdi_87" > <style> /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_87{ justify-content:center !important; text-align:center !important; } } </style> <style> /* custom css */ .tdm_block.tdm_block_inline_text{ margin-bottom: 0; vertical-align: top; }.tdm_block.tdm_block_inline_text .tdm-descr{ margin-bottom: 0; -webkit-transform: translateZ(0); transform: translateZ(0); }.tdc-row-content-vert-center .tdm-inline-text-yes{ vertical-align: middle; }.tdc-row-content-vert-bottom .tdm-inline-text-yes{ vertical-align: bottom; }.tdi_87{ text-align: left !important; }.tdi_87 .tdm-descr{ color: #eaeaea; font-size:14px !important;line-height:1.6 !important; } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ .tdi_87 .tdm-descr{ font-size:13px !important; } } </style><p class="tdm-descr">DevClass is the news and analysis site covering modern software development issues, from the team behind the Continuous Lifecycle, Serverless Computing and MCubed conferences</p></div><div class="td_block_wrap td_block_raw_css tdi_88 td-pb-border-top td_block_template_8" data-td-block-uid="tdi_88" ><div id=tdi_88 class="td_block_inner td-fix-index"><style>.td-footer-edit-social .tdm-social-item-wrap:last-child { margin-right: 10px; } .td-list-lastchild-edit ul li:last-child { margin-right: 20px!important; } </style></div></div><div class="tdm_block td_block_wrap tdm_block_inline_text tdi_89 td-pb-border-top td_block_template_8" data-td-block-uid="tdi_89" > <style> /* inline tdc_css att */ .tdi_89{ margin-top:21px !important; } /* phone */ @media (max-width: 767px) { .tdi_89{ justify-content:center !important; text-align:center !important; } } </style> <style> /* custom css */ .tdi_89{ text-align: left !important; }.tdi_89 .tdm-descr{ color: #eaeaea; font-size:14px !important;line-height:1.6 !important; }.tdi_89 .tdm-descr a{ color: #1aa4ce; } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ .tdi_89 .tdm-descr{ font-size:13px !important; } } </style><p class="tdm-descr">Contact us: <a href="mailto:devclass@sitpub.com">devclass@sitpub.com</a></p></div></div></div></div><div class="vc_column_inner tdi_91 wpb_column vc_column_container tdc-inner-column td-pb-span4"> <style scoped> /* custom css */ .tdi_91{ vertical-align: baseline; }.tdi_91 .vc_column-inner > .wpb_wrapper, .tdi_91 .vc_column-inner > .wpb_wrapper .tdc-elements{ display: block; }.tdi_91 .vc_column-inner > .wpb_wrapper .tdc-elements{ width: 100%; } /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_91{ justify-content:center !important; text-align:center !important; } } </style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="tdm_block td_block_wrap tdm_block_column_title tdi_92 tdm-content-horiz-left td-pb-border-top td_block_template_8" data-td-block-uid="tdi_92" > <style> /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_92{ justify-content:center !important; text-align:center !important; } } </style><div class="td-block-row"><div class="td-block-span12 tdm-col"> <style> body .tdi_93 .tdm-title{ color: #ffffff; }.tdi_93 .tdm-title{ font-size:18px !important;line-height:1 !important;font-weight:700 !important; } </style><div class="tds-title tds-title1 td-fix-index tdi_93 "><h3 class="tdm-title tdm-title-md">FOLLOW US</h3></div></div></div></div><div class="tdm_block td_block_wrap tdm_block_socials tdi_94 tdm-content-horiz-left td-pb-border-top td-footer-edit-social td_block_template_8" data-td-block-uid="tdi_94" > <style> /* inline tdc_css att */ /* phone */ @media (max-width: 767px) { .tdi_94{ justify-content:center !important; text-align:center !important; } } </style> <style> /* custom css */ .tdm_block.tdm_block_socials{ margin-bottom: 0; }.tdm-social-wrapper{ *zoom: 1; }.tdm-social-wrapper:before, .tdm-social-wrapper:after{ display: table; content: ''; line-height: 0; }.tdm-social-wrapper:after{ clear: both; }.tdm-social-item-wrap{ display: inline-block; }.tdm-social-item{ position: relative; display: inline-block; vertical-align: middle; -webkit-transition: all 0.2s; transition: all 0.2s; text-align: center; -webkit-transform: translateZ(0); transform: translateZ(0); }.tdm-social-item i{ font-size: 14px; color: #4db2ec; -webkit-transition: all 0.2s; transition: all 0.2s; }.tdm-social-text{ display: none; margin-top: -1px; vertical-align: middle; font-size: 13px; color: #4db2ec; -webkit-transition: all 0.2s; transition: all 0.2s; }.tdm-social-item-wrap:hover i, .tdm-social-item-wrap:hover .tdm-social-text{ color: #000; }.tdm-social-item-wrap:last-child .tdm-social-text{ margin-right: 0 !important; } </style> <style> .tdi_95 .tdm-social-item i{ font-size: 14px; vertical-align: middle; line-height: 39.2px; }.tdi_95 .tdm-social-item i.td-icon-twitter, .tdi_95 .tdm-social-item i.td-icon-linkedin, .tdi_95 .tdm-social-item i.td-icon-pinterest, .tdi_95 .tdm-social-item i.td-icon-blogger, .tdi_95 .tdm-social-item i.td-icon-vimeo{ font-size: 11.2px; }.tdi_95 .tdm-social-item{ width: 39.2px; height: 39.2px; margin: 5px 10px 5px 0; background: rgba(255,255,255,0.03); }.tdi_95 .tdm-social-item-wrap:last-child .tdm-social-item{ margin-right: 0 !important; }.tdi_95 .tdm-social-item i, .tds-team-member2 .tdi_95.tds-social4 .tdm-social-item i{ color: #ffffff; }.tdi_95 .tdm-social-item-wrap:hover i, body .tds-team-member2 .tdi_95.tds-social4 .tdm-social-item-wrap:hover i{ color: #4db2ec; }body .tdi_95 .tdm-social-item{ border: 1px solid rgba(255,255,255,0.03); }.tdi_95 .tdm-social-text{ display: none; margin-left: 2px; margin-right: 18px; } /* landscape */ @media (min-width: 1019px) and (max-width: 1140px){ body .tdi_95 .tdm-social-item{ border: 1px solid rgba(255,255,255,0.03); } } /* portrait */ @media (min-width: 768px) and (max-width: 1018px){ .tdi_95 .tdm-social-item{ width: 35px; height: 35px; }.tdi_95 .tdm-social-item i{ line-height: 35px; }body .tdi_95 .tdm-social-item{ border: 1px solid rgba(255,255,255,0.03); } } /* phone */ @media (max-width: 767px){ body .tdi_95 .tdm-social-item{ border: 1px solid rgba(255,255,255,0.03); } } </style><div class="tdm-social-wrapper tds-social4 tdi_95"><div class="tdm-social-item-wrap"><a href="https://www.linkedin.com/company/devclass/" title="Linkedin" class="tdm-social-item"><i class="td-icon-font td-icon-linkedin"></i><span style="display: none">Linkedin</span></a></div><div class="tdm-social-item-wrap"><a href="https://devclass.com/feed/" title="RSS" class="tdm-social-item"><i class="td-icon-font td-icon-rss"></i><span style="display: none">RSS</span></a></div><div class="tdm-social-item-wrap"><a href="https://twitter.com/d3vclass?lang=en" title="Twitter" class="tdm-social-item"><i class="td-icon-font td-icon-twitter"></i><span style="display: none">Twitter</span></a></div><div class="tdm-social-item-wrap"><a href="https://www.youtube.com/channel/UCEk1p4Omxqi0E0ij6Bfy4HQ" title="Youtube" class="tdm-social-item"><i class="td-icon-font td-icon-youtube"></i><span style="display: none">Youtube</span></a></div></div></div></div></div></div></div></div></div></div></div><div id="tdi_96" class="tdc-row stretch_row"><div class="vc_row tdi_97 wpb_row td-pb-row" > <style scoped> /* custom css */ .tdi_97, .tdi_97 .tdc-columns{ min-height: 0; }.tdi_97, .tdi_97 .tdc-columns{ display: block; }.tdi_97 .tdc-columns{ width: 100%; } </style><div class="vc_column tdi_99 wpb_column vc_column_container tdc-column td-pb-span3"> <style scoped> /* custom css */ .tdi_99{ vertical-align: baseline; }.tdi_99 > .wpb_wrapper, .tdi_99 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_99 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_99 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_99 > .wpb_wrapper{ width: auto; height: auto; } </style><div class="wpb_wrapper" ><div class="tdm_block td_block_wrap tdm_block_inline_text tdi_100 td-pb-border-top td_block_template_8" data-td-block-uid="tdi_100" > <style> /* inline tdc_css att */ .tdi_100{ margin-top:2px !important; margin-bottom:0px !important; padding-top:8px !important; padding-bottom:8px !important; } /* phone */ @media (max-width: 767px) { .tdi_100{ margin-top:0px !important; justify-content:center !important; text-align:center !important; } } </style> <style> /* custom css */ .tdi_100{ text-align: left !important; }.tdi_100 .tdm-descr{ color: #cccccc; font-size:12px !important;line-height:21px !important; } </style><p class="tdm-descr">© Situation Publishing, 2018-2024</p></div></div></div><div class="vc_column tdi_102 wpb_column vc_column_container tdc-column td-pb-span9"> <style scoped> /* custom css */ .tdi_102{ vertical-align: baseline; }.tdi_102 > .wpb_wrapper, .tdi_102 > .wpb_wrapper > .tdc-elements{ display: block; }.tdi_102 > .wpb_wrapper > .tdc-elements{ width: 100%; }.tdi_102 > .wpb_wrapper > .vc_row_inner{ width: auto; }.tdi_102 > .wpb_wrapper{ width: auto; height: auto; } /* inline tdc_css att */ .tdi_102{ justify-content:flex-end !important; text-align:right !important; } /* phone */ @media (max-width: 767px) { .tdi_102{ justify-content:center !important; text-align:center !important; } } </style><div class="wpb_wrapper" ><div class="td_block_wrap td_block_list_menu tdi_103 td-blm-display-horizontal td-pb-border-top td-list-lastchild-edit td_block_template_8 widget" data-td-block-uid="tdi_103" > <style> /* inline tdc_css att */ .tdi_103{ margin-bottom:0px !important; padding-top:8px !important; padding-bottom:8px !important; } /* desktop */ @media(min-width: 1141px) { .tdi_103 { display:inline-table !important; } } /* phone */ @media (max-width: 767px) { .tdi_103{ margin-left:16px !important; justify-content:center !important; text-align:center !important; display:inline-table !important; } } /* portrait */ @media (min-width: 768px) and (max-width: 1018px) { .tdi_103{ display:inline-table !important; } } /* landscape */ @media (min-width: 1019px) and (max-width: 1140px) { .tdi_103{ display:inline-table !important; } } </style> <style> /* custom css */ body .tdi_103 ul{ text-align: right; justify-content: flex-end; margin: 0px; }body .tdi_103 ul li a{ justify-content: flex-end; }body .tdi_103 .td-blm-menu-item-txt{ flex-grow: unset; }body .tdi_103 ul li{ margin-right: 20px; }body .tdi_103 ul li:last-child{ margin-right: 0; }body .tdi_103 a, body .tdi_103 .td-blm-sub-icon{ color: #cccccc; }body .tdi_103 li.current-menu-item > a, body .tdi_103 li.current-menu-ancestor > a, body .tdi_103 li.current-category-ancestor > a, body .tdi_103 a:hover, body .tdi_103 li.current-menu-item > a > .td-blm-sub-icon, body .tdi_103 li.current-menu-ancestor > a > .td-blm-sub-icon, body .tdi_103 li.current-category-ancestor > a > .td-blm-sub-icon, body .tdi_103 a:hover > .td-blm-sub-icon{ color: #1aa4ce; }body .tdi_103 li{ font-size:12px !important;line-height:21px !important; } </style><div class="td-block-title-wrap"></div><div id=tdi_103 class="td_block_inner td-fix-index"><div class="menu-td-demo-footer-menu-container"><ul id="menu-td-demo-footer-menu-1" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-248"><a href="https://devclass.com/about/"><span class="td-blm-menu-item-txt">About</span></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-246"><a href="https://devclass.com/contribute/"><span class="td-blm-menu-item-txt">Contribute</span></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-247"><a href="https://devclass.com/contact-us/"><span class="td-blm-menu-item-txt">Contact</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3087"><a href="https://situationpublishing.com/home/contact-us/"><span class="td-blm-menu-item-txt">Sales</span></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-245"><a href="https://devclass.com/privacy/"><span class="td-blm-menu-item-txt">Privacy</span></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-252"><a href="https://devclass.com/cookies/"><span class="td-blm-menu-item-txt">Cookies</span></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-253"><a href="https://devclass.com/tc/"><span class="td-blm-menu-item-txt">Terms & Conditions</span></a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2602"><a href="https://devclass.com/devclass-privacy-policy-for-california-residents/"><span class="td-blm-menu-item-txt">Do not sell my personal information</span></a></li> </ul></div></div></div></div></div></div></div></div></div> </div> </div> <style> .tdc-footer-template .td-main-content-wrap { padding-bottom: 0; } </style> </div><!--close td-outer-wrap--> <!-- Theme: Newspaper by tagDiv.com 2023 Version: 12.5.1 (rara) Deploy mode: deploy uid: 67433109cf7ba --> <!-- Custom css from theme panel --> <style type="text/css" media="screen"> /* custom css theme panel */ .td-post-template-6 .td-post-header { height: 400px; } .td-main-content-wrap.td-main-page-wrap.td-container-wrap { background-color: #fff0; } .td-header-sp-recs { text-align: center; } .td-related-title { visibility: hidden; } .vc_row_inner { color: white; } </style> <script type="text/javascript" src="https://devclass.com/wp-includes/js/dist/hooks.min.js?ver=2810c76e705dd1a53b18" id="wp-hooks-js"></script> <script type="text/javascript" src="https://devclass.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://devclass.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0" id="swv-js"></script> <script type="text/javascript" id="contact-form-7-js-before"> /* <![CDATA[ */ var wpcf7 = { "api": { "root": "https:\/\/devclass.com\/wp-json\/", "namespace": "contact-form-7\/v1" }, "cached": 1 }; /* ]]> */ </script> <script type="text/javascript" src="https://devclass.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0" id="contact-form-7-js"></script> <script type="text/javascript" src="https://devclass.com/wp-includes/js/underscore.min.js?ver=1.13.4" id="underscore-js"></script> <script type="text/javascript" src="https://devclass.com/wp-content/plugins/td-cloud-library/assets/js/js_posts_autoload.min.js?ver=0390de2d4222fae8efaeae107c326a4e" id="tdb_js_posts_autoload-js"></script> <script type="text/javascript" src="https://devclass.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tagdiv_theme.min.js?ver=12.5.1" id="td-site-min-js"></script> <script type="text/javascript" src="https://devclass.com/wp-includes/js/comment-reply.min.js?ver=6.6.1" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script type="text/javascript" src="https://devclass.com/wp-content/plugins/td-cloud-library/assets/js/js_files_for_front.min.js?ver=0390de2d4222fae8efaeae107c326a4e" id="tdb_js_files_for_front-js"></script> <!-- typekit fonts --><link rel="stylesheet" href="https://use.typekit.net/lcx4rzt.css"> <!-- JS generated by theme --> <script> /* global jQuery:{} */ jQuery(document).ready( function () { var tdbMenuItem = new tdbMenu.item(); tdbMenuItem.blockUid = 'tdi_1'; tdbMenuItem.jqueryObj = jQuery('.tdi_1'); tdbMenuItem.isMegaMenuFull = true; tdbMenuItem.megaMenuLoadType = ''; tdbMenu.addItem(tdbMenuItem); }); /* global jQuery:{} */ jQuery(document).ready( function () { var tdbMenuItem = new tdbMenu.item(); tdbMenuItem.blockUid = 'tdi_4'; tdbMenuItem.jqueryObj = jQuery('.tdi_4'); tdbMenuItem.isMegaMenuFull = true; tdbMenuItem.megaMenuLoadType = ''; tdbMenu.addItem(tdbMenuItem); }); jQuery().ready(function () { var blockClass = '.tdi_26'; jQuery(blockClass + '.tdb-horiz-menu-singleline > .menu-item-has-children a').click(function (e) { e.preventDefault(); }) }); jQuery().ready(function () { var tdbSearchItem = new tdbSearch.item(); //block unique ID tdbSearchItem.blockUid = 'tdi_37'; tdbSearchItem.blockAtts = '{"results_msg_align":"content-horiz-center","image_floated":"float_left","image_width":"30","image_size":"td_324x400","show_cat":"none","show_btn":"none","show_date":"","show_review":"none","show_com":"none","show_excerpt":"none","show_author":"none","meta_padding":"2px 0 0 15px","art_title":"0 0 5px","all_modules_space":"20","inline":"yes","tdc_css":"eyJhbGwiOnsiZGlzcGxheSI6IiJ9fQ==","float_block":"yes","form_align":"content-horiz-right","icon_color":"#ffffff","icon_size":"eyJhbGwiOjIwLCJwb3J0cmFpdCI6IjE1In0=","icon_padding":"eyJhbGwiOiI0IiwicG9ydHJhaXQiOiI0In0=","block_type":"tdb_header_search","post_type":"","disable_trigger":"","show_form":"","show_results":"yes","separator":"","disable_live_search":"","exclude_pages":"","exclude_posts":"","search_section_header":"","results_section_1_title":"","results_section_1_taxonomies":"","results_section_1_level":"","results_section_2_title":"","results_section_2_taxonomies":"","results_section_2_level":"","results_section_3_title":"","results_section_3_taxonomies":"","results_section_3_level":"","results_section_search_query_terms":"","results_section_search_query_terms_title":"","results_section_search_query_terms_taxonomies":"","sec_title_space":"","sec_title_color":"","tax_space":"","tax_title_color":"","tax_title_color_h":"","f_sec_title_font_header":"","f_sec_title_font_title":"Section title text","f_sec_title_font_settings":"","f_sec_title_font_family":"","f_sec_title_font_size":"","f_sec_title_font_line_height":"","f_sec_title_font_style":"","f_sec_title_font_weight":"","f_sec_title_font_transform":"","f_sec_title_font_spacing":"","f_sec_title_":"","f_tax_title_font_title":"Taxonomy title text","f_tax_title_font_settings":"","f_tax_title_font_family":"","f_tax_title_font_size":"","f_tax_title_font_line_height":"","f_tax_title_font_style":"","f_tax_title_font_weight":"","f_tax_title_font_transform":"","f_tax_title_font_spacing":"","f_tax_title_":"","tdicon":"","toggle_txt":"","toggle_txt_pos":"","toggle_txt_align":"0","toggle_txt_space":"","toggle_horiz_align":"content-horiz-left","form_offset":"","form_offset_left":"","form_width":"","form_content_width":"","form_padding":"","form_border":"","form_align_screen":"","input_placeholder":"","placeholder_travel":"0","input_padding":"","input_border":"","input_radius":"","btn_text":"Search","btn_tdicon":"","btn_icon_pos":"","btn_icon_size":"","btn_icon_space":"","btn_icon_align":"0","btn_margin":"","btn_padding":"","btn_border":"","btn_radius":"","results_padding":"","results_border":"","results_msg_padding":"","results_msg_border":"","mc1_tl":"","mc1_title_tag":"","mc1_el":"","results_limit":"","open_in_new_window":"","modules_on_row":"100%","modules_gap":"","m_padding":"","modules_border_size":"","modules_border_style":"","modules_border_color":"#eaeaea","modules_divider":"","modules_divider_color":"#eaeaea","h_effect":"","image_alignment":"50","image_height":"","image_radius":"","hide_image":"","video_icon":"","show_vid_t":"block","vid_t_margin":"","vid_t_padding":"","vid_t_color":"","vid_t_bg_color":"","f_vid_time_font_header":"","f_vid_time_font_title":"Video duration text","f_vid_time_font_settings":"","f_vid_time_font_family":"","f_vid_time_font_size":"","f_vid_time_font_line_height":"","f_vid_time_font_style":"","f_vid_time_font_weight":"","f_vid_time_font_transform":"","f_vid_time_font_spacing":"","f_vid_time_":"","meta_info_align":"","meta_info_horiz":"content-horiz-left","meta_width":"","meta_margin":"","meta_info_border_size":"","meta_info_border_style":"","meta_info_border_color":"#eaeaea","art_btn":"","modules_category":"","modules_category_margin":"","modules_category_padding":"","modules_cat_border":"","modules_category_radius":"0","modules_extra_cat":"","author_photo":"","author_photo_size":"","author_photo_space":"","author_photo_radius":"","show_modified_date":"","time_ago":"","time_ago_add_txt":"ago","time_ago_txt_pos":"","review_space":"","review_size":"2.5","review_distance":"","art_excerpt":"","excerpt_col":"1","excerpt_gap":"","excerpt_middle":"","btn_title":"","btn_border_width":"","form_general_bg":"","icon_color_h":"","toggle_txt_color":"","toggle_txt_color_h":"","f_toggle_txt_font_header":"","f_toggle_txt_font_title":"Text","f_toggle_txt_font_settings":"","f_toggle_txt_font_family":"","f_toggle_txt_font_size":"","f_toggle_txt_font_line_height":"","f_toggle_txt_font_style":"","f_toggle_txt_font_weight":"","f_toggle_txt_font_transform":"","f_toggle_txt_font_spacing":"","f_toggle_txt_":"","form_bg":"","form_border_color":"","arrow_color":"","form_shadow_shadow_header":"","form_shadow_shadow_title":"Shadow","form_shadow_shadow_size":"","form_shadow_shadow_offset_horizontal":"","form_shadow_shadow_offset_vertical":"","form_shadow_shadow_spread":"","form_shadow_shadow_color":"","input_color":"","placeholder_color":"","placeholder_opacity":"0","input_bg":"","input_border_color":"","input_shadow_shadow_header":"","input_shadow_shadow_title":"Input shadow","input_shadow_shadow_size":"","input_shadow_shadow_offset_horizontal":"","input_shadow_shadow_offset_vertical":"","input_shadow_shadow_spread":"","input_shadow_shadow_color":"","btn_color":"","btn_color_h":"","btn_icon_color":"","btn_icon_color_h":"","btn_bg":"","btn_bg_h":"","btn_border_color":"","btn_border_color_h":"","btn_shadow_shadow_header":"","btn_shadow_shadow_title":"Button shadow","btn_shadow_shadow_size":"","btn_shadow_shadow_offset_horizontal":"","btn_shadow_shadow_offset_vertical":"","btn_shadow_shadow_spread":"","btn_shadow_shadow_color":"","f_input_font_header":"","f_input_font_title":"Input text","f_input_font_settings":"","f_input_font_family":"","f_input_font_size":"","f_input_font_line_height":"","f_input_font_style":"","f_input_font_weight":"","f_input_font_transform":"","f_input_font_spacing":"","f_input_":"","f_placeholder_font_title":"Placeholder text","f_placeholder_font_settings":"","f_placeholder_font_family":"","f_placeholder_font_size":"","f_placeholder_font_line_height":"","f_placeholder_font_style":"","f_placeholder_font_weight":"","f_placeholder_font_transform":"","f_placeholder_font_spacing":"","f_placeholder_":"","f_btn_font_title":"Button text","f_btn_font_settings":"","f_btn_font_family":"","f_btn_font_size":"","f_btn_font_line_height":"","f_btn_font_style":"","f_btn_font_weight":"","f_btn_font_transform":"","f_btn_font_spacing":"","f_btn_":"","results_bg":"","results_border_color":"","results_msg_color":"","results_msg_color_h":"","results_msg_bg":"","results_msg_border_color":"","f_results_msg_font_header":"","f_results_msg_font_title":"Text","f_results_msg_font_settings":"","f_results_msg_font_family":"","f_results_msg_font_size":"","f_results_msg_font_line_height":"","f_results_msg_font_style":"","f_results_msg_font_weight":"","f_results_msg_font_transform":"","f_results_msg_font_spacing":"","f_results_msg_":"","m_bg":"","color_overlay":"","shadow_module_shadow_header":"","shadow_module_shadow_title":"Module Shadow","shadow_module_shadow_size":"","shadow_module_shadow_offset_horizontal":"","shadow_module_shadow_offset_vertical":"","shadow_module_shadow_spread":"","shadow_module_shadow_color":"","title_txt":"","title_txt_hover":"","all_underline_height":"","all_underline_color":"#000","cat_bg":"","cat_bg_hover":"","cat_txt":"","cat_txt_hover":"","cat_border":"","cat_border_hover":"","meta_bg":"","author_txt":"","author_txt_hover":"","date_txt":"","ex_txt":"","com_bg":"","com_txt":"","rev_txt":"","shadow_meta_shadow_header":"","shadow_meta_shadow_title":"Meta info shadow","shadow_meta_shadow_size":"","shadow_meta_shadow_offset_horizontal":"","shadow_meta_shadow_offset_vertical":"","shadow_meta_shadow_spread":"","shadow_meta_shadow_color":"","btn_bg_hover":"","btn_txt":"","btn_txt_hover":"","btn_border_hover":"","f_title_font_header":"","f_title_font_title":"Article title","f_title_font_settings":"","f_title_font_family":"","f_title_font_size":"","f_title_font_line_height":"","f_title_font_style":"","f_title_font_weight":"","f_title_font_transform":"","f_title_font_spacing":"","f_title_":"","f_cat_font_title":"Article category tag","f_cat_font_settings":"","f_cat_font_family":"","f_cat_font_size":"","f_cat_font_line_height":"","f_cat_font_style":"","f_cat_font_weight":"","f_cat_font_transform":"","f_cat_font_spacing":"","f_cat_":"","f_meta_font_title":"Article meta info","f_meta_font_settings":"","f_meta_font_family":"","f_meta_font_size":"","f_meta_font_line_height":"","f_meta_font_style":"","f_meta_font_weight":"","f_meta_font_transform":"","f_meta_font_spacing":"","f_meta_":"","f_ex_font_title":"Article excerpt","f_ex_font_settings":"","f_ex_font_family":"","f_ex_font_size":"","f_ex_font_line_height":"","f_ex_font_style":"","f_ex_font_weight":"","f_ex_font_transform":"","f_ex_font_spacing":"","f_ex_":"","el_class":"","block_template_id":"","td_column_number":3,"header_color":"","ajax_pagination_infinite_stop":"","offset":"","limit":"5","td_ajax_preloading":"","td_ajax_filter_type":"","td_filter_default_txt":"","td_ajax_filter_ids":"","color_preset":"","ajax_pagination":"","ajax_pagination_next_prev_swipe":"","border_top":"","css":"","class":"tdi_37","tdc_css_class":"tdi_37","tdc_css_class_style":"tdi_37_rand_style"}'; tdbSearchItem.jqueryObj = jQuery('.tdi_37'); tdbSearchItem._openSearchFormClass = 'tdb-drop-down-search-open'; tdbSearchItem._resultsLimit = '4'; tdbSearch.addItem( tdbSearchItem ); }); /* global jQuery:{} */ jQuery(document).ready( function () { var tdbMenuItem = new tdbMenu.item(); tdbMenuItem.blockUid = 'tdi_38'; tdbMenuItem.jqueryObj = jQuery('.tdi_38'); tdbMenuItem.isMegaMenuFull = true; tdbMenuItem.megaMenuLoadType = ''; tdbMenu.addItem(tdbMenuItem); }); var td_res_context_registered_atts=["style_general_mobile_menu","style_general_header_align","style_general_header_logo","style_general_mobile_search","style_general_mobile_horiz_menu","style_general_list_menu","style_specific_list_menu_vertical","style_specific_list_menu_accordion","style_specific_list_menu_horizontal","style_general_module_header","style_general_header_search","style_general_header_search_trigger_enabled","style_general_header_menu","style_general_menu_active3","style_general_separator","style_general_column_title","style_general_inline_text","style_general_socials"]; </script> </body> </html>