DIMMiN Notes

My working notes related to the development of dimmin.com.

Clear Filters

2026-05-12-Tuesday

  • Fixed the user watchtime calculation (invalid joins were being used when considering active sessions). Pushed these changes to Production
  • Found out that it takes roughly 3 minutes to allow the connection to reset to get the wall of joins back. The wall of joins takes about 60 seconds to render.
  • Fixed the fix_user_session script so that it always re-calculates sessions.
  • Fixed watchtime AGAIN (sessions weren't processed correctly on first try on live server)
  • Temporarily disabled the server reboot function until I can test the wall of joins better

Read more

2026-05-11-Monday

Read more

2026-05-10-Sunday

  • Fixed the UTC / PST timezone conversion bug by using a Django Context Processor to inject the timezone explicitly defined in the settings file throughout the project (connecting the backend and UI in timezone)
  • Pushed code to Production, ran into a few bugs
  • When pulling code to an active Docker Container the container restarts with the new code. Best to just stop the container to allow graceful shutdown to occur in the future.
  • Applied Database Migrations to production database so that now it has the graceful_shutdown feature
  • Rotated the django secret key and switched to using Environment Variables for a few additional parameters (like timezone)
  • Found out that we can check a database for corruption using the linux sqlite3's PRAGMA integrity check
  • Found out that if I don't leave the server disconnected from the Socket for enough time, I don't get the collection of starting joins.

Read more

2026-05-09-Saturday

  • Updated the official start time to 1778119163 (catalixia's go-live message, id 567c45c8-a7e0-48f0-8626-ac6578f99289) to define the start of the subathon
  • Watchtimes are now reflected in seconds and include both recorded sessions and incomplete sessions
  • Updated the TwitchUserAttendance Django Model so that we can easily identify graceful shutdowns
  • Updated session creation logic so that graceful shutdowns don't automatically end a user's watchtime streak (i.e if I shut down the server and restore power and the user is still there, just consider the session to have started from the last valid join before the server went down)
  • Wrote a series of Unit Tests to validate the new graceful shutdown handling for watchtime

Read more

2026-05-08-Friday

Read more

2026-05-07-Thursday

  • Made sure that Catalixiahbot was operational for the subathon kick-off (it is up and running)
  • Identified potential start messages (either fcb39332-6d00-457c-b900-3532f97329f1 or 567c45c8-a7e0-48f0-8626-ac6578f99289) which we can switch to if we want to change the start time of the subathon.
  • Added an additional table display to the subathon sheet using XLOOKUP to show total watchtime and chat points broken apart by day for two weeks (requested by Catalixia)

Read more

2026-05-06-Wednesday

  • FINALLY Fixed the kernel level issue in my Homelab that prevented me from easily starting and stopping Docker containers thanks to this resource
  • Set up a CRON Job that restarts Catalixiahbot every week so it can continue to collect data
  • Figured out how to establish a long-term SSH key so I can transfer backup databases within my Homelab (between AM and MsNASty)
  • Set up another CRON Job that transfers the database to a folder in the NAS which handles versioning and database snapshots for me.
  • Found out that catalixia is starting her subathon on May 6, 2026 at 3 pm PST
  • Added a new feature to the Catalixiahbot that tracks the total number of chats daily
  • Added a new feature to the Catalixiahbot that tracks the total number of watchtime hours for a given day (however this is based on TwitchUserSessions and when they start, so they could be much higher than is reasonable)

Read more

2026-05-05-Tuesday

  • Decided to break apart the CupUp - An Analysis of Optimal Coffee blog post into a multi-part series to split up the writing component
  • Updated processing of variety, processing_system, and altitude_meters_lo / altitude_meters_hi
  • Set the maximum altitude to 2,600M during processing
  • Began working on validations for this final processing step

Read more

2026-05-02-Saturday

  • Finished processing the farm_size_square_meters feature
  • Began updating the 2_clean_features.py script to finish numeric conversion of different fields

Read more

2026-04-30-Thursday

  • Constructed a test in the Python pytest validator that identified 38 lots in the competition page where the link in the competition page does not actually match the lot URL (usually the Slug is changed in the competition page but redirects to the appropriate lot)
  • Integrated warnings (instead of test failures) into the validator to check for outlier auction scores
  • Identified a disconnect between listed lot size and the auction pricing results. For instance for Brazil Pulped Naturals 2000 the highest lot size is 220 30kg boxes (14,550.51 lbs), but the total price (just over $29k) and price per lb ($1.02 / lb) suggest a total size of 29,102 lbs.

Read more