Тред: разработчики вспоминают нелепые ошибки в своей работе
Статьи редакции
Из-за сооснователя Instagram Кевина Систрома сайт соцсети не работал в день запуска час, а эксперт в области безопасности Алекс Стэймос устроил расследование секретной службы в крупном американском банке, переводя отрицательные суммы денег.
Пользовательница Twitter Элли Армагеддон запустила тред, в котором предложила разработчикам поделиться историями о своих критических ошибках в работе. Так она хочет показать молодым специалистам, что все допускают ошибки.
Вот что из этого вышло.
Расскажите в комментариях свою историю о том, как допустили ошибку на работе и к чему это привело.
Какой-то убогий разработчик из париматч забыл закрыть админку с которой публиковались виджеты для ставок на топовые новостные сайты, саму админку можно было найти в гугле индексируемой. Можно было заработать миллионы подставив свою партнерскую ссылку, можно было сделать с париматча огромный лол, кинув ссылку на админку на форчаны, но в итоге я сообщил об этой проблеме в париматч...
Мы запустили новый проект, который состряпали очень быстро. Анонс запуска был давно, и в течение первых дней в проекте зарегистрировалось около 30 тыс человек, которые сразу закинули прилично денег.
По плану была смена команды, новые ребята оказались личностями неприятными. Я передавал дела новому тимлиду. Он захотел дома развернуть стенд и разобраться, для чего попросил у меня дамп базы (это было давно, практики миграций тогда не было). В этот же момент у меня начался конфликт с новым менеджером. Я попросил его не злить меня, потому что мне надо сделать важную операцию. Тот меня оставил на какое-то время. Я полез в phpmyadmin от рут-аккаунта (чтобы получить доступ ко всем таблицам, тригерам и аккаунтам пользователей БД). И в этот момент менеджер спускает на меня собак. Я начинаю в ответ орать и промазываю мышкой, кликая не на дамп, а на "удалить бд" и уже на полном автомате кликаю подтверждение "ок".
Осознание пришло через секунд 15. Полез проверил - базы нет. Но я держу себя в руках. Я-то знаю, что есть дамп. Админу когда-то ставил задачу, потом принимал её. Скачиваю дамп, распаковываю, а там файл только со структурой... Данных нет... Почему я не заметил при приемке? Очень просто - принимал я задачу, когда база была пустой...
Но все же удалось выйти почти сухим из воды. В самом начале, когда я продумывал архитектуру всей платформы, часть данных пользователей я задублировал в другой БД на другом сервере. Поэтому id, никнеймы и почта у меня были на руках. Я сгенерировал новые пароли и разослал их пользователям.
Основной проблемой стало то, что часть email'ов были фиктивными, а мы их не верифицировали при регистрации. Поэтому потом в течение трех дней восстанавливали доступы пользователям по описанию их покупок.
Все истории такие эпичные: положил сайт, сломал банк...
А я че.. Пилил как-то рекламный видос в одной шараге, нужно было сделать несколько версий, штук 5, каждая из которых чутка отличалась бы от предыдущей..
Когда через какое-то время мне зачем-то нужно было отрендерить все версии еще раз, понял, что они, сука, все одинаковые.
Зы При создании каждой версии дублировал таймлайн, но компаунд внутри дублировать забыл, а все изменения, практически, были в нем. Крч, на все таймлинии был один компаунд :(
Помню, в 00-х играл в одну браузерную ММОРПГ, в которое многое было завязано на донате. Реальный деньги конвертировались во внутриигровые рубины. Кроме этого, в игре были кланы. В кланах было что-то подобие казны, в которую можно закинуть рубины, чтобы любой желающий мог взять себе, но этой функцией не пользовался вообще никто в игре, судя по всему. Однажды один чел заметил, что можно забирать рубины из пустой казны, таким образом загоняя ее в минус. Где-то день часть нашего клана баловалась этой штукой, покупала самое дорогое и сильное снаряжение, убивала топовых игроков и развлекалась. Один из топов писал и спрашивал, как мы это сделали. Из-за нарушения экономики внутриигровой аукцион автоматически скупал все лоты, видимо, чтобы это самое нарушение исправить. Это был лучший и самый веселый день в этой игре. Где-то через сутки админы разобрались с этой дырой и побагнили почти весь клан.
Будучи совсем зелёным джуном сломал регерацию энергии в казуальной игре, если энергии не было игра ставила ультиматум или плати или не играй, все осложняло что новый патч эпл ревьювил неделю.
П.С. зато продажи скачнули :D
Выходя в ранний доступ в Стим залили дэв билд с читами на хоткеи и отладкой. Дело было в пятницу поздно вечером, проблема заметили только утром в воскресенье. Пофиксили быстро, но хэйта в отзывах огребли, люди не понимали что происходит то мобы сами умирают, то ГГ делает роскомнадзор.
Стоит ли говорить что релиз на гоге имел теже проблемы, но не по нашей вине;)
О, можно вообще не про ИТ писать? Тогда садитесь, слушайте.
Перед 9 мая Макдоналдс заказывает растяжку Приглашаем на работу. Дизайнер высылает макет, звонит уточнить, субподрядчик говорит, будет готово 30 апреля к 21 часу. Отпускаем водителя, чтобы сэкономить: я на велике, заберу баннер и отдам заказчику, всё вроде бы ОК.
Захожу в цех – не готово. Захожу попозже – готово, только что-то не вижу своего баннера. Должен быть такой пятиметровый красно-жёлтый...
В общем, всё случилось максимально тупо. Дизайнер по телефону рассказала размеры в сантиметрах вместо миллиметров. В цехе шум, вникать никто не стал, и ещё и издевательски сделали люверсы в баннере 50 на 10 см. До сих пор висит на стене позора.
Я гуманитарий, так что ничего подобного не делал. Но вот пароль к почтовой рассылке в журнале тиражом 50 000 — публиковал успешно.
Скриншот к статье не проверил. Но, в общем, все обошлось без последствий.
Как то писал биллинговую систему и при переводе самому себе деньги на твоем аккаунте увеличивались ровно на сумму перевода. Баг обнаружился не сразу и хитрые пользователи уже вывели значительную сумму🤦♂️
Не разработчик. Работал в техподдежке очень популярного приложения в ОК, под него завёл аккаунт, а с него группу поддержки. Ушёл через год-полтора, удалил аккаунт. Откуда мне было знать и помнить, что вместе с персональным акком удаляются и группы? Ушла группа на 300 тысяч пользователей.
Поддержка мэйлру не смогла помочь с двух раз, как я девочкам не объяснял, что теряется, они были не властны. Пока не вернулся из отпуска большой мэйловский бос, вопрос не решился. Стыдновато до сих пор.
Однажды я отдал дизайн-макет сайта управления по культуре на верстку. А в макете Навальный служил как баннер-заглушка раздела афиши. В итоге верстальщик все на продакшн залил и Навальный весел там почти сутки, пока этого не заметили из руководства
Думаю, это было еще до начала массового использования git или svn. Все-таки, это советы от старых молодым, а я, например, не старый, но 3 года из своей карьеры работал без системы контроля версий.
Бэкапы складывались в отдельную папку на другом диске, но от ребенка это явно не спасло бы.
Занимался коммерческой фотографией, поехали с клиентом в Данию делать контент для его компании, первый день главной задачей было его раскачать на эмоции, что бы не боялся говорить четко на камеру, там 10 дублей, здесь 10 дублей, все нравится, все по красоте. Отсняли весь контент, вечером приезжаю в гостиницу, кайфую от съёмок и кидаю туда сюда бэкапы...
Тачбар на маке, несмотря на то, что вначале очень нравился мне, потом стал вовсе бесполезной штукой на фоне изучения шорткатов, но одну вещь на нем было делать всегда удобно - отвечать на диалоговые окна «ОК», особенно, на корзине. Я знал, что рано или поздно перейду на эту дрянь...
В тот день я не стал изменять привычкам, закинув файлы в корзину ловким движением руки я нахер снес весь материал отснятый за день и быстренько нажал ОК. Когда осознал проблему, тянуть не стал - позвонил клиенту сказал прямо «П*издец»
Благо мы должны были ещё там быть 3 дня. Привёз обратно 6 одинаковых бэкапов раскиданных на жёстком диске и маке + привычку никогда не удалять файлы из корзины, хер с ними пусть лежат
В 2009 году случайно удалил все файлы шаблонов вместо их скомпилированных версий (привет, SocialEngine), это несколько дней работы перед дедлайном. Хорошо, что второй программист помог быстро все наверстать.
Менеджер дал доступ в админку начисления бонусов, чтобы я мог посмотреть на ее принцип работы. И не сказал, что проект уже запущен, а админка реальная. Там домен был левый, но связан с реальной базой в угоду скорейшего запуска.
В итоге куча клиентов получила 300-кратные начисления. Хорошо, что никто не получил письмо с бонусами и заголовком хуйхуй — там надо было что-то определенное заказать.
Уточняйте статус продукта, прежде чем с ним работать.
Когда я только начал работать, снес маленький файлик из транка, от чего весь проект частично не работал. Ушло 2 недели на то что бы понять в чем проблема. Меня почти уволили. :(
29 декабря складывается основной эквайринг(платежи по картам, если кто не знает). Включается резервный, где тариф 1.8% вместо 0.3%. В итоге, когда основной эквайринг поднимается, обратной замены не происходит, и до конца новогодних праздников мы платим +1.5% с оборота.
При всей невинности описания, самый большой по деньгам этот.
К счастью, все свои самые крупные факапы (я — тестировщик; имею в виду не обнаруживал вовремя) обнаруживал до подписания релиза. Так что самое страшное, что пропускал на прод — невозможность зарегаться с email, в котором есть знак "-". Этот мой провал подтолкнул меня пересмотреть подходы и благодаря ему написал свой первый автотест.
Ну и чтобы два раза не вставать. Очень редко, но пишу, об ошибках, которые обнаружил там и сям. Моё любимое вот это: https://t.me/mydaybug/67 (само видео — предыдущее сообщение, рекомендую к просмотру). Если вы тестировщик, то, ВОЗМОЖНО, вам будет интересно почитывать канал раз в месяц.
Коллеги, не нужно на бете использовать маты. Когда-нибудь эта бета попадёт в релиз. Вот только что я обнаружил, что если заходить на сайт магазина винлаб через TOR, то в их поисковой строке будет фраза "Хуй знает, что за шифрование". Совершенно точно это не мой поиск. Это отлад...
Коллеги, не нужно на бете использовать маты. Когда-нибудь эта бета попадёт в релиз. Вот только что я обнаружил, что если заходить на сайт магазина винлаб через TOR, то в их поисковой строке будет фраза "Хуй знает, что за шифрование". Совершенно точно это не мой поиск. Это отладочная строка, которая исчезает через пару мгновений.
И не исключаю, что это не разработчики сайта так сделали, а какая-нибудь зависимость.
Какой-то убогий разработчик из париматч забыл закрыть админку с которой публиковались виджеты для ставок на топовые новостные сайты, саму админку можно было найти в гугле индексируемой. Можно было заработать миллионы подставив свою партнерскую ссылку, можно было сделать с париматча огромный лол, кинув ссылку на админку на форчаны, но в итоге я сообщил об этой проблеме в париматч...
Откуда даже не сказали спасибо.
Самая большая ошибка...
Я админку кинопоиска также через гугл нашёл. Мне тогда 5к закинули, я на них первый телефон себе купил.
😂😂😂👍 надо было обнулить все к херам. Сэкономили бы куче народу, Много денег 😂
https://www.youtube.com/watch?v=NWIF_pS5ehU&feature=youtu.be вот так выглядело.
Я дропнул продакшн базу...
Мы запустили новый проект, который состряпали очень быстро. Анонс запуска был давно, и в течение первых дней в проекте зарегистрировалось около 30 тыс человек, которые сразу закинули прилично денег.
По плану была смена команды, новые ребята оказались личностями неприятными. Я передавал дела новому тимлиду. Он захотел дома развернуть стенд и разобраться, для чего попросил у меня дамп базы (это было давно, практики миграций тогда не было). В этот же момент у меня начался конфликт с новым менеджером. Я попросил его не злить меня, потому что мне надо сделать важную операцию. Тот меня оставил на какое-то время. Я полез в phpmyadmin от рут-аккаунта (чтобы получить доступ ко всем таблицам, тригерам и аккаунтам пользователей БД). И в этот момент менеджер спускает на меня собак. Я начинаю в ответ орать и промазываю мышкой, кликая не на дамп, а на "удалить бд" и уже на полном автомате кликаю подтверждение "ок".
Осознание пришло через секунд 15. Полез проверил - базы нет. Но я держу себя в руках. Я-то знаю, что есть дамп. Админу когда-то ставил задачу, потом принимал её. Скачиваю дамп, распаковываю, а там файл только со структурой... Данных нет... Почему я не заметил при приемке? Очень просто - принимал я задачу, когда база была пустой...
Но все же удалось выйти почти сухим из воды. В самом начале, когда я продумывал архитектуру всей платформы, часть данных пользователей я задублировал в другой БД на другом сервере. Поэтому id, никнеймы и почта у меня были на руках. Я сгенерировал новые пароли и разослал их пользователям.
Основной проблемой стало то, что часть email'ов были фиктивными, а мы их не верифицировали при регистрации. Поэтому потом в течение трех дней восстанавливали доступы пользователям по описанию их покупок.
конфликты с коллегами или руководством никак не оправдывают твою ошибку.
Сочувствую, что ты промазал.
Спасибо, теперь легче жить
Все истории такие эпичные: положил сайт, сломал банк...
А я че.. Пилил как-то рекламный видос в одной шараге, нужно было сделать несколько версий, штук 5, каждая из которых чутка отличалась бы от предыдущей..
Когда через какое-то время мне зачем-то нужно было отрендерить все версии еще раз, понял, что они, сука, все одинаковые.
Зы При создании каждой версии дублировал таймлайн, но компаунд внутри дублировать забыл, а все изменения, практически, были в нем. Крч, на все таймлинии был один компаунд :(
Помню, в 00-х играл в одну браузерную ММОРПГ, в которое многое было завязано на донате. Реальный деньги конвертировались во внутриигровые рубины. Кроме этого, в игре были кланы. В кланах было что-то подобие казны, в которую можно закинуть рубины, чтобы любой желающий мог взять себе, но этой функцией не пользовался вообще никто в игре, судя по всему. Однажды один чел заметил, что можно забирать рубины из пустой казны, таким образом загоняя ее в минус. Где-то день часть нашего клана баловалась этой штукой, покупала самое дорогое и сильное снаряжение, убивала топовых игроков и развлекалась. Один из топов писал и спрашивал, как мы это сделали. Из-за нарушения экономики внутриигровой аукцион автоматически скупал все лоты, видимо, чтобы это самое нарушение исправить. Это был лучший и самый веселый день в этой игре. Где-то через сутки админы разобрались с этой дырой и побагнили почти весь клан.
Будучи совсем зелёным джуном сломал регерацию энергии в казуальной игре, если энергии не было игра ставила ультиматум или плати или не играй, все осложняло что новый патч эпл ревьювил неделю.
П.С. зато продажи скачнули :D
и вы решили откатить патч, угадал?)
Выходя в ранний доступ в Стим залили дэв билд с читами на хоткеи и отладкой. Дело было в пятницу поздно вечером, проблема заметили только утром в воскресенье. Пофиксили быстро, но хэйта в отзывах огребли, люди не понимали что происходит то мобы сами умирают, то ГГ делает роскомнадзор.
Стоит ли говорить что релиз на гоге имел теже проблемы, но не по нашей вине;)
Казаки 3?)
Комментарий недоступен
О, можно вообще не про ИТ писать? Тогда садитесь, слушайте.
Перед 9 мая Макдоналдс заказывает растяжку Приглашаем на работу. Дизайнер высылает макет, звонит уточнить, субподрядчик говорит, будет готово 30 апреля к 21 часу. Отпускаем водителя, чтобы сэкономить: я на велике, заберу баннер и отдам заказчику, всё вроде бы ОК.
Захожу в цех – не готово. Захожу попозже – готово, только что-то не вижу своего баннера. Должен быть такой пятиметровый красно-жёлтый...
В общем, всё случилось максимально тупо. Дизайнер по телефону рассказала размеры в сантиметрах вместо миллиметров. В цехе шум, вникать никто не стал, и ещё и издевательски сделали люверсы в баннере 50 на 10 см. До сих пор висит на стене позора.
Я гуманитарий, так что ничего подобного не делал. Но вот пароль к почтовой рассылке в журнале тиражом 50 000 — публиковал успешно.
Скриншот к статье не проверил. Но, в общем, все обошлось без последствий.
Как то писал биллинговую систему и при переводе самому себе деньги на твоем аккаунте увеличивались ровно на сумму перевода. Баг обнаружился не сразу и хитрые пользователи уже вывели значительную сумму🤦♂️
Не разработчик. Работал в техподдежке очень популярного приложения в ОК, под него завёл аккаунт, а с него группу поддержки. Ушёл через год-полтора, удалил аккаунт. Откуда мне было знать и помнить, что вместе с персональным акком удаляются и группы? Ушла группа на 300 тысяч пользователей.
Поддержка мэйлру не смогла помочь с двух раз, как я девочкам не объяснял, что теряется, они были не властны. Пока не вернулся из отпуска большой мэйловский бос, вопрос не решился. Стыдновато до сих пор.
Однажды я отдал дизайн-макет сайта управления по культуре на верстку. А в макете Навальный служил как баннер-заглушка раздела афиши. В итоге верстальщик все на продакшн залил и Навальный весел там почти сутки, пока этого не заметили из руководства
А у меня! А у меня!... А у меня не было хоть сколько-нибудь серьёзных факапов :С
Ушла эпоха. Все коммиты в дев под код ревью, линтеры всякие, в продовскую базу джунов не пускают.
<3
«Если кто-то из пользователей переезжал в новый город, то тут же становился другом всем в этом городе.»
Полезная же фича!
“Я потерял две недели написания кода»
Гит-репозиторий, бэкапы? Не, не слышал.
Если большая фича, смысл на половине кода что то коммитить?
Думаю, это было еще до начала массового использования git или svn. Все-таки, это советы от старых молодым, а я, например, не старый, но 3 года из своей карьеры работал без системы контроля версий.
Бэкапы складывались в отдельную папку на другом диске, но от ребенка это явно не спасло бы.
Комментарий недоступен
в 200 году
А вообще тред прикольный, спасибо)
Фейлы с удалением/отсутствием бэков, самые жестокие)
Буквально на днях вместо импорта модуля, прописал экспорт и минут 30 не понимал почему у меня не работают методы 😵
Это было очень забавно.
Занимался коммерческой фотографией, поехали с клиентом в Данию делать контент для его компании, первый день главной задачей было его раскачать на эмоции, что бы не боялся говорить четко на камеру, там 10 дублей, здесь 10 дублей, все нравится, все по красоте. Отсняли весь контент, вечером приезжаю в гостиницу, кайфую от съёмок и кидаю туда сюда бэкапы...
Тачбар на маке, несмотря на то, что вначале очень нравился мне, потом стал вовсе бесполезной штукой на фоне изучения шорткатов, но одну вещь на нем было делать всегда удобно - отвечать на диалоговые окна «ОК», особенно, на корзине. Я знал, что рано или поздно перейду на эту дрянь...
В тот день я не стал изменять привычкам, закинув файлы в корзину ловким движением руки я нахер снес весь материал отснятый за день и быстренько нажал ОК. Когда осознал проблему, тянуть не стал - позвонил клиенту сказал прямо «П*издец»
Благо мы должны были ещё там быть 3 дня. Привёз обратно 6 одинаковых бэкапов раскиданных на жёстком диске и маке + привычку никогда не удалять файлы из корзины, хер с ними пусть лежат
Работал на конкурентов онлайн находясь на "официальной" работе и позвонил шеф и спросил что ты это сейчас такое делаешь
Не сделал бэкап
Затем залил из бэкапа на продакт, стерев 16 часов, работы 1800 человек
Почему в таких тредах никогда врачи не отписываются?
За них отписываются "благодарные" пациенты, у которых внутри что-то забыли.
Бало бы неплохо, если бы писали кто есть кто из твиттерян, в этой публикации...)))) Не все всех знают, жеж 😼😊
уходи обратно в инстаграм, плиз...
Я случайно очистил queue продакшн почтового сервера с 2000 тысячами имейлов в ней
@Дарья Дейнека
Алекс Стэймос чуть не устроил расследование секретной службыЗа $5 млн секретная служба была бы в банке уже на следующее утро
Почему «бы»?
For $5M, the Secret Service is there at 8am the next morningКажется, здесь нет никакого условного наклонения: Секретная служба была в банке уже в 8 часов следующего утра.
Артём, поправила. Спасибо)
В 2009 году случайно удалил все файлы шаблонов вместо их скомпилированных версий (привет, SocialEngine), это несколько дней работы перед дедлайном. Хорошо, что второй программист помог быстро все наверстать.
Менеджер дал доступ в админку начисления бонусов, чтобы я мог посмотреть на ее принцип работы. И не сказал, что проект уже запущен, а админка реальная. Там домен был левый, но связан с реальной базой в угоду скорейшего запуска.
В итоге куча клиентов получила 300-кратные начисления. Хорошо, что никто не получил письмо с бонусами и заголовком хуйхуй — там надо было что-то определенное заказать.
Уточняйте статус продукта, прежде чем с ним работать.
добавила в описание игры чтото про коронавирус и нас снесли с маркета насовсем. тогда еще пандемией и не пахло и такой реакции даже не предполагала)
Когда я только начал работать, снес маленький файлик из транка, от чего весь проект частично не работал. Ушло 2 недели на то что бы понять в чем проблема. Меня почти уволили. :(
29 декабря складывается основной эквайринг(платежи по картам, если кто не знает). Включается резервный, где тариф 1.8% вместо 0.3%. В итоге, когда основной эквайринг поднимается, обратной замены не происходит, и до конца новогодних праздников мы платим +1.5% с оборота.
При всей невинности описания, самый большой по деньгам этот.
К счастью, все свои самые крупные факапы (я — тестировщик; имею в виду не обнаруживал вовремя) обнаруживал до подписания релиза. Так что самое страшное, что пропускал на прод — невозможность зарегаться с email, в котором есть знак "-". Этот мой провал подтолкнул меня пересмотреть подходы и благодаря ему написал свой первый автотест.
Ну и чтобы два раза не вставать. Очень редко, но пишу, об ошибках, которые обнаружил там и сям. Моё любимое вот это: https://t.me/mydaybug/67 (само видео — предыдущее сообщение, рекомендую к просмотру). Если вы тестировщик, то, ВОЗМОЖНО, вам будет интересно почитывать канал раз в месяц.
Совершенно точно это не мой поиск. Это отлад...
Совершенно точно это не мой поиск. Это отладочная строка, которая исчезает через пару мгновений.
И не исключаю, что это не разработчики сайта так сделали, а какая-нибудь зависимость.