bash.im ithappens.me zadolba.li

Факапы

1954

Критическая ошибка 5: Две кавычки

17 января 2010, 11:00

Факап, конечно, не такой страшный, как слетевшая с направляющих каретка или заваленный мусором кот, но тоже неприятный.

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

Всего один короткий запрос. Всего две забытые кавычки:

delete from prices where price_date>unix_timestamp(2009-12-31)

Сервер радостно подсчитал: 2009 – 12 – 31 = 1968. Как и было заказано, база данных грохнула цены на все даты позже 1968 секунд от начала юникс-эпохи (то есть после 0 часов 32 минут 42 секунд 1 января 1970 года). На тот момент не существовало не только самой фирмы, но даже и самого гендиректора.

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

1952

Два раза по сто десять

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

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

— Я тут Маше рассказала про свой компьютер, так она решила проверить, что будет, и подвинула переключатель... В общем, ей тоже нужен новый блок питания.

Вот и не верь после этого в блондинок.

1824

Принц на горошине

29 декабря 2009, 09:00

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

Так вот, в эникейский период и произошёл этот случай. Не помню, кто и зачем принёс комп со словами: «Сил больше нет, ведёт себя странно — может неделю работать, может через 15 минут выпадать в „синьку“».

Надо сказать, что компьютеры, поставляемые госструктурам одной из фирм, базирующейся в Митино, у меня давно вызывали плохие чувства. Пациент родом оказался оттуда. Гарантии комп была лишён — все дыры на почти новой машине были обклеены гарантийными стикерами, а юзеры решили поменять CD-ROM на более продвинутый девайс и все наклейки посдирали.

Включаю — работает, но через 15 минут уходит в BSoD. После ребута работает до конца рабочего дня. Утром прихожу — опять «синька». Коллеги-владельцы уже справляются, когда забрать можно. Посылаю коллег, надеваю халат и ухожу с головой в потроха пациента.

В связи с дефицитом деталей не могу поменять всё на исправное — процессора запасного нет. Поочередно меняю всё, что установлено — проблема не решается, а тесты показывают, что пациент здоров, как бык. Остаётся лишь камень.

Снимаю кулер в сборе с радиатором. Достаю камень на 775 сокет, задумчиво верчу в руках. И вставить-то его некуда — нет больше таких матерей, этот комп тут самый продвинутый. Ставлю назад; что-то заставляет снять процессор опять и осмотреть, собственно, «стойло».

Среди позолоченных ямочек лежала ресница сборщика.

1766

Добавь экрану яркости тряпкой средней мягкости

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

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ...

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

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

1750

Мои ракеты вверх

Думаю, что про прошествии пяти с лишним лет я могу поведать эту историю, случившуюся на первом курсе физфака %universityName%. Читали нам на первом семестре курс информатики — родимый паскаль, изъезженный сто раз ещё в школе (а некоторыми, в том числе вашим покорным слугой, и раньше). Лектор у нас там был весьма интересный (самый запомнившийся перл — «логические значения „труе“ и „фэлс“), но самым замечательным персонажем был «семинарист».

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

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

Не знаю, как остальные, но я за один выходной день сделал все десять программ. Вскоре в нашей группе был зачёт из двух частей: лектор задает вопросы, «семинарист» смотрит программы. Сначала я попал на лектора. С вопросами проблем не было, и через пару минут я услышал: «Давай зачётку». Как человек честный, спрашиваю: «А программы не хотите посмотреть?» Лектор поворачивается к «семинаристу» и спрашивает, есть ли у него ко мне претензии. Тот, опять не говоря ни слова, качает головой, и я получаю долгожданный зачёт.

У друга же моего всё-таки решили посмотреть программу (скопированную у меня) с расчётом полёта. В качестве начальных параметров задали бросок вертикально вверх в штиль. Исходная точка полёта у меня была в начале координат, и я её рисовал около левого края экрана. Дальше я вычислял дальность полета, рисовал точку приземления у правого края, а дальше с помощью простой пропорции переводил координаты снаряда в полёте в координаты на экране. Но при вертикальном броске тело приземлялось там же, откуда и выстреливалось!

Моя программа поставила слева точку «0», справа точку «0», а потом нарисовала замечательную кривульку, расставляя по оси абсцисс нолики возле каждой засечки. Друг меня потом чуть не убил, хотя зачёт он тоже получил.

На всю жизнь я запомнил, что 90 градусов — тоже угол.

1740

Не фиги воробьям показывать

Тружусь на благо себя любимого и юзверей монтажником у одного из питерских провайдеров. Бегаем обычно поодиночке, но если количество заявок на подключение позволяет, то состыковываемся с кем-нибудь из товарищей по работе, и тогда всё на порядок проще.

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

Подключения сделаны, бежим дальше. Ничто не предвещало беды. Часа через два звонок из контактного центра: «Алло! Ребята, начальство говорит, что звонил абонент и жаловался, что некие люди под видом монтажников у него украли табурет, но интернет-таки подключили». Пришлось созваниваться и пошагово объяснять абоненту, как забрать табурет, неосмотрительно забытый у причердачной решётки.

Вот так вот. «Криминальная Россия»: банда монтажников-рецидивистов, ворующих табуретки. Зато теперь у нас есть поговорка: «Это тебе не табуретки у абонентов тырить!»

1715

Пока не меркнет свет

18 декабря 2009, 09:00

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

Итак, верёвка натянута, можно приступать. Вяжем к одному концу веревки оптику со сталькой; я бегу на другую крышу принимать всё это дело. Тянем! Чем ближе ко мне приближается оптика, тем труднее становится её принимать — вес-то увеличивается, Когда до финиша остается несколько метров, вся эта конструкция провисает над проводами.

Сейчас, думаю, заденет сталькой провода и меня шарахнет током. Отпустить? Внизу автобусная остановка и куча машин, будет ой. Из последних сил зажмуриваюсь и делаю рывок, но не успеваю — сталька ложится на провода. Открываю глаза. Странно, током не шибануло, я стою на крыше, в руках сталька — всё в норме! Фиг с ним, подтягиваю остаток и креплю как есть. Нас выдёргивают на другой объект, где мы благополучно заканчиваем рабочий день.

Вечером в офисе болтаю с напарником:

— Слушай, я чего-то не пойму, почему меня током не шибануло, когда сталька на провода легла?
— Ну не знаю. Карма у тебя, поди, хорошая.
— Ага, ещё скажи, что у меня фонарик по фэн-шую светит.
— Светит... Б#Я! Это ж провода уличного освещения!

Смеркалось.

— Сталька до сих пор на них лежит! Скоро будет бум!
— Бегом!!!

Воздушку мы подтянули ровно за две минуты до включения уличного освещения.

1656

Микровентиляция

12 декабря 2009, 09:00

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

Знакомая предупредила, что удалять можно всё, так что я решил всё сделать по уму, переразбив жёсткий на две неравные части. Через некоторое время я обратил внимание, что практически с самого начала вентилятор (а он там единственный) работает на максимальных оборотах и не думает их сбавлять. Ну, думаю, настройки сбились в BIOS или просто во время установки винда сильно процессор грузит. Ан нет — и после полной установки с дровами и утилитами для снижения частоты ничего не изменилось.

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

Не ожидал такого от %brandname%. Впрочем, сборка была китайской...

1649

И на старуху бывает проруха

Тянули на работе сегмент сети — 22 кабеля витухи в новый же короб под потолком коридора. Протянули с помощью мата и невидимой руки такой-то матери, закрыли, стали проверять.

После шестнадцатого рабочего разъема в следующем LAN-тестер показал отсутствие сигнала в шестой жиле (зелёный по схеме В). Переобжимка не помогла. Видать, жилу где-то перебило, а она нужная в стомегабитной сетке. Казалось бы — перекинуть вместо зелёного 4, 5, 7 или 8 в розетке и на патч-панели, и всего делов! Но...

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

Кто же знал, что несколько лет исправно служивший, не перегнутый ни в одном месте родной патч-корд от тестера подкинет такую свинью после успешной прозвонки шестнадцати кабелей подряд? Заменил кабель, обжал одну из запасных линий — вуаля!

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