Diary 2019-04-17
I've been working on Node Graph stuff, using Nox and Poetry. I'm... honestly not sure I can recommend doing test-driven development with Poetry in its current state. It's not that it doesn't work, it's that it feels like Poetry installs are really slow (a known issue).
In any case, I'm gradually adding functionality, and trying to take a slow and considered approach. It's looking to me like basing things off of actual usage will streamline the interface considerably, even if the actual code is almost identical. Basically, the things I actually want to do with this code are really restricted compared to "what's technically possible".
I haven't yet collected my thoughts on this, because I keep on looking back at the source code and seeing some conceptual improvement I can make. I'm right now trying to work my way towards some constant folding techniques that will probably neither help nor hinder things, but are nice to have nonetheless. These techniques would have been much more difficult in the context of the old interface, which is interesting.
In any case, I've gone through enough of the basics of all this that there are now just three things to implement for the baseline functionality of the module:
- addition
- multiplication
- partial derivative
Because this is (hand-rolled, because not-invented-here syndrome) symbolic manipulation, those are all big tasks, actually. And partial derivative is somewhat more straightforward than the others, insofar as it requires them, and it's a lot less daunting to go from addition and multiplication to partial derivative, than to addition and multiplication.
I'll see about those later, because it's already pretty late. Good night.