This video was censored on YouTube.

I am re-sharing it here so that I never forget that time the U.S. flirted with dystopia. John Ioannidis is a professor at Stanford who has made a career out of assessing evidence in medical research. Before the pandemic, he was glowingly covered by The Atlantic and The Economist, his research was written about extensively in The New York Times, and he was an invited speaker for the Talks at Google series. …


At approximately 9:00 PM on Tuesday May 14th, 2019, my 28-year-old marathon-running, scuba diving, Ph.D.-earning wife collapsed in our bedroom after getting up to go to the bathroom. It’s pretty rare for a young, healthy person to experience a stroke. It’s even rarer for that person to be a scientist. With that being the case, Katherine and I decided to turn this extremely unlucky event into an educational opportunity. The human brain is a remarkable biological machine, and a stroke and the recovery process really highlight that fact. …


I saw a post (since deleted) the other day on /r/MLQuestions asking about PCA, and it made me re-realize that, despite being commonly used by data scientists and scientists, PCA is often not well understood. Most explanations I come across either don’t include any linear algebra, which makes PCA seem like magic, or go all in on the math and lose the intuition (admittedly, I find the Wikipedia article on PCA pretty thorough, although the math is maybe a little advanced). In this blog post, I’m going to try to provide yet another explanation of PCA using data visualization (which…


GitHub Repository

I recently decided to revisit Football-o-Genetics, an application I developed in 2013 that attempts to “evolve” near-optimal offensive play calling strategies. The application uses play-by-play data and ideas from both artificial intelligence (specifically, genetic algorithms) and advanced statistics (in the form of a Markov model of an offensive drive) to achieve its goal. I developed Football-o-Genetics shortly after dropping out of a Ph.D. program in evolutionary biology, so it’s probably not all that surprising that I chose genetic algorithms (which I first encountered in Russell and Norvig’s classic artificial intelligence textbook) as my optimization algorithm of choice.

Almost four years…


I’ve applied to graduate school three times in my life­ — each time under rather different circumstances and with different goals.

  1. The first time, I was applying to Ph.D. programs in Evolutionary Biology after earning my B.S. in Zoology. I wanted to be a professor. Pretty normal.
  2. The second time, I was applying to M.S. programs in Computer Science after dropping out of the above Ph.D. program. I wanted to be a software engineer. Fairly abnormal.
  3. The third (and hopefully final :D) time, I was applying to Ph.D. programs in Computer Science as a 30-year-old, having worked for a few…


The other day, I decided to do a clean install of Fedora 27 on my Asus U24E laptop. I dual boot my laptop with Windows 10, so I figured I would just delete the partition containing my old Fedora install (while in Windows) and then boot up a live USB to install the new version of Fedora. Unfortunately, upon rebooting, I wasn’t able to access the BIOS (which can usually be accessed by pressing F2 at the ASUS logo) and was instead greeted with the GRUB rescue prompt. This was a new experience for me, so I wasn’t sure what…


This blog post will briefly outline how to install PyLucene on Fedora and give some examples of how to use the analyzers to process text.

To begin with, you need to install Apache Ant and Apache Ivy.

sudo dnf install ant ivy

Next, download PyLucene from one of the mirrors found here and extract the archive.

tar -xzvf pylucene-6.5.0-src.tar.gz

To install PyLucene, we’ll mostly follow the instructions found here. The first step is to install JCC.

cd /path/to/pylucene/jcc

Make sure the Java location in jcc/setup.py is correct.

'linux': '/usr/lib/jvm/java-8-oracle' # change this
'linux': '/usr/lib/jvm/java-1.8.0' # mine

Install JCC.

python setup.py…


Printing output is a crucial part of debugging code. Doing so is easy in Solr, but it wasn’t at all obvious to me, so I’ve put the steps down here. The first thing you need to do is import some logging libraries.

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.invoke.MethodHandles;

Next, put the following line below your class declaration.

private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());

Now, whenever you want to log something to the Solr Admin Logging window, just use the following:

log.info("Some message.");

More information on logging in Solr can be found here.


This post was originally published on my blog in December 2015.

In 2012, at the age of 24, I “dropped out” (left with a master’s) of a Ph.D. program in evolutionary biology at The University of Chicago. I had decided I wasn’t entirely comfortable with the limited (and highly competitive) career opportunities in the field. Having always been a fan of computers and technology (and being encouraged by the booming job market), I decided to explore my options in computer science. …


I originally published this blog post on LinkedIn.

An oft-repeated meme in data science circles is that linear models can sometimes be preferable to other machine learning methods because they’re “easily interpretable”; but how true is that statement? Depending on your background, you probably first encountered linear regression in either a machine learning or statistics course. If you’re coming from a machine learning background, you probably think of linear regression as the following:

Image for post
Image for post

That is, the model is predicting some outcome variable based on a linear combination of input variables. …

Michael A. Alcorn

Brute-forcing my way through life. https://sites.google.com/view/michaelaalcorn

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store