[Bf-committers] Handling of user data.

Sander de Regt blendercontact at shadowmaker.nl
Tue May 17 14:48:58 CEST 2022


Maybe it's an idea before thinking about solutions, to find out what 
people's problems actually are that cause this to happen.
I've transitioned to Blender from 3DSMax as a very casual 3D user, so my 
memory might be a bit rusty. But I seem to remember that if you created 
a material in Max' material editor it got saved even it wasn't applied 
to an object. So if you opened up a file whatever was present in the 
material editor was still present when reopening. (at least that's how I 
remember it)

The thing with Blender is - to me as a casual user - that it's really a 
high end piece of software that's very flexible, but also very hard to 
comprehend. I think that maybe for 90%-95% of users the only things that 
they will ever miss are non-saved created images, materials in the 
shading editor and maybe actions or geometry nodes setup.

The whole fake user concept is very useful, but also very hard to get 
your mind around as a casual user.

If you're working on something you might want to try various options - 
say a black and white chessboard or a red and blue chessboard. It takes 
quite a lot of discipline from the user to check the 'fake user shield' 
box for everything that you *might* want to keep when reopening the 
file. It's really easy to forget and overlook, because it's not easy for 
people to understand either.

It would be great if there was some sort of smart way to seperate 
'intentional' user data from dat 'leftovers' i.e. stuff that might be 
useful when reopening a file and stuff that is essentially garbage data. 
Because if you don't know what the data blocks are *while* using it, 
going over a list upon saving and closing won't make things better.

Conceptually to me there's a big overlap between 'fake users' and 
'assets' They're both ways to mark data that can be used at a later 
time, between sessions.

Reading this all back, it seems I'm basically rehashing a lot of points 
mentioned in

https://devtalk.blender.org/t/proposal-explicit-management-of-data-blocks-and-possible-deprecation-of-fake-user/22852

This is a proposal that appears to be on the right track in thinking 
about these things. I think it's a really good idea to try and make the 
distinction between things you'd like to keep and the things that are 
fine to lose as easy as possible for the user. The easier this becomes, 
the less likely accidental data loss will occur.

Sander de Regt


Op 17-5-2022 om 13:38 schreef Julian Eisel via Bf-committers:
>> Neither are great for forgetful users, but it sounds like some indications
>> could go a long way here, compared to rewriting the garbage collection system.
> There is no garbage collector that would have to be rewritten really. There’s
> nothing that actively searches for garbage. Blender just keeps track of how
> often each data-block is used (important functionality to keep, regardless of
> this discussion), and skips saving unused ones (that don’t have a fake user).
> It’s more of a garbage dumper than a garbage collector :) So we don’t have to
> rewrite things really, but develop a new data-block management UI and tools.
>
> ———————————————————————————————————————————
> Julian Eisel - julian at blender.org - www.blender.org
> Software Developer
> Buikslotermeerplein 161, 1025 ET Amsterdam, the Netherlands
> ————————————————————————————————————————————
>
>> On 17. May 2022, at 04:20, Dan McGrath via Bf-committers <bf-committers at blender.org> wrote:
>>
>> Hi,
>>
>> Perhaps you could add a count of things to be tossed out during quit in the
>> save dialog, such as "If you quit, you will lose XXX number of fake user
>> objects!".
>>
>> Or maybe, similar to how you warn about unsafe python scripts during start,
>> you could give users a one time "WARNING! Fake users will be lost on quit
>> or crash!" when they create the first fake user object.
>>
>> Neither are great for forgetful users, but it sounds like some indications
>> could go a long way here, compared to rewriting the garbage collection
>> system.
>>
>> On Mon, May 16, 2022 at 4:59 PM Zack Brown via Bf-committers <
>> bf-committers at blender.org> wrote:
>>
>>> Hi again,
>>>
>>> I feel like I have a better understanding of the debate now. On the one
>>> hand, we want to protect user data; and on the other hand, we have a
>>> garbage collector that eliminates data that the user in theory doesn't care
>>> about. And in the grey zone, we have data that the user *does* care about,
>>> but that gets garbage collected anyway. And the problem is, how to prevent
>>> the user from losing data they want to keep, while avoiding keeping data
>>> the user doesn't want to keep.
>>>
>>> It seems like one primary suggestion is to simply throw out the garbage
>>> collector -- no more garbage collector, no more problem. If the user
>>> doesn't want a piece of data in their file, they would delete it by hand.
>>> The counter-argument being that the garbage collector is actually really
>>> great and helps us keep our blend files clean and useful.
>>>
>>> Another primary suggestion seems to be issuing a warning if the user tries
>>> to quit blender with data that will be garbage collected. The counter
>>> argument being that it would be complicated and bizarre to present the user
>>> with a potentially dizzying array of data and options for that data before
>>> they could quit the software.
>>>
>>> It's a fascinating problem, in a piece of software that seems to specialize
>>> in presenting the most unbelievably brilliant solutions for apparently
>>> unsolvable problems, like how to render 3D images in glorious detail in
>>> real time. Obviously impossible. Yet there it is!
>>>
>>> Here's a suggestion from a  non-expert who knows nuttin about nuttin: Don't
>>> kill the garbage collector, and don't warn on exit. Instead, why not give
>>> all orphaned data their own prominent collection in the outliner? Maybe
>>> something called "Garbage Data". With a nice set of tooltips that appear
>>> when the user hovers over the various relevant bits. Things that say
>>> something like "Data in this collection has no user and will be deleted
>>> when you exit blender. To prevent deletion, follow the instructions at
>>> http://usefuldocs.blender.org/garbage_data.php to give the data a 'fake
>>> user'."
>>>
>>> But I'm sure you guys will figure out something 100x better than that idea.
>>> Can't wait to see it!
>>>
>>> Be well,
>>> Zack
>>>
>>>
>>>
>>>
>>>
>>> On Mon, May 16, 2022 at 6:40 PM Jacob Merrill via Bf-committers <
>>> bf-committers at blender.org> wrote:
>>>
>>>> What about popping up the outliner / orphan data window in quit, and
>>>> showing exclamation icon somewhere if there is a orphan
>>>>
>>>> On Mon, May 16, 2022, 9:15 AM Harley Acheson via Bf-committers <
>>>> bf-committers at blender.org> wrote:
>>>>
>>>>> I’d love to have someone flesh out this “warning on quit” idea,
>>> because I
>>>>> can’t imagine it actually
>>>>> working in practice.  Mostly because of confusion on what “saving”
>>> really
>>>>> means. Users should
>>>>> rightfully only consider that “saving their data” does exactly that,
>>> not
>>>>> that some of their data might
>>>>> differ and have to be “saved” in different ways.
>>>>>
>>>>> As its simplest, imagine that you have no unsaved changes in your file
>>>> (you
>>>>> just did a File/Save)
>>>>> yet there is orphaned data at the time you select “Quit”.  What exactly
>>>>> does the warning say?
>>>>> “You have unlinked data that will be lost”?  How do you communicate to
>>>> the
>>>>> user what they should
>>>>> do now?  Is there a way to offer to do it for them somehow, or is this
>>>>> warning going to just have an
>>>>> “Ignore” and “Cancel” button? Text that says “please mark anything you
>>>> want
>>>>> to keep by marking
>>>>> the data with ‘fake user’”? That will not help a typical person being
>>>>> caught out by this
>>>>>
>>>>> Now imagine there are both unsaved changes and orphan data at the point
>>>> of
>>>>> “quit”.  We now
>>>>> have to warn about unsaved changes that can be “saved” and there are
>>>> other
>>>>> things that should
>>>>> be “saved” in a different way before you “save” so that they are
>>> actually
>>>>> “saved”. So we have a
>>>>> button to cancel, one to save the unsaved changes while ignoring orphan
>>>>> data, and what else
>>>>> is on the dialog?
>>>>>
>>>>> I'm not sure there is sufficient lipstick that can be put on this pig.
>>>>>
>>>>> Harley
>>>>> _______________________________________________
>>>>> Bf-committers mailing list
>>>>> Bf-committers at blender.org
>>>>> List details, subscription details or unsubscribe:
>>>>> https://lists.blender.org/mailman/listinfo/bf-committers
>>>>>
>>>> _______________________________________________
>>>> Bf-committers mailing list
>>>> Bf-committers at blender.org
>>>> List details, subscription details or unsubscribe:
>>>> https://lists.blender.org/mailman/listinfo/bf-committers
>>>>
>>>
>>> --
>>> Zack Brown
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers at blender.org
>>> List details, subscription details or unsubscribe:
>>> https://lists.blender.org/mailman/listinfo/bf-committers
>>>
>>
>> -- 
>> Cheers,
>> Danny
>>
>> ----------------------------------------------------------
>> Danny McGrath - danmcgrath.ca at gmail.com
>> GPG key: EDF6 AFF5 2086 F93A 1F59 36A5 44B6 26F3 6968 71CA
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> List details, subscription details or unsubscribe:
>> https://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> List details, subscription details or unsubscribe:
> https://lists.blender.org/mailman/listinfo/bf-committers




More information about the Bf-committers mailing list