This is a pretty amazing use of programming and personal data to create a custom keyboard layout for yourself. Great read.
This scoring method is then evaluated on a collection of text that is representative of all text I’ve typed in the last five years, which produces a number representing the objective function. Specifically, I take all of my code, IMs, emails, and articles over that time period, remove any non-ASCII characters, and create a long word frequency list to be used in scoring layouts. Lastly I throw out any words that were not used more than 20 times over 5 years, for the sake of efficiency.