Distinguish between"not checked" and "not entered" #96
-
It would be useful to enter an X for a day deliberately. For habits such as "eat healthy," if you eat ice cream for breakfast you could immediately mark an X rather than remember at the end of the every thing that was eaten. |
Beta Was this translation helpful? Give feedback.
Replies: 41 comments 3 replies
-
Thank you for the suggestion. This feature makes sense, but I don't see how to add it while keeping the interface simple. I am open to suggestions. One workaround for your scenario would be putting a check mark early in the morning and then, as soon as you fail the habit, you remove it. We could also allow check marks to appear automatically on new days. |
Beta Was this translation helpful? Give feedback.
-
What about pressing and holding on the desired day (like we currently do to add check marks), then dragging down before releasing, to change the check to an X? This would maintain the same gesture for marking checks, and wouldn't interfere with scrolling because you have to hold in one spot first. |
Beta Was this translation helpful? Give feedback.
-
That sounds great, though I think it would have to be clear that only the selected check mark was being affected, perhaps by dropping a red X directly below the check mark. That would avoid confusion with affecting the entire goal. Also, there would have to be good separation between the regular check action and the X action, like make it an extra long hold? |
Beta Was this translation helpful? Give feedback.
-
This is a very good idea! |
Beta Was this translation helpful? Give feedback.
-
@disser I was imagining that adding a check mark would be the same gesture as it is now, with a hold and release on the desired spot, and making an X would be a hold, drag down, and release on the spot. Upon beginning the drag, the X would start to appear (either with a morph or fade) and it would phase in completely as the user continues to drag down (about half an inch). To cancel, the user just drags back up to where they started, and the X phases back out. |
Beta Was this translation helpful? Give feedback.
-
I still fail every day to hold on the right spot to add a check mark, so when that happens, I drag up or down a little to avoid opening the habit's page. Just saying, as a new touchscreen user. |
Beta Was this translation helpful? Give feedback.
-
@aleksejrs Mm, good point. But with what I'm proposing, you could just drag up, left, or right and still be fine. |
Beta Was this translation helpful? Give feedback.
-
A couple of suggestions (also related to the linked issue):
the third state could be optional so if not enabled the third option would not be present (no third option in notification, no pop-up on long press - simply marking as done currently) |
Beta Was this translation helpful? Give feedback.
-
fwiw, I agree that the simple interface is perhaps worth leaving this unaddressed :)
Interesting, but I still think we'd be failing to capture important data that could be useful in visualization and analysis. (Particularly relevant to people interested in using this app for informal or formal studies of self.) I'm thinking about using this tool to publicize my own data in a visual way, to keep myself accountable. Assuming fallible humans will sometimes forget, this work-around now makes it so that within the dataset, the "forget" data is less consistent -- sometimes forgetting will be represented as a success, and sometimes a failure :) So it's an interesting idea if someone were only concerned with their user experience, but a bit less helpful for someone concerned about data completeness and integrity. Thanks regardless of your final decision! |
Beta Was this translation helpful? Give feedback.
-
@disser, @PunctualEmoticon, instead of creating a new gesture, we can do de following:
In short, the same behaviour than now, but instead of just checking/unchecking, in the middle is the "failure" or "not completed" state. What do you guys think? |
Beta Was this translation helpful? Give feedback.
-
@battaglr I think this is the way to go. If there can be a preference toggle for tri-state checkmarks, then the long-press behavior would be (gray check or X) -> (green check) -> (red X). The default behavior would be (gray check or X) -> (green check). |
Beta Was this translation helpful? Give feedback.
-
I'm looking for this exact feature, and to me tri-state is the way to go. I would do the following:
|
Beta Was this translation helpful? Give feedback.
-
And by the way, that would also help differentiate between a habit you forgot to check and a habit you failed. |
Beta Was this translation helpful? Give feedback.
-
I simply love @djibux idea with x/?/v states ! I think it would be the best :-) Still - selecting failed / completed would be tricky... |
Beta Was this translation helpful? Give feedback.
-
I want to +1 this feature. I come from rewire and marking a habit as "failed" is a great. If I just ignore it and don't put anything, there is no mental anguish, but if I have to say I failed something... there is a little bit of mental anguish and I would do better tomorrow. Not only that, but a bunch of red X's is motivating to stop slacking! I like @djibux idea but with a couple changes:
Also, I think the following suggestions are more confusing ways of doing it:
I think a popup on single click with select options is a very simple way of doing it. I can do this in rewire in less time than a long click. Its also less confusing for new people. You can still keep the long press to mark "done". Here is how rewire does it and its very fast to mark done/failed/skip: |
Beta Was this translation helpful? Give feedback.
-
@that0n3guy I think the confusion is that I was writing with assumption that various current issues will be implemented and musing based on what the application would look like then. Here is a little fuller explanation. First, I suppose that habit-specific configuration related to entry will exist by the implementation Numerical Habits (#42) and thus could be expanded on by other features. While you could make every task a numerical task to avoid this configuration, I cannot picture a way to do this that would seem very polished. At present there are already two requests additional states: failure (#96) and pass (#88). Both are tagged with However, a number of factors contribute to my thinking that maybe configuration is justified. There does not appear to be a consensus on the need for these features so perhaps there is value in not allowing them on all habits. We already will have per-habit configuration so adding to that should not be too great of effort. If these two additional states are added, we can not be sure these are the only ones that will be proposed or desired. By allowing configuration per-habit the user's control of the behavior is maximized and support exists for adding more states in the future.
I realize now my use of 'requires notes' was ambiguous. I meant that to mean that a user must be prompted to enter notes (i.e. the note is required), rather than a habit requires notes functionality. Supposing habit completion notes are added (#56 (comment)), I could see a user having habits(s) they always want to have notes, thus an option to require notes is a conceivable feature that would optimize the work flow for those habits. I included this to show another way settings may influence the task completion UX, but probably should not have mentioned it. NB. I am not advocating for the implementation of any or all of these. I just trying to help out with how things may be implemented. I have assumed so much will be implemented on observation that many of the issues create point towards implementing features available in commercial competitors to Loop and I figured that community interest would likely lead to their implementation. @iSoron may have a more focused vision for Loop and I would support that. Currently, these additional states are not ones I feel I need. |
Beta Was this translation helpful? Give feedback.
-
@vossad01 I gotcha. I never saw the numerical issue #42 and think that causes other issues and turns this app into something like a lifelogging app.
I think this is still confusing, because these states already exist, see my "back on topic" section below. We have somewhat derailed this issue, mostly my fault I think. Lets try to keep the discussion of the other issues (#42, #88, #56) in there respective places. Back on topic - Overview and refocusBased on what this app does (IE, simply/easily tracks if habbits take place). There are 3 states: Pass (checked), Fail (unchecked), skip (used only in non-everyday habits). All of these states are already in the current version:
(the above is how the system currently handles the states) To me, this discussion is about the "fail" state, and if we should allow manually marking it as failed. I think manually marking a habit as failed, doesn't do anything to the apps functionality (it doesn't change streaks, habit strength, history). Its just a visual indication. Manually marking failed and automatic marking as failed are the same, they just look different. So I think the simplest way to implement this features is to allow a global setting for "Allow manually marking a habit failed" |
Beta Was this translation helpful? Give feedback.
-
Hello. I just joined github to thank you for your app :) and to add my comments. I am also looking for this feature. We want to mark certain habits that we have failed today. So the simplest implementation will be to have 3 status - pending(? - grey color) In the beginning all rows will be ?/grey. once you tap on any one of them it will turn to done/green. if you tap again on it will turn to fail/red. if you tap on it then it will be pending/grey. i think this will keep the simplicity of the app without any pop-ups or complex logic. I dont think we will mind tapping two times to mark a row as failed. Some folks have said to allow skip. I dont know why you would want to skip, but if you want to allow skip then allow 4th status for skip and let them continue with tapping to go to their status. Also, keep in mind that there are certain habits which are automatically checked/ticked because it was once a week and we have done it in this week. They are currently shown as grey tick. You should continue that as it is. Do not convert them to pending when we start a new day. Only make pending what is really pending for today. Please consider adding "fail" status as soon as you can because I have close to 100 rows now and I want to simplify my view by marking few things as failed so that i know what are left to finish for today. |
Beta Was this translation helpful? Give feedback.
-
Hello! Any news on this? :) |
Beta Was this translation helpful? Give feedback.
-
This would be very useful! |
Beta Was this translation helpful? Give feedback.
-
First tap: Miss Simple. Then the default workflow is to double tap. That's one idea. Either way, it's not necessary to have the user distinguish between "skip" and "fail". They need only a "miss" option (which is automatically assumed at the end of a day with no check). The software can easily know whether that miss is a fail or a skip! After all, if you have a habit to be done at least once every three days, you may not be happy about missing it on the second day (which is perhaps when you intended to complete it), but it's not yet a failure - you still have another day! So, it gets marked as a skip. On the third day, the miss would go down as a fail. (Along with subsequent consecutive misses.) On the other hand, if a habit is to be done every day, every miss is a fail! Why make the user specify? 😊 Then in the UI: |
Beta Was this translation helpful? Give feedback.
-
i think this feature as @disser requested "enter an X for a day deliberately" is really important because it would make it easy to see which habits are still relevant for the day. Why it's important? |
Beta Was this translation helpful? Give feedback.
-
There is also the need for a third state to mark a habit "not applicable" for the day which I guess is distinct from "failed" or "not entered" in the sense that it shouldn't count towards the metrics. As an example, I have a goal to take the stairs to my office instead of the elevator which I want to do every workday. Now, if I am working from home or if I am on a business trip or vacation I obviously can't check this in general but it doesn't mean I failed the goal to do this every day. |
Beta Was this translation helpful? Give feedback.
-
I'd like to re-emphasize that I think "missed" is a really good word to describe the third state. @mgttlinger If you must view your habit as a success or failure, you might want to reframe what your habit is - in this case, your desire is to avoid taking the stairs. Now you have a question you can answer every day (habits ideally do not depend on the environment) - "did you avoid taking the stairs?" - and if you simply did not go to work, the answer is "yes!". Think about it: would you expect a sugar addict to mark a day as a 'failure' if they had a day where there simply was no sugar around? No. The temptation does not need to be there all the time for you to successfully avoid it. Of course, it's better to have a positive habit than a negative one (but now it's getting into psychology) - if the point is the exercise of taking the stairs, you should have a fallback exercise you can do on days when taking the stairs is not applicable. :) |
Beta Was this translation helpful? Give feedback.
-
In an ideal world maybe. Practically speaking, they do, and in many case, it is fine to skip some days, as long as you fall back to your habit after that. Case in point: I measure my weight every day at home, but I do not when I am away (for work or holiday). I don't consider the days away as a success or failure, they are unrelated to the habit (currently my score tanks badly every time I am away). Besides, I have several work habits that do not apply to my off time, especially not my holidays. There's no reframing around that. Not doing a work-related habit on holiday is neither a success nor a failure. Actually, many of my habits do not apply during my holidays, and I think it is important to be able to take a break from habits too. A good test of a habit may be the ability to fall back into it after a holiday. It would certainly be easier with scores that have not tanked for lack of applicability. |
Beta Was this translation helpful? Give feedback.
-
Maybe I should have phrased that differently. It's not the world that needs to be ideal, it's the habit. I gave an example of a practical way the habit can apply to every day. There aren't any practical obstacles to overcome. There may however be philosophical ones.
Actually, that is more a test of willpower that particular day, so statistically, with many habits it's nearly a random chance (depending on the habit's difficulty). While on your break from your habit, you have already broken it - so there isn't much to test anyway (especially if you've broken the Never Miss Twice rule).
I remember thinking this way as well. Perhaps you are right. Either way, I clearly won't be able to convince you. I stopped thinking of habits like this after lots of reading, though, so maybe you'd be open to hearing from the experts. There are lots of great resources, including the new & renowned Atomic Habits, or if books aren't your style, there's quick videos on topics such as why the best habit is the one you do every day, or there's articles that summarize the latest expertise in this field as well. For example, this How To Make Good Habits Stick article succinctly describes major results from research such as the need for an "implementation intention":
This is right along the lines of the framing I presented earlier, like "If I'm presented with the opportunity to take the stairs or an elevator, I'll take the stairs". Again, if the lack of stairs on your break/holiday/vacation really bothers you, you could always add a similar replacement action for those days that currently don't apply. But again this is otherwise not strictly necessary -- just as a sugar addict gets to call every day without sugar a "win", even if there are some days when the cravings do not occur. Agree or not, If you treat your habit this way, you will never have to deal with that "tanking" problem!
Fascinating opinion - do you have any particular evidence for this belief? I'd love to believe that as well. Though It seems to fly in the face of everything we know about habits, kinda akin to one's dentist saying "it's important to be able to take a break from proper dental hygiene". It certainly would be nice to hear, though! |
Beta Was this translation helpful? Give feedback.
-
As this topic comes up on a regular base, I would like to know the opinion of @iSoron : Do you think about implementing something in this direction? |
Beta Was this translation helpful? Give feedback.
-
i really like the idea of auto adding check marks. i am currently eating vegan, i do this all the time, so i have to check each day that i only ate vegan. sometimes i notice that some food was not vegan as i thought, so i would remove the checkmark manually. the auto check would be so helpful. just few days where you not have done as you do normally. the interface would be easy on habbit creation just add a checkbox "auto-check" and the interface is done. |
Beta Was this translation helpful? Give feedback.
-
Fixed in aa288ac, and should become available in Loop 2.0. For now, to enter a lapse, you will need to toggle the checkmark twice. If skips are enabled, you will need to toggle it three times. Mocks and pull requests to make this more streamlined are welcome. |
Beta Was this translation helpful? Give feedback.
-
@iSoron as of now, this feature is not implemented for cases where the entries which the user was not expected to tick. For instance, if you have two habits that should be done every 3 days in this state: Then ticking THU 5 will result in the same representation for FRI 6: I'm still going through the code, but from what I've seen so far, I think that:
In a way, I feel that these should not be the same types: NO / YES / UNKNOWN are really specific to one specific checkmark, while YES_AUTO depends on the surrounding values. For now, I can probably figure out a quick solution but just computing pairs of values (e.g. (NO, YES_AUTO), (UNKNOWN, NO) etc., where the first value is what the user entered, and the second is the result of the computation), but I'll most likely find a cleaner way eventually. |
Beta Was this translation helpful? Give feedback.
Fixed in aa288ac, and should become available in Loop 2.0. For now, to enter a lapse, you will need to toggle the checkmark twice. If skips are enabled, you will need to toggle it three times. Mocks and pull requests to make this more streamlined are welcome.