Истории с тегом: факапы

Всего историй: 744

7684

Покончим с говнокодом

Второй курс технаря. Предмет «Программирование на C». Последняя пара, дело к вечеру. Вся группа с усердием выполняет лабы, дабы поскорее смыться пить пиво. Предмет ведёт бабуля — божий одуванчик. Ничего не предвещает беды.

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

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

Возмущению студентов не было предела, но вскоре оно сменилось радостью: всех отпустили домой.

7651

Бьём в одну точку

Однажды пришлось мне настраивать SMS-уведомления сотрудникам компании о предстоящих мероприятиях. Ну, как обычно: делаю выборку телефонов и имён из БД, перебираю массив и отсылаю сообщение: «%name%, напоминаем вам, что…» Вследствие того, что у одного пользователя может быть больше одного телефонного номера, сделал ещё один перебор массива с номерами внутри массива с сотрудниками. Поставил LIMIT 1 в SQL-запросе, проверил на себе — всё работает. Убрал лимит и запустил скрипт.

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

7616

Это вон туда

Я 1С-разработчик в учебном заведении, имеющем филиалы и представительства в массе регионов нашей чудесной страны и не только. Последние несколько дней пишу справку к конфигурации.

Содержание лежит в HTML-документе. В хранилище в интересах теста я поместила тестовую справку. Сверху — содержание; ниже через якоря более подробно расписаны пункты, и из каждого такого подробного пункта можно вернуться в корень по ссылке «На х#й» 24-м шрифтом.

Случается неведомый природе сбой, и я больше не могу работать с хранилищем. Главная справка разработческой конфигурации содержит мои «нах#и». В полночь Золушка превратится в тыкву: рабочая база обновится с разработческой, и сотрудники, филиалы и представительства других городов при попытке вызвать справку увидят моё творение, направляющее их на путь истинный.

После очередного рестарта я всё же смогла заменить все «На х#й» на «Содержание». Паника отошла, теперь как-то даже немножко обидно, что не удалось так масштабно высказаться. И только сохранённая история немножко будоражит.

7589

Господин Йцукен?

Нужно было как-то сделать форму регистрации на сайте. Целый день посвятил отладке и тестированию этой задачи: безбожно вбивал различные левые данные, что проверить, грамотно ли скрипт отрабатывает. Восемь часов регистрировал новых пользователей, заполняя поля формы ерундой вроде «qwe123».

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

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

7549

Минус минус два

В славном городе Мельбурне сложная система оплаты проезда на общественном транспорте. Можно купить билет на два часа, на день, проездные на неделю, месяц и год. Всё это поделено на зоны (центр — зона 1, вокруг — зона 2). Для полного счастья — ещё и скидка в выходные.

Недавно появились универсальные карточки, счёт которых можно пополнить и не заботиться о разных типах билетов (кроме проездных): система автоматически спишет нужную сумму по самому выгодному тарифу. Причём она очень старается пассажира не обидеть: если утром списали «два часа», вечером пересчитают на «день» и снимут только разницу в стоимости.

А теперь немного цифр: несколько месяцев назад билет на два часа в зоне 1 стоил 2,94 доллара, а билет выходного дня (в любой зоне) — ровно 3. Если же купить проездной в зону 1 и проехать в зону 2, умная система засчитывала 2,94 и списывала только 6 центов.

А потом стоимость билета на два часа подняли до 3,02 долларов, и система начала исправно начислять всем пассажирам в таких случаях по 2 цента.

7538

Аутсорсер поневоле

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

7519

Шли учения

Недавно устроился админом в небольшую компанию. Конечно же, основной клиент — бухгалтерия. Первое задание: установить новый системник и перенести на него все программы и базы со старого. Забрал комп к себе, накатил софта, настроил, погонял разными стресс-тестами. Осталось установить и вбить настройки в программку для сдачи какой-то отчётности через интернет.

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

По возвращении она начала возмущаться: дескать, кто выключил её компьютер?! Там зарплата была, она её полдня набивала! Я решил поучить её уму-разуму, начал рассказывать, что нельзя оставлять работу несохранённой. Мало ли — скачок напряжения, например, и всё — кранты. Но бухгалтерша ни в какую не хотела внимать моим словам.

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

Хорошо, что я всё предусмотрительно сохранил перед отправкой компа в сон. А бухгалтерша с тех пор сохраняется каждые пять минут и как-то с опаской на меня смотрит.

7507

Жизнь до девочки-робота

2006 год. Работаю в фирме, продающей всякое компьютерное оборудование. Собираем системник. Требование клиента: официальная версия Windows. Получаем на складе коробочку, ставим — нужна активация. В этот день, как назло, наш интернет был мертвее всех. Что ж, активируем по телефону. Звоним по номеру, указанному на коробочке.

— Алло, это служба поддержки Microsoft?

— &#я, это квартира, вы за#$али сюда звонить!

Проверил: номер набрали правильно. На складе оставалось ещё полсотни коробочек с «правильным» номером…

7485

Контрольный клик в голову

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

Решили беду побороть. Наняли одинэсников, сунули им десяток билетов в Хабаровск и сказали «фас».

В числе прочего переработке был подвергнут интерфейс кассира. Раньше для оплаты банковской картой надо было вводить сумму покупки с минусом — отрицательную сумму программа определяла как безналичную. Это вызывало сбои с непонятными причинами, поэтому такую опцию убрали и поставили кнопку «Нал — Безнал». По умолчанию кнопка стоит в режиме «Нал», после нажатия переключается в «Безнал» на один чек. При пробитии наличного чека программа спрашивает внесённую покупателем сумму, рассчитывая сдачу, а при пробитии безнального ждёт подтверждения, действительно ли юзер хочет пробить чек безналом.

Внутреннее тестирование система с блеском прошла — пустили в бой. Спустя неделю в конце смены звонит кассир: у неё денег в кассе на 200 рублей больше, чем в сменном отчёте, а в отчёте на эту же сумму больше безнала, хотя она по картам ничего сегодня не пробивала. Думаю, что ошиблась — мало ли. Делаю возврат безнала по кассе без чека продажи (довольно серьёзное нарушение) и пробиваю ту же сумму налом.

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

Следующий день. Кассир уже чуть ли не плачет, а бухгалтерия собирается меня расчленить заживо и съесть без соли. Ещё раз напрягаю одинэсников. Ничего.

В следующую смену прошу тётку попытаться понять, при каких условиях происходит ошибка. Звонит и говорит, что пришла на работу, открыла программу, а она «сама» переключила на безнал. Тётя заметила и переключила обратно на нал.

Звоню одинэсникам. Пытаюсь говорить спокойно. Они предлагают мне открыть код. Своими глазами вижу, что стоит явное присваивание при открытии окна. Смущает, что косяк только у одного кассира. Иду к тётке. Целый день стою и смотрю, как она работает, периодически снимая отчёты. Ничего. Хочется закурить, хотя уже почти год как бросил.

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

— Вот! Смотри! Она опять сама переключилась!

Отгоняю тётку от компа, закрываю 1С, пробую сам. Всё нормально. Снова тётка. Снова ошибка. Как?! Краем глаза замечаю кое-что, пробую сам. Эврика!

При открытии базы окно 1С разворачивалось на весь экран, а вот вложенное окно модуля кассы — нет. Тётка распахивала внутреннее окно на весь экран двумя щелчками по кнопке. Первый действительно разворачивал окно, а второй доставался кнопке «Нал — Безнал».

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

7433

Аид на связи

Работал я в уважаемом банке. Пришли плохие времена, лицензию отобрали, по коридорам бродят новые люди. Меня послали переселить нашего главного шефа в новый кабинет, комп подключить и новый телефонный номер выдать. Прихожу, всё втыкаю, нахожу в кроссе первый свободный номер и иду к себе подписать его в АТС — имена потом на дисплеях отображаются.

Порт, видимо, раньше глючил и был подписан у меня «Мёртвый». Пока я шёл в серверную, шеф успел кому-то позвонить; там ужаснулись и меня сдали. С трудом смог я объяснить, что имел в виду и что это за шутки в трудное для банка время.