The ultimate guide to Wikipedia racing [#57]

If you've never heard of it, you're in for a treat.

The ultimate guide to Wikipedia racing [#57]

I went skiing with my friends & family for spring break. The skiing was exceptionally fun, but the lifts were only open from 8:30am to 4:00pm! What did I do with the rest of my time there? Well...

  1. I relearned content in Unit 6 (Integration & Accumulation of Change) in AP Calculus, learned about the Gram-Schmidt process in Linear Algebra, and in general, did a bunch of other schoolwork.
  2. I spent an unbelievable amount of time watching season 2 of The Summer I Turned Pretty. I don't typically watch romantic dramas, but ski trip tradition dictates that all the kids watch TSITP at night.
  3. I played a decent bit of Wikipedia racing with my friends, which is one of my favorite games ever.

I'm just gonna tell you all about Wikipedia racing!

1

What is Wikipedia racing? The basic idea is you start on one Wikipedia page and try to navigate to another Wikipedia page using exclusively blue links (i.e. links that lead to other Wikipedia pages). For example, if you start on Bank and are trying to get to Mount Everest, you might take the path Bank -> Italian_Renaissance -> Western_Europe -> Europe -> Asia -> Nepal -> Mount_Everest.

2

In a Wikipedia race, you and your friends can race for one of two objectives:

  1. Get to the end page as fast as possible
  2. Get to the end page in the fewest number of clicks

I prefer objective 1, because the rounds are quicker and therefore more exciting. Plus, it's considerably easier than counting the number of times you've clicked. There are also some additional modifications that make the game a little more interesting:

  1. No searching the page with CMD + F (highly recommend, as it makes the game more dependent on actual searching instead of CMD + F spamming)
  2. No using the back button of your browser (highly recommend, as it makes you think more carefully about what you click)
  3. No visiting the United States page (recommend, because it's an easy way to get to almost any country page)

3

It's typically pretty easy to come up with start/end pages for Wikipedia racing: you can think of almost anything! But if you can't come up with good start/end pages, here are a few of my suggestions:

4

Okay now that I've outlined Wikipedia racing, it's time for the fun part. There's a ton of strategy. Here are some of the strategies I find useful:

  1. Click early and often if you're playing for speed. It's better to keep moving from article to article instead of trying to find the "perfect" link on an article.
  2. Become familiar with "checkpoints" — pages that are easy to get to and lead to lots of different topics. For example, Water has direct links to Earth, World_economy, Life, Salt, Food_energy, New_York_City, Mars, etc. Many of the pages I just listed are also good checkpoints.
  3. Use the "External links" section to find organized blue links. These are seriously super helpful. To see what I mean, click here and press the "Show" button next to "Solar System".

5

I want to become really good at Wikipedia racing. So I made a little bash script that records all my Wikipedia races. It records the date, elapsed time, and the start and end pages into a .csv file so I can track my improvement over time.

Just kidding! I had ChatGPT do it. (I'm not good at writing bash.) First, I made a folder called wikiracing in my home directory. Inside wikiracing, I created wikirace_results.csv, an empty .csv file. Then I created wikiracing.sh and filled it with ChatGPT's code:

#!/bin/bash

# Function to display usage information
function usage {
    echo "Usage: $0 <starting_page> <ending_page>"
    echo "Example: $0 Tomato Taylor_Swift"
    exit 1
}

# Check if the number of arguments is correct
if [ "$#" -ne 2 ]; then
    usage
fi

# Store the starting page and ending page
start_page="$1"
end_page="$2"

# Function to handle interrupt signal (Ctrl+C)
function interrupt_handler {
    echo "Stopping the stopwatch..."
    end_time=$(date +%s)
    elapsed_time=$((end_time - start_time))
    echo "Elapsed time: $elapsed_time seconds"
    # Save data to CSV file
    echo "$(date "+%Y-%m-%d"),$elapsed_time,$start_page,$end_page" >> wikirace_results.csv
    echo "Data saved to wikirace_results.csv"
    exit 0
}

# Register interrupt signal handler
trap interrupt_handler SIGINT

echo "Starting Wikipedia race from $start_page to $end_page..."
echo "Press Ctrl+C to stop once you've reached $end_page."

# Start stopwatch
start_time=$(date +%s)

# Function to update the elapsed time
function update_timer {
    current_time=$(date +%s)
    elapsed_time=$((current_time - start_time))
    printf "\rElapsed time: %02d:%02d:%02d" "$((elapsed_time/3600))" "$((elapsed_time%3600/60))" "$((elapsed_time%60))"
}

# Infinite loop to keep updating the elapsed time
while :
do
    update_timer
    sleep 1
done

And would you look at that. It just works. It has a functioning stopwatch too! I have no idea how coders survived without ChatGPT. I guess they used a lot of Stack Overflow and a lot more of their actual brainpower.

Conclusion

I hope you enjoyed my article on Wikipedia racing! It's actually super fun, even though it's kinda nerdy. The next time you get a chance, grab your friends and do a Wikipedia race or two.