Rot Index · updated 2026-10-17
How many popular tutorials still work?
We ran 29 popular Python and JavaScript tutorials, published 2013 to 2018, step by step in fresh sandboxes with today's package versions. Here is what still works, what broke, and the fix for each. 21 more were left out because checking them by hand didn't confirm what the automatic run reported.
3%
still work
59%
broke, and we fixed them
31%
broke, could not fix
7%
could not run here
Why tutorials break
-
A function or class was removed or renamed23
-
A mistake in the tutorial itself3
-
Package versions no longer fit together2
-
A file, dataset or URL no longer exists1
Releases that broke the most tutorials
A typical tutorial here broke 96 months after it was published.
- scikit-learn 0.20.0 · released Sep 2018 5 tutorials
- scikit-learn 1.2.0 · released Dec 2022 2 tutorials
- setuptools 82.0.0 · released Feb 2026 2 tutorials
- numpy 1.12.0 · released Jan 2017 1 tutorial
- matplotlib 3.6.0 · released Sep 2022 1 tutorial
Every tutorial we checked
| Tutorial | Language | Year | Result | Report |
|---|---|---|---|---|
| Understanding the FFT Algorithm jakevdp.github.io |
Python | 2013 | Fixed Broke in numpy 1.12.0 |
Report |
| XKCD Plots have Landed in Matplotlib! jakevdp.github.io |
Python | 2013 | Fixed Broke in matplotlib 3.6.0 |
Report |
| Frequentism and Bayesianism: A Practical Introduction jakevdp.github.io |
Python | 2014 | Fixed Broke in matplotlib 3.2.0 |
Report |
| The Model Complexity Myth jakevdp.github.io |
Python | 2015 | Could not fix | Report |
| Group-by From Scratch jakevdp.github.io |
Python | 2017 | Could not fix Broke in matplotlib 3.8.0 |
Report |
| Embedding Matplotlib Animations in IPython Notebooks jakevdp.github.io |
Python | 2013 | Fixed | Report |
| A Simple Animation: The Magic Triangle jakevdp.github.io |
Python | 2013 | Could not fix Broke in matplotlib 3.5.0 |
Report |
| Selecting good features - Part II: linear models and regularization blog.datadive.net |
Python | 2014 | Fixed Broke in scikit-learn 1.2.0 |
Report |
| Selecting good features - Part III: random forests blog.datadive.net |
Python | 2014 | Could not fix Broke in scikit-learn 1.2.0 |
Report |
| Selecting good features - Part IV: stability selection, RFE and everything side by side blog.datadive.net |
Python | 2014 | Could not fix Broke in setuptools 82.0.0 |
Report |
| Random forest interpretation with scikit-learn blog.datadive.net |
Python | 2015 | Could not fix Broke in Python 3.12.0 |
Report |
| How to Time Small Pieces of Python Code with timeit blog.pythonlibrary.org |
Python | 2014 | Fixed | Report |
| Scanning hyperspace: how to tune machine learning models cambridgecoding.wordpress.com |
Python | 2016 | Fixed Broke in scikit-learn 0.20.0 |
Report |
| Data Science Day #3 - Classification Models bluewatersql.wordpress.com |
Python | 2016 | Fixed Broke in scikit-learn 0.20.0 |
Report |
| Selecting good features - Part I: univariate selection blog.datadive.net |
Python | 2014 | Could not fix Broke in setuptools 82.0.0 |
Report |
| Machine learning 8 - Support Vector Machine - Part 2 qingkaikong.blogspot.com |
Python | 2016 | Fixed Broke in scikit-learn 0.20.0 |
Report |
| Creating Pandas DataFrames from Lists and Dictionaries pbpython.com |
Python | 2016 | Fixed Broke in pandas 1.0.0 |
Report |
| Pandas Grouper and Agg Functions Explained pbpython.com |
Python | 2017 | Fixed Broke in pandas 3.0.0 |
Report |
| Implementing a Weighted Majority Rule Ensemble Classifier sebastianraschka.com |
Python | 2015 | Could not fix Broke in scikit-learn 0.20.0 |
Report |
| A Neural Network in 11 lines of Python (Part 1) iamtrask.github.io |
Python | 2015 | Fixed | Report |
| Implementing a Neural Network from Scratch in Python dennybritz.com |
Python | 2015 | Fixed | Report |
| Visualize the programming language influence graph freecodecamp.org |
Python | 2017 | Not runnable | Report |
| 2016 World Cup of Hockey NHL Team Captains galeascience.wordpress.com |
Python | 2016 | Not runnable | Report |
| SciPy 2015 sklearn tutorial: Classification of Handwritten Digits github.com |
Python | 2015 | Fixed Broke in scikit-learn 0.20.0 |
Report |
| TensorFlow-Examples: Simple hello world using TensorFlow github.com |
Python | 2016 | Fixed Broke in tensorflow 2.0.0 |
Report |
| Transforming data with Node.js transform streams codewinds.com |
JavaScript | 2013 | Fixed Broke in Node.js 22.0.0 |
Report |
| Getting Started with ES6 (ES2015) and Babel davidwalsh.name |
JavaScript | 2016 | Still works | Report |
| Intercept HTTP Requests with Node.js nock davidwalsh.name |
JavaScript | 2015 | Fixed Broke in nock 15.0.1 |
Report |
| Building your first interactive Node JS CLI dev.to |
JavaScript | 2018 | Could not fix Broke in chalk 5.0.0 |
Report |