Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 6 лет назад, перевод, По-русски

Привет, Codeforces!

Последнее время что-то я стал много получать сообщений с просьбами об удалении аккаунта. Я размышляю как наиболее правильно реализовать эту фичу. Какой контент должен оказаться скрытым, а какой является частью истории и должен остаться доступен: блоги? комментарии? попытки? Как эта фича реализована в VK/Facebook и других соцсетях? Есть ли какие-то общепринятые нормы?

Буду рад вашим мыслям в комментариях.

  • Проголосовать: нравится
  • +91
  • Проголосовать: не нравится

»
6 лет назад, # |
  Проголосовать: нравится +68 Проголосовать: не нравится

I personally believe that all information which was public once should remain public (unless it became public accidentally for a short period of time). That way, discussions are preserved, rating changes can always be recalculated and rechecked for any contest in the past.

Therefore, "account deletion" only makes sending PM to the account impossible and disables any creation of new content from that account.

VK, as far as I know, replaces all occurrences of the account with a special "DELETED" account with the same name and a sad picture. The content on other pages, however, is preserved (comments, discussions, communities/groups/public pages, etc). The content on account's page becomes completely unavailable to anyone (including comments by other people).

»
6 лет назад, # |
  Проголосовать: нравится +62 Проголосовать: не нравится

What is the point of adding account deletion?

»
6 лет назад, # |
  Проголосовать: нравится +25 Проголосовать: не нравится

I think it may be good idea to ask people asking for deletion about their motives. What do they want of deletion? Is it because they became addicted to competitive programming and want to get out or is it because they want some privacy and clean up their digital footprint? Approach should differ in these two cases.

In the former, it should be more like "disabling the account for a specific period of time".

In the latter, VK's approach may make sense. As we don't have "personal pages" at Codeforces, one can simply replace all handle occurrences (probably including some mentions in comments/posts) with "DELETED" or something like this.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    A good idea may be to ask the user right before the deletion. A bunch of checkboxes appears and he can check on the things he want to delete. It is like when you clear browsing data on chrome. I don't know whether it can be implemented or not ... it is just a suggestion.

»
6 лет назад, # |
  Проголосовать: нравится +24 Проголосовать: не нравится

For non-privacy reasons, no, because we can't delete comments right now.

For privacy reasons, replacing the username with "(redacted)" seems fine for archive purposes.

»
6 лет назад, # |
  Проголосовать: нравится +57 Проголосовать: не нравится

There are alot of useful blogs on codeforces so,

i hope that blogs remain even when it's writer

delete his account.

i suggest adding account like CF_User, and when someone delete his account all of his blogs and comments becomes under CF_User ownership and remain available for public

»
6 лет назад, # |
  Проголосовать: нравится +49 Проголосовать: не нравится

Since that is already mentioned — I think that all blogs and comments should be undeletable. Maybe if comment was sent by mistake or author realized it's silly after posting it, he may have right to delete it for some short time, but author should in my opinion have no right to delete something that causes stuff that other users produced to be deleted as well. I hate it when there is some interesting discussion going on which I put effort in and then I discover that this blog doesn't exist because author of blog decided to delete it.

That being said, all comments and blogs should be preserved in my opinion in order not to make a mess in existing discussions. All submissions and participations should be kept in order to keep contests history consistent (we do not want to have gaps in standings or something equally awkward). I do not understand what kind of motives people may have for deleting their account, but "history of codeforces" should not be affected by any deletions.

»
6 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

I think you should unlink services to login such as VK, Facebook, openid, Gmail from account.

»
6 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

Does Codeforces have a written policy about what user-generated content will go public forever?

»
6 лет назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

Вопрос в том, зачем люди хотят удалить аккаунт? Но, так как этот вопрос все равно останется без ответа, предложу свое видение решения этой проблемы.

Мне кажется, что стоит удалять только личную информацию пользователя, фактически его страничку. Всю остальную информацию, так или иначе связанную с пользователем трогать не стоит. Почему не стоит трогать блоги/комментарии и т.п. Потому что на них когда то могли ссылаться другие пользователи в своих сообщениях/блогах (И вдруг ссылки перестанут работать из-за того что данного поста нет). Или одним из блогов пользователя является разбор контеста, или же он в комментариях разобрал какую то сложную задачу. Мне кажется, что будет не очень хорошо, если этот разбор будет удален. Так же там могла быть и другая, не менее интересная информация для старых и не очень пользователей.

Как итог: мне кажется, что все посты/попытки и т.п. пользователя стоит оставить в качестве истории, а сам аккаунт удалить. Просто при удалении аккаунта, например изменить авторство этих постов на что то типа: "deleted user".

»
6 лет назад, # |
Rev. 2   Проголосовать: нравится +26 Проголосовать: не нравится

How it implemented in Facebook and other social networks?

There is no such thing as delete. Everything that passes through FB is owned by FB and I wouldn't trust any social network not to follow the same policy. It seems to be generally accepted, too...

The least restrictive fair guideline is probably this: you can't delete something if it would delete someone else's something. That is, comments and blogs with someone else's replies (maybe internal links too), talks that have been read; submissions that have been linked to, something appropriate for gym/mashup contests. Afterwards, there's the question of what else should be impossible to delete regardless — blogs and comments probably should (since they are at this point), submissions and other stuff probably shouldn't.

Removing handles+profile pics from comments is a good idea, it's not like old handles make sense with all the New Year's changes anyway...

You can also implement two types of deletion:

  1. account deactivation — stops activity; doesn't delete anything, but you can't do more than have highlighted stuff like friends, and edit your contests
  2. account deletion — actually deletes everything that can be deleted from the database as well

I'm inclined towards "too bad, the net is forever, you can't delete anything public" approach myself, but it's probably better to give people as much control over their own stuff as possible. If anyone cares about specific posts, there are still webarchive services.

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I think that account deletion should happen in a way that allows another user to register with their handle or take that handle at New Years. One way to do this and keep blogs/ranks in contests/comments is to create a "deleted" handle and put the content of the all the deleted accounts under this handle.

»
6 лет назад, # |
  Проголосовать: нравится +202 Проголосовать: не нравится

Вчера вы поднимали тему приоритетов, так вот удаление пользователей, на мой взгляд, вообще не должно быть близко к его топу.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится -13 Проголосовать: не нравится

    А что должно быть в приоритете для CF на текущий момент?

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится +30 Проголосовать: не нравится

      Поддержка HTTPS, отказ от Flash, улучшение стабильности, увеличение числа контестов. Причем, насчет последнего пункта, его лучше решить привлечением большего числа координаторов, так как между отправкой предложения и feedback'ом от координатора могут пройти месяцы.

      • »
        »
        »
        »
        6 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится +6 Проголосовать: не нравится

        ИМХО, лучше делать меньше но качественней. Я не считаю задачу качественно сделанной, если у нее 180 тестов

        • »
          »
          »
          »
          »
          6 лет назад, # ^ |
            Проголосовать: нравится +9 Проголосовать: не нравится

          может быть 180 рандомных тестов? я сам делал задачу, в которой нужно как минимум 173 теста, каждый на свой случай.

        • »
          »
          »
          »
          »
          6 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится +13 Проголосовать: не нравится

          Не очень понял, почему 180 тестов говорят о том, что задача некачественная. Наоборот, автор добавил много хитрых случаев и хочет отсечь больше неверных решений.

          Хотя, как правильно заметил oversolver, 180 рандомных тестов делать не стоит, особенно в первых задачах. Так тестировние будет проходить быстрее. Где-то в старых руководствах по созданию контестов даже была рекомендация делать не более 25-35 тестов на первые одну-две задачи.

          Второй аспект, из-за которого число тестов растет — это взломы. Все взломы обычно добавляют в тесты. Например, в моей задаче C с контеста 404 было 110 тестов, а после взломов стало ~240.

          • »
            »
            »
            »
            »
            »
            6 лет назад, # ^ |
              Проголосовать: нравится +8 Проголосовать: не нравится

            А, ну теперь понятно. Про добавление взломов в тесты не знал. А они добавляются даже если в основной группе есть идентичный? По моему было бы логично проверить взломанное решение на полном наборе тестов, если оно его прошло, тогда стоит добавить взлом в основной набор. Не думаю, что 130 взломанных решений прошли бы основной набор, ведь тогда получается что основные тесты плохие.

»
6 лет назад, # |
  Проголосовать: нравится +27 Проголосовать: не нравится

It depends on the purpose of this feature. If the goal is legal compliance (all the GDPR stuff), there is not much choice — all user data has to be deleted eventually if a user deletes their account (including of course solutions/comments/posts; and less obviously — even log lines related to the user in server logs, up/down-votes, etc.). This is the way big international companies will have to follow, as long as they want to operate in Europe.

If the goal is just to be nice privacy-wise, it depends on one's personal tastes. There is whole spectrum from the extreme pro-privacy (EU with the GDPR), to the "crypto-anarchic" point of view (never delete anything which becomes public). IMO a reasonable compromise is to just delete the account itself by default, and then remove the rest if the user explicitly asks so (but make it hard enough that only a small fraction of paranoids does it).

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится

    GitLab said:

    "As part of my voluntary contribution to any GitLab project, I acknowledge and agree that my name and email address will become embedded and part of the code, which may be publicly available. I understand the removal of this information would be impermissibly destructive to the project and the interests of all those who contribute, utilize, and benefit from it. Therefore, in consideration of my participation in any project, I hereby waive any right to request any erasure, removal, or rectification of this information under any applicable privacy or other law and acknowledge and understand that providing this information is a requirement under the agreement to contribute to the GitLab project."

    Maybe we can set similar terms and conditions so that each user has to accept that the data they publish will not be deleted. I'm not sure this is in accordance to GDPR, but at least GitLab is doing it this way.

»
6 лет назад, # |
  Проголосовать: нравится +79 Проголосовать: не нравится

I suggest that security should be improved before — otherwise one can just hack nutella accounts and delete them.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +24 Проголосовать: не нравится

    To avoid that delete feature should be invertible for a some period of time (for example 6 month). During this period data doesn't actualy deleted from the DB, and it will be deleted after that period if user didn't try to restore his profile. But for other users both times it should looks the same.

»
6 лет назад, # |
  Проголосовать: нравится +32 Проголосовать: не нравится

delete codeforces

»
6 лет назад, # |
  Проголосовать: нравится +27 Проголосовать: не нравится
00:05:17  Неправильный ответ на претест 2 [претесты] → 38218230
00:05:51  Претесты пройдены [претесты] → 38218542
00:06:31  Решение взломано участником zeronumber
00:06:34  Задача заблокирована

Кажется, у вас есть вещи поважнее.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    Что не так? Решение было заблокировано до окончания тестирования взлома. Возможно, в этом отчёте можно указывать время окончания тестирования взлома или в таких случаях разносить в две строки факт отправки взлома и его тестирования, но вот это как раз не выглядит принципиальным.

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится +9 Проголосовать: не нравится

      На самом деле не все так просто же. Повезло если очередь тестирования хака будет 5-10 секунд. А что если сильно больше? Почему проблема длинной очереди/синхронизации должна сваливаться на участника?

      Один из вариант фикса исходной проблемы — делать комлишн лока только после того, как все запощенные хаки с меньшим временем протестируются.

»
6 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

Hyperlink of high relevance:

wiki: Freedom of association

UPD I'd say, from transactional point of view, that account deletion is equivalent to the possible scenario when the account of user that must be deleted simply never existed and thus never did the changes that he did. Particulary, in my lovely comment cascades it means deletion of all nested comments. Not sure about the blogs, though. There is a lot of work for moderator I think.

Get back to your concepts in http://codeforces.com/blog/entry/1. Maybe you'd like to just name deleted users as The-one-who-must-not-be-named with Voldemort avatar. It may become a quest for oldschool)

»
5 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

It should be implemented like in real life. There is no make it unhappen.

If one does not want to have a digital history, there is no need to post a real name or the like anywhere. A platform like codeforces does not work well with deletion of any history.

Because by deleting things from history one alters that history. Which makes it simply a lie.

»
4 года назад, # |
  Проголосовать: нравится -10 Проголосовать: не нравится

nothing has been done...

»
4 года назад, # |
  Проголосовать: нравится -12 Проголосовать: не нравится

It would be good to add private account feature as well.

»
4 года назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

I think now Codeforces should implement this feature as there are more and more alt accounts create just for comments, fun comments handle, writing blogs, writing blogs about cheater, etc... and I think it has become a real issue.

Some people realize they're wrong but there is no way to delete the account, they can only change their password to some nonsense

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

MikeMirzayanov yeah, this feature should be included !

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Please, add a rename (change handle) feature, many of us need it badly.

I know, handle can be changed but probably only on the occasion of new year, right? Please please, can it be made available all time?

  • »
    »
    16 месяцев назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    yeah, a lot of users need this feature badly!

    • »
      »
      »
      16 месяцев назад, # ^ |
        Проголосовать: нравится +11 Проголосовать: не нравится

      No, I think it is not needed, once per year is enough. Can’t stand people changing handle names ever month like on discord

»
4 года назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

It can be same as Telegram. put "deleted account" instead of their handle.

»
16 месяцев назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

I wish for renaming account feature :)