I'm still fighting off a variable-grade migraine, but I really want to do stuff, so I've been trying. And wearing sunglasses. Indoors. With the lights off.
Anyway, I'm making some progress on the writing-related front, but I don't want to talk about that yet. So, anyway anyway, I realized earlier that, with the pip PR out of my hands, and no new version of Pijul yet for committing cookiecutters to, that means there's currently nothing that I can work on instead of the virtual tabletop stuff, based on the idea that working on the other thing will help virtual tabletop development later. In other words, I can't shave the yak, so there's no stress from working on the actual project.
I thought I was going to hop in and make various changes to the punq fork that makes most of the code go, but I decided to pick off some low-hanging fruit in missed coverage first. Thinking about getting coverage improvements right, though, I have come to the following order of priorities:
- Reorganize the punq fork's tests so I can re-enable limit-coverage
- Improve my coverage metrics
- Convert the punq fork to operate on immutable data structures
- Migrate utility code into the punq fork package
- Specify the punq fork's behavior
- Extend the specification to cover generics
- Improve the algorithmic properties of the punq fork's canonicalization algorithm. (This is low in the list because I think getting it right is really hard, and the current cache-based solution is probably good enough, despite the fact that I feel like it's inelegant.)
Probably the first thing to do is move the canonicalization code into its own module; that code is nearly half the package! So, that's going to be some stuff I need to learn to do that kind of big refactor in vim instead of Sublime Text or TextWrangler. (Honestly, it's mainly going to be getting used to cut and paste through vim's buffers. The "resolve all of the errors afterwards" step shouldn't be different in any way that matters.)
Anyway, I'm going to go back to the writing stuff while this posts.