Published 2020-04-05T02:49:00.001Z by Physics Derivation Graph
Yesterday I started investigating how to get d3.js working for the Physics Derivation Graph. I already had an implementation working on the live website, so I didn't expect the update to take too much effort or time.
Below is the sequence of challenges I encountered for this feature update.
I learned that I had used v3; the current version is v5
In the process of debugging the PDF generation (notice that I strayed from the d3js effort), realized the migration of inference rules was incomplete -- new style is to have words separated by spaces in create_tmp_db.py
Added an exception in compute.py to identify inconsistent inference rule names
Manually fixed inference rule entries in create_tmp_db.py
Altered the inference rule schema in compute.py -- use feeds+inputs+outputs
Manually updated inference rules in create_tmp_db.py to reflect revised schema
Compiling derivation PDF failed due to incorrect implementation of inference rule
Realized that the "braket" issue wasn't a missing package, it was custom macros defined in an old version of the PDG
Wrote function to generate JSON needed for d3js
In the process of iterating that, added page latency measurement
In the process of implementing a new feature or updating a feature, I uncovered a few bugs and a lot of technical debt that lead to the implementation taking longer than expected
Some of the bugs were easy to fix (aka buy down the tech debt) as I discovered them, while others were sufficiently worthy of a new ticket.
Some bugs were blockers -- I couldn't proceed with the desired work until I resolved architecture flaws; other issues were tangential and could be delayed.