Как и вопрос, который я прочитал о сбое сервера, какая самая большая ошибка, которую вы когда-либо совершали на позиции, связанной с ИТ. Несколько примеров от друзей:
Мне нужно было поработать на производственном сайте, поэтому я решил скопировать действующую базу данных на бета-сайт. Довольно стандартно, но когда я зашел на бета-сайт, он все еще собирал устаревшую информацию. OOPS! Я скопировал бета-версию базы данных на живой сайт! Слава богу за резервные копии.
И для меня я создал форму для мероприятия, которое должно было быть проведено в течение определенного периода времени. Участники заполняли форму, чтобы получить шанс на победу, и мы отправляли организаторам мероприятия CSV из базы данных. Я вошел в базу данных и нашел ТОЛЬКО 1 ВХОД, МОЙ. После расследования кажется, что я забыл ключ автоинкремента, и из-за настройки сервера не было никакого способа восстановить потерянные данные.
Я знаю, что этот вопрос похож на вопросы о переполнении стека, но те, которые я нашел, похоже, получили общие ответы вместо реальных историй :)
источник
Ответы:
Выдача SQL UPDATE с «плохим» предложением WHERE, которое соответствует всему.
Извлеченный урок: всегда сначала выполняйте команду SELECT, чтобы увидеть, что изменится.
источник
Опечатка-х
Потратил три солидных дня на этот кусок:
Видите ошибку? Это точка с запятой в конце
else if
. Я не мог понять, почему мои удаленные комментарии не были удалены. Вкопанный в базу данных, запрос AJAX, который я использовал, переменные POST, имелerror_log
иalerts
везде . Закончилось переписывание метода, и это сработало. Затем я сделал различия с оригинальной версией и заметил точку с запятой.Опечатки сложнее всего найти на языке, который не компилируется и не проверяется чем-то другим. Даже ошибки, подобные этой, будут затруднены на скомпилированном языке. Измените
==
на,=
и вдруг у вас есть назначение внутриif
.источник
Думая, что программирование в основном о создании новых интересных вещей с нуля.
источник
Моей самой большой ошибкой было думать, что программирование - это легкие деньги ...
источник
Случайно удалили базу данных, в которой хранилась вся информация о наших клиентах, история заказов и счета, начиная с момента основания компании (на несколько лет).
Чтобы быть справедливым, мой работодатель должен разделить часть вины все же. У них была единственная копия этой базы данных, хранящаяся на Mac SE (да, это было давно), которую они предоставили мне (совершенно новый сотрудник, первая работа после окончания колледжа) в качестве моей рабочей станции и никогда даже не думали делать резервную копию.
Поэтому, думая, что это копия БД, я перетащил ее в мусорное ведро. Из-за размера файла он удалил его немедленно. В конце концов мы вернули его после того, как заплатили нечестивую сумму службе восстановления данных, но в течение примерно 5 дней мы не могли выполнить или выставить счет ни одному заказу, и у нас не было доступа к информации о каком-либо клиенте. Это в значительной степени принесло (компания из 3 человек) в тупик.
источник
когда phpmyadmin спросил:
"Вы собираетесь УНИЧТОЖИТЬ полную базу данных! Вы действительно хотите DROP DATABASE xxx?"
Я нажал Enter.
источник
Не уверен, что это была моя «самая большая ошибка», но определенно запомнилась. В первую или две недели моей новой работы мне было поручено сделать небольшое «улучшение возможностей», которое включало изменение порядка сортировки некоторых элементов на одной из самых популярных страниц сайта. Я не был слишком знаком с базой кода, но быстро нашел соответствующий Comparator и добавил вызовы к нескольким безвредно выглядящим методам внутри метода compareTo, не слишком задумываясь об этом. Код протестирован локально и в QA без проблем и запущен.
В тот же день у меня был один на один с моим боссом, и с широкой улыбкой на лице он поздравил меня с тем, что я получил мою первую "особенность" в прямом эфире так скоро после присоединения. Мы оба посмотрели, как он зашел на соответствующую страницу, чтобы увидеть эту функцию в действии. Загрузка страницы заняла 47 секунд. Мое сердце замерло. Он обновил страницу: 53 секунды. Его улыбка исчезла. Я вернулся к своему столу и провел долгий вечер отладки и установки критических исправлений на сайт.
Оказалось, что одним из безвредных методов, которые я добавил, был вызов удаленной службы, который привел по крайней мере к одному обращению к БД. В каждом сравнении звонить. Итак, на странице, где сортировалось более 2000 элементов, я делал ~ 6000 (nlogn) посещений БД. Уч.
источник
Я сделал это:
(На самом деле, я не сделал этого точно . Это было бы глупо и непростительно. Я сделал это более тонким, окольным путем, что привело к выполнению этой команды.)
Излишне говорить, что система Unix была непригодна для использования после этого момента, и ее пришлось переустанавливать. Я был начинающим сисадмином в то время, и старший парень, наблюдавший за мной, понимал.
Некоторое хорошее пришло из опыта. Я узнал, как составлять список каталогов без использования команд / bin.
источник
Заказчик хочет получить рассылку для всей своей пользовательской базы, которая в основном отправит персонализированное электронное письмо о событии, и когда он щелкнет ссылку в письме, он автоматически войдет в форму с заполненной половиной данных.
Я пишу код, тестирую код, он работает нормально, ссылки работают, это довольно гладко. Проверив и перепроверив все, я переключаюсь на живой список, и мы идем.
Живой список значительно больше, чем мой пример данных, и почтовый сервер падает. Я должен остановить свое консольное приложение, а затем понять, что мне придется перезапустить его с того места, где оно остановилось. К счастью, эту функцию не так уж сложно добавить, и я зарегистрировал, к каким пользователям уже пришла рассылка, поэтому снова включил и снова запустил почтовый сервер и перенастроил код, чтобы можно было перезапустить его с того места, где он ранее не работал, и сделать паузу. чтобы почтовый сервер наверстал упущенное.
К сожалению, мне как-то не удалось правильно все обновить код. Я не помню деталей того, что я сделал, но запрос для получения пользовательских данных получал один набор данных, запрос для генерации хеш-кода получал другой, поэтому, если пользователь нажимал на ссылку, он попадал на форма, которая содержала чьи-либо личные данные из данных их аккаунта. И это в нишевой отрасли, где было много конкурентоспособных малых предприятий в списке.
Вскоре телефон зазвонил в офисе клиента ...
До сих пор это была единственная ошибка, из-за которой я подал в отставку.
источник
Однажды я использовал перекрестное соединение без фильтра. Отлично работал на тестовой базе данных с небольшой долей данных. Когда он был развернут, в среднем в запросе было ~ 60 миллионов строк.
источник
Я разбил лазерный сканер за 100 000 $.
Контроллер сохранял позиции как целые, поэтому я разделил все на 10000, чтобы получить фактическую позицию в дюймах.
Когда последняя цифра была 0, она была опущена, поэтому ось Z была в 10 раз дальше.
Хиллариус последовал
источник
С другой стороны, это было пятилетнее приложение VB6.
источник
Позволил моему менеджеру побить меня и уйти с работы, которую я любил. Я должен был позволить ему все испортить, уволить, а потом я должен был подойти и навести порядок. Вместо этого я ушел и сожалел об этом с тех пор.
источник
Семь лет назад мой начальник и владелец компании, с которым я еще не встречался, я был настолько новичком в этой работе, находился в другом штате и делал демонстрацию нашего исследовательского веб-сайта для пары потенциальных клиентов. Членские взносы варьировались от пяти до пяти, поэтому эти демонстрации были очень важны для нашей молодой компании.
В середине его демонстрации, когда я выполнял какую-то работу с базой данных, я внес изменения в оперативную базу данных и обновил каждый вопрос опроса в каждом опросе до того же текста, что-то вроде «Это тестовый вопрос» из-за недостатка в ГДЕ. Мой коллега и я боролись за резервное копирование и съежились, надеясь, что он не демонстрировал этот раздел сайта прямо сейчас, а ждал письма со всеми заглавными буквами, которые с благодарностью никогда не появлялись.
Хорошей стороной было то, что босс, наконец-то, пришел в разработку.
источник
Я запустил линуксовую связь Xenu в нашей интрасети, чтобы попытаться выяснить некоторые из множества неработающих ссылок, которые создавались за эти годы (большинство, что неудивительно, были ссылки из вики на общий сетевой диск).
Примерно через 30 минут я начал замечать, что на некоторых новинках появились странные картинки, похоже, что люди использовали некоторые старые зернистые стоковые фотографии, которые были в системе, но я проигнорировал мысль о том, что, возможно, просто не было ничего более нового, чем было то, что они хотели.
Еще через 10 минут я заметил, что избранные элементы по какой-то причине менялись случайным образом. В этот момент меня осенило, что происходит. В интрасети используется проверка подлинности Windows, и некоторые функции (такие как выбор изображений новостей и рекомендуемые элементы) были закодированы для ответа на запросы HTTP GET. Средство проверки ссылок использовало мою аутентификацию и сканировало страницы администратора, лояльно выполняло свою работу и следило за всеми найденными ссылками, включая такие, как
/admin/displayItems/icon_update.asp?image=eastereggs.jpg&itemID=3174
источник
До сих пор моей единственной ошибкой, вызывающей скручивание желудка, увеличение частоты сердечных сокращений, внезапно становящейся горячим и зудящим, был запуск запроса UPDATE без предложения WHERE. К счастью, за последние 15 минут была резервная копия, и данные менялись не очень часто, что означало, что я смог полностью восстановить данные в течение 10 минут, и никто не знал.
Ничего страшного, но у меня были близкие звонки. Они являются и остаются близкими звонками, потому что я слышал достаточно ужасных историй в этой отрасли, что все, что я делаю, может все испортить.
источник
Для робота, над которым я работаю, мы храним файл журнала каждого запуска. У нас есть робот и симулятор, которые генерируют эти папки журналов. Лог-файлы симулятора бесполезны, но лог-файлы роботов очень полезны и хранятся вечно.
Поскольку сам робот имеет ограниченное пространство на жестком диске, они переносятся на другой компьютер и хранятся там. Этот компьютер является основным операционным компьютером для связи с роботом.
Ну, я только начал работать над роботом пару месяцев назад и не знал этого. Я думал, что журналы на рабочем компьютере были бесполезными, сгенерированными симулятором, и удалил их. Мы потеряли все старые журналы, потому что не было надлежащей резервной копии.
источник
Создала версию нашего программного обеспечения на моем компьютере вместо компьютера для сборки, поскольку она была быстрее (примерно на 4 часа быстрее, что означало, что она может перейти в QA в этот день вместо следующего), и издатель хотел ее как можно скорее.
У меня было специальное определение для отладки на моем компьютере, которое вызвало ошибку, которая не была обнаружена в QA. Они обнаружили его только по истечении 4 недель проверочного тестирования, но оно оказалось достаточно плохим, чтобы не пройти проверку.
источник
Случайно удалите производственную базу данных вместо версии для разработчиков. Я не видел, на каком сервере я работал. К счастью, последняя резервная копия была сделана 4 часа назад, и пользователь не внес много изменений в систему, поэтому нет большой потери данных.
источник
Самая большая ошибка, которую я когда-либо делал, заключалась в том, что я не работал над управлением исходным кодом на моей машине для разработки. Мой жесткий диск сломался, и я потерял несколько недель работы. Это усердный урок, и я никогда не позволю этому случиться снова.
источник
Использование
==
вместоequals
сравнения строк в Javaисточник
==
есть сравнительное сравнение. В C #==
выполняется сравнение значений в строках, как и в случае с.Equals()
тем, что есть некоторые различия, см. Ответ Джона Скита здесь: stackoverflow.com/questions/3678792/…Я сказал своему директору, что тот факт, что он старше и имеет больше лет опыта, чем у меня, не означает, что я буду его уважать. Единственное, что я бы уважал, это СПОСОБНОСТЬ. Мне не пришлось сталкиваться с последствиями такого жалкого заявления, возможно, потому что я был младшим программистом, чем. Оглядываясь назад, это кажется моей ошибкой. Где был мой здравый смысл \ смирение ?? :-(
источник
Это случилось с коллегой в этом месяце.
Он исправлял ошибку, которая возникала при отправке SMS на многие мобильные телефоны. Обычно эти сообщения не отправляются, чтобы сэкономить на затратах, но из-за неверной конфигурации в нашей базе данных они действительно были отправлены.
Стоимость: месячная оплата SMS-трафика.
источник
По запросу менеджера я скопировал
/etc/sudoers
с одной машины на другую (хотя это не решило бы проблему под рукой, но это не относится к делу). К сожалению, я обычноsudo
перемещал скопированный файл на место, не замечая, что его владелец и права были полностью неверны. В тот момент ни у кого не было открытой оболочки root, никто не могsudo
, и никто не мог войти в систему как root, потому что его оболочка была установлена в/bin/false
. И машина была в удаленном хранилище данных ...источник
Я хотел создать файлы метаданных для каждого файла в каталоге (то есть для каждого файла
somedir/foo.bin
я хотел бы создать файлsomedir/foo.bin.meta
). По какой-то глупой причине я решил создать файлы, открыв и закрыв поток файлов через Python:По какой-то еще более глупой причине я подумал, что было бы разумно протестировать этот скрипт в каталоге на моем жестком диске с несколькими гигабайтами личных данных. Только после его запуска я понял, что на самом деле я забыл изменить имя файла до его передачи
open
и что я только что обрезал каждый файл в этом каталоге (ой).К счастью, это было на персональном компьютере и не повредило ничего важного, но я все же усвоил урок.
источник
Я работал в компании, которая занимается поддержкой клиентов одной из крупнейших телекоммуникационных компаний Швеции. На нашем сервере было некоторое программное обеспечение, которое регулировало очередь входящих вызовов, сколько вызовов мы могли принять и так далее. Если это не сработало, мы не получали никаких звонков, а клиенты не получали никакой поддержки.
Aaaaanyway, я сделал (незначительные) изменения в программном обеспечении. Я мог бы подождать, пока окно службы изменит его, но подумал: «Эй, перезапуск службы займет одну минуту, зачем беспокоиться. Фортуна любит смелых». Поэтому я перезапустил его, к сожалению, поток был заблокирован, поэтому я не смог его заменить. Начиная паниковать, я решаю быстро перезагрузить машину (я в удаленном режиме). К сожалению, в панике я нажимаю «установить обновления и выключение» вместо этого: P
Само собой разумеется, что в Швеции не было большой поддержки клиентов в течение следующих получаса, прежде чем нам удалось ее перезапустить.
Хотя коллега был хуже меня, он однажды вечером отладил систему автоматического голосового ответа и перенаправил номер на свой мобильный. Единственное, что он забыл переключить обратно, у него был выходной на следующий день и он оставил свой мобильный на работе. Нам интересно, почему он постоянно звонил в тот день :)
источник
источник
Некоторое время назад, когда я кодировал JS, я не смог различить «1» (один) и «1» «маленький L». Даже когда я печатал этот ответ, в редакторе оба выглядят почти одинаково!
источник
Я создал язык шаблонов сайтов , в ранней версии которого все параметры HTTP были неявно расширены как переменные. Это означало, что вы можете написать URL-адрес как:
И это будет делать именно то, что выглядит, как это делает.
К счастью, у меня нет пользователей (вздыхает), поэтому я думаю, что это не слишком большая угроза безопасности.
источник
Определенно неудача TSQL - слишком много операторов TSQL в одном окне редактора. Я немного устал, и люди перебивали меня влево и вправо, и я дал команду, которая обновила 47 000 записей адреса, города, штата и почтового индекса. Если бы это было исправлено примерно через 25 минут.
источник