5044

Недополученная прибыль в размере невыпитого пива

Работаю в техподдержке известного провайдера. Как-то раз к нам на рабочую почту свалилось письмо:

Добрый день, сегодня в 22:45 по причине дисконнекта я проиграл сумму 1 евро в покер-клубе. Можно ли как-нибудь посмотреть логи и возместить мне эту сумму? Заранее спасибо, *****.

5043

В 3GP в реальном времени

Помню, давно прочёл анекдот: «Грабить награбленное — это когда перегоняешь в MP3 пиратские аудиодиски». Так вот, прогресс пошёл ещё дальше. Сижу в интернет-кафе и наблюдаю гениальную картину: девки ищут видео в интернетах, включают на весь экран воспроизведение и снимают на камеру мобильного телефона.

5042

Страстная любовь к старине

Ubuntu 7.04 и Canon LBP1120. Идёт третий час вдумчивого допиливания конфы. Два месяца назад в той же конторе я этот же принтер подцепил на 10.04. Поменять машинки местами нет возможности, систему обновить — тоже никак, железо плоховато. Сижу и приговариваю:

— Ковыряю я систему, вышедшую в 2007 году, и принтер, вышедший лет на пять раньше этой системы, и чувствую себя некрофилом.

— Может, некромантом? — доносится голос из зала.

— Не... Некромантия — это если пришёл, минут двадцать посидел, что-то непонятное сказал, и оно поднялось. А то, что я сейчас делаю, — некрофилия в чистом виде.

5041

Начнём с чистого листа

Логика юзеров часто может быть непостижимой. Давно я работал на одном предприятии, где секретарше было далеко за 50, и пережила она на этой работе не один десяток директоров и владельцев. Работала тётушка по-своему: все приказы по предприятию, служебки и прочие документы она хранила в одном вордовском файле. Страниц там было за пятьсот. Если надо было что-то распечатать, она всё удаляла, кроме нужных страниц, а после закрывала файл, не сохраняя изменений. В таком бредовом режиме работала она годами, пока комп не заглючил. Пока админ шёл, тётушка куда-то удалилась. Приходит — на экране вордовский файл на один листик. Админ, как культурный человек, сохранил всё и закрыл, прежде чем чинить глюк с почтой.

5040

Дед Мороз для Снегурочки

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

Теперь к IT. У меня дома вайфай и два ноутбука. Как всё это работает и взаимодействует, я представляю себе смутно. Налаживал сеть провайдер и сделал, в принципе, всё неплохо, если больше года нареканий не было. Но вот где-то за неделю перед приходом Дедушки Мороза стал пропадать инет на одном буке, а второй вообще невесть что стал творить — предполагаю, что это последствия приложения шаловливых ручек младшего поколения.

После торжественного поздравления, стихов на табуретке и вручения заранее предоставленных подарков (хотя на сам НГ дети несомненно на что-нибудь дополнительно раскрутят) взрослые со сказочными героями сели пить чай, а мелкие в своей комнате принялись собирать железную дорогу и попросили нас им не мешать. Пришла тут Деду Морозу SMS, и позарез понадобился ему интернет. Я оба бука приволок — на каком-то из них, говорю, может, и есть. Не было ни на одном, но Снегурочка проявила живейший интерес и попросила посмотреть. Посмотрела она там, потыкала кнопочки сям, сходила к коробочке с антенной, что раздаёт «Одноклассников» и прочие радости жизни, и интернет появился. Дедушка в красном похвалил внучку и предложил ей взять пирожок с полки, на что внучка обозвала его старым маньяком.

Оказалось, молодые ребята подрабатывают перед Новым годом. Наталья, она же Снегурочка, — временно безработный системный администратор; Кирилл, он же Дед Мороз, — менеджер. Супруги живут неподалёку. Почесав в затылке, я вспомнил, что у нас на предприятии должность сисадмина уже неделю как вакантна (сеть лежит, процесс стоит) и на минуту сам стал Дедом Морозом. Предложил через два дня выходить на работу — собеседование Снегурочка уже прошла.

Даже директора предприятий немного верят в сказки и любят хеппи-энды.

5039

Код-самоед

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

Из последнего: обратили внимание на неполадки с памятью в стандартной конфигурации. Запустили тест памяти — всё зависло. Посмотрели размер адресного пространства: 64 МБ, а на плате физически присутствуют только 32. Тут у нас возникли некоторые подозрения. Оказалось, что в примере от производителя, кроме неверного размера памяти, ещё и банки памяти адресованы вперемешку. Выходит, что тест памяти стирает из неё сам себя, и процессор исполняет какие-то случайные инструкции. Интересно, что будут писать о глюках через десять лет, если подобная технология станет повсеместной?

5038

Весёленькое Рождество

Послали винду (виртуальная машина на сервере) в перезагрузку. Она благополучно сдохла и не поднялась. Пинги проходили, но не более того. Думали, ломали голову, били в бубен.

Ребятам пришла свежая идея. Винда на виртуалке стоит норвежская, а сегодня 24 декабря, канун Рождества. Винда празднует, судя по всему.

net send * Merry Christmas!

Помогло. Честно.

5037

Извилистые дорожки и стройные ножки

Благополучно отучился на отделении информатики физфака. Был и курс «Введение в системы автоматического проектирования радиоэлектронных устройств» (разводка печатных плат, проще говоря), и с микросхемами элементарной логики мы знакомились как в теории, так и на лабораторных. В дипломной работе я использовал микроконтроллер, то есть был не понаслышке знаком с тем, что можно получить, накодив на C несколько сотен строк. Одногруппник, которому больше нравилось высокоуровневое программирование, взял меня в напарники для разработки светоматрицы — платки 8×12 светодиодов, которая должна была управляться с компьютера. Ни у него, ни у меня не было абсолютно никакого опыта, не считая вышеописанного обучения в университете, поэтому неудивительно, что даже с чисто организаторской стороны было много факапов. Однако я хочу рассказать о моих программно-железячных косяках. Мало ли, вдруг кому пригодится.

Free Serial Port Monitor — хорошая программа. Но показывает она не то, что пришло в буфер COM-порта, а то, что прочитала использующая его программа. Поэтому надо было не покупать новую микросхему MAX232, решив, что предыдущая сгорела, а просто добавить в отладочную программу чтение.

Altium Designer — тоже хорошая программа. Только вот все библиотеки в ней созданы в расчёте на английскую систему мер. Если вы используете десять деталей из стандартной библиотеки и одну свою, подумайте о том, обязательно ли делать её в СИ. На чертеже очень трудно заметить, что четыре проводка к пятивыводному разъёму подцепились, а один остался в полупикселе от положенного места. В итоге на плате не оказалось одной дорожки. Хорошо, что использовалась она только для программирования! Спасла конструкция «проволока, с одной стороны прикрученная к штырьку для программирования, иголка и рука, тыкающая в малюсенькую ножку микросхемы».

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

Если во всей партии из сорока микроконтроллеров глючат одни и те же четыре ножки, это не значит, что вам подсунули эксклюзивно подобранный брак. Надо просто почитать документацию и выяснить, что, помимо используемого вами интерфейса SPI, есть ещё и JTAG, который работает именно через эти ножки. Его можно отключить, но по умолчанию он включён.

А ещё источник постоянного тока (5 В, 12 А) не любит, когда от него требуют то 0 А, то 2 А (не говоря уж обо всех двенадцати) с частотой всего полкилогерца, да ещё не по синусоиде, а ступеньками. Нет, сам источник не сгорел. Но вот напряжение от таких скачков чувствовало себя нестабильно, а вместе с ним и блютус-модуль, в результате чего связь с компьютером терялась. Эта проблема оказалась самой лёгкой: я впаял перед модулем диод, чтобы заряд обратно не утекал, а падение напряжение на полвольта скомпенсировал уменьшением токоограничительного сопротивления, и всё заработало. Интересно, что микроконтроллерам ATmega16 скачки были нипочём, хотя по документации они должны были отключаться раньше модуля.

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

5036

Дворак — дурак, пылесос — молодец

Подруга — довольно разумная блондинка, компы не взрывает. Жалуется, что ноут стал греться.

— Ты его полтора года как купила. Хоть раз чистила?

— Не-ет...

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

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

— Эту клавишу достала, так ещё пару засосало. Я в итоге всё вытащила, кроме пробела. Его не стала: вспомнила цитату с «Баша» про пробел невставляющийся и побоялась. А потом прикололась и все клавиши поменял местами.

— Слепой набор теперь?

— Ага. Только я плохо им умею.

5034

И моргает, сволочь, так издевательски

Коллега, профессор эникеинга, показал ADSL-модем с дохлыми конденсаторами — но не вздувшимися, а «впуклыми», со втянувшимися внутрь стенками. Я долго гадал, как такое может быть. Всё оказалось просто: клиент на нервах хорошенько потыкал в модем отвёрткой.