bash.im ithappens.me zadolba.li
5362

Весь в напряжении

3 февраля 2011, 11:00

Не знаю, то ли обидел ли я чем свой компьютер, то ли законы физики всё это подстроили, но произошла со мной давеча такая история.

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

Через полчаса мышь отваливается вновь. Лезу за корпус, снова получаю разряд и с удивлением наблюдаю нормально функционирующую мышь. Так и пошло дело: раз в полчаса мышь отваливается, я глажу корпус, получаю разряд, мышь оживает, работа продолжается. Через несколько часов, разумеется, мне это надоело, поэтому я воспользовался альтернативой по имени PS/2. Но комп, видимо, решил не сдаваться без боя.

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

Страшно предположить, от какой комплектующей в следующий раз я получу разряд. А вообще мораль простая: заземляйтесь!

5361

О бесполезной красоте сложных решений

3 февраля 2011, 11:00

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

По закону Мёрфи под «семёркой» устройство не запустилось. Ладно, попробуем из-под пингвинов. Зря я так ядро оптимизировал! Модем юзается только как кардридер. Подумал и запустил соединение с сетью из-под винды, которая коннектится к прокси на виртуалке с ХР, настроенной из-под линукса, к которой по виртуальному USB-порту подключён модем.

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

5360

Инверсионный след быдлокодера

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

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

Специальная математическая подготовка не спасает. Скажите, какого хрена учить рекурсии на примере факториала? Это красиво только математически. После такого обучения любая тривиальная задача решается рекурсивно с переполнением стека и прочими прелестями.

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

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

Наконец, вопрос «как писать код?» лишён смысла: программер, как правило, имеет дело с уже написанным кодом. Солдат в бою живёт три минуты, а на марше — несколько часов, поэтому в уставе армии США маршам уделено в несколько раз больше места. Прагматично.

Вот и выходит, что (по крайней мере для меня) единственный способ не писать фигню — не писать вообще. А если писать — то по минимуму, тупо до дебилизма и исключая «творческую и эстетическую составляющую». То есть писать как автомат, ремесленник, чернорабочий. Быдлокодер.

5359

Чудеса ручкотворные

3 февраля 2011, 11:00

Губная помада? Масло из «Доширака»? Бывали такие случаи, бывали.

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

Теперь я знаю: безвыходных ситуаций не бывает. Надо только головой немножко подумать.

5358

Стопроцентный русский

3 февраля 2011, 09:00

К сожалению, если при установке Убунту с Alternate CD выбрать русский язык системы и только русскую раскладку, то в ходе инсталляции английский будет, а при первой же загрузке никакого варианта, кроме русского языка, не останется, и войти в систему будет невозможно.

Именно в таком «абсолютно русифицированном» состоянии я застал больше пятнадцати машин в родной конторе в один прекрасный день прошлого года. Рядом в состоянии, близком к помешательству, сидел свеженанятый помощник админа. Парень решил показать, какой он хороший и легкообучаемый, и вечерком накануне установил Убунту на технику для 20 новых рабочих мест. Надо заметить, что это был его первый опыт установки линукса вообще. Записал он 20 копий Alt-CD, почти синхронно поставил систему на все машины и решил проверить. Обнаружил «глюк», переустановил начисто — и ещё раз, и, наверное, ещё… Каждый раз он, ориентируясь на опыт инсталляции винды, упорно выбирал русские язык и раскладку. Поскольку пользователей с русскими именами создавать было строго запрещено, выхода «герой» не видел.

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

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

5357

Первичный профессиональный признак

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

Даже юзеры признают силу бороды.

5356

На заборе тоже написано

На довольно старом сервере сработала сигнализация RAID-контроллера: один из дисков в системном зеркале заканчивал свой путь. Не беда: берём замену, идём в серверную, переводим диск в офлайн и вытаскиваем из корзины. Сервер, подумав, сообщает, что служба Remote Procedure Call неожиданно завершилась, и сейчас мы будем перезагружаться. Перезагрузка не удаётся. Теперь уже беда: сервер-то критичный.

Хард-ресет, вход в настройки контроллера, стук сердца: зеркала больше нет. Какой-то шутник перепутал номера дисков на корзине и подписал их наоборот. В итоге из работающего зеркала сперва вывели штатно один диск, а затем выдернули второй на живую…

История завершилась удачно, но с чужой маркировкой я теперь осторожен.

5355

Для развития пространственного воображения

2 февраля 2011, 16:45

Купил на радиобазаре корпус по приемлемой цене, чему очень порадовался. Согласно инструкции, уместившейся на одном листке, изделие называлось «312 ATX CASE». Когда продавец сказал, что моя материнка туда встанет, я не мог подумать, что может быть иначе. Это же Деда, бог локального масштаба и вообще самый толковый железячник в округе.

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

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

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

5354

Глух или нем

2 февраля 2011, 12:45

Есть у меня ноутбук, верой и правдой отслуживший мне более шести лет. Стал осыпаться у него винчестер. Грустно, но поправимо. С заменой винчестера решил я поставить «семёрку». Заработало всё, кроме звука. Устройства увиделись, но звука не было. Запустив настройку микрофона (которого в ноуте вообще-то нет), я удивился: ноутбук прекрасно меня слышал! Динамики стали стереомикрофоном с хорошей чувствительностью. Загрузился с Live CD разных систем — то же самое. Как заставить компьютер говорить, а не слушать, я так и не понял.