SpeedScript

From Esolang
Jump to navigation Jump to search

Speedscript 🏃💨🧠

Made for the esolangs student-taught course at Carnegie Mellon University

Speedscript is a language based on brainfuck which allows you to write code by performing an activity on Strava, an exercise social media site. The motivation for this esolang is that doing so would allow users to optimize the time they dedicate to self-care, obtaining an optimal 0% self-care time usage by allowing the time taken by working out to be used for actually important things like writing code.

The language is effectively just a brainfuck dialect, but the integration with Strava provides an interesting layer of complexity. To write in this language, you simply perform a Strava activity (eg. running) which has some pace associated with each lap, recorded by performing an action at write-time like pressing a button on a gps watch. Then, all you need to do is run a compilation python script which accesses your most recent Strava activity via the Strava API and overwrites your description with the brainfuck code and output of that brainfuck code. This means that the only setup required is to store your user refresh token and api key as an environment variable before running the code. This could be improved in a future with such technology as a server which just does the whole thing.

Practically writing(running) code in this language is very hard, but a good first step is to convert the brainfuck code you want to write to lap times. To do this, I wrote this code which converts specifically “Hello World!” to Strava paces. I attempted to run this and failed rather horribly. However, on the next page, I’ve attached the code for hello world and on the page after that the code for reversing a string.

Note: One present limitation to this language is the inability to read from an input, which is always assumed to be empty, but this could be easily remedied by applying the brainfuck code to the contents of the Strava activity’s description before the python code is run.

Link to code: https://github.com/tsurbs/SpeedScript

Lap times for hello world w/ 100m/lap. Can be done with any distance as long as you run within 30s under pace given.

Lap 0: 6:30 // 22.5-24.375
Lap 1: 8:30 // 30-31.875
Lap 2: 7:00 // 24.375-26.25
Lap 3: 7:00 // 24.375-26.25
Lap 4: 5:30 // 20.625
Lap 5: 7:00 // 24.375-26.25
Lap 6: 8:30 // 30-31.875
Lap 7: 5:30 // 20.625
Lap 8: 5:30 // 20.625
Lap 9: 6:30 // 22.5-24.375
Lap 10: 5:30 // 20.625
Lap 11: 7:00 // 24.375-26.25
Lap 12: 7:00 // 24.375-26.25
Lap 13: 7:00 // 24.375-26.25
Lap 14: 7:00 // 24.375-26.25
Lap 15: 7:00 // 24.375-26.25
Lap 16: 6:00 // 20.625-22.5
Lap 17: 6:00 // 20.625-22.5
Lap 18: 9:00 // 31.875-33.75
Lap 19: 6:00 // 20.625-22.5
Lap 20: 7:00 // 24.375-26.25
Lap 21: 7:00 // 24.375-26.25
Lap 22: 6:00 // 20.625-22.5
Lap 23: 7:00 // 24.375-26.25
Lap 24: 7:00 // 24.375-26.25
Lap 25: 7:00 // 24.375-26.25
Lap 26: 9:00 // 31.875-33.75
Lap 27: 5:30 // 20.625
Lap 28: 7:00 // 24.375-26.25
Lap 29: 7:30 // 26.25-28.125
Lap 30: 5:30 // 20.625
Lap 31: 5:30 // 20.625
Lap 32: 5:30 // 20.625
Lap 33: 6:30 // 22.5-24.375
Lap 34: 7:30 // 26.25-28.125
Lap 35: 5:30 // 20.625
Lap 36: 5:30 // 20.625
Lap 37: 7:30 // 26.25-28.125
Lap 38: 7:30 // 26.25-28.125
Lap 39: 6:30 // 22.5-24.375
Lap 40: 6:30 // 22.5-24.375
Lap 41: 6:30 // 22.5-24.375
Lap 42: 8:30 // 30-31.875
Lap 43: 7:30 // 26.25-28.125
Lap 44: 5:30 // 20.625
Lap 45: 9:00 // 31.875-33.75
Lap 46: 6:00 // 20.625-22.5
Lap 47: 6:00 // 20.625-22.5
Lap 48: 6:00 // 20.625-22.5
Lap 49: 6:00 // 20.625-22.5
Lap 50: 7:30 // 26.25-28.125
Lap 51: 6:30 // 22.5-24.375
Lap 52: 6:30 // 22.5-24.375
Lap 53: 6:30 // 22.5-24.375
Lap 54: 7:30 // 26.25-28.125
Lap 55: 7:00 // 24.375-26.25
Lap 56: 7:00 // 24.375-26.25
Lap 57: 7:00 // 24.375-26.25
Lap 58: 7:00 // 24.375-26.25
Lap 59: 7:00 // 24.375-26.25
Lap 60: 7:00 // 24.375-26.25
Lap 61: 7:30 // 26.25-28.125
Lap 62: 6:00 // 20.625-22.5
Lap 63: 6:00 // 20.625-22.5
Lap 64: 7:00 // 24.375-26.25
Lap 65: 7:30 // 26.25-28.125
Lap 66: 5:30 // 20.625
Lap 67: 5:30 // 20.625
Lap 68: 5:30 // 20.625
Lap 69: 5:30 // 20.625
Lap 70: 6:30 // 22.5-24.375
Lap 71: 7:30 // 26.25-28.125

For reversing strings

Lap 0: 8:00 // 28.125-30
Lap 1: 8:30 // 30-31.875
Lap 2: 5:30 // 20.625
Lap 3: 8:00 // 28.125-30
Lap 4: 9:00 // 31.875-33.75
Lap 5: 6:00 // 20.625-22.5
Lap 6: 8:30 // 30-31.875
Lap 7: 7:30 // 26.25-28.125
Lap 8: 6:00 // 20.625-22.5
Lap 9: 9:00 // 31.875-33.75