DeepPly
- 10 Devlogs
- 42 Total hours
chess trainer for students and a tool for coaches. TEST CREDS: username - test, password - testabc123
chess trainer for students and a tool for coaches. TEST CREDS: username - test, password - testabc123
um I was testing it one more time as a sanity check with a new game and it flagged like all the moves, so I had to correct the mistake flagging logic so that it doesn’t highlight all moves only the ones which are not acceptable but still shows insights for ones which still deviate from the plan. 15-20 mins were spent debugging why the page randomly gave an error when all I forgot was a single ?. fml
Ok so I’m finally done with this project, or at least a milestone. The last problems I was having was that first it said that a specific directory didn’t exist even though it clearly did (the result was cached so thats why it showed that error), and second, position data wasn’t being fed into the llm (the score was changing based on side to move so they weren’t flagged and therefore left out). Now I can finally ship thiss!!
Ok so deploying took way longer than expected cuz first the docker setup was not that good. Then the problem was that I needed to make scripts for setting up the codebase on the new vps n all, so that took a hugeeee chunk of my time. Then as we all know, theres no way it would work the first time. First, my caddy and django static files setup made my life hell, but somehow I got it fixed idek how atp I think it was some problem with my Caddy config. Next the persist api code, apparently I completely forgot abt integrating syzygy into it. But then I ran into 403 errors downloading the tablebase files from the directories so I solved that too. Now that is running all good but there is one last error im getting and im close to 10h on the devlog here so imma solve that next and we will be good to go!
Ok so umm long devlog, but I finally got the full thing working. Wasnt supposed to take so long, but I ran into so many bugs and errors that it took me 8 FRICKiNG HOURS to track and resolve. Also I added docker support to my codebase to make my life easier so thats a plus ig. Now I just have to deploy
Connected stockfish to the frontend and can now send all eval data to the backend. idk why it took me so long i was kinda distracted half the time lmao. Oh wait, I had to make some fixes in the backend and frontend cuz it had so many bugs because I forgot to actually run the backend to test. Prob because I thought it was too much hassle to migrate everything n all
In this session I removed one of the most expensive parts of running DeepPly, which was the stockfish server. Initially, I had batched all stockfish analyses to a cloud server with multiple stockfish instances. To reduce analysis time, I used a persistent position db to store all previously analyzed positions and I had to use a at least 4 cpu core server. Now, the stockfish analysis can be done on the users computer directly, which is how top sites like chess.com and lichess do it. Im done with the django side of it, and will do the client side next session. Also I added django-environ for robust environment variable handling, started using logging library in 2 files as well.
I think im gonna have to do this for a while. Today I cleaned up the lichess import code, to make it less error prone. Rn the main issue was that I wasnt using .get, so it would throw errors if key wasnt found, now it handles much better. Although a lot of time was spent on changing the game model as I wanted more info and better indexing n all. I think next session will be more cleanup and making the code look actually production level before I move on with the ui changes
When I shipped during flavortown, the code for handling and executing analysis was kinda messy, so I streamlined it to highlight the task status n all using only my model instead of celery’s task result, and made the updating part more robust and removed any potential race conditions