Life is unpredictable. You never know whatโs coming next. Instead of getting lost in endless choices and analysis paralysis, I decided to fight randomness with randomness.
Enter FocusRoulette.
Every week, I spin the wheel. One area gets my full attention. No second-guessing. No overthinking. Just pure execution.
FocusRoulette uses an adaptive weighted random selection to pick my focus area. Each category has a base weight, which changes dynamically based on past selections and cooldowns.
- More important areas have higher base weights, making them more likely to be picked.
- Recently selected areas get a temporary weight reduction, so I donโt keep picking the same thing.
- Cooldowns ensure balance, allowing weights to recover over time.
- The randomness keeps me engaged, challenged, and moving forward.
{
"tasks": {
"Leader in Community": { "base_weight": 1.0, "current_weight": 1.0, "cooldown": 2 },
"DSA": { "base_weight": 5.0, "current_weight": 0.5, "cooldown": 2 },
"Indie Hacking": { "base_weight": 4.0, "current_weight": 4.0, "cooldown": 2 },
"Chill": { "base_weight": 1.0, "current_weight": 1.0, "cooldown": 3 },
"Showcasing": { "base_weight": 2.0, "current_weight": 0.2, "cooldown": 2 },
"Hobbies": { "base_weight": 1.0, "current_weight": 1.0, "cooldown": 3 },
"Marketing": { "base_weight": 2.0, "current_weight": 2.0, "cooldown": 2 }
},
"history": [
{ "task": "DSA", "timestamp": "2025-02-25T00:22:44.051442", "weight_used": 5.0 },
{ "task": "Showcasing", "timestamp": "2025-02-25T00:23:07.981900", "weight_used": 2.0 }
]
}โ
Randomly selects a focus area each week
โ
Balances priority and fairness with adaptive weights
โ
Prevents burnout by rotating between different types of tasks
โ
Tracks history so I can review past focus areas
โ
Simple UI with a clear task selection system
- Run the app and view your task list.
- Click โSelect Random Taskโ to pick your focus for the week.
- Trust the process. Execute.
- See what happens. No regrets, no overthinking.
- Python (for logic and task selection)
- Tkinter (for the user interface)
- JSON storage (to save tasks and history)
# Clone the repository
git clone https://github.com/DeveloperDowny/focus-roulette.git
# Navigate into the directory
cd focus-roulette
# Run the application
python main.pyWe often waste more energy deciding what to do than actually doing the thing. FocusRoulette eliminates that decision fatigue. It forces me to commit to a path and go all in, making real progress instead of getting stuck in endless โwhat should I do?โ loops.
Itโs structured enough to ensure I focus on the right things. But itโs also random enough to keep life interesting.
Try it for a month. Let go. Let randomness decide. See how much you can achieve when you stop second-guessing and just start moving.