bash.im ithappens.me zadolba.li
8378

Дурная голова рукам покоя не даёт

29 января 2012, 10:00

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

Клиент не торопил, поэтому всю неделю я заканчивал предыдущий проект. И вот настало время взяться за новый заказ. Так, что же там за фамилия была?.. Лезу в скайп, открываю историю сообщений. Негусто. Тут явно чего-то не хватает: переписка была больше. Иду в настройки, смотрю — «Хранить всё». Но тут явно не всё! Не может ведь CCleaner чистить историю, а если б и чистил — то всю сразу, а не частично.

Помню, что общался только по телефону и скайпу, но себе уже не очень доверяю. Проверяю почту — нет, не было ничего. Значит, скайп! Ползу в AppData\Roaming\Skype. Ага, chatsync — наверное, то. Открываю — иероглифы. Пробую кодировки — лажа. Зашифровали, демоны!

Ничего, Гугл в помощь. На каком-то форуме нахожу прогу, которая расшифровывает историю скайпа, ссылочка прилагается, причём рабочая — красота! Качаю, запускаю. Погасить скайп? Да пожалуйста! Вуаля, вся переписка как на ладони. И где же то сообщение? Где эта проклятая фамилия?! Она ведь была! Была напечатана! Я её читал!

Не, клиенту звонить — не вариант. Совсем не вариант. Звонить… Телефон… «Сообщения → Входящие»… Вот же она, родимая!

Честь мундира спасена. Можно приниматься за работу.

8377

Умри и так и сяк

29 января 2012, 08:00

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

— Нда, какой ты стал жестокий с этой работой… Ты бы отдохнул, что ли, а то только убивать тебе и убивать кого-то!

Начинаю судорожно искать причину вывода. Взгляд падает на слишком частые вызовы die(); в коде. Баголовство было в самом разгаре…

8376

Времена меняются, цифры остаются

29 января 2012, 08:00

Мой дед в молодости работал продавцом в магазине радиотоваров в отделе телевизоров. Как-то приходит к нему покупатель и просит продать телевизор КВН-49-4. Дед ему начинает рассказывать, что это устаревшая модель, и на прилавках стоит несколько более современных. Но покупатель упирается:

— Меня не обманешь, у КВН-49-4 самые высокие показатели.

Достаёт из кармана таблицу с характеристиками разных телевизоров, где у КВН-49-4 обведены в красные кружочки потребляемая мощность и чувствительность. Дед объясняет:

— Большая потребляемая мощность — это как раз плохо: чем больше ватт, тем счётчик будет больше накручивать. Чувствительность тоже: чем больше микровольт, тем хуже ловит.

Не убедил. Всё равно купил мужик КВН-49-4.

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

8375

Смытая волной прогресса

29 января 2012, 08:00

Вчера на ночь глядя захотелось странного. Поставил NetWare 6, поглядел, как тормозят «иксы» на «жабе», вспомнил время оно, когда пафосные одмины в быдлоконторах, насадив везде ворованную «нетварь», смотрели на нас, пришлых по объявлению, воспитанных в универах контрафактными NT. Вспомнил, с каким пренебрежением дяденька в курточке-бомбере отзывался о студентах-айтишниках, которых якобы «убивал камнем». Маниак, да. Плохие студенты вместо изучения годной и нужной «нетвари» в общаге мучали ещё совсем гадких «пингвинят» (ну, не было у них тамагочи). Зачем-то дядя цитировал генерала Лебедя — казалось бы, при чём тут лебединая песня Novell и вакансия помощника пафосного быдлоадмина? Ну, чисто позлить, сказал ему, что прочитал пару книжек про эту его «нетварь». У дяденьки лицо аж вытянулось и курточка раздулась — думал, лопнет.

Вспомнил, как через три года приехал в отпуск потусить с одногруппниками — встреча выпускников без галстуков и лишнего пафоса, но с шашлыками. Перед тусой забежали к одному на работу коллегиально решить одну срочную проблему: аккуратно загасить последнюю в той конторе ворованную «нетварь» с контрафактной оракловской базой. Показал коллеге команду help down (вычитал когда-то в книжке) и помог болезную в этот самый даун отправить. Вспомнил того пафосного дяденьку и подумал: «Ну и где она теперь, эта ваша „нетварь“?»

8374

В каждом линуксе есть немного винды

28 января 2012, 10:00

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

— Залезаю на сайт Майкрософта.

Сервак под Дебианом.

— Вижу надпись, что компьютер заражён. Ну, я и решил проверить. Скачал антивирус KIS и начал запускать.

Я настораживаюсь.

— В ответ он мне выдал что-то непонятное.

Дуб, а подумать слабо, что у тебя перед глазами не «мракософт»? И вообще, на хрена ты туда лез?

— Ну, я подумал, что просто нет места на диске…

Ага, 4×1,5 ТБ.

— …решил почистить и удалил лишнее.

Урод, как mc запускать, так ты врубился, что это Дебиан, а что ты /var снёс — так это в порядке вещей!

— Ну, он и завис…

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

8373

Энтерпрайз-мангал

28 января 2012, 10:00

Фотку с мангалом из компьютерного корпуса все видели? Это что! Недавно побывал в командировке в Баку. Смотрю — огромный мангал напоминает что-то знакомое. Подошёл ближе — точно, уложенная горизонтально серверная стойка.

8372

Лжекаспер I

28 января 2012, 10:00

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

Звонок. Взволнованный женский голос сообщает: требуют 500 рублей за просмотр видео эротического содержания. Радуюсь быстрым и лёгким деньгам. Называю стоимость работы. Спрашиваю адрес. Еду.

Приезжаю. Баннер на весь рабочий стол. Live CD, правка реестра, удаление виновника. Контрольный прогон AVZ. Чисто. Получаю расчёт и с хорошим настроением выдвигаюсь домой.

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

Действительно, баннер снова на месте. Повторяю ту же операцию. Вдобавок ставлю все критические обновления, обновляю Java и Flash Player. Денег не беру, решив, что сам что-то не доглядел.

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

Возвращаюсь. Опять те же манипуляции. Контрольный прогон AVZ, UVS — чисто! Антивирус в порядке (Касперский 11).

— Что делали, когда я ушёл, что качали, что запускали?
— Ничего.

Для верности просматриваю историю браузера. Ничего подозрительного. Решаю поставить Радмин для личного успокоения, так как в потусторонние силы не верю. Отчитываюсь, что всё работает. Пять раз перезагружаю компьютер. Чисто!

Спускаюсь, сажусь в авто, запускаю Радмин на ноуте и смотрю манипуляции клиента. Запускает браузер. Заходит в какую-то онлайн-игру. Справа всплывает окошко: дескать, ваш компьютер заражён, срочно нужно лечить! И ведь окошко точно такое же, как у Касперского оповещение. На минуту мышка замирает. Видимо, девушка читает, что сообщает лжеантивирус, вспоминая меня «добрыми» словами. Нажимает на «Лечить все вирусы». Браузер переходит на другой сайт, где большими буквами написано: сейчас, дескать, будет скачан самый лучший антивирус, а ваш нужно отключить, так как он тоже заражён.

Больше звонков не было. Ну и бог с ней — главное, моей вины там нет. У меня только один вопрос: почему сразу мне было не сказать об этом лжеантивирусе и его «находках»?

8371

Франкенштейн учится программировать

Началась эта история в разгар кризиса 2009 года. Работы в нашей микрофирмочке становилось все меньше с каждым днём. И тут, как в сказке, к нам постучалась некая биохимическая лаборатория с заказом на разработку софта для лабораторного комплекса, ссылаясь на наше название, в котором был намёк на кроссплатформенную разработку. Ну да, у нас было три программиста: один начинал с линуксов/C++, второй с Win/Java, а третий ещё на КПК со времён «палмов» софт писать умел. В общем, честно сказать им, что мы абсолютно не то, что им нужно, я сразу не рискнул, а через пару минут понял, что им, в сущности, уже всё равно, с кем пропадать.

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

Я попросил посмотреть на софт и понял коллег. Была одна старая машина под Win’98, на которой всё работало, и несколько машин, на которых эту разработку пытались запустить, но даже тотальное копирование жёсткого диска не помогало.

Через полдня изучения скопированного диска вырисовался диагноз. Обработка собрана из восьми опенсорсных и не очень пакетов разных лет и языков, написанных на Fortran IV, Java, Аda'95 и JDBC, работающих с обновляющимися через интернет научными базами данных самых разных форматов, для полного счастья склеенных редкой версией Perl, в которой, кстати и велась финальная часть обсчёта. Работа с БД велась через CPAN/ODBC.

Собираясь попрощаться, спросил, сколько же денег предлагают за такую работу. Переспросил. В общем, взялись.

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

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

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

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

Вскоре мы уже приготовили первую версию софта, не содержащую ничего пиратского, потому что в следующем году обещали купить около 15 систем. В фирме уже десять человек — может, даже на одном языке всё перепишем когда-нибудь…

8370

Кудрявая «ж»

На неделе занимался оптимизацией одного очень убогого ресурса: треть сайта в CP1251, половина в UTF-8, остаток в KOI8-R, и всё это сопровождается постоянными iconv(). Стоит ли говорить о промышленных поставках отборных матюгов при исправлении всего этого?

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

— Доброе утро! У нас тут буквы волосатые, а вчера нормальные были!

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