Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Read by thought-leaders and decision-makers around the world. Phone Number: +1-650-246-9381 Email: pub@towardsai.net
228 Park Avenue South New York, NY 10003 United States
Website: Publisher: https://towardsai.net/#publisher Diversity Policy: https://towardsai.net/about Ethics Policy: https://towardsai.net/about Masthead: https://towardsai.net/about
Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Founders: Roberto Iriondo, , Job Title: Co-founder and Advisor Works for: Towards AI, Inc. Follow Roberto: X, LinkedIn, GitHub, Google Scholar, Towards AI Profile, Medium, ML@CMU, FreeCodeCamp, Crunchbase, Bloomberg, Roberto Iriondo, Generative AI Lab, Generative AI Lab Denis Piffaretti, Job Title: Co-founder Works for: Towards AI, Inc. Louie Peters, Job Title: Co-founder Works for: Towards AI, Inc. Louis-François Bouchard, Job Title: Co-founder Works for: Towards AI, Inc. Cover:
Towards AI Cover
Logo:
Towards AI Logo
Areas Served: Worldwide Alternate Name: Towards AI, Inc. Alternate Name: Towards AI Co. Alternate Name: towards ai Alternate Name: towardsai Alternate Name: towards.ai Alternate Name: tai Alternate Name: toward ai Alternate Name: toward.ai Alternate Name: Towards AI, Inc. Alternate Name: towardsai.net Alternate Name: pub.towardsai.net
5 stars – based on 497 reviews

Frequently Used, Contextual References

TODO: Remember to copy unique IDs whenever it needs used. i.e., URL: 304b2e42315e

Resources

Take our 85+ lesson From Beginner to Advanced LLM Developer Certification: From choosing a project to deploying a working product this is the most comprehensive and practical LLM course out there!

Publication

Economics of Big Data and Privacy: Exploring Netflix and Facebook
Artificial Intelligence

Economics of Big Data and Privacy: Exploring Netflix and Facebook

Last Updated on August 27, 2020 by Editorial Team

Author(s): Aadit Kapoor

Privacy and Security, Technology

Photo by Carlos Muza on Unsplash

It is the 21st century, technology is on the rise, the internet has succeeded paper texts. We live in a world that is interconnected. In this fast-paced, growing world, data is being rapidly created every second. The use of algorithms and statistical measures allows us to graph each movement in a way that is acceptable for predictive modeling.

Big data refers to huge amounts of data accumulated over time through the use of internet services. Traditional econometrics methods fail when analyzing such huge amounts of data and we require a host of new algorithms that can crunch this data and provide insights. (Harding et al, 2018). Big data can be referred to all the human activity performed over the last decade and exponentially growing every second.

Being interconnected has its benefits and drawbacks, one of the major drawbacks being privacy. Big data does just encompass the analysis of data but it also consists of data collection. Data collection is on the ways where personal user data can become compromised. (Kshetri, 2014). Predictive modeling will not only help us improve our services but it would have a deep impact on industries like healthcare and food.

The accumulation of data cannot be stopped and we must be well aware of the benefits and drawbacks of the holy grail of technology, data. This paper aims to examine all the facts, case studies related to data, and how it affects our modern life.

Data or information can be referred to as the accumulation of past behavior. Information can also be categorized as a sort of data. Typically something that we took for granted a few years back has not boomed in this decade due to a large amount of human activity and computing technologies.

In the 21st century, we are surrounded by data that can be composed of two types: discrete and continuous. Discrete data consists of entries that can be used for classification whereas continuous data refers to the entries that can be used for regression.

Man and Data are inseparable as it is the flow of information. Data has been a very important part of human existence from time immemorial. Once civilizations were established they could not function without data. Indus Valley Civilization had seals (a type of coins) in which data was tabulated.

The Incas, another very old civilization, had the same methods for data collection. As civilization progressed, man-made data tabulation also developed. It graduated into coins that replaced the barter system. There were also numbers which have been used since biblical times.

The seafarers also had a system of data that helped in their trade. Historically data collection was an important aspect of life in ancient times and around the 1950s, due to the rise of computing systems, data could be presented in the format of bits and bytes. In the 21st century data has been regarded as the new oil.

Privacy is the state of freedom from intrusion and the ability of an individual to have the information only up to themselves. The person should have the freedom to share the information whenever they require it. In the 21st century, due to the boom in data and computing, companies have tried to exploit it using sophisticated algorithms and techniques known as data mining.

Due to limited enforcement by the government for these privacy laws companies have exploited the data to gain more and more users by invading their privacy. (Cate, 1997). One reason between the disconnection of data and privacy is that many users are not aware of when their data is being collected (Acquisti et al, 2016).

While we may consider data a valuable resource, we should be aware of how this data can be exploited by companies or politicians to attract a certain set of customers. Users can give out unintended personal information to these platforms in forms of text, images, preferences, and browsing time (Xu et al, 2014).

These data collections pose a threat to humanity and to rectify this, new techniques to perform data mining are being explored extensively where the main aim is to study, analyze, process data in such a way in which privacy is maintained (Xu et al, 2014).

In the 21st century, human-computer interface activity is at its peak. A lot of companies depend on the accumulation and processing of huge amounts of data(Oussous et al, 2018).

Huge amounts of data, also known as big data, are a resource to a company’s research and development as they help companies decide on where to put the money and invest. The world economy has been changed into something called a data economy that refers to an ecosystem where data is gathered, organized, and exchanged using big data algorithms.

These days data can be huge, cluttered and unstructured, an example is when different clients have different accounts on the same platform and to extract useful information the source algorithms have to first preprocess the data in such a way that manages bias, outliers, and imbalances (Tummala et al, 2018).

We are surrounded by data in such a way that services like YouTube experiences a new video every 24hours with a rough estimate of 13 billion to 50 billion data parameters in a span of 5 years (Fosso Wamba et al, 2015).

Harnessing human data to predict future movement is a common strategy for companies to game data, while Youtube is producing such huge amounts of data, people using the service are contributing back to the service by storing their likes and dislikes in a “big database” maintained by YouTube. Big Data and Business analytics are estimated to provide an annual revenue of about 150.8 billion dollars in the US (Tao et al, 2019).

While these firms earn by providing users with a better interface using their data, some firms exploit data to influence a portion of individuals. They use computer algorithms to predict and transform user data into something usable, using data crunching and data mining techniques, they extract user data to sell or influence.

Facebook, a social network company, was recently involved with Cambridge Analytica, a data-mining firm that gathered data of Facebook users using loopholes. Community profiles were built upon this data which was used to target customized ads.

Due to this Facebook was on a decline as this was considered a massive data breach and personal user data consisting of images, text, posts, and likes. This scandal played a key role in the US Elections 2016 and following this GDPR (General Data Protection Regulation) was established in the EU (Tao et al, 2019).

It is estimated that companies use past data to build something called as recommendation engines that can predict what sort of content a user wants to view. One such example is Netflix that asks users to rate movies on a scale of 1 to 5 to build a personalized profile for the user.

For the Netflix recommendation engine, linear algebra or to be more precise SVD (Singular Value Decomposition) was used to a system that can predict what the user might like (Hallinan et al, 2014).

To Conclude, Big data and privacy go hand in hand as they are interconnected and interdependent. For a breach of privacy, one must have access to huge amounts of data, and to build these computing engines, we need large scale distributed computing resources and techniques.

We see how data became so popular and with the disruption of the right technological tools and algorithms, companies were able to harness the predictive capabilities of the system.

We also see how privacy is a big part of the data economy and how data collection methods seem to differ in this fast-paced growing world. We cannot stop the flow of data but we can surely be aware of what is being collected. Companies like Cambridge Analytica used loopholes in the Facebook Platform to gather personal user data was surely a breach of privacy due to which Facebook was called upon in Congress and their market share dropped drastically. We provide a logical flow of how data, privacy arose, and how due to the huge amounts of human activity data seemed to be called “Big Data”.

For the future direction of this research, we plan to analyze how we can control the flow of data by using technological techniques and we plan to discuss the effect of racial bias in such huge amounts of data, more specifically how racial biases affect data mining algorithms (Obermeyer et al, 2019).

References

Harding, Matthew, and Jonathan Hersh. “Big Data in Economics.” IZA World of Labor, 2018, doi:10.15185/izawol.451.

Kshetri, Nir. “Big Data׳s Impact on Privacy, Security and Consumer Welfare.” Telecommunications Policy, vol. 38, no. 11, 2014, pp. 1134–1145., doi:10.1016/j.telpol.2014.10.002.

Data is the new oil. Header_image. [accessed 2020 Jun 22]. https://spotlessdata.com/blog/data-new-oil

Cate FH. Privacy in the information age. Washington, D.C.: Brookings Institution Press; 1997.

Acquisti A, Taylor C, Wagman L. The Economics of Privacy. Journal of Economic Literature. 2016;54(2):442–492.

Oussous A, Benjelloun F, Ait Lahcen A, Belfkih S. Big Data technologies: A survey. Journal of King Saud University — Computer and Information Sciences. 2018 [accessed 2020 Jun 22];30(4):431–448.

Tummala Y, Kalluri D. A review on Data Mining & Big Data Analytics. International Journal of Engineering & Technology. 2018 [accessed 2020 Jun 22];7(4.24):92.

Fosso Wamba S, Akter S, Edwards A, Chopin G, Gnanzou D. How ‘big data’ can make a big impact: Findings from a systematic review and a longitudinal case study. International Journal of Production Economics. 2015;165:234–246.

Xu L, Jiang C, Wang J, Yuan J, Ren Y. Information Security in Big Data: Privacy and Data Mining. IEEE Access. 2014 [accessed 2020 Jun 22];2:1149–1176.

Hallinan B, Striphas T. Recommended for you: The Netflix Prize and the production of algorithmic culture. 2014;18(1):117–137.

Tao H, Bhuiyan M, Rahman M, Wang G, Wang T, Ahmed M, Li J. Economic perspective analysis of protecting big data security and privacy. Future Generation Computer Systems. 2019 [accessed 2020 Jun 23];98:660–671.

Obermeyer Z, Powers B, Vogeli C, Mullainathan S. Dissecting racial bias in an algorithm used to manage the health of populations. Science. 2019 [accessed 2020 Jun 23];366(6464):447–453.


Economics of Big Data and Privacy: Exploring Netflix and Facebook was originally published in Towards AI — Multidisciplinary Science Journal on Medium, where people are continuing the conversation by highlighting and responding to this story.

Published via Towards AI

JOIN NOW!

Gain exclusive access to top AI tutorials, courses, and books to elevate your skills.

    We won't send you spam. Unsubscribe at any time.

    Feedback ↓

    Sign Up for the Course
    `; } else { console.error('Element with id="subscribe" not found within the page with class "home".'); } } }); // Remove duplicate text from articles /* Backup: 09/11/24 function removeDuplicateText() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, strong'); // Select the desired elements const seenTexts = new Set(); // A set to keep track of seen texts const tagCounters = {}; // Object to track instances of each tag elements.forEach(el => { const tagName = el.tagName.toLowerCase(); // Get the tag name (e.g., 'h1', 'h2', etc.) // Initialize a counter for each tag if not already done if (!tagCounters[tagName]) { tagCounters[tagName] = 0; } // Only process the first 10 elements of each tag type if (tagCounters[tagName] >= 2) { return; // Skip if the number of elements exceeds 10 } const text = el.textContent.trim(); // Get the text content const words = text.split(/\s+/); // Split the text into words if (words.length >= 4) { // Ensure at least 4 words const significantPart = words.slice(0, 5).join(' '); // Get first 5 words for matching // Check if the text (not the tag) has been seen before if (seenTexts.has(significantPart)) { // console.log('Duplicate found, removing:', el); // Log duplicate el.remove(); // Remove duplicate element } else { seenTexts.add(significantPart); // Add the text to the set } } tagCounters[tagName]++; // Increment the counter for this tag }); } removeDuplicateText(); */ // Remove duplicate text from articles function removeDuplicateText() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, strong'); // Select the desired elements const seenTexts = new Set(); // A set to keep track of seen texts const tagCounters = {}; // Object to track instances of each tag // List of classes to be excluded const excludedClasses = ['medium-author', 'post-widget-title']; elements.forEach(el => { // Skip elements with any of the excluded classes if (excludedClasses.some(cls => el.classList.contains(cls))) { return; // Skip this element if it has any of the excluded classes } const tagName = el.tagName.toLowerCase(); // Get the tag name (e.g., 'h1', 'h2', etc.) // Initialize a counter for each tag if not already done if (!tagCounters[tagName]) { tagCounters[tagName] = 0; } // Only process the first 10 elements of each tag type if (tagCounters[tagName] >= 10) { return; // Skip if the number of elements exceeds 10 } const text = el.textContent.trim(); // Get the text content const words = text.split(/\s+/); // Split the text into words if (words.length >= 4) { // Ensure at least 4 words const significantPart = words.slice(0, 5).join(' '); // Get first 5 words for matching // Check if the text (not the tag) has been seen before if (seenTexts.has(significantPart)) { // console.log('Duplicate found, removing:', el); // Log duplicate el.remove(); // Remove duplicate element } else { seenTexts.add(significantPart); // Add the text to the set } } tagCounters[tagName]++; // Increment the counter for this tag }); } removeDuplicateText(); //Remove unnecessary text in blog excerpts document.querySelectorAll('.blog p').forEach(function(paragraph) { // Replace the unwanted text pattern for each paragraph paragraph.innerHTML = paragraph.innerHTML .replace(/Author\(s\): [\w\s]+ Originally published on Towards AI\.?/g, '') // Removes 'Author(s): XYZ Originally published on Towards AI' .replace(/This member-only story is on us\. Upgrade to access all of Medium\./g, ''); // Removes 'This member-only story...' }); //Load ionic icons and cache them if ('localStorage' in window && window['localStorage'] !== null) { const cssLink = 'https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css'; const storedCss = localStorage.getItem('ionicons'); if (storedCss) { loadCSS(storedCss); } else { fetch(cssLink).then(response => response.text()).then(css => { localStorage.setItem('ionicons', css); loadCSS(css); }); } } function loadCSS(css) { const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); } //Remove elements from imported content automatically function removeStrongFromHeadings() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, h6, span'); elements.forEach(el => { const strongTags = el.querySelectorAll('strong'); strongTags.forEach(strongTag => { while (strongTag.firstChild) { strongTag.parentNode.insertBefore(strongTag.firstChild, strongTag); } strongTag.remove(); }); }); } removeStrongFromHeadings(); "use strict"; window.onload = () => { /* //This is an object for each category of subjects and in that there are kewords and link to the keywods let keywordsAndLinks = { //you can add more categories and define their keywords and add a link ds: { keywords: [ //you can add more keywords here they are detected and replaced with achor tag automatically 'data science', 'Data science', 'Data Science', 'data Science', 'DATA SCIENCE', ], //we will replace the linktext with the keyword later on in the code //you can easily change links for each category here //(include class="ml-link" and linktext) link: 'linktext', }, ml: { keywords: [ //Add more keywords 'machine learning', 'Machine learning', 'Machine Learning', 'machine Learning', 'MACHINE LEARNING', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, ai: { keywords: [ 'artificial intelligence', 'Artificial intelligence', 'Artificial Intelligence', 'artificial Intelligence', 'ARTIFICIAL INTELLIGENCE', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, nl: { keywords: [ 'NLP', 'nlp', 'natural language processing', 'Natural Language Processing', 'NATURAL LANGUAGE PROCESSING', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, des: { keywords: [ 'data engineering services', 'Data Engineering Services', 'DATA ENGINEERING SERVICES', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, td: { keywords: [ 'training data', 'Training Data', 'training Data', 'TRAINING DATA', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, ias: { keywords: [ 'image annotation services', 'Image annotation services', 'image Annotation services', 'image annotation Services', 'Image Annotation Services', 'IMAGE ANNOTATION SERVICES', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, l: { keywords: [ 'labeling', 'labelling', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, pbp: { keywords: [ 'previous blog posts', 'previous blog post', 'latest', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, mlc: { keywords: [ 'machine learning course', 'machine learning class', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, }; //Articles to skip let articleIdsToSkip = ['post-2651', 'post-3414', 'post-3540']; //keyword with its related achortag is recieved here along with article id function searchAndReplace(keyword, anchorTag, articleId) { //selects the h3 h4 and p tags that are inside of the article let content = document.querySelector(`#${articleId} .entry-content`); //replaces the "linktext" in achor tag with the keyword that will be searched and replaced let newLink = anchorTag.replace('linktext', keyword); //regular expression to search keyword var re = new RegExp('(' + keyword + ')', 'g'); //this replaces the keywords in h3 h4 and p tags content with achor tag content.innerHTML = content.innerHTML.replace(re, newLink); } function articleFilter(keyword, anchorTag) { //gets all the articles var articles = document.querySelectorAll('article'); //if its zero or less then there are no articles if (articles.length > 0) { for (let x = 0; x < articles.length; x++) { //articles to skip is an array in which there are ids of articles which should not get effected //if the current article's id is also in that array then do not call search and replace with its data if (!articleIdsToSkip.includes(articles[x].id)) { //search and replace is called on articles which should get effected searchAndReplace(keyword, anchorTag, articles[x].id, key); } else { console.log( `Cannot replace the keywords in article with id ${articles[x].id}` ); } } } else { console.log('No articles found.'); } } let key; //not part of script, added for (key in keywordsAndLinks) { //key is the object in keywords and links object i.e ds, ml, ai for (let i = 0; i < keywordsAndLinks[key].keywords.length; i++) { //keywordsAndLinks[key].keywords is the array of keywords for key (ds, ml, ai) //keywordsAndLinks[key].keywords[i] is the keyword and keywordsAndLinks[key].link is the link //keyword and link is sent to searchreplace where it is then replaced using regular expression and replace function articleFilter( keywordsAndLinks[key].keywords[i], keywordsAndLinks[key].link ); } } function cleanLinks() { // (making smal functions is for DRY) this function gets the links and only keeps the first 2 and from the rest removes the anchor tag and replaces it with its text function removeLinks(links) { if (links.length > 1) { for (let i = 2; i < links.length; i++) { links[i].outerHTML = links[i].textContent; } } } //arrays which will contain all the achor tags found with the class (ds-link, ml-link, ailink) in each article inserted using search and replace let dslinks; let mllinks; let ailinks; let nllinks; let deslinks; let tdlinks; let iaslinks; let llinks; let pbplinks; let mlclinks; const content = document.querySelectorAll('article'); //all articles content.forEach((c) => { //to skip the articles with specific ids if (!articleIdsToSkip.includes(c.id)) { //getting all the anchor tags in each article one by one dslinks = document.querySelectorAll(`#${c.id} .entry-content a.ds-link`); mllinks = document.querySelectorAll(`#${c.id} .entry-content a.ml-link`); ailinks = document.querySelectorAll(`#${c.id} .entry-content a.ai-link`); nllinks = document.querySelectorAll(`#${c.id} .entry-content a.ntrl-link`); deslinks = document.querySelectorAll(`#${c.id} .entry-content a.des-link`); tdlinks = document.querySelectorAll(`#${c.id} .entry-content a.td-link`); iaslinks = document.querySelectorAll(`#${c.id} .entry-content a.ias-link`); mlclinks = document.querySelectorAll(`#${c.id} .entry-content a.mlc-link`); llinks = document.querySelectorAll(`#${c.id} .entry-content a.l-link`); pbplinks = document.querySelectorAll(`#${c.id} .entry-content a.pbp-link`); //sending the anchor tags list of each article one by one to remove extra anchor tags removeLinks(dslinks); removeLinks(mllinks); removeLinks(ailinks); removeLinks(nllinks); removeLinks(deslinks); removeLinks(tdlinks); removeLinks(iaslinks); removeLinks(mlclinks); removeLinks(llinks); removeLinks(pbplinks); } }); } //To remove extra achor tags of each category (ds, ml, ai) and only have 2 of each category per article cleanLinks(); */ //Recommended Articles var ctaLinks = [ /* ' ' + '

    Subscribe to our AI newsletter!

    ' + */ '

    Take our 85+ lesson From Beginner to Advanced LLM Developer Certification: From choosing a project to deploying a working product this is the most comprehensive and practical LLM course out there!

    '+ '

    Towards AI has published Building LLMs for Production—our 470+ page guide to mastering LLMs with practical projects and expert insights!

    ' + '
    ' + '' + '' + '

    Note: Content contains the views of the contributing authors and not Towards AI.
    Disclosure: This website may contain sponsored content and affiliate links.

    ' + 'Discover Your Dream AI Career at Towards AI Jobs' + '

    Towards AI has built a jobs board tailored specifically to Machine Learning and Data Science Jobs and Skills. Our software searches for live AI jobs each hour, labels and categorises them and makes them easily searchable. Explore over 10,000 live jobs today with Towards AI Jobs!

    ' + '
    ' + '

    🔥 Recommended Articles 🔥

    ' + 'Why Become an LLM Developer? Launching Towards AI’s New One-Stop Conversion Course'+ 'Testing Launchpad.sh: A Container-based GPU Cloud for Inference and Fine-tuning'+ 'The Top 13 AI-Powered CRM Platforms
    ' + 'Top 11 AI Call Center Software for 2024
    ' + 'Learn Prompting 101—Prompt Engineering Course
    ' + 'Explore Leading Cloud Providers for GPU-Powered LLM Training
    ' + 'Best AI Communities for Artificial Intelligence Enthusiasts
    ' + 'Best Workstations for Deep Learning
    ' + 'Best Laptops for Deep Learning
    ' + 'Best Machine Learning Books
    ' + 'Machine Learning Algorithms
    ' + 'Neural Networks Tutorial
    ' + 'Best Public Datasets for Machine Learning
    ' + 'Neural Network Types
    ' + 'NLP Tutorial
    ' + 'Best Data Science Books
    ' + 'Monte Carlo Simulation Tutorial
    ' + 'Recommender System Tutorial
    ' + 'Linear Algebra for Deep Learning Tutorial
    ' + 'Google Colab Introduction
    ' + 'Decision Trees in Machine Learning
    ' + 'Principal Component Analysis (PCA) Tutorial
    ' + 'Linear Regression from Zero to Hero
    '+ '

    ', /* + '

    Join thousands of data leaders on the AI newsletter. It’s free, we don’t spam, and we never share your email address. Keep up to date with the latest work in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming a sponsor.

    ',*/ ]; var replaceText = { '': '', '': '', '
    ': '
    ' + ctaLinks + '
    ', }; Object.keys(replaceText).forEach((txtorig) => { //txtorig is the key in replacetext object const txtnew = replaceText[txtorig]; //txtnew is the value of the key in replacetext object let entryFooter = document.querySelector('article .entry-footer'); if (document.querySelectorAll('.single-post').length > 0) { //console.log('Article found.'); const text = entryFooter.innerHTML; entryFooter.innerHTML = text.replace(txtorig, txtnew); } else { // console.log('Article not found.'); //removing comment 09/04/24 } }); var css = document.createElement('style'); css.type = 'text/css'; css.innerHTML = '.post-tags { display:none !important } .article-cta a { font-size: 18px; }'; document.body.appendChild(css); //Extra //This function adds some accessibility needs to the site. function addAlly() { // In this function JQuery is replaced with vanilla javascript functions const imgCont = document.querySelector('.uw-imgcont'); imgCont.setAttribute('aria-label', 'AI news, latest developments'); imgCont.title = 'AI news, latest developments'; imgCont.rel = 'noopener'; document.querySelector('.page-mobile-menu-logo a').title = 'Towards AI Home'; document.querySelector('a.social-link').rel = 'noopener'; document.querySelector('a.uw-text').rel = 'noopener'; document.querySelector('a.uw-w-branding').rel = 'noopener'; document.querySelector('.blog h2.heading').innerHTML = 'Publication'; const popupSearch = document.querySelector$('a.btn-open-popup-search'); popupSearch.setAttribute('role', 'button'); popupSearch.title = 'Search'; const searchClose = document.querySelector('a.popup-search-close'); searchClose.setAttribute('role', 'button'); searchClose.title = 'Close search page'; // document // .querySelector('a.btn-open-popup-search') // .setAttribute( // 'href', // 'https://medium.com/towards-artificial-intelligence/search' // ); } // Add external attributes to 302 sticky and editorial links function extLink() { // Sticky 302 links, this fuction opens the link we send to Medium on a new tab and adds a "noopener" rel to them var stickyLinks = document.querySelectorAll('.grid-item.sticky a'); for (var i = 0; i < stickyLinks.length; i++) { /* stickyLinks[i].setAttribute('target', '_blank'); stickyLinks[i].setAttribute('rel', 'noopener'); */ } // Editorial 302 links, same here var editLinks = document.querySelectorAll( '.grid-item.category-editorial a' ); for (var i = 0; i < editLinks.length; i++) { editLinks[i].setAttribute('target', '_blank'); editLinks[i].setAttribute('rel', 'noopener'); } } // Add current year to copyright notices document.getElementById( 'js-current-year' ).textContent = new Date().getFullYear(); // Call functions after page load extLink(); //addAlly(); setTimeout(function() { //addAlly(); //ideally we should only need to run it once ↑ }, 5000); }; function closeCookieDialog (){ document.getElementById("cookie-consent").style.display = "none"; return false; } setTimeout ( function () { closeCookieDialog(); }, 15000); console.log(`%c 🚀🚀🚀 ███ █████ ███████ █████████ ███████████ █████████████ ███████████████ ███████ ███████ ███████ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ Towards AI is looking for contributors! │ │ Join us in creating awesome AI content. │ │ Let's build the future of AI together → │ │ https://towardsai.net/contribute │ │ │ └───────────────────────────────────────────────────────────────────┘ `, `background: ; color: #00adff; font-size: large`); //Remove latest category across site document.querySelectorAll('a[rel="category tag"]').forEach(function(el) { if (el.textContent.trim() === 'Latest') { // Remove the two consecutive spaces (  ) if (el.nextSibling && el.nextSibling.nodeValue.includes('\u00A0\u00A0')) { el.nextSibling.nodeValue = ''; // Remove the spaces } el.style.display = 'none'; // Hide the element } }); // Add cross-domain measurement, anonymize IPs 'use strict'; //var ga = gtag; ga('config', 'G-9D3HKKFV1Q', 'auto', { /*'allowLinker': true,*/ 'anonymize_ip': true/*, 'linker': { 'domains': [ 'medium.com/towards-artificial-intelligence', 'datasets.towardsai.net', 'rss.towardsai.net', 'feed.towardsai.net', 'contribute.towardsai.net', 'members.towardsai.net', 'pub.towardsai.net', 'news.towardsai.net' ] } */ }); ga('send', 'pageview'); -->