Comments 58
Уже 17к поставили. Причём свежих и не растянутых на 10 лет, значит активных аккаунтов, возможно, там будет даже больше. Нормальный PR получился.
Я буквально несколько дней назад тыкнул звёздочку проекту и положил в закладки. Микрософт, ты хочешь, чтобы я повторно гонял заряды по проводам, выделял тепло трением кнопок и суставов в пальце? А нагретый эмоциями об этом тупом вахтёрстве стул? Счета за парниковые газы над планетой отныне можно отправлять в штаб-квартиру Микрософта. Откровенное «я одна, а вас много» вместо правильного уравновешивания сил корпораций перед незащищёнными гражданами - «клиент всегда прав» (должны быть сервисы для клиентов, а не клиенты для сервиса!). Капитализм себя изжил!
Микрософт однозначно должен был помочь. И исправить гуй и флоу работы с данными, чтобы исключить такое в будущем. Здоровья автору. Не удивлюсь, если в больничку загремел с серчишком.
С чего Вы решили, что клиент всегда прав?
https://www.artlebedev.ru/kovodstvo/sections/87/ - вот ссыль на подумать над своими словами...
И завязывайте уже с этим пережитком.
Please type httpie/httpie to confirm.
Я всегда думал, что это достаточная защита от глупостей.
Да, наказание за глупость - это именно то, чем должна заниматься компания по отношению к своим клиентам. :)
Этот текст легко копипастится на автомате, им надо сделать название репозитория картинкой, чтобы всегда вводили вручную
Я сам всегда копирую эту строку, потому что лень набирать )
в CSS 5 есть возможност для того, чтобы отключить возможность копирования текста, что заставит либо открыть средства разработки, либо пользоваться плагином к браузеру, включающим копирование любого текста. В последнем случае пользователь сам должен поддерживать свою внимательность
Я сам всегда копирую эту строкуА зря :-) У меня была похожая история с копипастом email. Раньше в формах регистрации, где email нужно вписать дважды я всегда копипастил. Однажды, я вписал email с опечаткой, потом его скопипастил и зарегистрировался. Через неделю оказалось, что не могу сменить пароль, не могу сменить сам имейл без подтверждающего письма, не могу зарегать второй акк, потому что там привязка к персональным данным (типа номера ИНН), который должен быть уникальным.
В общем, я запомнил тот случай, и теперь всегда вручную вбиваю email в поле подтверждения :)
Мало того что этим можно создать проблемы другим, так ещё и безопасность(а именно на неё чаще всего и упирают, когда предлагают дополнительно указать телефон/почту) от этого не повышается.
Почта? Берите выше! Можно взять кредит, и указать ЛЮБОЙ телефон в качестве резервного для связи, а свою симку выбросить. И на тот номер потом будут звонить коллекторы. Соответственно, если указать адрес, то и придут. Никто не подумает даже о подтверждении и согласии абонента об этом (и об этом прямо сказано в законах, как оказалось, что не нужно подтверждения).
Но в этом случае его можно скопировать из адресной строки
Нет, потому что когда работаешь с каким-нибудь пустым только созданным репозиторием, предупреждение абсолютно точно такое же.
Человеческий мозг так устроен, что мы запоминаем повторяющиеся рутинные действия и начинаем делать их автоматически. После выполнения таких действий с несколькими репозиториями начинаешь делать "выделить название в предупреждении - скопировать - вставить" уже на автомате.
Сам никогда об этом не задымывался, но автор статьи прав: явно потенциально сильно разрушительное действие (в духе, вы точно хотите удалить активно используемую базу данных большого объёма) должно выводить не просто "вы уверены, да/нет", а более подробное описание происходящего, с описанием того, что будет в результате потеряно.
Человеческий мозг так устроен, что мы запоминаем повторяющиеся рутинные действия и начинаем делать их автоматически.
Сколько раз в день вы меняете видимость своих репозиториев?
А с чего вы взяли, что частота сильно влияет на автоматизм?))
Я штук 10 только удалил в своей жизни в принципе личных репозиториев, и уже где-то на 3ем это было автоматическое действие- выделить мышкой, ctrl+c, ctrl+v, ок.
Я так еще один раз жесткий диск с личным архивом фото отформатировал) Вставил его в NAS, кликаю, кликаю, ок, ок, надпись- вы точно хотите отформатировать, ну я на автомате да, конечно. И через минуту я только осознал, что жесткий был не пустой...
GitHub при попытке смены типа репозитария с публичного на приватный предупреждает, какие минусы несет это действие, с пунктом про потерю всех звезд в том числе.
Но, видно, человек, ковырявшийся в настройках репозитария, был сильно утомлен и не обратил внимания на предупреждающую плашку.
было бы лучше если бы этот текст нельзя было скопипастить, например выводить его в виде png
Задача защитить человека за ошибки, а не наказать за поспешность. А то что вы предлагаете - это именно последнее, попытка (не особо успешная, поскольку всё ещё можно копи-пастить из адресной строки) сделать работу неудобной, чтобы её нельзя было сделать быстро. Это плохой путь.
соглашусь что поспешность человека это его личные проблемы. но всё же мне кажется что это неплохая идея, как вариант сделать её не принудительной, например в настройках профиля сделать переключалку plaintext/png чтобы пользователи знающие о том что у них руки чешутся смогли оставить себе "неудобный вариант" а пользователи самоуверенные переключили на текстовый. всё же вводя символы руками меньше шансов что не дойдёт "я удаляю не то репо" чем тупым копипастом
Нужно всё же ПОКАЗЫВАТЬ как-то интуитивно понятно и визуально, что будет, и что именно удаляется. Я имею плохую привычку удалять с shift+del, и было не один раз уже, что пути были похожи, но один - актуальные данные, второй - там где что-то экспериментировал с ними. И удалил не то. Просто вопрос "вы действительно хотите удалить /home/avx.../data/files/ ?" не помогает, когда у меня /home/avx/project1/movies/auto/2347987987/data/files и /home/avx/project1/movies/auto/2347987987_temp/data/files
А вот если бы мне при этом показали картинку со структурой, и выделена была та область, которую собираюсь удалить, это намного более действенно.
Что интересно, его и нельзя скопипастить, но только при попытке удаления репозитория.
Это при переводе из публичного в приватный тоже нужно или только при удалении?
Я всегда думал, что это достаточная защита от глупостей.Уже нет.
Это из серии «никто не читает лицензионное соглашение».
Последнее время все сайты настолько приучили к тому, что «согласись принять печеньки, подтверди регион, пройди капчу, реши задачку, введи код» по каждому чиху, что практически на любое требование что-то подтвердить срабатывает условный рефлекс «подтвердить».
А разнообразие способов подтверждения на разных сайтах только усугубляет проблему, т.к. даже атипичный вид подтверждения не особо настораживает.
Тут же стандартное окно, схожее с безобидным запросом, сам запрос типичный. Немудрено ошибиться.
p.s.: Делали сайтик в конце прошлого года. У заказчика было требование — что бы в админке не было ни одного подтверждающего окна, но что бы любое действие можно было откатить хотя бы в течении 15 минут (не из бакапа с перезаливкой всего) и сам список всех действий был доступен. Объяснил тем, что с одной стороны подтверждать задолбало, с другой стороны подтверждаешь все настолько на автомате, что это абсолютно бессмысленно стало.
Почитал ветку, чувствую себя лохом: я всегда руками печатал. :(
Справделивости ради, надо заметить, что редко подобным занимаюсь, раз пять всего сталкивался с этим диалогом и он меня не успел задолбать.
Если вы упустили, автор заявляет, что незадолго перед этим он также скрывал README собственного профиля, где название репозитория соответствует имени профиля. И после этого автор, следуя той же логике, попытался сделать приватным README организации. На автомате.
Автор проекта, ориентированного на консольное управление, нарвался на беспощадный GUI от GitHub... В этом что-то есть.
Ситуация скверная и вызывает сочувствие. Конструктивная критика в адрес гитхаба разумна и полезна, возьму эти замечания себе на заметку.
Однако лично для меня в этой ситуации есть ещё один пункт, который можно было бы добавить в "извлечённые уроки". Это напоминание о том, как важно порой просто "следить за мячом" - осознанно поддерживать минимальный уровень внимательности когда делаешь что-то. Иногда неудача не несёт в себе ценных уроков, а является результатом простой невнимательности, которой порой подвержен каждый, - и тут остаётся только пожать плечами, сказать "упс" и двигаться дальше.
Хорошо, когда удаётся извлечь дополнительный ценный урок, но лично для меня в такой ситуации, базовый урок №0 - это важность самой элементарной концентрации. Звучит банально, но если я буду игнорировать первопричину случившегося, потому что она наносит удар по моему эго, вероятность того, что нечто подобное повторится, будет выше, чем если я проглочу горькую пилюлю личной ответственности и через боль запомню это надолго.
Извлечённый урок: человек лишь пылинка перед огромной корпорацией. Дрессировка раба прошла успешно. Уж простите меня за такую «коммунистическую» пропаганду, но ваше (и некоторых других тут отписывающихся) раболепие поражает. Это, блин, звёздочки на гитхабе, а не ракета в космосе или искусственное сердце. Это даже не ресурс самой компании, а усилия комьюнити (которые компания использует, предоставляя взамен ему тот самый «сервис»). Нет никакой причины тут оправдывать столь «поучительную» цену ошибки.
Кажется, многие программисты мечтают о технократии, фантазируя себя Верховным Инженером (или как минимум мегаинтеллектуалом, защищённым от человеческого фактора, «кек, сам дурак, я так не ошибусь»). Или это стокгольмский синдром? :).
При чём тут раболепие, человек пишет, что надо работать, следя за уровнем концентрации. Точно так же можно и в децентрализованном хранилище уделать репу, потеряв концентрацию.
А я пишу, что сервис надо делать для людей, прислушиваясь к клиентам, а не навязывать им их вину (будто это не Микрософт, а Святая Инквизиция). Более того, автор привёл пример, когда аналогичную проблему внутреннего сотрудника порешали (возможно, создав некоторые неудобства в том числе своим клиентам), а вот внешнему клиенту отказали (готовому даже заплатить за эту работу деньгами, а не только своей лояльностью). Т.е., проблема решаема, но выбрано было с высоты своего (около)монопольного положения забить на отдельного клиента. Это угроза и лично вам в конечном счёте, поймите :).
Если со стороны выглядит, что я выразил позицию "дрессированного раба", значит, вероятно, я не правильно сформулировал свою мысль.
Пункты, которые касаются гит-хаба, прекрасно расписаны в исходном посте, и я с ними согласен.
Но все они относятся к внешним факторам, которые не всегда легко контролировать, как показывает этот конкретный случай. Я лишь дополнил список, указав на ещё один, внутренний фактор, над которым у меня обычно больше контроля, чем над внешними.
Подчеркну, что из моего указания на важность внутреннего фактора не следует, что я отказываюсь влиять на факторы внешние.
Но все они относятся к внешним факторам, которые не всегда легко контролировать
Но поднятый в статье вопрос именно в них заключается :). А все остальные личные "выводы" и страхи автор заработал уже автоматически, не прикладывая к этому никаких усилий, тут и обсуждать нечего, ибо прозвучит как назидание глупому ребёнку: "споткнулся, упал? ну поплачь, в следующий раз под ноги будешь смотреть внимательнее!". :)
Довольно точно и правильно сформулировано
> В каком из этих двух диалогов подтверждение безопасно, а в каком — приводит к удалению сообщества с 10-летней историей?
В левом - безопасно. Имя репозитория явно указано. Более того, вы должны руками ввести это имя для продолжения. На фоне всего этого утверждение, что
> Это, безусловно, заставило бы меня задуматься.
Выглядит голословным. Вы видели, и даже сами вводили, признаки того, что делаете что-то не то. Вас это не остановило. Что заставляет вас думать, что если бы признаков было не N, а N+1 - это заставило бы вас задуматься?
Вот то, что поддержка Github не пошла навстречу - это, конечно, очень печально. Чёрт с ним, что им плевать на одну отдельно взятую организацию, но выходит что им так же плевать на удобство всех пользователей, поставивших звёзды (и потерявших их) - и вот это конечно расстраивает. Я бы очень расстроился, если бы не нашёл нужный мне репозиторий среди моих звёздочек - иногда не помнишь конкретное название продукта, и ищешь по косвенным признакам... в вашем случае всё проще, проект крупный и есть надежда что те, кому он реально нужен - найдут его по названию.
Чёрт, я опять с переводом разговариваю >_<
Что заставляет вас думать, что если бы признаков было не N, а N+1 - это заставило бы вас задуматься?
То, что именно так и работает любая система предупреждений. Чем нагляднее предупреждение - тем меньше людей туда сунутся.
Например, как-то в Абхазии мы нарвались на заброшенное здание и хотели туда залезть. "Не входить, опасно" на воротах было нами проигнорировано, а вот большая надпись МИНЫ на дверях здания - уже нет. И мы не полезли.
Так и здесь. Предупреждение "вы закрываете репозиторий и потеряете 54 тысячи звезд без возможности автоматического восстановления" воспринимается иначе, чем "вы закрываете репозиторий xxx и потеряете все звезды". Особенно если "54 тысячи" будет написано большим кеглем.
Прочитал статью и понял почувствовал, что это Гитхаб виноват в потере звезд, а не авторы проекта. Сообщение о том, что для себя Гитхаб готов сделать несколько больше, чем для других, вообще вызвало лютую ненависть, ведь такое поведение неестественно и несправедливо! Пойду покормлю соседей.
Проблема в необратимости. (Причем, все таки обратимой при усилиях в исключительных случаях).
Мне кажется, при дизайне таких систем нужен особый подход.
Вариант 1 - предложенный в статье _deleted=true. Но тогда база засоряется мусорными записями и надо ее как-то чистить. К тому же надо аккуратно везде SELECT'ить, COUNT'ить и даже UPDATE'ить, чтобы избегать этих удаленных записей.
Вариант 2 - При удалении автоматически создавать какой-то "скрипт восстановления" (данные для него, список звезданувших в данном случае), который будет существовать еще день-месяц (потом удалится как протухнет), и его можно в крайнем случае запустить снова.
Кстати да, когда вываливаются предупреждения по каждому чиху, потом теряешь бдительность, когда действительно предупреждение нужно.
У GitHub есть приоритеты важнее, чем возрождение сообщества одного из старейших и самых популярных проектов на платформе.
Это точно. Например, банить без разбора и предупреждения аккаунты тех, кто по их мнению работает на санкционные компании: https://habr.com/ru/news/t/661113/.
Есть два типа пользователей: одним предупреждений раздражающе много (и они пишут статьи, что приходится слишком много тыкать мышкой), а другим предупреждений будет всегда мало, потому что они их не читают (как автор этой статьи).
Возможно, Github уже что-то поменял, потому что я сейчас скрываю репозиторий и у меня есть счётчики и сообщение достаточно явно говорит о том что будет
![](https://habrastorage.org/getpro/habr/upload_files/171/22c/cb3/17122ccb38bd6fe9d27fda6bda759541.png)
Как мы потеряли 54 000 звёзд на GitHub