77771.fb2
В общем, начальство почесало репу, мы все подумали, и с помощью мультиметра, паяльника и какой-то матери починили питание проца, сэкономив таким образом четверть миллиона русских рублей.
Так что, когда вам говорят, что мол, в России все через задницу – не верьте. Буржуины иногда похлеще наших жгут.
Была у меня такая история. Работал я как-то давно в небольшой фирмочке, выделенного интернет-канала не было, а почту более-менее регулярно снимать нужно. Каждый раз тыкать мышкой, чтобы запустить соединение и разорвать после проверки почты – надоело, и я решил все это дело автоматизировать. Поставил программку, которая через каждые 2 часа дозванивалась по списку телефона от провайдера и делала все необходимое.
Первый дозвон был настроен на 8:30, чтобы как раз к приходу на работу почта была проверена. Все работало замечательно, и целый месяц я радовался свежей почте. До того момента, когда однажды пришлось прийти на работу на час раньше обычного.
Пока проводил утренний моцион-рацион (сигарета, кофе и т.д.), компьютер проснулся, и модем начал резво щелкать, набирая первый в списке телефонный номер. И я поперхнулся кофеем, когда в хриплом динамике модема раздалось: ТВОЮ МАТЬ!! С#КИ! УБЬЮ Н^$#!!!! ПОРВУ!!! НАЙДУ И ПОРВУ Н#Х!!!.. Модем резво перескочил на другой номер и продолжил свою работу. А я работать уже не мог...
Проверил список – первый же номер был внесен в список с ошибкой...
Очередной проект по доделке и переделке авторских недоделок в программе заказчика.
Угу.
Заявлена кроссплатформенность – используется Qt, есть клиенты для Windows и никсов. Клиентов беспокоит, как Гондурас странная особенность: под никсами программа уверенно работает отовсюду, кроме каталогов, расположенных в /home (например – на рабочем столе, что должно быть интуитивно понятно и привычно для пользователей Windows). Угу.
Авторы грешили на особенности сборки Qt, на примечания к документации QFileSystemWatcher "о зависимых от системы лимитах на количество одновременно наблюдаемых путей". Но почему-то программистов заказчика не обеспокоила такая особенность систем, под которые портировалась изначально виндозная программа, как чувствительность к регистру путей файловой системы. Аффтары нечувствительно приводили путь к lowercase, а потом проверяли существование каталогов типа Desktop или "Рабочий стол" для пользователей типа VasyaPupken.
А метод проверки QDir::exists(), спроектированный с учетом особенностей *nix, имел их всех в виду.
Из собственной биографии – в 199x принимают меня на работу во вновь образуемое ФГУП начальником делопроизводства и нештатным специалистом по IT. Под IT в данном случае понималось все, связанное с компами: закупка, сборка, инсталляция ПО, поддержка эксплуатации, создание сети.
Где то, через год, слегка устав от этого воза работы, подхожу к директору с предложением завести на предприятии редкого работника по кличке сисадмин. Директор интересуется, что это за зверь, я начинаю объяснять. После первых трех фраз директор правильно ли он понял, что сисадмин будет иметь доступ ко всем машинам и информации в них? Ну, в принципе да, говорю. Директор задумывается, и изрекает, что сисадмином тогда должен быть он. Я не спорю, перечисляю ему все функции сисадмина. Директор говорит, что подумает и отправляет меня на рабочее место.
Я с этого предприятия уволился через семь лет – сисадмина на предприятии так и не было...
В 2004-2005 годах мне довелось работать в одной софтовой компании, которая выпускала несколько продуктов на базе единого клиент-серверного движка. И в какой-то момент мы заметили, что у нас слишком велики требования к клиентской части (это было не веб-приложение, а отдельно инсталлируемое, тяжеловесное). Вроде бы ничего масштабного нету, но памяти уже и 512 метров мало, вот уже и гига едва хватает. Бедные клиенты вынуждены перезапускать приложение несколько раз в день, настраивать конфиги и жаловаться своему сисадмину.
Нам же эту утечку никак найти не удавалось. Решено было добавить памяти на рабочие станции. Следует еще помнить, что в те времена гигабайт был дорог, так что сотня рабочих мест влетала в копеечку.
Причина нашлась, как это часто бывает, слишком поздно и почти случайно. Исследуя документацию к библиотеке, которую мы использовали для работы с пересылаемыми XML-пакетами, я случайно нашёл метод reset. Стоило добавить в наш код вызов этого метода, как требования упали в 10 раз! Оказалось, что пока этот reset не вызван, клиент помнит все DOM-модели всех полученных с сервера пакетов...
Приключилась сия трагедия в наше время, пару недель назад. Надумал я купить на заморском аукционе флешку большую – 16 гигов. У нас эти девайсы пока дороговаты, для скромного труженика клавы и мыши. А на ибэе – китайские стоят копейки.
Заказал, получил. Ткнул в комп, начал тестить китайское чудо техники. Работает, но глючит безбожно, машину подвешивает, данные рандомно пропадают... В общем, решил бороться: скачал с сайта производителя прошивку (внимание: прошивка для флешки!). Вкатал и вуаля – работает! Быстро, не глючит, не виснет!
Но вот одна мелочь – объём флешки стал 256 Мб. Китайцы, блин! Никакие дальнейшие манипуляции не вернули флешке изначальные 16 Гб. Мораль: не гонялся бы ты, поп, за дешевизной!
Админю одну контору среднего размера. Пришел новый человек – юрист. Так как свободных машин не было, купили ему новую. Я поставил машину, настроил. Думаю, раз юрист – значит не дурак, поэтому даю ему диски с виндой, гарантом, вордом и т.д. и говорю: "Ставь". Он мне: "А как"?
Ну, думаю, бывает – никогда человек винду не переставлял. Крайне редко, но бывает. Установил, даю остальные диски, а он спрашивает: "А ворд для чего?" Я офигел сначала, но потом решил, что он с другими какими-то прогами работал. Всё равно ему бы блокнота хватило бы. Объяснил. У него новый вопрос: "А пароль как вводить?". Через пятнадцать минут выяснилось, что наши бабульки-бухгалтерши по сравнению с ним прирожденные админы. Я плюнул, ушел. По дороге заглянул в отдел кадров, взял его резюме. Написано, владеет на уровне пользователя. Так как был уже конец рабочего дня, я ушел, оставив разговор с парнем на завтра.
На следующий день прихожу позже обычного, вижу – юрист отошел куда-то. Запускаю его комп, ввожу пароль и выпадаю: установлено и настроено всё, что надо и как надо. Учитывая то, что вчера парень просил ему обоину сменить – точно не он. Иду к другим админам, спрашиваю. Говорят, не они. Ну, всё понятно – дал свой пароль кому-то. Учитывая, что я его уже подключил к серверу с корпоративными секретами – можно убивать. Нашел юриста, отвел в тихий уголок и спрашиваю:
– Зачем ты, мил человек, свой пароль другому давал?
Он клянется, что всё настроил сам. Я, естественно, не верю, сам же вчера его экзаменовал. На что юрист мне и говорит:
– Знаешь, в моей прошлой конторе админа не было. А я сказал, что в компах хорошо разбираюсь. После того, как за три месяца я ни одного договора в руках не подержал, зато настроил все машины, вплоть до сына директора, говорить, что разбираюсь в компах, я зарекся.
Дело было во времена моей работы в %mailprovider%. Писал я скрипт, что по крону запускался и делал много добрых дел. Пока разбирался с кроном, вместо запуска бинарника написал ACTION="echo 'Works fine.'". Сижу, подчищаю код, всё работает, на личном мейле уже пара десятков писем с текстом "Works fine.".
Думаю заканчивать на сегодня и заменить echo на реальный код. Но вдруг получаю письмо в ответ на автосгенерированный "Works fine": "Looks like it doesn't work".
Я понимаю, что письмо пришло от реального человека. Спустя полчаса разбирательств, изысканий и отказа от пива под предлогом работы ситуация прояснилась.
Оказалось, я забыл поставить в mail у ключа –s кавычки, а в теме кроме всего прочего шёл date. Как порядочная unix-овая тулза, mail честно скушал командную строку и стал отправлять письмо всем адресатам подряд. Домен, само собой, сам угадал правильно. Так что кроме меня@%mailprovider%.org письма шли также на 2008@%mailprovider%.org, число@%mailprovider%.org и им подобные.
А у парня на ящик был алиас, который удивительно совпал с трехбуквенным сокращением имени текущего месяца...
Делали ремонт родители в квартире, и я попросил ремонтников проложить от входа в квартиру к месту, где предполагался комп, витую пару. Они согласились. Через месяц, когда штукатурка высохла, и ремонт был закончен, я увидел торчащий из стены 4-х жильный телефонный провод.
Я выругался, не думая, что когда-нибудь мне это пригодится, все равно выделенки тогда не было, только диал-ап.
Потом появилось кабельное, и его просто воткнули в телевизионную кабельную сеть квартиры, и из комнатной розетки взяли сигнал.
Все успешно проработало лет 5, пока не пришел локальный провайдер, и не было решено перейти на него из-за внутренних ресурсов. Тут-то, наконец, и пригодился тот замурованный кусок. Кабель был протянут от подъезда до входа в квартиру, этот хвост обжат, поставлена розетка, и все на удивление заработало.
Учился я в 1992-1997 году в одном заведении, гордо именуемом технический университет. В этом ВУЗе был компьютерный класс, куда студенты могли свободно приходить и, при наличии свободных мест, делать свои д/з, лабораторки и прочую лабуду, сопровождающую учебный процесс. Лаборанткой, в народе – надзирательницей, в этом вертепе науки работала бабушка лет 70. Она следила, чтобы студенты не играли, а занимались разгрызанием гранита знаний. По большей части она сидела в своём уголке и вязала, но иногда вставала, с целью размяться, и обходила свои владения.
Как-то сижу, пишу программу, а она не работает, хоть ты тресни. Я начинаю нервничать, через 15 минут начнётся пара, где мне эту прогу сдавать.
– Что? Не работает? – слышу голос бабушки-лаборантки у себя за спиной.
Поскольку хамить старшим не приучен, пришлось отвечать, в чем дело.
– А ты объявление вот этой переменной перенеси из процедуры в программу и сделай её глобальной... – посоветовала бабушка.
От такого несоответствия слов и внешности я слегка потерял дар речи, а бабушка совершенно спокойно повернулась и пошла дальше.
Самое интересное, что когда я выполнил все рекомендации, программа заработала как швейцарские часы. Много позже я узнал, что эта "бабушка" – кандидат каких-то там наук и очень сильный программист. И только возраст и болезни не позволили ей дальше работать по специальности. Надеюсь, что она до сих пор жива и здорова! Вот так вот. Не верь своим глазам!
Вчера нашёл обломки от трёх плееров Transcend T.Sonic 610.
Первый плеер на 512 метров. Мёртвый экран, мёртвый чип памяти, разбитая плата, разбитый корпус. Донорство: чип управления и батарея.
Второй плеер на 1 гиг: Живой экран, живой корпус (донорство). Всё остальное мёртвое (статикой сожгло, наверное, чёрт его знает).
Третий плеер на 1 гиг: Мёртв чип управления, плата в норме, экран разбит, корпус разбит, уцелел чип памяти. Донорство – чип памяти, плата.
Перепаиваю чип управления с первого плеера на третий, наклеиваю экран от второго, запихиваю в корпус от него же, загоняю батарею от первого. Не стартует – виснет. Чип памяти не определяется. Подключаю к компу. Показывает, что флеш-память есть, но он не может считать о ней данные, тупо виснет винда. Форматирую из-под доса – форматируется в 993 метра, но не читаются файлы (чип управления с 512-метровой модели). Делаю кросфлеш прошивкой от другого плеера. И ура! Всё работает как часы.
Теперь сижу и думаю над 2 вопросами:
1. Я забыл наушники на другой квартире, где взять уши?