Самая большая ошибка, которую вы когда-либо совершали [закрыто]

33

Как и вопрос, который я прочитал о сбое сервера, какая самая большая ошибка, которую вы когда-либо совершали на позиции, связанной с ИТ. Несколько примеров от друзей:

Мне нужно было поработать на производственном сайте, поэтому я решил скопировать действующую базу данных на бета-сайт. Довольно стандартно, но когда я зашел на бета-сайт, он все еще собирал устаревшую информацию. OOPS! Я скопировал бета-версию базы данных на живой сайт! Слава богу за резервные копии.

И для меня я создал форму для мероприятия, которое должно было быть проведено в течение определенного периода времени. Участники заполняли форму, чтобы получить шанс на победу, и мы отправляли организаторам мероприятия CSV из базы данных. Я вошел в базу данных и нашел ТОЛЬКО 1 ВХОД, МОЙ. После расследования кажется, что я забыл ключ автоинкремента, и из-за настройки сервера не было никакого способа восстановить потерянные данные.

Я знаю, что этот вопрос похож на вопросы о переполнении стека, но те, которые я нашел, похоже, получили общие ответы вместо реальных историй :)

Какая самая большая ошибка кодирования / ошибка когда-либо…

оборота Брэндон Вамбольдт
источник
6
вопросы Гиннеса!
Младший М
Почему этот вопрос был закрыт? Я чувствую необходимость добавить свою собственную большую ошибку: я отключил веб-сайт LIVE на три часа (т. Е. 500 HTTP-статус) после развертывания в Production после того, как мне было специально сказано НЕ ЗАВЕРШАТЬ ПРОИЗВОДСТВО. Хуже всего то, что я пытался скрыть ошибку, но клиент заметил и не был очень доволен.
Мария Инес Парнисари
Легко для меня. Выплачено снятие инвестиций, но дважды переведено в центы. Выплачено 3 мил вместо 30к. Второе место - плохой SQL, где предложение. 4 тыс. Человек сообщили, что их инвестиции за 1–10 долларов за ночь выросли на 1800 долларов. Очевидно, что некоторые из этих клиентов пошли и потратили деньги. Выздоровел довольно быстро в финансовом отношении. Сломанная уверенность и вина никогда не исчезали. Как поправиться: взять на себя ответственность. Признай свою ошибку. Не вините больше ничего, даже если были факторы, способствующие этому. Это было встречено с пониманием и командными усилиями, чтобы исправить это. Клиент оценил честность.
Reasurria

Ответы:

54

Выдача SQL UPDATE с «плохим» предложением WHERE, которое соответствует всему.

Извлеченный урок: всегда сначала выполняйте команду SELECT, чтобы увидеть, что изменится.

Майкл Стум
источник
15
Или установите autocommit в false, чтобы вы могли увидеть, сколько строк будет затронуто.
Евгений Брикман
2
О, я сделал это Очень противный ...
Гленатрон
4
Ха-ха, я думаю, что каждый, у кого есть какой-то SQL-
код за плечами,
3
Вот почему обновления должны быть сделаны на dev в первую очередь! Нет горячих исправлений непосредственно к продукту. И будьте очень благодарны за контрольные таблицы, если они у вас есть, когда вы делаете это.
HLGEM
13
Я сделал это один раз, чтобы сбросить чей-то пароль. После того, как я установил для всех одинаковый пароль, я просто сказал своему боссу, что техническая поддержка будет получать много телефонных звонков и что мы должны сообщить вызывающему абоненту, что мы должны сменить его пароль из соображений безопасности.
Барри Браун
36

Опечатка-х

Потратил три солидных дня на этот кусок:

if($func == "remove")
{
    $p->comments[$index]->removed = true;
    $p->save();
}
else if($func == "approve");
{
    $p->comments[$index]->approved = true;
    $p->comments[$index]->removed = false;
    $p->save();
}

Видите ошибку? Это точка с запятой в конце else if. Я не мог понять, почему мои удаленные комментарии не были удалены. Вкопанный в базу данных, запрос AJAX, который я использовал, переменные POST, имел error_logи alerts везде . Закончилось переписывание метода, и это сработало. Затем я сделал различия с оригинальной версией и заметил точку с запятой.

Опечатки сложнее всего найти на языке, который не компилируется и не проверяется чем-то другим. Даже ошибки, подобные этой, будут затруднены на скомпилированном языке. Измените ==на, =и вдруг у вас есть назначение внутри if.

Josh K
источник
8
Вот где такие инструменты, как Resharper, действительно могут окупить себя - он выделил бы это как предупреждение и попросил бы удалить его.
Яаков Эллис
24
Название является (предназначенным) каламбуром? : o
Agos
3
@Rogue Coder: разница между одинарными и двойными кавычками исчезающе мала. Неправильное время тратить мозговые циклы, беспокоясь об этом. Смотрите тест в нижней части phpbench.com
Джори Себрехтс
2
@ back2dos: Errr ... верно. Итак, вы рекомендуете отказаться от всех упомянутых языков в пользу haXe? Что-то, что впервые появилось в 2005 году? Вперед с этим.
Джош К
10
Спасибо за аргумент в пользу стиля One True Brace. +1
Эсвальд
28

Думая, что программирование в основном о создании новых интересных вещей с нуля.

Бобби Столы
источник
1
Когда я только начинал, у меня тоже была такая мысль. Тогда я узнал, что других людей гораздо больше, чем чего-либо другого. Вот почему я сейчас пытаюсь написать лучший код (с комментариями), который я могу.
2
Там еще много нового кода для записи. Многие проекты с открытым исходным кодом требуют написания кода с нуля, который реализует ту же функциональность, что и закрытая система.
пп.
23

Моей самой большой ошибкой было думать, что программирование - это легкие деньги ...

Марсело де Агиар
источник
27
Если вы занялись программированием за деньги, вы должны получить новую карьеру. Не то чтобы денег не было, это так, но вам нужна навязчивая любовь к программированию, которая есть у настоящих разработчиков, или вы очень быстро
сгораете
1
Вы сделали хорошее замечание. Я действительно не увлекался программированием за деньги, но я действительно думал, что от этого будет намного легче жить. Программирование - моя страсть, и я бы сделал это, даже если бы мне пришлось заплатить.
Марсело де Агиар
4
@johnc то же самое можно сказать о большинстве профессий. Я, честно говоря, не понимаю людей, которые ходят в университет, чтобы "изучать программирование". Я начал, когда мне было 14 лет с K & R. Я поступил в университет, чтобы "изучать электронику" - но угадайте, что я все равно оказался программистом. Самые лучшие музыканты учили себя. Самые лучшие программисты учили себя. Такова жизнь.
пп.
брат аминь, аминь
Misters
23

Случайно удалили базу данных, в которой хранилась вся информация о наших клиентах, история заказов и счета, начиная с момента основания компании (на несколько лет).

Чтобы быть справедливым, мой работодатель должен разделить часть вины все же. У них была единственная копия этой базы данных, хранящаяся на Mac SE (да, это было давно), которую они предоставили мне (совершенно новый сотрудник, первая работа после окончания колледжа) в качестве моей рабочей станции и никогда даже не думали делать резервную копию.

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

оборота JohnFx
источник
15
Уч. Примечание для себя: всегда делайте резервную копию: даже если она уже должна быть.
Крами восстановил Монику
1
@Karmii: Лучший совет, руки вниз.
Крис
@Kramii - Рад, что я усвоил этот урок в начале своей карьеры.
JohnFx
Вас не уволили?
Матеин Улхак,
3
Там было достаточно вины, чтобы обойти. В то время я был еще ребенком и, вероятно, был более наивным, чем предполагал бы сегодня, предполагая, что настоящая компания сделает что-нибудь настолько глупое, как размещение единственной копии БД на моем рабочем столе. Опыт показывает, что глупо переоценивать готовность моего работодателя даже в большой компании.
JohnFx
15

когда phpmyadmin спросил:

"Вы собираетесь УНИЧТОЖИТЬ полную базу данных! Вы действительно хотите DROP DATABASE xxx?"

Я нажал Enter.

Луис Мелгратти
источник
26
Отличный пример того, когда защитное программирование помогло бы предотвратить серьезные проблемы. Если вы делаете что-то, что может привести к серьезным последствиям, например, к удалению таблиц / баз данных, ответ пользователя по умолчанию - «Нет», так что они должны АКТИВНО согласиться на действие.
Хьюго
6
@Гюго: +1. У меня был профессор в Uni (бывший системный администратор Unix / database), который говорил: «Когда ты делаешь что-то серьезное, всегда убирай руки от клавиатуры и садись на них около десяти секунд и думай о том, что должно произойти».
Бобби Столы
1
@Hugo: я иду дальше - «Вы собираетесь УДАЛИТЬ полную базу данных! Если вы действительно хотите DROP DATABASE xxx, наберите DELETE:»
Лорен Печтел
3
@Hugo @Loren Pechtel - «Вы собираетесь УНИЧТОЖИТЬ полную базу данных! При поиске в сети вашего логина обнаружилось многократное появление« lol », и поэтому в этом действии отказано. Пожалуйста, обратитесь к администратору или научитесь общаться».
детально
15

Не уверен, что это была моя «самая большая ошибка», но определенно запомнилась. В первую или две недели моей новой работы мне было поручено сделать небольшое «улучшение возможностей», которое включало изменение порядка сортировки некоторых элементов на одной из самых популярных страниц сайта. Я не был слишком знаком с базой кода, но быстро нашел соответствующий Comparator и добавил вызовы к нескольким безвредно выглядящим методам внутри метода compareTo, не слишком задумываясь об этом. Код протестирован локально и в QA без проблем и запущен.

В тот же день у меня был один на один с моим боссом, и с широкой улыбкой на лице он поздравил меня с тем, что я получил мою первую "особенность" в прямом эфире так скоро после присоединения. Мы оба посмотрели, как он зашел на соответствующую страницу, чтобы увидеть эту функцию в действии. Загрузка страницы заняла 47 секунд. Мое сердце замерло. Он обновил страницу: 53 секунды. Его улыбка исчезла. Я вернулся к своему столу и провел долгий вечер отладки и установки критических исправлений на сайт.

Оказалось, что одним из безвредных методов, которые я добавил, был вызов удаленной службы, который привел по крайней мере к одному обращению к БД. В каждом сравнении звонить. Итак, на странице, где сортировалось более 2000 элементов, я делал ~ 6000 (nlogn) посещений БД. Уч.

Евгений Брикман
источник
Был ли удар по БД очевиден в вашем коде или это произошло в каком-то методе / свойстве, которое вы вызывали?
ДБКК
Удар по БД был фактически скрыт за методом, который выглядел как простой метод получения: я добавил вызов myObj.getFoo () в метод CompareTo. JavaDoc в соответствующем подклассе отметил возможность попадания в БД, но JavaDoc в интерфейсе myObj (на что я обращал внимание при написании кода) не упомянул ничего подобного. В любом случае, я думаю, что это явная демонстрация (а) неадекватного тестирования от моего имени и (б) того, что может произойти, если вы не будете следовать правилам именования.
Евгений Брикман
более вероятно, что это был (очень распространенный) случай, когда тестовая среда не представляла производственную среду. Вы протестировали его, он работал прилично, поэтому вы пришли к выводу, что это было хорошо, никогда не зная (а вы не могли этого знать), что тестовая база данных содержала только часть данных, содержащихся в рабочей базе данных.
jwenting
15

Я сделал это:

rm -rf /bin

(На самом деле, я не сделал этого точно . Это было бы глупо и непростительно. Я сделал это более тонким, окольным путем, что привело к выполнению этой команды.)

Излишне говорить, что система Unix была непригодна для использования после этого момента, и ее пришлось переустанавливать. Я был начинающим сисадмином в то время, и старший парень, наблюдавший за мной, понимал.

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

echo *
Барри Браун
источник
+1
обученный прием,
11

Заказчик хочет получить рассылку для всей своей пользовательской базы, которая в основном отправит персонализированное электронное письмо о событии, и когда он щелкнет ссылку в письме, он автоматически войдет в форму с заполненной половиной данных.

Я пишу код, тестирую код, он работает нормально, ссылки работают, это довольно гладко. Проверив и перепроверив все, я переключаюсь на живой список, и мы идем.

Живой список значительно больше, чем мой пример данных, и почтовый сервер падает. Я должен остановить свое консольное приложение, а затем понять, что мне придется перезапустить его с того места, где оно остановилось. К счастью, эту функцию не так уж сложно добавить, и я зарегистрировал, к каким пользователям уже пришла рассылка, поэтому снова включил и снова запустил почтовый сервер и перенастроил код, чтобы можно было перезапустить его с того места, где он ранее не работал, и сделать паузу. чтобы почтовый сервер наверстал упущенное.

К сожалению, мне как-то не удалось правильно все обновить код. Я не помню деталей того, что я сделал, но запрос для получения пользовательских данных получал один набор данных, запрос для генерации хеш-кода получал другой, поэтому, если пользователь нажимал на ссылку, он попадал на форма, которая содержала чьи-либо личные данные из данных их аккаунта. И это в нишевой отрасли, где было много конкурентоспособных малых предприятий в списке.

Вскоре телефон зазвонил в офисе клиента ...

До сих пор это была единственная ошибка, из-за которой я подал в отставку.

glenatron
источник
+1 для реальных данных, значительно превышающих выборочные данные :-(
nakedfanatic
ИМО, это один из худших> _ <
sevenseacat
7

Однажды я использовал перекрестное соединение без фильтра. Отлично работал на тестовой базе данных с небольшой долей данных. Когда он был развернут, в среднем в запросе было ~ 60 миллионов строк.

Остин Салонен
источник
14
На самом деле ваша самая большая ошибка заключалась в том, что вы не разработали базу данных соответствующего размера. Никогда не используйте небольшую тестовую базу данных для разработки большой производственной базы данных. Вы не можете написать исполняющий код, если у вас нет нужной базы данных.
HLGEM
7

Я разбил лазерный сканер за 100 000 $.

Контроллер сохранял позиции как целые, поэтому я разделил все на 10000, чтобы получить фактическую позицию в дюймах.

Когда последняя цифра была 0, она была опущена, поэтому ось Z была в 10 раз дальше.

Хиллариус последовал

Эрик
источник
6

«Нам нужно сделать переписать».

С другой стороны, это было пятилетнее приложение VB6.

Грег Бюлер
источник
5

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

Генри
источник
17
Менеджеров редко увольняют за такие вещи. Чтобы добраться до уровня менеджера, вы должны очень хорошо прикрывать тыл; Вы, вероятно, стали козлом отпущения в ту минуту, когда покинули компанию. Может быть, вы могли бы справиться с этим по-другому, но не пытайтесь извиниться за это.
Марк Рэнсом
если бы он все испортил, вас бы обвинили и уволили (или, по крайней мере, вы бы несчастны, пока не ушли с позором).
jwenting
4

Семь лет назад мой начальник и владелец компании, с которым я еще не встречался, я был настолько новичком в этой работе, находился в другом штате и делал демонстрацию нашего исследовательского веб-сайта для пары потенциальных клиентов. Членские взносы варьировались от пяти до пяти, поэтому эти демонстрации были очень важны для нашей молодой компании.

В середине его демонстрации, когда я выполнял какую-то работу с базой данных, я внес изменения в оперативную базу данных и обновил каждый вопрос опроса в каждом опросе до того же текста, что-то вроде «Это тестовый вопрос» из-за недостатка в ГДЕ. Мой коллега и я боролись за резервное копирование и съежились, надеясь, что он не демонстрировал этот раздел сайта прямо сейчас, а ждал письма со всеми заглавными буквами, которые с благодарностью никогда не появлялись.

Хорошей стороной было то, что босс, наконец-то, пришел в разработку.

Hans
источник
3

Я запустил линуксовую связь Xenu в нашей интрасети, чтобы попытаться выяснить некоторые из множества неработающих ссылок, которые создавались за эти годы (большинство, что неудивительно, были ссылки из вики на общий сетевой диск).

Примерно через 30 минут я начал замечать, что на некоторых новинках появились странные картинки, похоже, что люди использовали некоторые старые зернистые стоковые фотографии, которые были в системе, но я проигнорировал мысль о том, что, возможно, просто не было ничего более нового, чем было то, что они хотели.

Еще через 10 минут я заметил, что избранные элементы по какой-то причине менялись случайным образом. В этот момент меня осенило, что происходит. В интрасети используется проверка подлинности Windows, и некоторые функции (такие как выбор изображений новостей и рекомендуемые элементы) были закодированы для ответа на запросы HTTP GET. Средство проверки ссылок использовало мою аутентификацию и сканировало страницы администратора, лояльно выполняло свою работу и следило за всеми найденными ссылками, включая такие, как

/admin/displayItems/icon_update.asp?image=eastereggs.jpg&itemID=3174

Chao
источник
7
Похоже, именно так многие люди узнают, когда уместно использовать GET и когда уместно использовать POST
Oli
Согласен, я собирался начать работу по перестройке интранета, и это решительно поставило правильное использование GET и POST на первое место по требованиям. ASP MVC также помогает сделать это простым и интуитивно понятным.
Чао
1
не совсем ваша ошибка, но тем не менее хорошая история :-)
Дин Хардинг
3

До сих пор моей единственной ошибкой, вызывающей скручивание желудка, увеличение частоты сердечных сокращений, внезапно становящейся горячим и зудящим, был запуск запроса UPDATE без предложения WHERE. К счастью, за последние 15 минут была резервная копия, и данные менялись не очень часто, что означало, что я смог полностью восстановить данные в течение 10 минут, и никто не знал.

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

ShaunO
источник
1
Разве вы, ребята, не ошибаетесь в БД, не называете откат?
Jé Queue
@Xepoch, это помогает, только если вы начали транзакцию
CaffGeek
1
@ Чад, разве мы не должны предполагать, что все вызовы данных должны быть неявно транзакционными?
Jé Queue
2
@Xepoch, никогда не думай.
CaffGeek
1
@Char, у меня есть личное предпочтение поддерживать все взаимодействия с БД внутри транзакций. Те, кто этого не делают, несут риск или имеют деловые дела, которым все равно. Предположение спецификации и MANDATE - это то, что мы начнем и будем поддерживать проекты кода с транзакционным управлением БД.
Jé Queue
3

Для робота, над которым я работаю, мы храним файл журнала каждого запуска. У нас есть робот и симулятор, которые генерируют эти папки журналов. Лог-файлы симулятора бесполезны, но лог-файлы роботов очень полезны и хранятся вечно.

Поскольку сам робот имеет ограниченное пространство на жестком диске, они переносятся на другой компьютер и хранятся там. Этот компьютер является основным операционным компьютером для связи с роботом.

Ну, я только начал работать над роботом пару месяцев назад и не знал этого. Я думал, что журналы на рабочем компьютере были бесполезными, сгенерированными симулятором, и удалил их. Мы потеряли все старые журналы, потому что не было надлежащей резервной копии.

jsternberg
источник
8
Блин ... Я хочу работать над роботами! Все, что я делаю весь день - это создаю паршивые сайты.
Дэн Рэй
2

Создала версию нашего программного обеспечения на моем компьютере вместо компьютера для сборки, поскольку она была быстрее (примерно на 4 часа быстрее, что означало, что она может перейти в QA в этот день вместо следующего), и издатель хотел ее как можно скорее.

У меня было специальное определение для отладки на моем компьютере, которое вызвало ошибку, которая не была обнаружена в QA. Они обнаружили его только по истечении 4 недель проверочного тестирования, но оно оказалось достаточно плохим, чтобы не пройти проверку.

Доминик Макдоннелл
источник
2

Случайно удалите производственную базу данных вместо версии для разработчиков. Я не видел, на каком сервере я работал. К счастью, последняя резервная копия была сделана 4 часа назад, и пользователь не внес много изменений в систему, поэтому нет большой потери данных.

Эрнесто Отиз
источник
У меня был сотрудник сделать это. Только он думал, что он сбрасывает свою локальную копию, а не обычную. Мы все работали, а потом услышали, как он сказал: «О, ШУ **» Это был веселый день.
Тианна
2

Самая большая ошибка, которую я когда-либо делал, заключалась в том, что я не работал над управлением исходным кодом на моей машине для разработки. Мой жесткий диск сломался, и я потерял несколько недель работы. Это усердный урок, и я никогда не позволю этому случиться снова.

DaveK
источник
не моя ошибка, но связанная. Компания я работал был одним из своих веб - серверов скомпрометированы, давая доступ взломщик корня к серверу управления версиями (DMZ Whazda?), Где он быстро выполнил «гт -r /»
jwenting
2

Использование ==вместо equalsсравнения строк в Java

оборота нанда
источник
13
Это самая большая ошибка, которую вы когда-либо совершали?
Крис
Это гораздо большая проблема в Java, где ==есть сравнительное сравнение. В C # ==выполняется сравнение значений в строках, как и в случае с .Equals() тем, что есть некоторые различия, см. Ответ Джона Скита здесь: stackoverflow.com/questions/3678792/…
Тим Гудман,
2
@Tim: это до сих пор не объясняет, как это было «самой большой ошибкой, которую вы когда-либо совершали» ... Еще немного контекста о последствиях, по крайней мере, было бы неплохо ...
Дин Хардинг
Если самый распространенный ответ касается опечатки, чем мой ответ здесь отличается? Если вы были новичком, то сделать эту ошибку практически невозможно, и вы можете расстроить весь день.
Нанда
@Dean: Это была не самая большая ошибка, которую я когда- либо совершал ... Я просто разъяснял разницу в поведении здесь с C # против Java
Тим Гудман
1

Я сказал своему директору, что тот факт, что он старше и имеет больше лет опыта, чем у меня, не означает, что я буду его уважать. Единственное, что я бы уважал, это СПОСОБНОСТЬ. Мне не пришлось сталкиваться с последствиями такого жалкого заявления, возможно, потому что я был младшим программистом, чем. Оглядываясь назад, это кажется моей ошибкой. Где был мой здравый смысл \ смирение ?? :-(

Фанат
источник
2
Я частично согласен с вами, только потому, что у кого-то больше опыта (в годах), не значит, что он лучший программист. Есть много программистов, которые могут написать «xx лет опыта» в своем резюме, но понятия не имеют, что они делают.
Бобби
Они с большей вероятностью поймают глупую ошибку на этом пути, как те, что перечислены здесь, что сделает более осторожного разработчика
johnc 26.10.10
Чтобы было ясно, ошибка не имела такого отношения. Ошибка в том, чтобы сказать, что у вас такое отношение.
Дэн Рэй
Я хотел сказать это многим людям за эти годы.
Reasurria
1

Это случилось с коллегой в этом месяце.

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

Стоимость: месячная оплата SMS-трафика.

Карра
источник
это дешево! :)
jwenting
1

По запросу менеджера я скопировал /etc/sudoersс одной машины на другую (хотя это не решило бы проблему под рукой, но это не относится к делу). К сожалению, я обычно sudoперемещал скопированный файл на место, не замечая, что его владелец и права были полностью неверны. В тот момент ни у кого не было открытой оболочки root, никто не мог sudo, и никто не мог войти в систему как root, потому что его оболочка была установлена ​​в /bin/false. И машина была в удаленном хранилище данных ...

eswald
источник
1

Я хотел создать файлы метаданных для каждого файла в каталоге (то есть для каждого файла somedir/foo.binя хотел бы создать файл somedir/foo.bin.meta). По какой-то глупой причине я решил создать файлы, открыв и закрыв поток файлов через Python:

for fn in os.listdir(path):
    open(os.path.join(path, fn), 'w').close()

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

К счастью, это было на персональном компьютере и не повредило ничего важного, но я все же усвоил урок.

Алан слива
источник
1

Я работал в компании, которая занимается поддержкой клиентов одной из крупнейших телекоммуникационных компаний Швеции. На нашем сервере было некоторое программное обеспечение, которое регулировало очередь входящих вызовов, сколько вызовов мы могли принять и так далее. Если это не сработало, мы не получали никаких звонков, а клиенты не получали никакой поддержки.

Aaaaanyway, я сделал (незначительные) изменения в программном обеспечении. Я мог бы подождать, пока окно службы изменит его, но подумал: «Эй, перезапуск службы займет одну минуту, зачем беспокоиться. Фортуна любит смелых». Поэтому я перезапустил его, к сожалению, поток был заблокирован, поэтому я не смог его заменить. Начиная паниковать, я решаю быстро перезагрузить машину (я в удаленном режиме). К сожалению, в панике я нажимаю «установить обновления и выключение» вместо этого: P

Само собой разумеется, что в Швеции не было большой поддержки клиентов в течение следующих получаса, прежде чем нам удалось ее перезапустить.

Хотя коллега был хуже меня, он однажды вечером отладил систему автоматического голосового ответа и перенаправил номер на свой мобильный. Единственное, что он забыл переключить обратно, у него был выходной на следующий день и он оставил свой мобильный на работе. Нам интересно, почему он постоянно звонил в тот день :)

Homde
источник
1

Argh, 11 вечера, закрытие лаборатории, быстро, быстро ...

$ enscript -o midterm.hs midterm.hs
$ submit midterm.hs
Error: submission is empty

Боже, нет! FFS. Я имел ввиду PS ты ****!

Orbling
источник
Извиняюсь за языковой стиль, он нужен для аутентичности.
Orbling
0

Некоторое время назад, когда я кодировал JS, я не смог различить «1» (один) и «1» «маленький L». Даже когда я печатал этот ответ, в редакторе оба выглядят почти одинаково!

Гопи
источник
Почему голосование против?
Гопи
0

Я создал язык шаблонов сайтов , в ранней версии которого все параметры HTTP были неявно расширены как переменные. Это означало, что вы можете написать URL-адрес как:

page.vis? body = <body> <p> О, дорогой </ p> </ body>

И это будет делать именно то, что выглядит, как это делает.

К счастью, у меня нет пользователей (вздыхает), поэтому я думаю, что это не слишком большая угроза безопасности.

Джон Перди
источник
0

Определенно неудача TSQL - слишком много операторов TSQL в одном окне редактора. Я немного устал, и люди перебивали меня влево и вправо, и я дал команду, которая обновила 47 000 записей адреса, города, штата и почтового индекса. Если бы это было исправлено примерно через 25 минут.

Тим Класон
источник