One of the most useful things I’ve done in the last several weeks is to create a batch file, DailyRun.bat, which I have set to run at 3am in the morning on my main PC. Most of this file automates my diary process. For example, it automates the following:

  • Once per day, my phone exports a full backup of its call history using this app; this creates an XML file in a Syncthing folder, which gets it to my PC. Then, addTodayCallsToDiary.py runs, which reads the XML file and adds any calls within the last 24 hours to the end of my diary entry for the day.
  • My OctoPrint instance uses the PrintJobHistory plugin to record all prints in a SQLite database. I again use Syncthing to get this database file to my PC, and addToday3DPrintsToDiary.py runs, which records all of the day’s 3D prints in my diary.
  • I use ActivityWatch to record how I spend my time; addTodayVRToDiary.py makes an API call to the local instance and gets how long I played Beat Saber on that day, adding it to my diary. (I also log these exercises using YUR, which sends the workouts to Google Fit - in the future I’ll probably use that as the metric, since it’ll also include calories burned.)
  • addTodayNewWritingToDiary.py includes links to any new writing in my Obsidian vault for that day, based on the file creation date.
  • addTodayHeaderWithLLMToDiary.py, on 6 of 7 days a week, simply adds the date header to the subsequent day to my diary file. However, on Saturdays, it launches a Large Language Model WebUI server, where it uses Llama 2 7B Chat to automatically summarise my diary entries for the last week for review. It also uploads any changes to this website, as per About This Site (Technical).

Lowering the barrier for entry to these automation processes is incredibly valuable - rather than each addition being some large, independent thing to work on, it becomes a trickle of incremental improvements that can be worked on over time.