My sister has been proofreading the tutorial write-ups, as I’ve been producing them. It is somewhat of a slower process than writing the code itself; that part doesn’t need to be explained to anyone else, all I need to do is understand what I’m doing. (The advantages of working independently.) Here, with the tutorials, I have to figure out how to explain the sequence of actions and the decisions I’ve made to someone else.
Preferably using action verbs and short words and in an easy-to-read, conversational style that’s short.
I am not very good at short.
Anyway, we were reviewing the sections that I wrote about different types of items in the stash – fabric and patterns versus threads and embellishments, and she was asking some questions about how I’d handled them. I made the decision when I started writing the program that the patterns you include are always considered ‘in the stash.’ On the other hand, thread and embellishments might or might not be in your stash, but had to be included in the app to be tracked as part of the shopping list. So clearly their presence in the app does not automatically mean that they are in the stash.
I’d initially decided to treat fabric similar to patterns. I was already treating it differently from thread or embellishments, in that each entry represents one piece of fabric. If you have a duplicate, you have to make another entry for it. Each fabric can only be associated with one pattern at a time. If you had it associated with one pattern and then changed your mind to put it with a different pattern, the first pattern “loses” its fabric.
And then my sister asked, “Well, what happens when you finish the pattern?”
My gut answer was that, well, you delete the fabric because it’s not in your stash anymore. We talked about adding a “finish” button that you can hit when you’ve finished a piece, that would delete the fabric for you. But thinking about it some more, it would be nice to have a record of what you did the piece on, wouldn’t it?
And then there’s the issue of choosing an existing piece of fabric from your stash for a pattern. Currently, when you hit the button to do that, it displays all the fabric in your stash that could fit it, even those assigned to other patterns. (The app does tell you which pattern it’s assigned to, so you don’t accidentally select it.) But that doesn’t make sense once you’ve actually started stitching the pattern – you’re not going to rip out the stitches to reassign the fabric.
So maybe I should add something you can mark on the pattern when it’s in progress. Then the fabric gets flagged as “in use” and it won’t show up in those lists. And instead of deleting the fabric on finishing, it gets marked as “completed” and shown only on the master list, not the stash list. Those changes are relatively simple to make – not trivial, but not too tricky. I can probably even add dates to when you mark something as in progress and again when you mark it as finished, to make a little journal of how long it took.
So far so good.
And then she asked, “What about the threads and embellishments when you mark the pattern as finished?”
And oh. Ugh. This is where it gets really tricky.
Some things are very straightforward. If a pattern calls for two skeins of thread, chances are very high that you will completely use up at least the first skein. (The second …well, that depends.) If a pattern needs three buttons, you are probably not going to be left with half a button at the end.
But what about the patterns that call for one skein of a color, and you use an eighth of it? You can probably use that just fine in a few other patterns; I probably shouldn’t subtract it from your stash automatically. What about a box of beads from Mill Hill, where you used maybe 1/4 of the box? That would probably also work for another pattern, which means I still shouldn’t subtract it outright (although in general I am less generous with assumptions about leftover embellishments – I don’t allow overlap when counting them for the shopping list like I do for thread).
My current plan for this is to decrease the amount of threads and embellishments in the stash by n-1 for each item called for in the pattern, where n is the amount called for by the pattern. This is based on that assumption mentioned earlier, that if the pattern called for two skeins/boxes of beads/whatever, you probably used up one completely. It’s not a perfect solution, and the dialog box that will pop up to confirm the finish will warn the user that they should check and manually correct their stash counts for items involved with the pattern if needed. But it seems to be the best solution I’ve come up with to this problem.
It also means I have a bunch more coding to do before it’s back to screenshots and tutorial writing.