Найбільша помилка, яку ти коли-небудь робив [закрито]


33

Подібно до запитання, яке я читав у серверній помилці, що є найбільшою помилкою, яку ви коли-небудь робили на посаді щодо ІТ. Деякі приклади друзів:

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

І для мене я створив форму для заходу, який мав відбутися протягом певного часового діапазону. Учасники заповнюють форму, щоб отримати шанс на перемогу, і ми надішлемо організаторам заходу CSV з бази даних. Я зайшов у базу даних і знайшов ТІЛЬКИ 1 ВПИС, МИНУ. Після дослідження виявляється, що я забув ключ автоматичного збільшення, і через налаштування сервера не було можливості відновити втрачені дані.

Мені відомо, що це питання схоже на запитання в Stack Overflow, але на ті, які я знайшов, здавалося, отримували загальні відповіді замість фактичних історій :)

Яка найбільша помилка / помилка кодування коли-небудь…


6
питання Гіннеса!
Молодший М

Чому o, чому це питання було закрито? Я відчуваю необхідність додати свою власну велику помилку: після розгортання у виробництві я знімав веб-сайт LIVE протягом трьох годин (тобто 500 HTTP-статусу) після того, як мені спеціально сказали НЕ ЗАБЕЗПЕЧАТИ ДО ВИРОБНИЦТВА. Найгірше, що я намагався приховати помилку, але клієнт помітив і не здався дуже щасливим.
Марія Інес Парнісарі

Легкий для мене. Виплачені вилучення інвестицій, але перераховані в центи двічі. Виплачено 3 млн замість 30 к. Runner up - неправильний SQL, де застереження. Повідомлили 4 тис. Людей, що їхні 1 - 10 $ інвестиції зросли на 1800 доларів за ніч. Очевидно, деякі з цих клієнтів пішли і витратили гроші. Відновлено досить швидко фінансово. Порушена впевненість і провина ніколи насправді не минали. Як відновитись: взяти на себе відповідальність. Визнайте свою помилку. Не звинувачуйте нічого іншого, навіть якщо були фактори, що сприяють. Це було задоволено розумінням та зусиллями команди, щоб виправити це. Клієнт оцінив чесність.
Reasurria

Відповіді:


54

Випуск SQL UPDATE з "поганим" пунктом WHERE, який відповідає всім.

Заняття уроку: Завжди завжди виберіть SELECT, щоб побачити, що буде змінено.


15
Або встановіть функцію автокомісії на значення false, щоб ви могли побачити, скільки рядків буде задіяно.
Євгеній Брікман

2
О, я це зробив. Дуже неприємно ...
Гленатрон

4
Ха-ха, я думаю, кожен з деяким SQL під поясом робив це за певний час, включаючи мене
billy.bob

3
Ось чому оновлення слід робити спочатку на розробниках! Немає гарячих виправлень безпосередньо для додавання. І будьте дуже вдячні за таблицями аудиту, якщо у вас їх є, коли ви це робите.
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.


8
Ось де такі інструменти, як Resharper, справді можуть окупитися - це виділило б це як попередження та запропонувало вам його зняти.
Яаков Елліс

24
Чи назва титулу (призначений) каламбур? : o
Agos

3
@ Rogue Coder: різниця між одинарними та подвійними котируваннями суттєво мала. Це неправильне використання часу, щоб провести мозкові цикли, переживаючи про це. Дивіться тест внизу сайту phpbench.com
Joeri Sebrechts

2
@ back2dos: Помилка ... правильно. Тож ви рекомендуєте відмовитись від усіх згаданих мов на користь haXe? Щось, що вперше з’явилося в 2005 році? Вперед з цим.
Джош К

10
Дякую за аргумент на користь стилю One True Brace. +1
eswald

28

Думаючи, що програмування здебільшого полягає у створенні нових цікавих матеріалів з нуля.


1
Коли я вперше почав, у мене теж була така думка. Тоді я дізнався, що у інших народів набагато більше, ніж усього іншого. Ось чому я намагаюся зараз написати найкращий код (з коментарями), який я можу.

2
Є ще багато нового коду для написання. Багато проектів з відкритим кодом вимагають кодування з нуля, що реалізує ту ж функціональність, що і закрита система.
ПП.

23

Моя найбільша помилка була думка, що програмування - це легкі гроші ...


27
Якщо ви зайнялися програмуванням за гроші, вам слід отримати нову кар’єру. Не те, щоб грошей не було, є, але вам потрібна нав’язлива любов до програмування, яку мають справжні розробники, або ви дуже швидко
вигоріть

1
Ви зробили гарний момент. Я справді не вдавався в програмування за гроші, але я дійсно думав, що жити від цього буде набагато легше. Програмування - це моя пристрасть, і я би зробив це, навіть якщо мені доведеться платити.
Марсело де Агіяр

4
@johnc так само пішов би для більшості професій. Я, чесно кажучи, не розумію людей, які ходять до університету, щоб "вивчити програмування". Я почав, коли мені було 14 років з K&R. Я пішов до університету, щоб "вивчити електроніку" - але здогадайтесь що, я все-таки закінчився програмістом. Самі кращі музиканти навчали себе. Найкращі програмісти навчали себе. Це життя.
ПП.

Амінь брат, амінь
Misters

23

Випадково видалили базу даних, в якій зберігалася вся інформація про наших клієнтів, історія замовлень та рахунки-фактури, що повертаються до початку роботи компанії (варто кілька років).

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

Отже, думаючи, що це копія БД, я перетягнув її до кошика. Через розмір файлу видалили його негайно. Зрештою, ми отримали її назад після сплати нечестивої суми за послугу відновлення даних, але близько 5 днів ми не могли виконати або виставити рахунок жодних замовлень і не мали можливості отримати доступ до інформації про будь-якого клієнта. Це в значній мірі призвело до зупинки (3 компанії).


15
Ой. Примітка для самостійного використання: Завжди візьміть резервну копію: навіть якщо вже передбачається резервна копія.
Відновити Крамію Моніку

1
@Karmii: Найкраща порада, руки вниз.
Кріс

@Kramii - Радий, що я навчився цього уроку на початку своєї кар'єри.
JohnFx

Вас не звільнили?
Mateen Ulhaq

3
Було достатньо провини, щоб обійти. Тоді я був просто дитиною і, мабуть, наївніший, ніж сьогодні, коли б припустити, що справжня компанія зробить щось так нерозумно, як поставити єдину копію БД на робочий стіл. Досвід показав мені, що недоцільно переоцінювати готовність мого роботодавця навіть у великій компанії.
JohnFx

15

коли phpmyadmin запитав:

"Ви збираєтесь ЗАБЕЗПЕЧИТИ повну базу даних. Ви дійсно хочете ЗРОБИТИ ДАТАБАСУ xxx?"

Я натискаю Enter.


26
Чудовий приклад того, коли захисне програмування допомогло б запобігти головним проблемам. Якщо ви робите щось, де наслідки можуть бути серйозними, як, можливо, випадання таблиць / баз даних, за замовчуванням відповідь користувача на "Ні", щоб вони АКТИВНО погодилися на дію.
Гюго

6
@Hugo: +1. У мене був професор університету (колишній Unix / база даних sysadmin), який казав, "коли ти робиш щось серйозне, завжди знімай руки з клавіатури і сиди на них хвилин десять і думай про те, що має відбутися".
Столи Бобі

1
@Hugo: Я йду далі - "Ви збираєтесь Зняти повну базу даних! Якщо ви дійсно хочете знищити DATABASE xxx, введіть DELETE:"
Loren Pechtel

3
@Hugo @Loren Pechtel - "Ви збираєтесь ЗАБЕЗПЕЧИТИ повну базу даних! У веб-пошуку вашого логіна з'явилося кілька випадків" lol ", і тому ця дія відхилена. Будь ласка, перегляньте свого адміністратора або навчіться спілкуватися."
декретно

15

Не впевнений, що це моя «найбільша помилка», але, безумовно, пам’ятна. У перший або два тижні на новій роботі мені було призначено зробити невелике "покращення функції", яке передбачало зміну порядку сортування деяких елементів на одній з найпопулярніших сторінок сайту. Я не надто ознайомився з базою коду, але швидко знайшов відповідний компаратор і додав дзвінки до пари нешкідливих на вигляд методів порівняння, не надто замислюючись над цим. Код перевірявся на місцевому рівні та у питаннях, пов'язаних із забезпеченням якості, та розповсюджувався.

Того ж дня я зі своїм начальником провів 1 на 1 і з великою посмішкою на обличчі він привітав мене з тим, що я отримав свою першу "функцію" в прямому ефірі так скоро після приєднання. Ми обидва подивились, як він відвідав відповідну сторінку, щоб побачити функцію в дії. На завантаження сторінки знадобилося 47 секунд. Моє серце затонуло. Він оновив сторінку: 53 секунди. Усмішка його зникла. Я повернувся до свого робочого столу і провів довгий вечір налагодження та підштовхування критичних патчів до веб-сайту в прямому ефірі.

Виявляється, одним із нешкідливих для мене способів вигляду був віддалений виклик служби, який призвів до принаймні одного звернення до БД. У кожному порівнянні для дзвінка. Отже, на сторінці, де було відсортовано 2000+ елементів, я робив ~ 6000 (nlogn) звернень до БД. Ой.


Чи було очевидним ударом БД у вашому коді, чи це траплялося в якомусь методі / властивості, яку ви телефонували?
dbkk

Враження БД насправді було приховано за методом, який був схожий на простий геть: я додав виклик myObj.getFoo () у методі CompareTo. JavaDoc у відповідному підкласі відзначав можливість звернення до БД, але JavaDoc в інтерфейсі myObj (на що я дивився при написанні коду) нічого подібного не згадував. В будь-якому випадку я вважаю, що це явна демонстрація (а) неадекватного тестування від мого імені та (б) що може статися, якщо ви не будете дотримуватися правильних конвенцій про іменування.
Євгеній Брікман

Більш ймовірно, що (дуже поширений) випадок тестового середовища не був представником виробничого середовища. Ви перевірили це, він працював гідно, тому ви зробили висновок, що це добре, ніколи не знаючи (і тоді ви не могли мати), що тестова база даних містить лише частину даних, що містяться у виробничій базі даних.
jwenting

15

Я зробив це:

rm -rf /bin

(Насправді я не робив саме цього. Це було б глупо і недоцільно. Я робив це більш тонким, круглим способом, що призводив до того, що команда по суті виконується.)

Потрібно сказати, що система Unix після цього моменту була непридатною і її потрібно було знову встановити. Я в той час був початковим сисадміном, і старший хлопець, який наглядав за мною, розумів.

Деякі користі отримали досвід. Я дізнався, як перераховувати каталоги, не маючи жодної команди / bin.

echo *

+1 вивчив хитрощі, як моделювання ls та cat, використовуючи лише конструкції оболонки Bourne з режиму однокористувача в системі DEC-BSD
Arcege

11

Клієнт хоче отримати поштову пошту на всю свою базу даних користувачів, яка в основному надішле персоналізований електронний лист про подію, і коли він натисне на посилання в електронній пошті, автоматично ввійде у форму із половиною заповнених даних.

Я пишу код, тестую код, він прекрасно працює, посилання працюють, це досить гладко. Перевіривши і ще двічі перевіривши все, я переходжу на прямий список і ми вирушаємо.

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

На жаль, мені якось вдалося не встигнути оновити весь код правильно. Я не пам'ятаю подробиці того, що я робив, але запит на отримання даних користувача отримував один набір даних, запит на генерування хешу отримував інший, тому, якщо користувач натиснув на посилання, він потрапить до форма , яка містила чужий персональні дані своїх реквізитів. І це в нішевій галузі, де в списку було чимало конкурентних малих підприємств.

Не зайняло багато часу, щоб телефон почав дзвонити в офісі клієнтів ...

Це була єдина помилка поки що, що призвело до того, що я запропонував свою відставку.


+1 для реальних даних, значно більших за вибіркові дані :-(
голого фанатику

ІМО, це одна з найгірших> _ <
sevenseacat

7

Колись я використовував перехресне з'єднання без фільтра. Працював чудово на тестовій базі даних з часткою даних. Коли він розгорнувся, він закінчився ~ 60М рядками в середньому запиті.


14
Насправді найбільша ваша помилка полягала в тому, що не розробити бази даних відповідного розміру. Ніколи не використовуйте невелику тестову дату для розробки великої виробничої бази даних. Ви не можете писати код виконавця, якщо у вас є потрібна база даних.
HLGEM

7

Я розбив лазерний сканер на 100 000 доларів.

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

Коли остання цифра була 0, її було опущено, тому вісь Z була далекою у 10 разів.

Настала високість



5

Дозволяв моєму менеджеру переглядати мене, покинувши роботу, яку я любив. Я мав би дозволити йому зіпсувати речі, звільнити, і тоді я мав би посилитись та почистити шматки. Натомість я кинув і з тих пір шкодував про це.


17
Менеджери рідко звільняються за такі речі. Щоб дістатися до рівня менеджера, ви повинні дуже добре покривати свою тилу; ви, мабуть, стали козлом відпущення з тієї хвилини, коли ви вийшли з компанії. Можливо, ти міг би поводитися з цим інакше, але не бий себе над цим.
Марк Рансом

якби він заплутався, то вас звинуватили б і звільнили (або принаймні мали б сумний час, поки ви не зганьбитеся).
jwenting

4

Сім років тому мій бос і власник компанії, якого я ще не зустрічав, я був таким новим на роботі, був в іншому штаті, де демонстрував наш веб-сайт з дослідженнями для кількох потенційних клієнтів. Комісії за членство складали від низьких до середини п’яти цифр, тому ці демонстрації були великою справою для нашої молодої компанії.

У середині його демонстрації, коли я робив певну роботу з базою даних, я вніс зміни в живу базу даних і оновив кожне запитання опитування в кожному опитуванні на один і той же текст, щось на кшталт "Це тестове запитання" через недолік де. Ми з колегою прагнули створити резервну копію та поскакали, сподіваючись, що він не демонстрував того самого розділу сайту, а чекав електронного листа у всіх шапках, які з вдячністю ніколи не з’являлися.

Гарна сторона полягала в тому, що бос нарешті вийшов на коробку розвитку.


3

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

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

Ще 10 хвилин пізніше я помітив, що представлені речі чомусь змінювалися випадковим чином. У цей момент він надихнув на мені те, що відбувається. Інтранет використовує автентифікацію Windows, а деякі функції (наприклад, вибір новинних зображень та пропонованих елементів) були закодовані у відповідь на HTTP GET запити. Засіб перевірки посилань використовував мою аутентифікацію і переповз на сторінки адміністраторської сторони, лояльно виконуючи свою роботу та дотримуючись кожного знайденого посилання, включаючи такі, як

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


7
Це здається, як багато людей навчаються, коли доцільно використовувати GET і коли це доцільно використовувати POST
Oli

Домовились, я збирався розпочати роботу над переробкою інтрамережі, і це твердо поставило належне використання GET та POST на вершині вимог. ASP MVC також допомагає зробити це легко та інтуїтивно зрозуміло.
Чао

1
Насправді не ваша помилка, але все-таки хороша історія :-)
Дін Хардінг

3

Поки що моя єдина помилка, що скручується шлунок, збільшується серцебиття, раптом стає гарячою і сверблячою - запуском UPDATE-запиту без пропозиції WHERE. На щастя, було зроблено резервну копію за останні 15 хвилин, і дані не змінювались дуже часто, що означало, що я зміг повністю відновити дані протягом 10 хвилин, не знаючи ніхто.

Нічого занадто поганого, але у мене були тісні дзвінки. Вони є і залишаються близькими дзвінками, тому що я чув достатньо історій жахів у цій галузі, що все, що я роблю, що могло б накрутити речі, добре закінчується.


1
Чи не ви, хлопці, роблячи помилки БД, коли-небудь відмовляєте?
Черга Jé

@Xepoch, це допомагає лише в тому випадку, якщо ви розпочали транзакцію
CaffGeek

1
@Chad, чи не слід вважати, що всі виклики даних мають бути неявними транзакцій?
Черга

2
@Xepoch, ніколи не вважай.
CaffGeek

1
@Char, я маю особисті переваги щодо підтримки всіх взаємодій БД в рамках транзакцій. Ті, хто цього не робить, ризикують або мають ділові справи, які не хвилюються. Припущення специфікації та MANDATE - це те, що ми розпочнемо та підтримуватимемо кодові проекти з транзакційним управлінням БД.
Черга Jé

3

Для роботи, над яким я працюю, ми зберігаємо файл журналу кожного запуску. У нас є робот і тренажер, які генерують ці папки журналів. Файли журналів симулятора марні, але файли журналів роботів дуже корисні і зберігаються назавжди.

Оскільки сам робот має обмежений простір на жорсткому диску, його переносять на інший комп'ютер і зберігають там. Цей комп'ютер є головним операційним комп'ютером для спілкування з роботом.

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


8
Чорт ... я хочу працювати над роботами! Все, що я роблю цілий день, - це створення паршивих веб-сайтів.
Дан Рей

2

Вбудував на моєму комп'ютері версію нашого програмного забезпечення замість вбудованого комп’ютера, оскільки він був швидшим (приблизно на 4 години швидше, що означало, що він може перейти в QA того дня замість наступного), і видавець захотів його якнайшвидше.

У мене було спеціальне визначення для налагодження на моєму комп’ютері, що спричинило помилку, яку не було виявлено в QA. Вони виявили його лише наприкінці 4 тижнів перевірки валідації, але це було досить погано, щоб не вдалося здійснити перевірку.


2

Випадіть виробничу базу даних випадково замість версії розробки. Я не бачив, на якому сервері працюю. На щастя, остання резервна копія була створена 4 години тому, і користувач не вніс багато змін у систему, тому великих втрат даних не було.


Я мав це робити колеги. Тільки він думав, що він скидає свою місцеву копію, а не продюсер. Ми всі працювали, тоді чули, як він іде: "О, SH ** !!!!" То був веселий день.
Тяньна

2

Найбільшою помилкою, яку я коли-небудь робив, було те, що я не працював над контролем над джерелами своєї машини розвитку. Мій жорсткий диск вийшов з ладу, і я втратив тижні роботи. Це урок важко засвоєний, і те, чого я ніколи більше не дозволю, повториться.


не моя помилка, але пов’язана. У компанії, в якій я працював, один із їх веб-серверів скомпрометувався, надавши кореневому доступу зловмисника до сервера управління версіями (DMZ? Whazda?), Де він негайно виконав "rm -r /"
jwenting

2

Використання ==замість equalsпорівняння рядків на Java


13
Це найбільша помилка, яку ви коли-небудь робили?
Кріс,

Це набагато більше проблеми на Java, де ==є порівняння посилань. У C # ==робить порівняння значень для рядків, так само, як і .Equals() Сказаний, є деякі відмінності, дивіться відповідь Джона Скіта тут: stackoverflow.com/questions/3678792/…
Тім Гудман

2
@Tim: це все ще не відповідає, як це було "найбільшою помилкою, яку ти коли-небудь робив" ... Ще трохи контексту щодо наслідків, принаймні, було б приємно ...
Дін Хардінг,

Якщо найбільш відповідна відповідь стосується помилки друку, чим тут відрізняється моя відповідь? Якщо ви були початківець, зробити цю помилку майже неможливо налагодити і це може розчарувати вас цілий день.
нанда

@Dean: Це була не найбільша помилка, яку я коли- небудь робив ... Я просто роз'яснював різницю в поведінці тут із C # vs Java
Тім Гудман

1

Я сказав своєму директору, що те, що він СТАРИЙ і має більше років досвіду, ніж у мене, не означає, що буду його поважати. Єдине, що я б поважав, - це ЗДІБНІСТЬ. Мені не доводилося стикатися з наслідками такої жалюгідної заяви, тому що я був молодшим програмістом, ніж. Озирнувшись назад, здається, це моя найголовніша помилка. Де був мій здоровий глузд \ смирення ?? :-(


2
Я частково погоджуюся з вами, тому що хтось має більше досвіду (у роках), це не означає, що він (і) є кращим програмістом. Там є багато програмістів, які можуть написати "хх років досвіду" у своєму резюме, але не мають поняття, чим вони займаються.
Боббі

Вони, швидше за все, помиляються на дурній помилці, як ті, що перераховані тут, що зроблять більш уважним розробника
John

Щоб було зрозуміло, помилка не мала такого ставлення. Помилка сказала, що у вас таке ставлення.
Dan Ray

Я хотів сказати це багатьом людям протягом багатьох років.
Reasurria

1

Це сталося з колегою цього місяця.

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

Вартість: один місяць заробітна плата SMS-трафіку.


це дешево! :)
jwenting

1

На прохання менеджера я скопіював /etc/sudoersз однієї машини на іншу (навіть якщо це не вирішило б проблему, але це не в курсі). На жаль, я sudoпересував скопійований файл на місце, не помічаючи, що його власник та дозволи були абсолютно помилковими. У той момент у жодної кореневої оболонки не було відкрито, ніхто не міг sudo, і ніхто не міг увійти як корінь, оскільки її оболонка була встановлена /bin/false. А машина знаходилась у віддаленому сховищі даних ...


1

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

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

З якихось дурніших причин я подумав, що розумно перевірити цей скрипт проти каталогу на моєму жорсткому диску з кількома концертами особистих даних. Лише після його запуску я зрозумів, що забув фактично змінити ім'я файлу перед тим, як передати йогоopen і що я просто врізав кожен окремий файл у цьому каталозі (ouch).

На щастя, це було на персональному комп’ютері і не завдало шкоди нічого важливого, але я все-таки засвоїв свій урок.


1

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

На жаль, я змінив програмне забезпечення (незначну). Я міг зачекати, коли вікно служби змінить її, але я подумав: «Ей, для перезавантаження послуги знадобиться одна хвилина, навіщо турбуватися. Фортуна надає перевагу сміливим». Тому я перезапустив її, на жаль, нитка була заблокована, тому я не міг її замінити. Почавши панікувати, я вирішив швидко перезавантажити машину (я знімався). На жаль, в моїй паніці натискаю "встановити оновлення та вимкнути" замість: P

Зайве говорити, що у Швеції не було багато підтримки клієнтів протягом наступних півгодини, перш ніж нам вдалося її перезапустити.

Колега був гірший за мене, хоча він одну ніч налагоджував автоматизовану систему голосового реагування і перенаправляв номер на свій мобільний. Єдине, що він забув переключити назад, мав вихідний день і залишив мобільний на роботі. Нам цікаво, чому він дзвонив постійно того дня :)


1

Argh, 11pm, закриття лабораторії, швидке, швидке ...

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

Боже ні! FFS. Я мав на увазі PS ви ****!


Вибачте за мовний стиль, це потрібно для автентичності.
Увімкнення

0

Колись раніше, кодуючи JS, я не зміг розрізнити "1" (один) і "l" "малий L". Навіть коли я набирав цю відповідь, обидва виглядають у редакторі майже однаково!


Чому голосування "за"?
Гопі

0

Я створив мову шаблону сайту , в ранній версії якої всі параметри HTTP неявно розширені як змінні. Це означало, що ви можете написати URL-адресу:

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

І це зробить саме так, як виглядає.

На щастя, у мене немає користувачів (зітхаючи), тому, мабуть, це було не надто великим ризиком для безпеки.


0

Однозначно невідповідність TSQL - занадто багато тверджень TSQL в одному вікні редактора. Був трохи стомлений, і люди перебивали мене ліворуч і праворуч, і я видав команду, яка оновлювала 47000 записів адреси, міста, штату та zip - oops. Хоча це було виправлено приблизно за 25 хвилин.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.