<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Intoli Blog on </title>
    <link>//intoli.com/blog/</link>
    <description>Recent content in Intoli Blog on </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Nov 2018 08:30:05 -0500</lastBuildDate>
    <atom:link href="/blog/" rel="self" type="application/rss+xml" />
    
    <item>
      <title>The Red Tide and the Blue Wave: Gerrymandering as a Risk vs. Reward Strategy</title>
      <link>//intoli.com/blog/gerrymandering/</link>
      <pubDate>Tue, 06 Nov 2018 08:30:05 -0500</pubDate>
      
      <guid>//intoli.com/blog/gerrymandering/</guid>
      <description>An interactive explanation of how gerrymandering is a risky strategy that allows for the possibility of a blue wave.</description>
    </item>
    
    <item>
      <title>Performing Efficient Broad Crawls with the AOPIC Algorithm</title>
      <link>//intoli.com/blog/aopic-algorithm/</link>
      <pubDate>Sun, 16 Sep 2018 11:18:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/aopic-algorithm/</guid>
      <description>Learn how to estimate page importance and allocate bandwidth during a broad crawl.</description>
    </item>
    
    <item>
      <title>Breaking Out of the Chrome/WebExtension Sandbox</title>
      <link>//intoli.com/blog/sandbox-breakout/</link>
      <pubDate>Fri, 14 Sep 2018 07:59:33 -0400</pubDate>
      
      <guid>//intoli.com/blog/sandbox-breakout/</guid>
      <description>A short guide to breaking out of the WebExtension content script sandbox.</description>
    </item>
    
    <item>
      <title>User-Agents — Generating random user agents using Google Analytics and CircleCI</title>
      <link>//intoli.com/blog/user-agents/</link>
      <pubDate>Thu, 30 Aug 2018 08:30:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/user-agents/</guid>
      <description>A free dataset and JavaScript library for generating random user agents that are always current.</description>
    </item>
    
    <item>
      <title>How F5Bot Slurps All of Reddit</title>
      <link>//intoli.com/blog/f5bot/</link>
      <pubDate>Mon, 30 Jul 2018 08:08:30 -0400</pubDate>
      
      <guid>//intoli.com/blog/f5bot/</guid>
      <description>The creator of F5Bot explains in detail how it works, and how it&amp;rsquo;s able to scrape million of Reddit comments per day.</description>
    </item>
    
    <item>
      <title>No API Is the Best API — The elegant power of Power Assert</title>
      <link>//intoli.com/blog/power-assert/</link>
      <pubDate>Tue, 24 Jul 2018 08:08:30 -0400</pubDate>
      
      <guid>//intoli.com/blog/power-assert/</guid>
      <description>A look at what makes power-assert our favorite JavaScript assertion library, and an interview with the project&amp;rsquo;s author.</description>
    </item>
    
    <item>
      <title>Recreating Python&#39;s Slice Syntax in JavaScript Using ES6 Proxies</title>
      <link>//intoli.com/blog/python-slicing-in-javascript/</link>
      <pubDate>Thu, 28 Jun 2018 00:08:30 -0400</pubDate>
      
      <guid>//intoli.com/blog/python-slicing-in-javascript/</guid>
      <description>A gentle introduction to JavaScript proxies where we use them to recreate Python&amp;rsquo;s extended slice syntax.</description>
    </item>
    
    <item>
      <title>A Slack Community for Developers to Discuss Web Scraping</title>
      <link>//intoli.com/blog/slack-for-web-scrapers/</link>
      <pubDate>Thu, 21 Jun 2018 10:30:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/slack-for-web-scrapers/</guid>
      <description>Intoli is launching a new Slack community called Web Scrapers where developers can chat about web scraping.</description>
    </item>
    
    <item>
      <title>Building a YouTube MP3 Downloader with Exodus, FFmpeg, and AWS Lambda</title>
      <link>//intoli.com/blog/youtube-mp3-downloader/</link>
      <pubDate>Mon, 21 May 2018 08:30:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/youtube-mp3-downloader/</guid>
      <description>A short guide to building a practical YouTube MP3 downloader bookmarklet using Amazon Lambda.</description>
    </item>
    
    <item>
      <title>Running FFmpeg on AWS Lambda for 1.9% the cost of AWS Elastic Transcoder</title>
      <link>//intoli.com/blog/transcoding-on-aws-lambda/</link>
      <pubDate>Wed, 02 May 2018 08:30:30 -0400</pubDate>
      
      <guid>//intoli.com/blog/transcoding-on-aws-lambda/</guid>
      <description>A guide to building a transcoder using Exodus, FFmpeg, and AWS Lambda.</description>
    </item>
    
    <item>
      <title>Using Ant Design in Sass-Styled Projects</title>
      <link>//intoli.com/blog/antd-scss-theme-plugin/</link>
      <pubDate>Tue, 24 Apr 2018 08:30:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/antd-scss-theme-plugin/</guid>
      <description>Introducing antd-scss-theme-plugin, an easy way to use Ant Design with SCSS.</description>
    </item>
    
    <item>
      <title>What&#39;s New in Exodus 2.0</title>
      <link>//intoli.com/blog/exodus-2/</link>
      <pubDate>Thu, 08 Mar 2018 08:30:00 -0500</pubDate>
      
      <guid>//intoli.com/blog/exodus-2/</guid>
      <description>A tour of the new features introduced in Exodus version 2.0.</description>
    </item>
    
    <item>
      <title>Extending CircleCI&#39;s API with a Custom Microservice on AWS Lambda</title>
      <link>//intoli.com/blog/circleci-artifacts/</link>
      <pubDate>Tue, 20 Feb 2018 08:30:29 -0500</pubDate>
      
      <guid>//intoli.com/blog/circleci-artifacts/</guid>
      <description>A guide to setting up a practical proxy API on Amazon&amp;rsquo;s Lambda using Node.js and Express.</description>
    </item>
    
    <item>
      <title>It is *not* possible to detect and block Chrome headless</title>
      <link>//intoli.com/blog/not-possible-to-block-chrome-headless/</link>
      <pubDate>Thu, 18 Jan 2018 12:30:34 -0500</pubDate>
      
      <guid>//intoli.com/blog/not-possible-to-block-chrome-headless/</guid>
      <description>An updated example of techniques to avoid detection.</description>
    </item>
    
    <item>
      <title>JavaScript Injection with Selenium, Puppeteer, and Marionette in Chrome and Firefox</title>
      <link>//intoli.com/blog/javascript-injection/</link>
      <pubDate>Fri, 29 Dec 2017 08:30:00 -0500</pubDate>
      
      <guid>//intoli.com/blog/javascript-injection/</guid>
      <description>An exploration of different browser automation methods to inject JavaScript into webpages.</description>
    </item>
    
    <item>
      <title>Saving Images from a Headless Browser</title>
      <link>//intoli.com/blog/saving-images/</link>
      <pubDate>Wed, 13 Dec 2017 08:30:00 -0500</pubDate>
      
      <guid>//intoli.com/blog/saving-images/</guid>
      <description>Learn how to save any image from a headless browser in this Puppeteer tutorial.</description>
    </item>
    
    <item>
      <title>Building Data Science Pipelines with Luigi and Jupyter Notebooks</title>
      <link>//intoli.com/blog/luigi-jupyter-notebooks/</link>
      <pubDate>Tue, 28 Nov 2017 08:34:55 -0500</pubDate>
      
      <guid>//intoli.com/blog/luigi-jupyter-notebooks/</guid>
      <description>Learn about the Luigi task runner and how to use Jupyter notebooks in your workflows.</description>
    </item>
    
    <item>
      <title>Dangerous Pickles — Malicious Python Serialization</title>
      <link>//intoli.com/blog/dangerous-pickles/</link>
      <pubDate>Tue, 17 Oct 2017 08:30:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/dangerous-pickles/</guid>
      <description>A light introduction to the Python pickle protocol, the Pickle Machine, and constructing malicious pickles.</description>
    </item>
    
    <item>
      <title>A Brief Tour of Grouping and Aggregating in Pandas</title>
      <link>//intoli.com/blog/pandas-aggregation/</link>
      <pubDate>Fri, 13 Oct 2017 09:01:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/pandas-aggregation/</guid>
      <description>Learn how to use pandas to easily slice up a dataset and quickly extract useful statistics.</description>
    </item>
    
    <item>
      <title>Designing The Wayback Machine Loading Animation</title>
      <link>//intoli.com/blog/designing-the-wayback-machine-loading-animation/</link>
      <pubDate>Wed, 11 Oct 2017 08:29:37 -0400</pubDate>
      
      <guid>//intoli.com/blog/designing-the-wayback-machine-loading-animation/</guid>
      <description>A walkthrough of how we helped The Internet Archive design a new loading animation for the Wayback Machine.</description>
    </item>
    
    <item>
      <title>Analyzing One Million robots.txt Files</title>
      <link>//intoli.com/blog/analyzing-one-million-robots-txt-files/</link>
      <pubDate>Tue, 19 Sep 2017 08:00:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/analyzing-one-million-robots-txt-files/</guid>
      <description>Insights gathered from analyzing the robots.txt files of Alexa&amp;rsquo;s top one million domains.</description>
    </item>
    
    <item>
      <title>Check If A Website or URL Has Been Submitted to StumbleUpon</title>
      <link>//intoli.com/blog/stumbleupon-url-checker/</link>
      <pubDate>Thu, 14 Sep 2017 09:30:38 -0400</pubDate>
      
      <guid>//intoli.com/blog/stumbleupon-url-checker/</guid>
      <description>A simple tool to check the status of a URL in StumbleUpon&amp;rsquo;s index, along with a description of how it works.</description>
    </item>
    
    <item>
      <title>Fantasy Football for Hackers</title>
      <link>//intoli.com/blog/fantasy-football-for-hackers/</link>
      <pubDate>Thu, 07 Sep 2017 08:19:53 -0400</pubDate>
      
      <guid>//intoli.com/blog/fantasy-football-for-hackers/</guid>
      <description>Building a draft strategy from the ground up.</description>
    </item>
    
    <item>
      <title>Installing Google Chrome On CentOS, Amazon Linux, or RHEL</title>
      <link>//intoli.com/blog/installing-google-chrome-on-centos/</link>
      <pubDate>Wed, 06 Sep 2017 07:30:55 -0400</pubDate>
      
      <guid>//intoli.com/blog/installing-google-chrome-on-centos/</guid>
      <description>A guide to getting Google Chrome running on RHEL variants.</description>
    </item>
    
    <item>
      <title>How Are Principal Component Analysis and Singular Value Decomposition Related?</title>
      <link>//intoli.com/blog/pca-and-svd/</link>
      <pubDate>Wed, 23 Aug 2017 07:40:59 -0400</pubDate>
      
      <guid>//intoli.com/blog/pca-and-svd/</guid>
      <description>Exploring the relationship between singular value decomposition and principal component analysis.</description>
    </item>
    
    <item>
      <title>Scraping User-Submitted Reviews from the Steam Store</title>
      <link>//intoli.com/blog/steam-scraper/</link>
      <pubDate>Wed, 16 Aug 2017 08:30:07 -0700</pubDate>
      
      <guid>//intoli.com/blog/steam-scraper/</guid>
      <description>An introduction to Scrapy though a realistic project.</description>
    </item>
    
    <item>
      <title>Making Chrome Headless Undetectable</title>
      <link>//intoli.com/blog/making-chrome-headless-undetectable/</link>
      <pubDate>Wed, 09 Aug 2017 08:00:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/making-chrome-headless-undetectable/</guid>
      <description>Using MitmProxy and injected JavaScript feature mocks to bypass Headless Chrome detection tests.</description>
    </item>
    
    <item>
      <title>Markov&#39;s and Chebyshev&#39;s Inequalities Explained</title>
      <link>//intoli.com/blog/chebyshevs-inequality/</link>
      <pubDate>Fri, 04 Aug 2017 07:00:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/chebyshevs-inequality/</guid>
      <description>A look at why Chebyshev&amp;rsquo;s Inequality holds true and some potential applications.</description>
    </item>
    
    <item>
      <title>Patching a Linux Kernel Module</title>
      <link>//intoli.com/blog/patching-a-linux-kernel-module/</link>
      <pubDate>Thu, 27 Jul 2017 07:14:14 -0400</pubDate>
      
      <guid>//intoli.com/blog/patching-a-linux-kernel-module/</guid>
      <description>A case-study in debugging and patching kernel-level issues on Linux.</description>
    </item>
    
    <item>
      <title>Understanding Neural Network Weight Initialization</title>
      <link>//intoli.com/blog/neural-network-initialization/</link>
      <pubDate>Tue, 25 Jul 2017 08:30:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/neural-network-initialization/</guid>
      <description>Exploring the effects of neural network weight initialization strategies.</description>
    </item>
    
    <item>
      <title>Intoli Joins the NVIDIA Inception Program</title>
      <link>//intoli.com/blog/nvidia-inception-program/</link>
      <pubDate>Fri, 21 Jul 2017 08:33:45 -0400</pubDate>
      
      <guid>//intoli.com/blog/nvidia-inception-program/</guid>
      <description>Intoli has officially joined the Nvidia Inception Program for promising artificial intelligence startups.</description>
    </item>
    
    <item>
      <title>Running Selenium with Headless Firefox</title>
      <link>//intoli.com/blog/running-selenium-with-headless-firefox/</link>
      <pubDate>Thu, 22 Jun 2017 12:32:16 -0400</pubDate>
      
      <guid>//intoli.com/blog/running-selenium-with-headless-firefox/</guid>
      <description>A look at connecting Selenium WebDriver to Firefox&amp;rsquo;s headless mode.</description>
    </item>
    
    <item>
      <title>Finding Pareto Optimal Blogs on Hacker News</title>
      <link>//intoli.com/blog/pareto-optimal-blogs/</link>
      <pubDate>Tue, 13 Jun 2017 08:09:33 -0400</pubDate>
      
      <guid>//intoli.com/blog/pareto-optimal-blogs/</guid>
      <description>An analytical approach to finding the best blogs out there.</description>
    </item>
    
    <item>
      <title>Why I still don&#39;t use Yarn</title>
      <link>//intoli.com/blog/node-package-manager-benchmarks/</link>
      <pubDate>Mon, 12 Jun 2017 08:30:51 -0400</pubDate>
      
      <guid>//intoli.com/blog/node-package-manager-benchmarks/</guid>
      <description>A benchmark comparison of the npm, yarn, and pnpm package managers for node.</description>
    </item>
    
    <item>
      <title>The tech videos that have most impacted me as a developer</title>
      <link>//intoli.com/blog/tech-videos/</link>
      <pubDate>Sat, 27 May 2017 08:42:07 -0400</pubDate>
      
      <guid>//intoli.com/blog/tech-videos/</guid>
      <description>A collection of highly influential tech videos.</description>
    </item>
    
    <item>
      <title>Predicting Hacker News article success with neural networks and TensorFlow</title>
      <link>//intoli.com/blog/hacker-news-title-tool/</link>
      <pubDate>Tue, 23 May 2017 08:30:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/hacker-news-title-tool/</guid>
      <description>A web-based tool to predict the success of articles on Hacker News using a neural network.</description>
    </item>
    
    <item>
      <title>Email Spy: A new open source browser extension for lead generation</title>
      <link>//intoli.com/blog/email-spy/</link>
      <pubDate>Wed, 17 May 2017 05:30:51 -0700</pubDate>
      
      <guid>//intoli.com/blog/email-spy/</guid>
      <description>A new open source web extension for finding email contacts.</description>
    </item>
    
    <item>
      <title>Running Selenium with Headless Chrome</title>
      <link>//intoli.com/blog/running-selenium-with-headless-chrome/</link>
      <pubDate>Fri, 14 Apr 2017 05:30:07 -0700</pubDate>
      
      <guid>//intoli.com/blog/running-selenium-with-headless-chrome/</guid>
      <description>A guide to setting up Selenium to work with the new headless functionality of Google Chrome.</description>
    </item>
    
    <item>
      <title>How to Create a Public Slack Community with Open Invites</title>
      <link>//intoli.com/blog/make-a-public-slack-community/</link>
      <pubDate>Fri, 31 Aug 2018 08:30:42 -0400</pubDate>
      
      <guid>//intoli.com/blog/make-a-public-slack-community/</guid>
      <description>A step-by-step guide to creating a Slack community with an open invitation form.</description>
    </item>
    
    <item>
      <title>Why Python&#39;s for-else Clause Makes Perfect Sense, but You Still Shouldn&#39;t Use It</title>
      <link>//intoli.com/blog/for-else-in-python/</link>
      <pubDate>Tue, 28 Aug 2018 09:00:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/for-else-in-python/</guid>
      <description>Learn about Python&amp;rsquo;s useful and controversial for-else and while-else clauses, as well as why and how to avoid them.</description>
    </item>
    
    <item>
      <title>Scraping and Parsing Sitemaps in Bash</title>
      <link>//intoli.com/blog/sitemaps-in-bash/</link>
      <pubDate>Wed, 01 Aug 2018 08:30:00 -0400</pubDate>
      
      <guid>//intoli.com/blog/sitemaps-in-bash/</guid>
      <description>A guide to using bash and common command-line utilities for quickly parsing sitemaps without specialized tools.</description>
    </item>
    
    <item>
      <title>A New Dark Pattern: Tricking Browsers into Making Repeated Notification Requests</title>
      <link>//intoli.com/blog/spamming-notification-requests/</link>
      <pubDate>Thu, 31 May 2018 08:30:56 -0400</pubDate>
      
      <guid>//intoli.com/blog/spamming-notification-requests/</guid>
      <description>A look at a new dark pattern that has emerged on the web: spamming redirects followed by notification requests.</description>
    </item>
    
    <item>
      <title>Using Puppeteer to Scrape Websites with Infinite Scrolling</title>
      <link>//intoli.com/blog/scrape-infinite-scroll/</link>
      <pubDate>Thu, 11 Jan 2018 08:30:00 -0500</pubDate>
      
      <guid>//intoli.com/blog/scrape-infinite-scroll/</guid>
      <description>Learn how to scrape an infinitely scrolling data feed with a headless browser.</description>
    </item>
    
    <item>
      <title>Implementing a Custom Waiting Action in Nightmare JS</title>
      <link>//intoli.com/blog/nightmare-network-idle/</link>
      <pubDate>Fri, 22 Dec 2017 08:30:00 -0500</pubDate>
      
      <guid>//intoli.com/blog/nightmare-network-idle/</guid>
      <description>Learn how to have your Nightmare JS tests wait until the network is silent.</description>
    </item>
    
    <item>
      <title>Using Firefox WebExtensions with Selenium</title>
      <link>//intoli.com/blog/firefox-extensions-with-selenium/</link>
      <pubDate>Tue, 21 Nov 2017 09:11:45 -0500</pubDate>
      
      <guid>//intoli.com/blog/firefox-extensions-with-selenium/</guid>
      <description>A guide to launching Firefox with extensions preloaded using Selenium.</description>
    </item>
    
    <item>
      <title>Using Google Chrome Extensions with Selenium</title>
      <link>//intoli.com/blog/chrome-extensions-with-selenium/</link>
      <pubDate>Mon, 20 Nov 2017 18:27:16 -0500</pubDate>
      
      <guid>//intoli.com/blog/chrome-extensions-with-selenium/</guid>
      <description>A simple guide to launching Google Chrome with extensions preloaded using Selenium.</description>
    </item>
    
    <item>
      <title>Terminal Recorders: A Comprehensive Guide</title>
      <link>//intoli.com/blog/terminal-recorders/</link>
      <pubDate>Tue, 14 Nov 2017 08:30:22 -0500</pubDate>
      
      <guid>//intoli.com/blog/terminal-recorders/</guid>
      <description>An in-depth comparision of different methods to record animations of terminal sessions.</description>
    </item>
    
    <item>
      <title>Fantasy Football for Hackers II — An Interactive Visualization of Average Draft Position vs Season Projections</title>
      <link>//intoli.com/blog/average-draft-position-vs-season-projections/</link>
      <pubDate>Fri, 22 Sep 2017 10:01:28 -0400</pubDate>
      
      <guid>//intoli.com/blog/average-draft-position-vs-season-projections/</guid>
      <description>Building a draft strategy from the ground up.</description>
    </item>
    
    <item>
      <title>Running Selenium with Headless Chrome in Ruby</title>
      <link>//intoli.com/blog/running-selenium-with-headless-chrome-in-ruby/</link>
      <pubDate>Wed, 06 Sep 2017 04:41:35 -0400</pubDate>
      
      <guid>//intoli.com/blog/running-selenium-with-headless-chrome-in-ruby/</guid>
      <description>A guide to setting up Selenium with Ruby to work with Google Chrome in headless mode.</description>
    </item>
    
    <item>
      <title>Closing the Tech Industry’s Gender Gap</title>
      <link>//intoli.com/blog/tech-gender-gap/</link>
      <pubDate>Wed, 28 Mar 2018 11:50:00 -0500</pubDate>
      
      <guid>//intoli.com/blog/tech-gender-gap/</guid>
      <description>Learn about the gender gap issue in tech and ways to close it.</description>
    </item>
    
  </channel>
</rss>
