Bash.org.ru IT Happens Истории ## 5301 – 5400 [Bashorgru IT] (fb2) читать онлайн


 [Настройки текста]  [Cбросить фильтры]
  [Оглавление]

Bash.org.ru IT Happens Истории ## 5301 – 5400


Клиент и саппорт. Разработчик и заказчик. Программист и программа. Вести с фронтов.

#5301: Всё пиксели да пиксели

15:45 27.01.2011, IT happens


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


— Я просмотрел две книги по программированию! Там ничего нет про прямоугольники.




#5302: А был ли мальчик?

15:45 27.01.2011, IT happens


Уже несколько лет я занимаюсь IT-аутсорсингом. Небольшие фирмочки от 3 до 20 компьютеров — самый лакомый кусочек в моём бизнесе: настроишь всё на совесть, а потом тратишь всего час в неделю на профилактику. Эта история как раз про начало отношений.


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


Для начала решил проверить программную часть известной утилитой (http://www.z-oleg.com/secur/avz/) — «авозь» что найдётся. И правда: аж 16 ошибок SPI/LSP, после исправления которых... сеть пропала совсем. Проверка антивирусами не дала никаких результатов. Решил переключиться на проверку аппаратной части. Замена сетевой карты и свитча не помогла. На всякий случай решил проверить линию: отключил патчкорд от розетки и прозвонил. Ура! Перепутана синяя пара, хоть патчкорд и заводской. Исправил, проверяю — опять ничего не работает.


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


И тут до меня дошло: «А был ли мальчик?» Углублённое гугление подтвердило мои опасения: утилита некорректно работала с серверами. Срочно восстановил те самые 16 «ошибок», и сеть взлетела на максимальной скорости.




#5303: В глаза гляди!

19:45 27.01.2011, IT happens


Полетел модем — обычный «дилинк». Вызвали хлопца из саппорта. Пришёл человек, похожий на Иванушку-дурачка, припёр с собой логин-пароль для нашего подключения. Сбегали и купили на замену Acorp 422G. Сидит это чудо, даже в настройки модема залезть не может — стандартного пароля не знает. «Ща я кое-кого позову, он у нас в этом шарит», — говорит препод.


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


В сумке с нетбуком лежал переносной винчестер на 250 гигов, доверху забитый софтом, дровами, образами операционок, среди которых были не только XP и «семёрка», но и Mandriva. Три флешки, которые валялись там же, оказались загрузочниками всех этих операционок. В недрах сумки нашлись термопаста, отвёртка, швейцарский нож и 3G-модем от белояйцых. Паренёк оказался достаточно общительным и добрым человеком.


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




#5304: Сон в безопасном режиме

19:45 27.01.2011, IT happens


Лет пять-шесть назад перетряхивали IT-отдел в одном банке. Вышвырнули с работы слаженную команду профи; оставили одного толкового, но говнюка, который убедил всех, что борьба с БИС — охрененно сложный момент автоматизации, и ничем больше не занимался, кроме, как делал вид, что занят. На должность начальника отдела притащили из Сбера полного дундука, который сам уровнем был ниже, чем большинство пользователей, и жутко гордился тем, что лет десять на VB клепал какую-то фигню.


Угораздило меня в этот момент и влиться в коллектив. То, что делали раньше грамотные ребята впятером, пришлось делать мне: АТС, линии связи, в том числе областные и межрегиональные, настройка и обслуживание рабочих мест, в том числе удалённых, плюс терминалы и банкоматы. Если со всем остальным особых трудностей не было, то с банкоматами встала реальная проблема: я их раньше видел только с программной стороны, а тут ещё потрохами этих кандидатов на свалку пришлось заниматься. Банкоматы — IBM, операционка — OS/2, механизмы все изношенные, плюс стоят в местах массового присутствия весьма изобретательных студиозусов, что жизнестойкости не добавляет.


Надо сказать, что залезть в банкомат можно только в присутствии кассира и охраны. Чтобы поднять банкомат, когда удалённо не получается (мало ли, сбой связи), нужно открыть сейфовую часть, где, помимо компьютерного сердца, находятся депозитные ящики с наличностью. Для этого нужно подать заявку в инкасс-службу, предупредить кассира, что у неё будет прогулка с тройной оплатой, дождаться броневика с автоматчиками и только потом поехать, нажать кнопку «ресет» и по новой вбить все ДИЦы — уникальные настроечные параметры. За время ожидания успевает съесть мозг начальство разных уровней, вплоть до управляющего региональным филиалом.


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


Жил я тогда с семьёй в общаге, и надо ж было на вахте оказаться охраннице, которая особо меня «любила». Как же, какой-то компьютерщик, то ли дело другие работяги. У инкассаторов же приказ: с рук на руки домочадцам. Охранница — в позу сфинкса, а пальцем на «тревожную кнопку». А инкассаторам-то что: броневик — не милицейский «уазик», они неделю в нём жить могут, не выходя. Короче, ночевал я в броневике, на нём же утром и на работу уехал. Прижатый броневиком милицейский «уазик» стал ночлежкой экипажу УВО. К ним, правда, на выручку прибывали другие экипажи, и ГБР тоже своими мигалками засветились. Но броневик и есть броневик: спали все дружно и без особых тревог.


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




#5305: Мой хороший с Ботанической улицы

19:45 27.01.2011, IT happens


Работал я как-то в конторке выездных ремонтников-сетевиков-админов. Ездили по юзверьским берлогам и фирмам, экономившим на своих админах.


Очередной вызов с короткой формулировкой проблемы: «Не включается ПК». Отметил для себя настораживающий фактор: адрес юзверя — улица Ботаническая, дом 13. Действительно, ботанического вида мама с дочкой, обе в очках с диоптриями, обе в панике: контрольная на носу, а эта зараза не включается. Смело скидываю рюкзак и ныряю под стол. Пилот горит, все провода на месте, даже пыль протёрта, а на корпусе сияют гордые наклейки Билли и продавца. Среди всей этой чистоты и благоухания одна маленькая деталь — выключенный тумблер на БП.


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


Ласково, со словами «Хоро-о-оший мой», поглаживая железку по корпусу, нажимаю кнопку «Power». Приятный шум кулера, лёгкое поскрипывание винта и долгожданное окно на мониторе. Дожидаюсь, пока загрузится вся хрень, которая водится на Ботанической улице, выключаю, требую включить самостоятельно. Ласковое, ботаническое поглаживание корпуса со словами «Хоро-о-оший мой», кнопка «Power»…




#5306: Аккуратный подстрочник

12:00 28.01.2011, IT happens


Тружусь программистом в известной местной конторе. Есть тут грандиозная информационная система, которая потихоньку переписывается с FoxWeb (орудие пыток мозга, развитое из FoxPro с поддержкой сети) на PHP с Ораклом. Казалось бы, всё круто, привет, ООП и остальные прелести жизни! Но не тут-то было и не там-то тоже.


Переписывать систему начали до меня, причём сильно до меня, так что приходится выдавать код в том же стиле. Вот тут я и познал все прелести процедурного программирования с использованием кучи скрытых полей, фреймов, грандиозного количества глобальных переменных для передачи параметров... Сижу я, смотрю на исходники на FoxWeb и понимаю, что был сделан дословный перевод на PHP. Смысл?




#5307: Браузеры отключены, все ушли в офлайн

12:00 28.01.2011, IT happens


Работаю в небольшой строительной организации сметчиком, но и сетка из десятка компьютеров на мне. Бухгалтерия через стенку, так что периодически приходится вынимать застрявшую бумагу, нажимать Num Lock, Esc и тому подобное.


По-настоящему меня поставила в тупик фраза: «Браузеры отключены! Что делать?» Что, все? На компьютерах бухгалтерии свалка, браузеров стоит по три-четыре штуки, но готов биться об заклад, что тамошние «операторы» знают не более одного. И вообще, «отключены» — это как?


Прибежав посмотреть на диковинку, прочёл банальное: «В браузере отключены cookies». Страшное иностранное слово при описании проблемы было вычеркнуто из общей картины, очевидно, за ненадобностью.




#5308: Да, он такой

12:00 28.01.2011, IT happens


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


Его не переспоришь. Логика — его профессия, ею он зарабатывает на жизнь. Единственное, в чём он может признаться: «На сегодняшний день данный вопрос меня не интересует».


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


На стене у него висит плакат «Не забывайте сохраняться!» как напоминание для пользователей и для него самого.


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


Он может высмеять или послать начальника — а вы попробуйте найти кого лучше!


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


Он не признаётся жене в любви, потому что знает, что услышит в ответ: «Докажи».


Любая кошка в его руках начинает мурлыкать, потому что безоговорочно признаёт в нём хозяина.


Дети в его присутствии перестают плакать, а одно его появление в бухгалтерии внушает уверенность и умиротворённость.


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


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


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


Создание SQL-запроса внутри цикла он тоже считает грехом: знает, что такое стек, на аппаратном уровне.


Хеш-массивы вызывают у него чувство ностальгии по постреляционным БД, безвременно почившим в девяностых.


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


Алкоголь не оказывает на его способность к программированию ровно никакого действия: качество остаётся тем же, а скорость… Что ж, скорость в понедельник утром всегда низкая вне зависимости от.


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


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


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


Над строкой комментария он думает больше, чем над строкой кода.


Его код красив, а если он на Перле, то читать можно нараспев: «foreach $key (sort keys %FORM)». Красота для него — отсутствие неопределённостей и ненужных сущностей.


Когда ему в очередной раз говорят: «А ведь вы тогда были правы», это вызывает у него не радость, а опустошённость из-за напрасно потерянного времени.


Да, он такой — настоящий программист.




#5309: Свято место полно

14:00 28.01.2011, IT happens


Засел я обновлять пакет Офиса на своём стареньком ноуте с 2003-й до 2007-й версии. Догадываясь, что может понадобиться много места, снёс всё лишнее и редко используемое, и с большим трудом освободил целых 1,9 гигабайта на диске С:. Запустил setup.exe, выбрал всё нужное, поставил. Смотрю — места остался один гиг. Так и думал: прожорливый, зараза.


Захожу в Program Files, смотрю размер папки Microsoft Office 2007 — всего 300 МБ. А где же ещё 600? Хожу по диску и натыкаюсь на две свежесозданные папки: C:\MsoCache и C:\Windows\Installer, каждая размером ещё по 300 метров. Внутри каждой из папок — частично распакованная копия дистрибутива. Зачем мне две копии, если у меня оригинал есть?


Ладно, фиг с вами, я не жадный. Офис я поставил, но он же без апдейтов совсем сырой, надо бы и сервис-пак накатить. Он тоже немаленький, целых 300 метров, но должен влезть — всё-таки ещё гиг свободен. Запускаю, жду. Долго шуршит, потом выдаёт: «Не могу установиться, ошибка». Что за ошибка, откуда, зачем — непонятно. Ищу лог инсталлера, нахожу и охреневаю: ему места не хватило. Как! Почему?!


Ладно, неважно, сейчас мы его опять освободим. На фига нам MsoCache? На крайний случай — вот он, дистрибутив на диске. Удаляю папку MsoCache, запускаю установку сервис-пака, жду. Опять ошибка. Лезу в лог — опять не хватило места. А сколько ж ему надо? И вообще, сколько сейчас свободно? Один гиг. Как так, я же MsoCache удалил, а она 300 занимала? Опаньки, а почему это Installer уже 600? Так и есть, в нём полураспакованная копия сервис-пака.


Ё-моё, вы задолбали. Удаляю папку Installer. Запускаю опять установку сервис-пака. Две секунды — «Установка завершена успешно». Отлично, даже удивлён, что так шустро. Даже сомнения берут, возможно ли такое. Надо бы перепроверить… Где наш лог-файл? «Установка невозможна, потому что база установки повреждена». А кто говорил «успешно»? И что мне с тобой теперь делать?


Окей, попробую переустановить Офис, потом подумаю, где ему найти место на сервис-пак. Доступные варианты: установить, удалить, отремонтировать. О, это мысль, выберу «отремонтировать», пусть восстановит себе папку инсталлера, если уж он без неё жить не может. Выбираю. Шуршит, шуршит — «Ремонт завершён с ошибкой». Где наш лог, будь он неладен, почему ошибка? Потому что база установки повреждена…


Ну, последняя попытка — там был пункт «удалить», выберу его, потом поставлю заново. Хотя уже заранее догадываюсь: удалиться без папки Installer он тоже не сможет. Проверяю — так и есть. В лог уже даже не смотрю.


Что ж, я попробую пока обойтись без сервис-пака, а сотрудникам Microsoft пусть будет хоть немножко стыдно за свой продукт.




#5310: Дважды лицензионный

14:00 28.01.2011, IT happens


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


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

2. Разработчики — не совсем умные люди.


Но по душе мне вариант третий: отобрать у коллеги компьютер и не тратить время читателей этого сайта.




#5311: Освободительница потенциала

14:00 28.01.2011, IT happens


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


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


Извинилась, поблагодарила, но рефлекс уже был приобретён. Теперь при каждом моём приближении сисадмин как-то странно вздрагивает.




#5312: Нам всем 14383421

15:45 28.01.2011, IT happens


Работаем в неслабом по меркам нашего провинциального городишки сервисном центре. Чиним, настраиваем, устанавливаем софт по желанию заказчика (официально — только фривару). Документы на железо спрашиваем, но редко, в случаях, когда личность клиента вызывает опасения.


На днях принесли системный блок якобы для диагностики: «Отдавали какому-ту фраеру, чтобы он нам игр понаставил и чтобы всё работало, а он всё поломал». Трико, кепки и туфли в комплекте. Не дожидаясь квитанции о приёмке, ребята исчезли. Запускаю — получаю командную строку DOS. Магические nc\nc делают своё дело. Вижу несколько папок с числовыми именами, внутри тоже папки и файлы, названия которых сплошь из циферок, расширение одно и неизвестное.


Пока я думал, что это такое, и кофе пил, подошёл коллега и спросил, что случилось. Киваю головой на экран, говорю, что какая-то непонятная фигня. Громко и в нецензурной форме коллега предложил снести всё это к лешему и поставить на диск винду. Памятуя о внешнем виде клиентов, звоню главному и вкратце обрисовываю ситуацию. Любопытство берёт верх, и через минуту самый большой насяльника появляется у меня за спиной и смотрит на монитор. Через полторы он уже трясёт меня за грудки и орёт на всё здание и близлежащие окрестности: «Где ты это, сука, взял?» Всю речь приводить не буду — там был преимущественно непереводимый фольклор, замешанный на эмоциях. Я, чуть не заикаясь, повторяю уже сказанное. Сначала отпускает его, потом он — меня. Кому-то звонит и просит приехать, причём срочно. Мне страшно. Шеф забирает привезённый компьютер и говорит, чтобы я из комнаты никуда не выходил, даже в туалет. Мне уже очень страшно.


Спустя полчаса приходят два паренька в штатском и начинают расспрашивать, дружелюбно так, но смотрят холодно и странно. Больше всего их интересовало, когда придут за компьютером клиенты. А я не знаю, эти гады не дождались, когда им время назначат, раньше утопали. Взгляды людей в штатском холодеют. Мне становится очень-очень страшно, я вспоминаю родных и думаю о том, как мало всего успел в жизни.


На работу я приходил к 8:00 и уходил в 22:30 вместе с начальником и двумя новыми сотрудниками: девочкой-менеджером Леной с данными супермодели и компьютерным техником Борей с габаритами книжного шкафа. На моё счастье, носители спортивных штанов заявились через день к обеду. Я дал знать об этом начальству, и, как и было велено, минут двадцать заикающимся голосом втирал парням о том, что поставили, как всё круто, стоить это будет столько-то, но если не устраивает, можно удалить, и будет дешевле. Потом вышел Боря и всучил парням системник. По дороге в кассу к парням подошли и новый менеджер модельной внешности, и Боря, и те двое в штатском, что заставили меня постареть на пару лет. Не было ни криков, ни выстрелов — вообще ничего. Гопники с системником под мышкой вышли через парадный вход в сопровождении всей честной компании. Больше я никого из участников этого эпизода не видел.


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




#5313: Работает — и ладно

15:45 28.01.2011, IT happens


Стыдно станет[1], говорите? Даже не мечтайте!


Учусь я сейчас на программиста, третий курс. Поскольку компьютерные аудитории, как правило, маленькие (около 10–15 машин), а группы большие (25–30 человек), то по большинству предметов мы работаем в бригадах. Защищаются работы индивидуально каждым студентом, но программа на бригаду пишется одна.


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


Все операторы он написал в один столбик даже без попыток табуляции (Delphi её автоматически не вставляет, к сожалению). А уж как изощрился с хеш-функциями… Оговорюсь, что массив ключей для записи и для поиска объявлялся глобально. В каждую из хеш-функций, написанных в виде процедур, вместо одного-единственного ключа передавался индекс элемента в массиве, имя переменной, куда предлагалось вернуть значение, и ещё пара-тройка параметров типа длины числа и количества элементов в массиве (объявленные в начале программы константы). И самое весёлое: поскольку нужно было анализировать два разных массива, каждая хеш-теперь-уже-процедура была продублирована.


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


— Я ж не знал, что её надо делать. Да он и так примет! Мне же надо только работу сдать — и всё.

— А как же правила программирования? Как же то, чему нас учили?

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


Вот так, товарищи. Главное — чтобы препод принял. И впрямь, зачем мучиться, думать, делать по уму? Работает — и ладно. А потом и на работе так же: делают не чтобы работало, а чтобы начальник принял. Чему ж тут удивляться? Им не стыдно. Ни капельки.




#5314: Самописец чудодейственный

15:45 28.01.2011, IT happens


Я настолько привык, что в Qt Creator очень хорошо работает автодополнение, что поймал себя за попыткой дополнить название нового метода, который сам же и собираюсь написать в новом классе.




#5315: За порогом восприятия

15:45 28.01.2011, IT happens


На днях супруга по аське пожаловалась: сканер дома сканирует, но не сохраняет изображение. Сам я пользовался сканером больше года назад и с трудом припомнил, что сохранить изображение из родного сканерного софта — задача нетривиальная. На ум пришла история про вершину программерской мысли в части юзабилити сканирования[2]. Отправляю ссылку на историю — понимания нет, приходится объяснять: попробуй, мол, закрыть программу. Увы, совет не помог: никакого окна сохранения не вылезало, и программа просто висла.


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




#5316: Нелитературно

12:00 29.01.2011, IT happens


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


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


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


Стандартный диалог в курилке:


— Это ты, %&*#@, показывал в камеру @#$?

— Чего-о? Нет, не я! Я таким не занимаюсь!


Приедьте кто-нибудь к нам (Добролюбова, 9/11) и найдите виновного. А с нас пиво. И тортик. И право на расстрел.




#5317: Вы прослушали антитезис

12:00 29.01.2011, IT happens


Было дело на курсах повышения квалификации на тему CDMA-сетей. Проводил лекции представитель провайдера сотовой связи в этом стандарте. Долго и, признаться, интересно рассказывал о преимуществах используемого частотного диапазона, кодового разделения каналов, помехоустойчивости, о том, почему стандарт так понравился американским военным.


Кульминационный момент. Лектор нахваливает защищённость CDMA-канала от прослушивания, аудитория молча внимает. Звонит громоздкий Huawei H100 (если не ошибаюсь), оратор делает паузу, подносит трубку к уху — и из неё чётко и громко разносится на весь кабинет что-то вроде: «Алло! Саня, это самое…»




#5318: Мсье знает толк в сортах полиэтилена

14:00 29.01.2011, IT happens


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


Я что, приклеил к экрану защитную плёнку от защитной плёнки?




#5319: Бухгалтерша Юзверевна Проводко

14:00 29.01.2011, IT happens


В подразделении километров так за восемьсот появился новый сотрудник. Ему надо завести учётку и прочие сетевые радости.


В головную контору в 9:20 приходит письмо:

«Завести учётку для Сергеевой Тамары Александровны».


В 9:45:

«Мы тут ошиблись: Сергиенко Александры Тихоновны».


В 11:30:

«Извините, мы опять всё перепутали. Тихоновой Светланы Александровны».


Админ домена в 11:35 закрывает тикет:

«Заявку отложить до тех пор, пока в подразделении не выяснят, как зовут сотрудника».




#5320: «Тру» не по нутру

14:00 29.01.2011, IT happens


Разрешите представиться: быдлокодер. Да-да, та самая мифическая и несуществующая личность. Кого ни спроси — он тру-программер, а быдлокодер ходит где-то рядом. Позвольте полюбопытствовать, господа тру-программеры, а за неделю до сдачи проекта вы таки пишете нетленный идеальный код? Написание быдлокода — это как дефлорация. Не написал быдлокода — не программист. Но вопрос не в этом. За 25 лет (да-да) быдлокодинга я составил для себя классификацию «тру программеров». Вот она.


* * *


«Гении». Берутся за всё, делают на треть. Потом говорят: «Остальное тривиально», и за них доделывают другие. Любой совет со стороны воспринимают как повод унизить собеседника: «Чё ты ваще понимаешь?»


«Архитекторы». Эти лучше только тем, что берутся не за всё сразу. Зато любят изобретать свои архитектурные решения. Казалось бы, для типовой задачи за полвека придуман не один десяток типовых решений — нет, надо изобрести очередной велосипед с квадратными колёсами. Чуть не забыл: в архитектуре, по их мнению, я тоже ничего не понимаю.


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


«Алгоритмщики». Эти снизойдут до стандартных библиотек, но запутают данные и код так, что сам чёрт не разберет. Тут явно видно, что человек произошёл от обезьяны, поскольку рекурсивное лазание по дереву пришито к месту и не к месту.


«Оптимизаторы». Могут веками переписывать что-то на ассемблере (внося баги, конечно), считать такты процессора в Java-приложении и хранить биты в SQL-сервере.


* * *


А что же быдлокодеры, к коим принадлежу и я? Принцип «сделай быстро, сделай тупо, не пиши лишнего кода» — он не от хорошей жизни.


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


Ладно, ребята, гордитесь, только не при мне. Я видел ваш код. С точки зрения унитаза люди различаются довольно слабо.




(обратно)

#5321: Проскочим с разгона

12:00 30.01.2011, IT happens


Когда-то купил Final Fantasy IX. Игра в своём жанре едва ли не лучшая. Я предвкушал кучу приятного игрового времени: шутка ли — четыре диска! Игра сделана для первой Sony PlayStation, а у меня только комп, поэтому играл я на эмуляторе. За счёт мощной видеокарты и современного процессора при выключенном FPS-лимите эмулятор дурел и, отрываясь на сравнительно примитивной графике, выдавал далеко за 300 кадров в секунду вместо положенных 30–60. Играл я, соответственно, только при включённом FPS-балансе, который автоматически понижал количество кадров в секунду до обычных показателей.


В общем, играл я и радовался, пока не дошёл почти до самого конца первого диска. Был там один сюжетно важный ролик, который нельзя было пропустить. Как только включалось это видео, начинали выпадать текстуры, и в какой-то момент игра просто зависала в каше из артефактов. «Алкоголь» при проверке диска показал, что на диске около 2% данных, которые передаются с CRC-ошибками. Само собой, диск выкидывать было жалко. Поморочившись, в конце концов пройти этот участок удалось.


Когда началось то самое видео, игру я поставил на паузу. Настройки -> FPS, снимаем все ограничения и запускаем игру дальше. В итоге комп на радостях загрузил процессор на 100%, выел всю оперативку и, объединившись с мощностями видеокарты, начал показывать видео на дикой скорости. Когда дело дошло до участка с артефактами, за несколько секунд мелькнуло около двадцати кадров с битыми текстурами, пару раз экран моргнул чёрным — и игра пошла дальше.




(обратно)

#5322: Геморрой метровой длины

12:00 30.01.2011, IT happens


Звонит мне мой знакомый из далёкого детства и спрашивает, где взять 12 вольт с блока питания. Я говорю, попутно выясняя, что нужно это для неонки. Думаю, такую фигню может любой приделать.


Через неделю опять звонит этот товарищ и в панике полупьяным голосом объясняет, что случайно оторвал провода с передней панели, и комп не запускается. Объяснять, как вернуть всё назад, в лом, тем более по телефону — проще прийти и сделать. Договорились на следующий день.


Первое, что меня насторожило, это как оторвались провода: не просто выскочили из матери, а были реально оторваны почти под корень со стороны кнопки и диодов, причём концы проводов были зачищены сантиметров на пять, а некоторые скручены. «Клиент» объяснил, что порвал их случайно, когда вкорячивал неон. Ну, думаю, ладно, скручены были провода относительно правильно: ресет и включение. Отсоединил провода совсем, включил БП — на пару секунд закрутились вентиляторы и встали. Подозрения стали обрастать догадками. Тут-то мне и открылась правда: когда один раз знакомому удалось запустить комп, он зачистил провода и принялся поочерёдно тыкать ими куда попало на материнке, замкнул накоротко плюсы светодиодов PW_LED и HD_LED, а проводом от PW_SW ткнул куда-то в разъём кулера.


Поздравил я знакомого с геморроем метровой длины, собрал манатки и убрался восвояси. Не оскудеет земля идиотами.




(обратно)

#5323: Наше дело маленькое

12:00 30.01.2011, IT happens


Вы считаете, что быдлокод — проблема нашего образования? Если бы.


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


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




(обратно)

#5324: Серьёзный зависон

12:00 30.01.2011, IT happens


Дело было утром 4 января 2011 года. Весь рабочий состав офиса провайдера в сборе и готов к работе после окончившихся праздников. В 9:15 раздаётся звонок:


— Доброе утро! Не работает интернет.


Смотрю на карту сети — лежит сегмент из пяти домов. На одном из домов изредка подвисает медиаконвертер. Отправляю монтажника. Через пять минут он перезванивает и сообщает мне тревожным голосом:


— Тут это… Мужик висит.

— %name%, если это шутка, то она неудачная и не смешная совсем!

— А вот и не шутка! Висит и смотрит на меня. Я на техэтаж не полезу!


Отправляю вдогонку другого — перезванивает и говорит, что таки висит и таки смотрит.


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




(обратно)

#5325: Ах, вот ты где, Олег! Я давно тебя искал

14:00 30.01.2011, IT happens


Да-да, оттуда[3] и берутся быдлокодеры, пишущие индийский код. Скажи мне, Олег П-тов из 10 «Б» класса школы № ####, для кого я писал в тексте задания слово «рекурсия»? Сколько раз нужно объяснять это перед всем классом, окончательно задалбывая тех, кто слушает на уроке учителя, а не играет с соседом в «клоподавку»?


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


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


Или наоборот. Разрушь шаблон, сядь и разберись, чего от тебя хотят. Может, не так уж оно и глупо, а они не так уж это и скрывают?




(обратно)

#5326: Нереально, но факт

12:00 31.01.2011, IT happens


Студенты сдают первую лабораторную по C++, я бегаю принимаю. Их сорок человек, я один, времени всего час, поэтому конвейер и никакого индивидуального подхода. Одна из задач: используя рекурсию, написать функцию, вычисляющую факториал. Студент показывает программу на два или три экрана кода. Разбираться некогда, поэтому предлагаю запустить с мыслью, что сейчас факториал семи окажется равен 143 или вроде того, и со спокойной совестью оставлю студента копаться в этой каше дальше. Но программа считает, и считает совершенно правильно, по крайней мере, для чисел от 1 до 10. Смотрю код. int fktrl(int n, int p)… Собственно, факториал считается через вызов fktrl(n, 0).


— Что такое p?

— Сколько произведений.

— Каких произведений?

— Которые уже есть. А то иначе не работает.


Понятно, думаю, такой безумный вариант я уже видел. Смотрю код дальше. Ничего подобного! Какие-то проверки, сравнения, штук пять разнообразных рекурсивных вызовов — и fktrl(n?1, p), и fktrl(n, p+1), и совсем загадочное fktrl(n?2, 3). Умножений нет вообще, зато есть сложения.


Времени не остаётся. Ставлю студенту плюсик (потом по моим плюсикам проверят только, кто присутствовал, — хотя студенты этого, конечно, не знают, маленькие ещё) и бегу принимать дальше. Но два вопроса меня теперь мучают: как это работало и как такое можно было придумать и отладить?




(обратно)

#5327: Пять по алгебре, а ко мне на пересдачу

12:00 31.01.2011, IT happens


Третий курс IT-факультета с математической направленностью. Зачётная неделя перед зимней сессией, на кафедре сдаю накопившиеся за семестр лабораторные и непроверенные контрольные по программированию. Рядом сидят однокурсники и в потугах пытаются получить зачёт. Вопросы отлетают, как от стены. В итоге препод пытается вытянуть ребят хотя бы на минимальную оценку.


— Что такое класс?


Ответа закономерно нет.


— Ладно, что такое полиморфизм?


Бедный студент начинает рыться в памяти на предмет знакомых ему понятий:


— Ну, я знаю, что такое гомоморфизм, изоморфизм, эндоморфизм, автоморфизм и даже диффиоморфизм, а о полиморфизме слышу впервые.




(обратно)

#5328: В сценическом образе

12:00 31.01.2011, IT happens


Нужно было мне от одного знакомого, не особо сильного в компах, получить файлик — ISO-образ в 600 метров весом. Пока я думал, поднять у себя FTP или объяснить, как пользоваться файл-хостингами, человек написал, чтобы я готовился принимать по электронке.


К вечеру я получил от него 30 писем, в каждом из которых лежал 20-метровый RAR-архив. Сразу же вспомнились старые добрые времена, когда на двух пачках дискет носили игры друг другу. Но сюрприз ожидал меня в конце. Распаковав этот многотомный архив, я получил… запароленный RAR-архив с нужным мне диском. Пароль мне знакомый потом сообщил по телефону, а причины решения объяснил так: «Ты же рассказывал мне, что надо осторожнее быть с информацией в сети, что важную информацию не стоит пересылать по небезопасным соединениям. Я не знаю, безопасна ли почта или нет, поэтому решил подстраховаться».


Люблю таких пользователей. Хоть и не всегда знают, как сделать, но стараются.




(обратно)

#5329: Между трёх огней

12:00 31.01.2011, IT happens


Ковыряю один не очень известный драйвер для восьми трёхцветных светодиодов, где яркость каждого цвета можно менять кактремя внешними резисторами, так и программно. Сам не так давно отказался от DIP-корпусов, почти всё использую SMD (в первую очередь резисторы).


Началось с того, что при пайке плату я повернул на 180 градусов (так было удобнее), а микру нет — но это полбеды. Всё припаял заново, даже смог управлять. Быстренько зашил в контроллер таблицу синусов, настроил таймеры, и по светодиодам весело побежала радуга. Радость была недолгой: красная составляющая резко стала явно преобладать над остальными. Не беда: поправил константу, и всё встало на свои места. Вскоре возникла та же проблема, но уже с синим цветом. Начал подозревать перегрев драйвера, однако палец почти не чувствовал тепла. Стал ковырять программу, пробовал вызывать функцию инициализации драйвера по несколько раз, уменьшил скорость передачи до 10 байт в секунду, пропаял все разъёмы — ничего. «Баланс белого» гулял, как ему вздумается.


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


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




(обратно)

#5330: Золотая раздача платинового альбома

14:00 31.01.2011, IT happens


«Left its seeds while I was sleeping», — пели Саймон и Гарфанкел в далёком 1965 году, задолго то того, как на нашем национальном трекере ввели систему подсчёта рейтинга.




(обратно)

#5331: О сложности простоты

14:00 31.01.2011, IT happens


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


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


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


Оверинжиниринг — вот мировое зло, вот дьявол всеохватный. Надо же обязательно показать всему миру длину своей пиписьки, свою «современность» и владение всякими супер-пупер-технологиями. Как? Ты до сих пор ищешь четыре максимальных элемента в массиве при помощи цикла? Так ведь в последней версии надстройки для последнего Visual C++, которая продаётся всего за $1600, давно реализован готовый класс для этого! Или можно взять готовую функцию qsort, которая всего-то отсортирует зря остальные 4 миллиона элементов, зато ты потом просто сможешь взять e[0], e[1], e[2], e[3] — и всё!


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


for (b=a=0, a<c, a++) if (b<d[a]) b=d[e=a];


Возможно, после пары тумаков он станет нормальным программистом и начнёт писать так:



for (MaxVal=i=0, i<ARRAY_SIZE, i++)

if (MaxVal<DataArray[i]) MaxVal=DataArray[MaxIndex=i];

// Ищем максимальный элемент и его номер. Массив полностью нулевым не бывает (проверено выше), поэтому MaxIndex всегда определён.


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




(обратно)

#5332: Уберите руки от моего аптайма

15:45 31.01.2011, IT happens


Есть у меня на работе одна женщина, несколько неадекватная. У неё бзик на почве того, что её все стараются уволить. Как-то подняла шум из-за того, что один из «программистов» что-то ей испортил. Когда она выключает компьютер, тот её спрашивает: «Завершить работу?»


— Мне завершить? Совсем — и с вещами на выход? Я ещё вас тут всех пересижу, вы меня не уволите!




(обратно)

#5333: Тонкий беспроводной троллинг

15:45 31.01.2011, IT happens


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


А теперь нюанс, которым хочу поделиться. В качестве пароля, особо не заморачиваясь, я выбрал словосочетание на русском языке в английской раскладке. Запоминается легко — но попробуйте ввести его на экранной клавиатуре КПК, планшетника или смартфона! Не получается? А гости, основные пользователи моего домашнего беспроводного интернета, приходят именно с такими устройствами. Пароль пришлось менять.




(обратно)

#5334: Много-много миллионов новых наноэлектронов

15:45 31.01.2011, IT happens


Конец 2010 года. Интернет-провайдер в подмосковном Долгопрудном гордо заявляет: новые тарифы «работают только по новой технологии IPoE (IP over Ethernet)». Вот это инновация! А раньше мы IP через Ethernet передавать и не догадывались!




(обратно)

#5335: Гладко было на бумаге

19:45 31.01.2011, IT happens


Все говорят, что писать надо быстро, качественно и так, чтобы работало. С этим все согласны, но когда начинаешь выяснять, что такое «чтобы работало», обнаруживаются такие нюансы, что только диву даёшься.


Я не программист, я математик. И 25-летнего стажа у меня нет — мне всего 27. Тем не менее, на моём счету нахождение ошибки в вычислительной программе по телефону (неправильное соотношение шагов в сеточном методе для уравнения теплопроводности — в итоге деталь охлаждалась до ?3000 градусов) и ещё пара подвигов в этом духе, но рассказ не об этом.


Недавно меня попросили реализовать один алгоритм (если кому интересно, Savitzky-Golay smoothing). Ерунда вопрос. Два дня, чтобы прочитать, что же это за зверь, два дня, чтобы вспомнить синтаксис C, два дня, чтобы не торопясь написать и протестировать консольную программу (напоминаю, я не программист). И вот в процессе тестирования вылезает глюк: в результате сглаживания у положительной функции появляются отрицательные участки. Понятно, что на такой функции и с такими параметрами метод не работает, но как понять, где его можно применять, а где нет? И вот я погружаюсь в глубины интернета в поисках оценок погрешности метода, но их нигде нет. Самому оценки вывести не получается — метод сформулирован в таких терминах, что непонятно, с какой стороны к нему подходить. Алгоритм опубликован в 1964 году, но за сорок лет никто не удосужился его протестировать и обосновать?! Невероятно, но факт. В принципе, после этого можно было бы сдать работу и сказать, что оно сорок лет у всех работало и у нас поработает, но совесть не позволила. На реализацию ушла неделя, на поиск альтернативных решений или обоснований — два месяца. Вот такое вот «чтобы работало». Решайте сами, как бы вы поступили в такой ситуации.


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




(обратно)

#5336: Писк воображаемого спикера

12:00 01.02.2011, IT happens


Нижний Новгород, доблестный Политех, ФИСТ (факультет информационных систем технологий), первое занятие по языкам высокого уровня, десять лет назад.


Задача: сделать, чтобы комп пищал системной пищалкой три раза. О том, что в С надо подключать библиотеки, вся группа (кроме тех, кто был в курсе заранее) узнала из логов ошибок. Какие именно и как — из встроенных мануалов (это при живом преподе в аудитории). 9 из 10 компов таки запищали; за десятым не повезло сидеть мне. «Не зачтено». Все призывы посмотреть код и сравнить его побуквенно с творением соседей игнорировались. В итоге я достал отвёртку и под гневные вопли препода вскрыл комп. Оказалось, что пищать ему нечем: спикера в корпусе не было.


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




(обратно)

#5337: 126 тысячных

12:00 01.02.2011, IT happens


Пришёл спам в контакте. Интересно же посмотреть — перехожу по ссылке.


Для Вас сгенерировано 1350 голосов!


Это единственный легальный способ получить голоса БЕСПЛАТНО.

Голоса нужно использовать до 31.02.2011.

НЕ нужно указывать e-mail или пароль.

Всё делается одним кликом мышки.


Нажми на кнопку, чтобы забрать свои голоса:


Забрать 1350 голосов


Уже выдано голосов: 1213820.


Не знаю, что меня больше напугало: то ли 31 февраля, то ли осознание факта, что голоса забрали 1213820 / 1350 = 899,126 пользователей. 0,126 пользователя — это, наверное, кусочек мяса, ещё меньший кусочек мозга — и везде кровь… Ужас.


Одним кликом мышки всё сделать не получится: надо выбрать, сохранить и запустить (пусть даже с клавиатуры). Ссылка ведёт на .zip.exe (пожат UPX, но весит 925 КБ), который даже не запустился под Вайном. Обидно. Прогнал через онлайн-проверку Доктора Веба — у них это давно есть в базах. Скучно.


В общем, я всё понял: эту хрень написали те самые 126 тысячных юзера, они же её и тестировали. А ведь так хотелось запустить, порадоваться за автора, узнать, что же он хотел от нас… Отправил предложение переписать под Ubuntu, а ещё выучить ассемблер и не страдать х@#нёй.




(обратно)

#5338: Как лисицу назовёте, так она и поплывёт

12:00 01.02.2011, IT happens


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


— Сергей, а вместо Internet Explorer Огнелиса можно поставить?

— Нет, — ответил мне админ и чуть позже дописал: — Но могу предложить Mozilla Firefox 3.5.


Пришлось согласиться.




(обратно)

#5339: Беспроводные лучи смешных котиков

12:00 01.02.2011, IT happens


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


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


Уволился. Нервы дороже.




(обратно)

#5340: Ядерный резерв

14:00 01.02.2011, IT happens


Листаю интернет, на ноуте рядом собирается Gentoo. Собирается уже долго — часов шесть. Интересная на этом ноуте индикация питания: лампочка горит только тогда, когда батарея заряжается, а когда разряжается или заряжена полностью, индикации нет. Зачитался я, смотрю — а ноут-то потух! Матерюсь… Вилка адаптера в розетку воткнута, вот только розетка разболтана, и питания на буке не было. Пошатав вилку, я сумел зажечь лампочку на ноуте. Загрузившись, я понял, что ядро таки собралось.


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




(обратно)

#5341: Тайный зачёт по бета-тестированию

14:00 01.02.2011, IT happens


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


Практика давалась относительно легко, особенно тем, кто дружил с Excel. А вот теория была не так проста: в конце кажого семестра студентов ждал тест на написанной студентом-асушником в качестве какой-то там работы программе. Прога именовалась в народе «О, счастливчик!», и вся цель состояла в выборе правильной формулы по предмету из четырёх вариантов. Имелась база вопросов и ответов (около 300 штук). В начале теста нужно было ввести число задаваемых вопросов, и по прохождении прога считала процент правильных ответов, по которому и ставилась оценка.


Первая волна студентов сдала тест на 100%, пользуясь хитрым клавиатурным комбо, выведанным у разработчика, за что того чуть не выгнали. Баг исправили. Вторая волна выбрала в качестве фона рабочего стола скриншот с окошком «Ваш результат — 100%». Их тоже быстро раскусили.


Каждый семестр база менялась, но вопросы были практически одинаковыии, так что мне хватило шести часов за компьютером, чтобы запомнить все 300 вопросов. Мой результат на настоящем тесте — 98%, потому что на один вопрос я ответил не вовремя, помогая одногруппнику. Впрочем, в запасе имелась найденная бага, которую я мог бы использовать при желании: нажав мышкой на рамку и потянув её на поле с ответом, можно было его закрыть, сделать так со всеми четырьмя вариантами, а затем позвать препода: «Прога глючит, можно ещё раз?»




(обратно)

#5342: Плед до добра не доведёт

15:45 01.02.2011, IT happens


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




(обратно)

#5343: Когда всё не слава богу

15:45 01.02.2011, IT happens


Моей первой деревянной игрушкой[4] был советский ПК «Искра-1030» с диском на 30 МБ и памятью аж 640 КБ, стоявший в учебном классе, где его насиловали все, кому не лень. Он научил меня разбираться в алгоритмах упаковки данных, оптимизации кода, а также в методах защиты информации и её взлома. В итоге компьютер стал действительно персональным: у всех остальных на нём «глючила память» и «сыпался диск» (всего-то надо было иметь ключевую дискету и знать нужный пароль).


Вторая деревянная игрушка — 386DX-33. Он научил меня разбираться в железе, постепенно мутировав до «пентиума», обзаведясь заодно шикарными дисками по 2 ГБ (круто по тем временам) и 8 метрами памяти. Был утерян при переезде.


Третья деревянная игрушка — старенький 486SX, не поддерживавший большие диски. Он познакомил меня с особенностями работы дисковых контроллеров, в результате чего на нём заработали винчестеры, которые, казалось, не должны были. Комп научил меня Windows-программированию по причине малопригодности для игр.


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


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




(обратно)

#5344: Истину глаголем

15:45 01.02.2011, IT happens


Захотелось как-то написать свой клиент для Music Player Daemon. Не имея опыта работы с GTK+, через две недели я всё же имел клиент, соответствующий моим требованиям. Осталось только реализовать Drag’n’Drop в плейлисте с возможностью тянуть несколько строк за раз. Так как штатными средствами GtkTreeView и GtkListStore этого не добиться, а официальный способ — написание собственной модели — сулил несколько дней курения мануалов и переписывание большого куска кода, было принято решение идти в обход.


Так, что нам мешает? Ага, клик мышкой с целью перетащить несколько выбранных строк воспринимается как выбор кликнутой строки, она же одна и тянется. Ну и ладно — пишем callback на кликанье по плейлисту, проверяем кнопки-модификаторы, смотрим, выбраны ли несколько строк и приходится ли клик на одну из них, ждём 120 миллисекунд, проверяем состояние мыши. Что, вы ещё не отпустили кнопку? Тогда тяните, сударь, наше дело — return TRUE;




(обратно)

#5345: Важная Компьютерная Папка

15:45 01.02.2011, IT happens


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


Через неделю раздался звонок: «Антивирус красный! Помоги». Не могли же так быстро устареть базы?! Пришёл, открыл «Документы». Папка «UPD» была переименована в «UPD ЧТО ЭТО».




(обратно)

#5346: Это мой прокси

12:00 02.02.2011, IT happens


Комп недавно заглючил. Справились своими силами, но в ходе ремонта и восстановления припомнилась история семилетней давности.


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


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


— Дим, а Дим! Да ты скажи хоть, что там такое? Неудобно тебя по каждой ерунде дергать. Может, мы сами уж как-нибудь, а?

— Та-а не-е-е… Звоните, — флегматично сказал Дима.

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


Тяжко вздохнув, Дима стал писать на бумажке какие-то цифры.


— Это что? Это куда? Это пароль? — заволновалась я.

— Не, это Коляну позвонишь, если что… Он в курсе, подъедет.




(обратно)

#5347: Удовольствие без титанических усилий

12:00 02.02.2011, IT happens


Где-то на «Башорге» был рассказ о том, как парень вытирался после секса салфетками для монитора. На днях случилась история покруче.


Пришли к друзьям на квартиру отмечать окончание сессии. Естественно, выпили — не до чёртиков, но много. Когда наступил вечер, мы с другими гостями остались смотреть телевизор и играть в Call of Duty, а хозяин квартиры уединился со своей подругой в спальне. Судя по доносящимся звукам, ночь проходила довольно бурно.


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




(обратно)

#5348: Домушные сети

12:00 02.02.2011, IT happens


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


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




(обратно)

#5349: MD5.1

14:00 02.02.2011, IT happens


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


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


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




(обратно)

#5350: Летите, плывите, ползите

14:00 02.02.2011, IT happens


Давным-давно прикручивал по заданию руководителя к сайту целителя-шарлатана форму обратной связи и первое время модерировал входящие письма. У целителя на все вопросы ответ был один: если вы ходячий, приходите, мол, вылечу. Как-то наткнулся на письмо: «Уважаемый Анатолий ***ович! Если вы ходячий, идите на х#й!»




(обратно)

#5351: Утомлённые ассемблером

14:00 02.02.2011, IT happens


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


Сдаю третью. Препод долго смотрит код в пояснительной записке, восклицает: «Лови, фашист, гранату!» — и в консольное окошко вводит значения, на которых, по его мнению, программа должна была ошибиться. Нет, всё в порядке. Немного обескураженный препод открывает код в Notepad++ и начинает в него вдуплять. Через минуту комп тухнет и уходит в спящий режим. Препод двигает мышку, стучит по клаве, но компу пофиг. Ресет, долгое восстановление системы… «Приходите завтра».


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




(обратно)

#5352: А «Крузис» потянет?

14:00 02.02.2011, IT happens


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


Пришёл в квартиру. Мелкий, увидев коробку, сразу начал блистать своей осведомлённостью: «Дядя Витя нам хаб принёс, я так и знал». Объяснил на пальцах: хаб сродни нескольким сетевым картам, запихнутым в компьютер, а это роутер, заменяющий и компьютер, и карты. У мелкого глаза округлились: «У нас будет ещё один компьютер, чур, мой! Только мне GTA IV на него поставь!»




(обратно)

#5353: Утеря военно-морским способом

15:45 02.02.2011, IT happens


Я не Настоящий Одмин. Об этом мне сообщили свалившиеся на голову «коллеги», но обо всём по порядку.


Жила-была наша конторка, один из многих филиалов в нашем городе. 70 человек персонала, в основном бухи и юристы, и один админ — я. Потом Большие Боссы решили свести несколько филиалов в одну контору побольше, сняли шестиэтажное офисное здание и начали туда всех подселять. Соответственно, я дружно влился в общий отдел IT. Вот тут всё и началось.


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


Настоящий Одмин никогда не опустится до знания других операционных систем, ведь всё можно решить творениями дядюшки Билли. А я, значит, просто лошара, раз настраивал файлопомойку на «фре» и прикручивал туда сетевую корзину, ведь если пользователи потеряли файл военно-морским способом, значит, это их проблемы, а если сам Большой Начальник это сделал, то не грех сервак остановить и анделитом побегать. А под шлюз надо заказывать непременно двухпроцессорный сервак с 8 ГБ ОЗУ и четырьмя банками по 2 ТБ, ведь на нём будут крутиться Керио и 2003-й сервер, а «фрибздя» — выбор лопухов вроде меня.


Настоящий Одмин никогда не объясняет пользователям причину неисправности или сбоя и уж тем более никогда не унижается до объяснения этих самых причин на пальцах.


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


Настоящий Одмин никогда не потратит свободное время на доводку серверов, ведь это время можно потратить на «квейк» и «контру».


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


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


Настоящий Одмин никогда не приходит на работу раньше 10:30 и не уходит домой позже 15:30 — и пусть рабочий день с 9:00 до 18:00. А если вдруг что-то необходимо сделать с серверами, то пользователи потерпят, ведь Настоящий Одмин соизволил заняться делом.


* * *


Как же хорошо, что я не Настоящий Одмин, что мы живём в разных виланах, что приказом по предприятию я закреплён за своими 70 пользователями и четырьмя серверами, два из которых на лоховском FreeBSD. Почему-то мне совсем не хочется становиться Настоящим Одмином.




(обратно)

#5354: Глух или нем

15:45 02.02.2011, IT happens


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




(обратно)

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

19:45 02.02.2011, IT happens


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


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


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


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




(обратно)

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

12:00 03.02.2011, IT happens


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


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


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




(обратно)

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

12:00 03.02.2011, IT happens


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


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




(обратно)

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

12:00 03.02.2011, IT happens


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


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


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


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




(обратно)

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

14:00 03.02.2011, IT happens


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


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


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




(обратно)

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

14:00 03.02.2011, IT happens


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


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


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


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


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


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


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




(обратно)

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

14:00 03.02.2011, IT happens


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


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


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




(обратно)

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

14:00 03.02.2011, IT happens


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


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


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


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


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




(обратно)

#5363: Таня-с-утра

15:45 03.02.2011, IT happens


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


Когда до дедлайна остались сутки, Иван осознал, что создание сайтов несколько отличается от программирования в его понимании. Однако выход нашёлся: соседка, студентка четвёртого курса, работала в веб-студии. Ваня к ней. Согласилась зайти вечером. Родители на даче, учебному процессу мешать некому. Не мог ожидать Иван, что обучение пройдёт именно так, как организовала его Татьяна…


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


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


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




(обратно)

#5364: Источник бесперебойного интернета

15:45 03.02.2011, IT happens


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


— Нет инета по такому-то адресу.

— Сколько лампочек на модеме мигает? Телик работает?

— Мигают две правые, телик пашет.

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

(подавляя хохот) Простите, а почему именно пятнадцать?

— Ну, чтоб не десять. Там конденсаторы — пока разрядятся…


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




(обратно)

#5365: Это исключено

15:45 03.02.2011, IT happens


Недавно друг попросил посмотреть кое-какую программу на Паскале по теме «геометрия на плоскости». Сел ковырялся и обнаружил ужасное выражение:


if (A and B) or (not (A) and not(B))

then writeln('...');


Когда я сказал, что условие можно выразить через XOR, друг изрёк гениальную фразу:


— А нам в школе сказали, что мы XOR не знаем.




(обратно)

#5366: Акселератор программиста (II)

12:00 04.02.2011, IT happens


Параллельно с работой админа подрабатываю сборкой на дому всякой электроники: GSM-трекеры, шлюзы, управляемые розетки и прочая лабуда.


Как-то поступил заказ на сборку очередной партии. К заказу шёл комментарий: штатная прошивка глючит, переписать не можем, программист в отпуске. Проблема в том, что имеющаяся прошивка не всегда понимается бутом. За скорое решение вопроса сулили приличные деньги. «Отчего бы и нет», — подумал я и позвал на помощь С-программиста, знакомого ещё со школы. Договорились так: я напаиваю компоненты, проверяю голый запуск, а он переписывает код, оптимизирует его, заливает прошивку и тестит, как только можно.


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


Уже вечером, когда он понял, что всё будет хорошо, рассказал, как дело было. Проснулся он в шесть утра и решил выпить кофе. Пошёл на кухню, на автопилоте насыпал, залил, начал пить. Только потом глянул на банку, из которой он насыпал сахар. На ней красовалась наклейка: «Нитрат ртути (II)». Сначала выпала чашка из рук, потом его почему-то вырвало. Моментально проснувшись, друг побежал за помощью в интернеты. Гугл сказал, что от трёх чайных ложек этой заразы умирают, но можно попробовать спасти себя активированным углём. В банке был, конечно, сахар, все остались живы и здоровы, а наклейку я давно приклеил забавы ради. Как сказал друг, этот шок оказался эффективней всех стимуляторов, которые он когда-либо пробовал.




(обратно)

#5367: Всех компьютеров начальник, документов командир

12:00 04.02.2011, IT happens


Это было, когда Windows делал первые шаги. Устроившись в новую контору, я начал расставлять винду и WinWord 6 вместо ненавистного досовского Word, в котором наш издательский отдел заставлял всех пользователей готовить документы для публикации. Пользователи облегчённо вздохнули — если кто не понимает почему, рекомендую отыскать раритет и опробовать. Первую установку я опробовал на себе, честно вбив свои фамилию и имя. Дистрибутив лежал на сетевом ресурсе: с компакт-дисками тогда была напряжёнка. При повторной установке ФИО Word уже не спрашивал, то есть на всех компах конторы владельцем его оказался я.


Спустя некоторое время меня стали изводить гневными звонками: зачем, мол, вы открываете мои документы? Все файлы находились на локальных дисках — при чём тут я? Как всегда, во всём оказалась «виновата» винда. Пользователь открывал документ для редактирования, и внезапно ему срочно требовалось выполнить другое действие. Юзер минимизировал документ, а потом, забыв об этом, пытался открыть его вновь — в 3.1 панели задач ещё не придумали. WinWord настороженно рапортовал, что документ уже открыт, а поскольку владельцем записан был я, то меня программа и сдавала как шпиона и злобного хакера.




(обратно)

#5368: Дяденька, я боюсь вашего процессора

12:00 04.02.2011, IT happens


Купил на днях себе компьютер для работы. Не пожалел на железяки денег: уверен был, что окупится. 6 ГБ оперативной, GTX480 с полутора гигами, камень — i7, мать хорошая. Обошлось всё это в полсотни.


Установил игрульку-стрелялку, прекрасно летающую на простеньком компьютере, чтобы насладиться высоким качеством графики. При первом запуске игра сообщила: «Настройки графики приведены в соответствие с вашей системой». Обрадованный, нажимаю «ОК» и ошарашенно наблюдаю: разрешение — 800?600, половина красоты отключена, остальная половина в лучшем случае на среднем уровне… «Она просто испугалась», — прокомментировала супруга.




(обратно)

#5369: Ты просто ничего не понимаешь

12:00 04.02.2011, IT happens


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


Знакомый юзер словил порнобаннер или иную мерзость? Единственное решение — переустановка винды. «После твоих CureIT’ов система всё равно не встанет, а чистка реестра ручками не поможет». По этой причине машины хороших общих с ним знакомых стараюсь обслуживать я: после меня всё работает стабильно (за исключением совсем уж сурово-криминальных случаев, коих наберётся пара процентов), а софт и документы остаются на месте.


Linux хуже Mac OS. Может быть, тем, что бесплатный? Нет, просто тем, что Mac OS лучше по определению. А Торвальдс якобы присвоил ядро Macintosh, за что его надо расстрелять, такой он нехороший. «В таком случае, — говорю, — Mac OS — всего лишь наглейшая попытка продавать линукс за огромные деньги, зачастую ещё и со спецжелезом в комплекте». 9000 контраргументов, призванных доказать превосходство любимой конторы с надкушенным яблоком на эмблеме. Всю продукцию компании Apple этот человек просто боготворит. Так во всём: Nokia хуже iPhone просто потому, что это Nokia; Safari лучше Firefox только потому, что это Safari. Ничего не имею против Apple, но каждому своё.


Windows XP — устаревшее говно, по качеству хуже Millennium Edition, зато Vista — верх совершенства. Думаете, потому что она безглючна? Да нет, просто он ОС переустанавливает каждый месяц. Когда Microsoft выпустила «семёрку», перешёл на неё, но всё равно переустанавливает систему каждый месяц якобы из-за снижения производительности.


ATI по умолчанию намного лучше NVIDIA, а продукция Intel не идёт ни в какое сравнение с чипами AMD. То, что у трёхбуквенных случаются провалы не реже, чем удачные модели у конкурентов, он предпочитает не замечать.


Вам смешно? Мне тоже. А главное, весь этот субъективизм (хотя человек далеко не подросток) подаётся со ссылками на богатый практический опыт. По идее, если ты такой опытный, то на домашней машине у тебя должно быть всё отлично. Но нет: надпись в углу второго монитора «Ваша копия Windows не является подлинной» не убирается в силу то ли неумения, то ли банальной лени. Что-либо настраивать он не считает нужным: «А зачем? Оно и так работает». На тот факт, что по этой причине у него регулярно приворовывают вайфай, он готов закрыть глаза. На любое моё мнение у него готов универсальный ответ: «Да ты просто в компах не шаришь!» После этого желание разговаривать с ним на околокомпьютерные темы пропадает надолго.


Самое ужасное — у него есть последователи, которые лет через пять будут промывать своим знакомым девственные мозги. Мне-то не промоешь, у меня опыт не меньше его, и меня вполне устраивает мой трёхгигагерцовый Pentium IV с Mint/XP на борту. Но тенденция в обществе возникает явно нехорошая.




(обратно)

#5370: И не нажимаем на баннеры!

14:00 04.02.2011, IT happens


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


— Что-то я не понял… Почему тишина? Что вы тут вообще делаете?


Из дальнего угла слышится обрывок разговора: «…набираем в адресной строке: „одноклассники точка ру“…»




(обратно)

#5371: Неприкосновенность квадратика

14:00 04.02.2011, IT happens


Работал в одной шарашкиной конторе, которая занималась всем, от печати фотографий до ремонтов компов. Сижу один в офисе. Телефонный звонок.


— Здравствуйте! Ремонт компов?

— Здравствуйте! Да.

— Скажите, а вы винчестеры ремонтируете?

— Эмм… В зависимости от поломки. Что с ним?

— Да тут такое дело… В общем, у меня сильно глючил компьютер, и мне сказали, что нужно его почистить. Ну вот! Я почистил его, а он всё равно глючит.

— Скажите, пожалуйста, что конкретно вы чистили и что именно у вас глючило?

— Ну как… Мне сказали почистить железку с вентилятором в центре системного блока. Я стал её вытаскивать, и она выскочила с маленьким квадратиком. Ну, я всё обдул, прочистил и вставил на место, а комп всё равно глючит. Значит, дело в жёстком диске. Вы занимаетесь ремонтом жёстких дисков?

— Скажите, а вы квадратик не отсоединяли от радиатора?

(негодующе) Вы что?! Этот квадратик вообще нельзя трогать, даже прикасаться к нему нельзя! Мне рассказывал друг-программист. Так что дело не в нём, а в жёстком диске! Вы занимаетесь их ремонтом?..


И так в течение получаса. В итоге отправил его в другую контору. Что я, зверь, что ли? Пусть и там поржут.




(обратно)

#5372: Глаз да глаз

14:00 04.02.2011, IT happens


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


Довольно быстро выяснилось, что для просмотра используется Remote Office Manager, он же ROM. Также стало известно, что блокирование удалённого просмотра тем или иным образом приводит к выговору от начальства. Что ж, блокировать не станем, зато настроим уведомления о подключениях. Пишу другу подробный мануал о том, как использовать Netstat, чтобы выяснить, на какой порт сконфигурирован ROM, а также о том, как воспользоваться утилиткой Anti Radmin Suite, чтобы получать уведомления о входящих соединениях на этот порт. Мануал с утилиткой отправляю другу по электронной почте.


Утро, разговор в ICQ. Друг радостно сообщает, что нашёл-таки порт ROM, и присылает мне скриншот консоли. Вижу ROMServer.exe на родном порту 5650. Попутно просматриваю остальные процессы.


— Витальян, а что за lvsclnt.exe на порту 4127?


Не дожидаясь ответа, гуглю. Ну и ну: процесс принадлежит пакету LANVisor, предназначенному для удалённого наблюдения.


— Витальян! Палево! Это ещё одна смотрелка.

— %#@&$! Как? Зачем?


Начинается паника. Строятся догадки по поводу того, зачем это кому-то могло понадобиться. Доходит до подозрений, что ROM поставлен для отвода глаз, чтобы отвлекать на себя старания «сильно умных» сотрудников, а фактически используется LANVisor.


— Всё, мне $#&@ец, — пишет Витальян. — Скоро, значит, буду смотреть фильм о том, как я работал. Б#&… Пойду курну.


* * *


— Только что курил с сисадмином. Спросил, на фига две смотрелки ставить. Короче, он непритворно о%#ел и сказал, что про LANVisor вообще никогда не слышал. Мог ли его кто-то другой поставить?

— А кто ещё имеет доступ к твоему компу?

— КГБ разве что. Больше никто.

— Может, осталось от старых админов?

— Нет, я недавно систему переустанавливал… Короче, надо снести, ну его на @#$!

— Что ж, вперёд!


Спустя пять минут:


— Пашка, хочешь упасть?

— ?

— Это ж я сам его ставил, тренировался. Месяц назад скачал демку, покрутил, надоело. Снёс ярлык и забыл.

— Б#&! Е&%#@^$ &^% @#$! Ну не $#&@ец ли? Надо про тебя на IT happens написать.

— Точно! История та ещё.

— Твои админы тоже прочтут. Не боишься, что тебя узнают?

— Не, они об этом сайте даже не слыхали.


А жаль — узнали бы много интересного.




(обратно)

#5373: Будем экологичнее

14:00 04.02.2011, IT happens


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


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


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


О результатах даже вспоминать не хочется — сдали единицы.




(обратно)

#5374: Судо, рм-рф!

15:45 04.02.2011, IT happens


Ставлю Федору. Так как ставлю исключительно в ознакомительных целях, задаю простой рутовый пароль: «qazwsx». Система предупреждает: «This password is a dictionary word». Так вот он какой, язык линуксоидов!




(обратно)

#5375: Принеси, уходи, не трогай

15:45 04.02.2011, IT happens


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


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


— Здраствуйте, я системный администратор из конторы N., могу ли я вам чем-то помочь?

— Да, только, ради бога, ничего не трогайте. Мне нужен диск с виндой, дровами и Офисом.


Чуть позже я проходил мимо и заглянул парню в глаза. Кажется, он решил уволиться.




(обратно)

#5376: Админская честь в розницу

12:00 05.02.2011, IT happens


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


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


И такое ежедневно: то мышка беспроводная не ловит в 50 метрах от компьютера, то, несмотря на все предупреждения, не запускается GTX470 на 450-ваттном блоке, хотя заранее было сказано, что надежды нет… Коллеги, не идите в торговлю.




(обратно)

#5377: Вы уж как-нибудь сами

12:00 05.02.2011, IT happens


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


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




(обратно)

#5378: Впереди паровоза

14:00 05.02.2011, IT happens


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


Дело было на одном заводе в 2002 году. Бухгалтерия у завода небольшая, машин восемь, причём три — откровенный хлам. База лежала на стареньком сервачке от HP под Novell 3.12. Удивительно: те самые три слабые машины в жёлтом продукте шестой версии уделывали остальные компьютеры по всем параметрам.


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


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




(обратно)

#5379: FAT по старой памяти

14:00 05.02.2011, IT happens


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


Прихожу. Винт разбит на два диска, в корне D: — Новая папка, Новая папка (1), Новая папка (2)… Новая папка (241). В каждой лежит файлов по двадцать разного типа. Ну, говорю, ладно, выбирай, что тебе нужно, я скопирую. Я думал, что это задача минут на двадцать. А ни фига: через полминуты-минуту все нужные каталоги были выделены и отправлены на копирование. На вопрос, как же он разбирается в этом хаосе, приятель неуверенно ответил: «Да как-то привык уже…»




(обратно)

#5380: Наша сила — в нашем штате

15:45 05.02.2011, IT happens


Работал я одно время на заводе, который был заложен в пятидесятых и имел славную долгую историю, в том числе и бюрократическую. Мы, юные прогеры, лабали софт для производства на Дельфях, а на нас, как на молодую поросль, смотрели старички, которые писали ещё на Фортране и Алголе, а некоторые вообще Ленина видели. Иногда хвалили.


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


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


— Заходи, садись. Почитал я твои бумаги… Ну, кое-что ты подправишь, а так всё понятно и даже правильно. Но вот скажи, а зачем ты это пишешь? — и протягивает мне листик, в котором как раз и написано про «одну кнопку».


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


— Ну, это я и сам понял, — отвечает начальник и усмехается, — не дурак поди. Но вот ты скажи. Ты тут пишешь, что при помощи твоей разработки стало проще работать, так? Что операцию, которую раньше делали три человека весь день, теперь может сделать один за пятнадцать минут, так? Одному стало хорошо. А теперь скажи, что же мне делать с остальными двумя? Уволить? Ведь ты сказал, что они уже не нужны?


А вот тут я задумался.


— В общем, иди переписывай. И чтоб такого больше не было! Работу они сокращают! Ишь, программисты…




(обратно)

#5381: И пусть весь мир подождёт

12:00 06.02.2011, IT happens


Снова вести с полей саппорта хостинга. Клиент жалуется, что время на сервере неверное, отстаёт сильно. У нас date отдаёт время по Москве. Просим у клиента указать, чем он время проверяет. Даёт линк на скрипт. Смотрим — и верно, минус 9 часов. Открываем код.


$offset = ?9*60*60;

$time = time() + $offset;

echo date('d.m.Y H:i', $time);




(обратно)

#5382: Буфер переполнен и попахивает

12:00 06.02.2011, IT happens


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


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




(обратно)

#5383: Внимание: чёрный ящичек

12:00 06.02.2011, IT happens


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


Разбираем. Видим кучу простых микросхем и одну прямо около выхода на монитор консоли. Пробежавшись по дорожкам, выясняем, что видеосигналы на VGA-разъём идут прямо от той самой микросхемы около видеовыхода. Казалось бы, бери паяльник и меняй. А вот шиш: напрочь стёрта маркировка, не прочитать. Выбрасывать на помойку? Скупердяй-начальник вряд ли выделит деньги на покупку нового. Да и как без переключателя, когда идёт поток техники по ремонту? Искать, что это за зверь и есть ли у него аналоги? Долго и сложно, да и в нашей деревне вряд ли что-то будет в радиомагазинах. Нельзя ли обойти эту фигню?


Ищем у этого товарища входные цепи, кидаем перемычки на выход — оп! Есть изображение, только красный с зелёным перепутаны. Короткий танец с бубном вокруг проводов — из трёх пар проводов можно составить всего шесть комбинаций — и красный соответствует красному, синий — синему, а зелёный — зелёному. Вопрос, зачем оно там стоит, остаётся открытым. Может, чтобы чаще выбрасывали и покупали новые?




(обратно)

#5384: Хаффман одобряет

12:00 06.02.2011, IT happens


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


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


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


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


Шаг 2. Считаем, каких элементов в каждой строке меньше.


Шаг 3. Выписываем новые последовательности: сначала номер строки, потом редкий элемент в ней, потом номера позиций, им занимаемые.


Шаг 4. Учим наизусть новую таблицу. В ней разнообразнее элементы и труднее запутаться.


Экзамен я сдал.




(обратно)

#5385: Выбитые голубые зубы

14:00 06.02.2011, IT happens


Нашёл на улице Bluetooth-брелок. Припомнив историю о модеме для лошары[7], решил сначала заглянуть внутрь.


Открываю и вижу: к плате прижата крошечная китайская петарда, обмотанная нихромовой проволокой. Удалив петарду, проверяю брелок — работает. Лошару искали? Не на того напали!




(обратно)

#5386: Объявляется набор

12:00 07.02.2011, IT happens


Разглядываю методичку по английскому языку — в частности, список слов, которые требуется выучить. Составители возле каждого слова заботливо указали в скобочках первую букву части речи. В какой-то момент я поймал себя на мысли: «Что это еще за функция kit(n) и где я её объявил?» Так вот ты какая, профдеформация!




(обратно)

#5387: Противьтесь соблазну

12:00 07.02.2011, IT happens


Тестирую программу своей студентки. Она обрабатывает текст и сбрасывает результаты потихоньку в файлы. В какой-то момент на диске появляются файлы с названиями:


Изменение регистрировалось в журнале

Может быть, ошибок и нет

Нет

Но внесение изменений нужно производить квантами

Прежде всего, кто-то должен быть ответственным

Проделанная работа будет отброшена назад, если эта среда изменится

Противьтесь соблазну


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


Пока писал эту историю, появились новые файлы:


Маша и Гвидо с немалой степенью озабоченности посмотрели друг на друга

В это день было убито 1700 поляков

Все дворы были разграблены и сожжены


И это не всё, что она мне пообещала. Кого мы создали?




(обратно)

#5388: А мне параллельно

12:00 07.02.2011, IT happens


— А почему, когда я ноутбук открываю, у меня 1С зависает?

— Когда ноутбук закрывается, — объясняю я, — все сетевые соединения разрываются. 1С постоянно с базой связывается, когда не может — падает с ошибкой.

— Не надо рассказывать! Почему тогда Опера не падает, она же тоже в интернете?


Обсуждаем покупку нового сервера под 1С 8.2.


— А старый куда денем?

— Оставим. На нём сервер лицензий для 1С, база для программы регистрации вывозов и общие документы.

— Что, то есть встроим еще один? Параллельно или последовательно?

— В данном случае это не играет роли.

— Ещё как играет! У меня диплом инженера-электротехника! От этого тормозить сильней будет, нагрузка же на сеть увеличится! Не надо мне рассказывать — я лучше знаю!




(обратно)

#5389: Офлайн-ломка

12:00 07.02.2011, IT happens


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


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


С одной стороны — на что не пойдёт наркоман ради очередной дозы! А с другой — был бы отель вменяемый, может быть, и слупил бы денежку за вайфай. А так — хрен вам! Отдельной строкой хотелось бы посоветовать мальчикам-эникейщикам в свободное от винды время изучать альтернативы — ну, или хотя бы сам факт их наличия.




(обратно)

#5390: Победа за тёмной стороной

14:00 07.02.2011, IT happens


Выполняю лабораторную работу по основным командам линукс-терминала. Есть задание использовать команду kill. Запускаю первую попавшуюся игрушку (шахматы), смотрю список процессов, определяю PID, выполняю kill. Процесс исчезает из списка, но окно шахмат никуда не девается и светит надписью: «Белые победили. Один из игроков умер».




(обратно)

#5391: Люди как окна

14:00 07.02.2011, IT happens


Некоторые люди — они как Виндоус: чуть что — «Обратитесь к администратору».


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


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


Людям свойственно делать довольно глупые ошибки, посему я проверил все настройки. Чисто. Всё работает именно так, как должно, на админской стороне проблем нет, но ошибку найти надо. Проект стоит, программист из меня так себе, проверять, кроме кода, больше нечего. Как проверить код, если не знаешь, где искать, да ещё на сервере с обрезанным (привет, Windows 2008!) поиском? Там же тыща файлов! Всё просто: скопировать боевые директории, вычистить оттуда логи и картинки, а потом в Notepad++ задать параметры поиска.


Результат впечатлил. Судите сами: 24 раза был указан правильный внешний адрес сервера, один раз внутренний адрес (именно он и нужен), и 126 раз был указан устаревший, неправильный адрес старого сервера. Такая себе копипейст-технология. Программисту было отправлено электронное письмо с описанием технологии и результатами поиска ошибки. В теме письма: «%username%, ты слепой?» Копия — начальнику.


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




(обратно)

#5392: One apple a day keeps the admin away

15:45 07.02.2011, IT happens


Я работаю в одной из тех самых школ, где стоят аймаки с виндой (только плеваться не надо — не мы придумали). Эта самая винда живёт рядом с макосью на соседнем разделе. Примерно раз в неделю на какой-нибудь машине глюкает Boot Camp, и комп весело (и очень быстро) грузит вместо винды макось. Каких только описаний этой «проблемы» я не слышал от наших тетушек!


Попиваю кофе, сочиняю десятый за последний месяц отчёт Большому Начальству. Распахивается дверь, влетает Очень Красивая Женщина (преподаватель начальных классов) и кричит:


— Ты что мне там сделал?! Мне столько всего печатать надо, а там… Там всё по-другому. Картинка другая, окошки другие и… и… (скривившись, как от лекарства) какое-то надгрызанное яблоко!




(обратно)

#5393: Мозги наружу

15:45 07.02.2011, IT happens


Есть у меня ноутбук всеми нелюбимой фирмы Acer. Модель игровая, но в игры я не играю. Он и пот мой, и кровь; и хлеб, и сон. С ноутом я не расстаюсь, и выглядит он, скажем так, не очень, зато внутри всё в идеальном виде.


Недавно начал помирать винт. Ноут грузится долго, глючит, в винде падают синие экраны, в Убунту виснет трей. SMART-утилита показала критические значения и сногсшибательное количество битых блоков. Было принято решение: срочно менять. Только вот денег на новый винт особо нет, а те, что у меня есть, не подходят из-за малой ёмкости.


На полочке лежал новенький терабайтник на 3,5". И понеслось: на коленке быстро паяем стабилизатор напряжения на 12 В, к крышке ноутбука крепим корзину, ставим гибкие, но прочные провода, на место старого винта пихаем стабилизатор. Тестируем, перекидываем все данные — PROFIT! Компьютер стал потяжелее, конечно, зато места много.




(обратно)

#5394: Ребут животворящий

19:45 07.02.2011, IT happens


Работаю в техподдержке провайдера. Пятница, 20:30 — мёртвое время.


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


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




(обратно)

#5395: Первокурсные перфокарты

19:45 07.02.2011, IT happens


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


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


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




(обратно)

#5396: Для вашего же блага

12:00 08.02.2011, IT happens


Верно, кругом одни идиоты, но будьте же вы умнее!


Я сам программист, которому предложили работу в торговле IT-техникой, благо язык подвешен. Много раз случалось разговаривать с клиентами, которые подсчитывали количество гигабайтов на флешке и потом со злобными лицами приходили в магазин за своими деньгами. Уходили довольными, услышав что-то типа: «Да, именно ваша модель флешки поддерживает встроенный антивирус, который и занимает некоторое место на девайсе». На коробке с флешкой было написано что-то типа «флеш-секьюрити», что прибавляло моим словам убедительности. Как я понял, учить таких клиентов правде равнозначно проигрышу. Они хотят что-то услышать? Расскажите им это!




(обратно)

#5397: Смотри, куда суёшь

12:00 08.02.2011, IT happens


Решили перевести 1С:Бухгалтерию с версии 7 на 8. Дело это тёмное, а потому увлекательное. Попутно решили обновить компьютеры у пользователей, закупили всё необходимое, установили и настроили.


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


— Он купил мне компьютер в чёрном корпусе!


Я не врубаюсь, что не так.


— Что у вас не работает?

— Мне всё равно, я его не включала! Он в чёрном корпусе, сделайте мне белый!


Беспомощно смотрю на директора, с трудом сдерживая смех. Главбух задаёт мне ещё более провокационный вопрос:


— Ты зачем мне бухгалтерию саботируешь?!


Я начинаю объяснять, что сейчас все компы в чёрных корпусах, что мы цвет корпуса не оговаривали, что проекты подписаны, оборудование закуплено, установлено и настроено. Бухгалтер непреклонна, и я получаю задание найти для бухгалтерии белые корпуса. Связываюсь с одним поставщиком, вторым, третьим… Нет белых корпусов. Где-то через неделю на складе в Москве нахожу искомое. Стоят белые корпуса раза в полтора дороже обычных. Заказываем. Ждём. Ночью мне снится сон, где я на зелёном лугу средь белых корпусов в белых труселях.


Настаёт сладостный миг: приезжают эти коробки, и я радостно бегу их раскрывать. Открываю, а там белая передняя панель и чёрные бока. Иду курить, начинаю себя готовить: опять писать бумаги, продукцию возвращать, деньги отзывать… Звоню главному бухгалтеру, зову её посмотреть.


— Ладно, хотя бы передняя панель белая. А то вы даже себе не представляете, как сложно вставить дискету в чёрный дисковод!




(обратно)

#5398: Пара тысяч котиков уместится

12:00 08.02.2011, IT happens


Бухгалтерша купила навороченный телефон и обращается ко мне за помощью:


— Вот у меня дома интернет есть. А я могу его на телефон скачать и на работу принести?


Даже не нашёл, что ответить.




(обратно)

#5399: Как ни крути

12:00 08.02.2011, IT happens


Обратилась ко мне за помощью подруга-студентка. Надо было написать на Паскале программу: «Дан символьный файл f. Записать в файл g файл f в обратном порядке».


Две минуты — программа скомпилировалась и по уже набросанному файлу f что-то записала в файл g. Отправляюсь в этот файл — неизменное слово из исходного файла.


Десять минут я тщетно искал ошибку в своем коде, три раза переписал заново, пока не посмотрел в файл f и не осмыслил его содержимое. В файле оказалось слово «мамам», скопипащенное с открытки к предстоящему 8 Марта.




(обратно)

#5400: Беззубая молодость

14:00 08.02.2011, IT happens


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


Года через два я вспомнил про этот блютус-модуль, подключил к компьютеру, но не нашёл диска с драйверами. Полез в инет. Дрова нашёл, скачал, поставил — вроде в «Оборудовании» компьютера модуль показывается, а вот софта для работы с ним нету. Рандомно перепробовал штук пять софтин — ни с кем модуль дружить не захотел. Потом скачал %softname% версии 1.8, последней — вроде ближе, но не то.


Догадался поискать старые версии. Нашёл и выкачал из древних архивов версии 1.7, 1.6, 1.5, 1.4, не считая промежуточных бет. Всё равно нормально не работало. В общей сложности за время поиска было опробовано штук двадцать пакетов — ни с одним «зуб» не подружился.


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


Уже потом я зашёл в «Help — About software», чтобы увидеть надпись: «%softname% 1.0.14». Лучше всего работала самая старая версия.

(обратно)

Примечания

1

#5285: Аргумент с потолка

15:45 25.01.2011, IT happens


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


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


for i:=0 to n do

if i<>0 do ...


Да, начать с единицы цикл, видимо, религия не позволила.


function f1(x: real) /* Первая производная функции */

function f2() /* Вторая производная функции */


Гениально! Второй производной аргумент, оказывается, не нужен. Оказалось, он берётся из глобальной производной, объявленной где-то наверху. Хорошо, не из массива с элементами [1, 2, 3, ...] — хотя это я тоже когда-то встречал.


while(iterations < 1000)


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


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

(обратно)

2

#3643: Ну и [x] с ним

13:00 16.07.2010, IT happens


Сижу в офисе, за окном чуть меньше +40. Подошёл начальник с просьбой подключить к его компьютеру сканер и отсканить сертификат. Сажусь за комп, втыкаю девайс, устанавливаю дрова и утилиту. Раньше с этим софтом дел я не имел. Сканю — в диалоговом окне появляется превью.


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


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

(обратно)

3

#5286: Если (бы да кабы)

12:00 26.01.2011, IT happens


Вы всё ещё удивляетесь, откуда берутся быдлокодеры, генерирующие индийский код?


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


Я долго смотрел на своё детище, а потом всё же решил воспользоваться гуглом для поиска нормальной программы — может, я просто идиот? Гугл в ответ на просьбы выдавал лишь варианты с использованием запрещённых циклов. Тогда я обратился за помощью к другу, программисту со стажем.


— Без использования циклов, говоришь? 23 ветвления у тебя вышло, говоришь? Ясно. Пшёл в пень, некрофилией не увлекаюсь.

(обратно)

4

#4125: Деревянные игрушки, прибитые к полу

13:00 10.09.2010, IT happens


Как верно подметил автор одной истории (История #4092), чем глупее пользователь, тем круче у него комп. Я тоже постоянно вижу такую закономерность, причём не только по отношению к компьютерам, но и к телефонам, плеерам и бытовой технике. У меня даже сформировалась теория: настоящие айтишники получаются из детей, у которых не было навороченного компьютера или мобильника. Почему так? Рассмотрим два примера.


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


Пример второй: дитё, родители которого не считают нужными апгрейды или не имеют лишних средств для постоянного обновления техники. Такие дети, имея на руках старенький компьютер 98 года сборки (так было у меня) рано или поздно залезут внутрь системника, будут исследовать дебри папки Windows — всё ради того, чтобы хоть как-то ускорить «старичка», или же просто от нечего делать: игрушки-то не идут на таком древнем железе.


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


Всем, что я знаю и умею на сегодня, я обязан компу с Целероном на 233 МГц, 48 МБ оперативы и винтом на 4 ГБ. Думаю, каждый из нас может рассказать что-то подобное.

(обратно)

5

#5292: Поцелуй мой шпиндель

15:45 26.01.2011, IT happens


Масло из «Доширака», говорите? Помнится, в студенческие годы купил я себе Athlon XP 1500+ (кто не в курсе, греются они мама не горюй, рабочая температура — 50–65 градусов). Кулеры тогда под это чудо были надёжные, но уж очень шумные. Я же решил взять себе что-нибудь менее громкое, поскольку слушать рёв взлетающего истребителя ночью (комп не выключался ни на минуту) как-то не особо хотелось.


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

(обратно)

6

#5208: «Доширак»: хладная быль

14:00 17.01.2011, IT happens


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


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


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

(обратно)

7

#5192: С Новым годом, лошара

14:00 14.01.2011, IT happens


После новогодних праздников сотрудница принесла найденный на улице 3G-модем и попросила проверить. Втыкаю в ноут — ноут тухнет. Втыкаю в тестовый комп — из модема идёт дымок, и БП уходит в защиту. Ну всё, думаю, хана портам. Ан нет — выжили!


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


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


Пользуясь случаем, хочу передать привет бывшему владельцу девайса. Спасибо, чувак, за подгон! И кто из нас теперь лошара?

(обратно)

Оглавление

  • #5301: Всё пиксели да пиксели
  • #5302: А был ли мальчик?
  • #5303: В глаза гляди!
  • #5304: Сон в безопасном режиме
  • #5305: Мой хороший с Ботанической улицы
  • #5306: Аккуратный подстрочник
  • #5307: Браузеры отключены, все ушли в офлайн
  • #5308: Да, он такой
  • #5309: Свято место полно
  • #5310: Дважды лицензионный
  • #5311: Освободительница потенциала
  • #5312: Нам всем 14383421
  • #5313: Работает — и ладно
  • #5314: Самописец чудодейственный
  • #5315: За порогом восприятия
  • #5316: Нелитературно
  • #5317: Вы прослушали антитезис
  • #5318: Мсье знает толк в сортах полиэтилена
  • #5319: Бухгалтерша Юзверевна Проводко
  • #5320: «Тру» не по нутру
  • #5321: Проскочим с разгона
  • #5322: Геморрой метровой длины
  • #5323: Наше дело маленькое
  • #5324: Серьёзный зависон
  • #5325: Ах, вот ты где, Олег! Я давно тебя искал
  • #5326: Нереально, но факт
  • #5327: Пять по алгебре, а ко мне на пересдачу
  • #5328: В сценическом образе
  • #5329: Между трёх огней
  • #5330: Золотая раздача платинового альбома
  • #5331: О сложности простоты
  • #5332: Уберите руки от моего аптайма
  • #5333: Тонкий беспроводной троллинг
  • #5334: Много-много миллионов новых наноэлектронов
  • #5335: Гладко было на бумаге
  • #5336: Писк воображаемого спикера
  • #5337: 126 тысячных
  • #5338: Как лисицу назовёте, так она и поплывёт
  • #5339: Беспроводные лучи смешных котиков
  • #5340: Ядерный резерв
  • #5341: Тайный зачёт по бета-тестированию
  • #5342: Плед до добра не доведёт
  • #5343: Когда всё не слава богу
  • #5344: Истину глаголем
  • #5345: Важная Компьютерная Папка
  • #5346: Это мой прокси
  • #5347: Удовольствие без титанических усилий
  • #5348: Домушные сети
  • #5349: MD5.1
  • #5350: Летите, плывите, ползите
  • #5351: Утомлённые ассемблером
  • #5352: А «Крузис» потянет?
  • #5353: Утеря военно-морским способом
  • #5354: Глух или нем
  • #5355: Для развития пространственного воображения
  • #5356: На заборе тоже написано
  • #5357: Первичный профессиональный признак
  • #5358: Стопроцентный русский
  • #5359: Чудеса ручкотворные
  • #5360: Инверсионный след быдлокодера
  • #5361: О бесполезной красоте сложных решений
  • #5362: Весь в напряжении
  • #5363: Таня-с-утра
  • #5364: Источник бесперебойного интернета
  • #5365: Это исключено
  • #5366: Акселератор программиста (II)
  • #5367: Всех компьютеров начальник, документов командир
  • #5368: Дяденька, я боюсь вашего процессора
  • #5369: Ты просто ничего не понимаешь
  • #5370: И не нажимаем на баннеры!
  • #5371: Неприкосновенность квадратика
  • #5372: Глаз да глаз
  • #5373: Будем экологичнее
  • #5374: Судо, рм-рф!
  • #5375: Принеси, уходи, не трогай
  • #5376: Админская честь в розницу
  • #5377: Вы уж как-нибудь сами
  • #5378: Впереди паровоза
  • #5379: FAT по старой памяти
  • #5380: Наша сила — в нашем штате
  • #5381: И пусть весь мир подождёт
  • #5382: Буфер переполнен и попахивает
  • #5383: Внимание: чёрный ящичек
  • #5384: Хаффман одобряет
  • #5385: Выбитые голубые зубы
  • #5386: Объявляется набор
  • #5387: Противьтесь соблазну
  • #5388: А мне параллельно
  • #5389: Офлайн-ломка
  • #5390: Победа за тёмной стороной
  • #5391: Люди как окна
  • #5392: One apple a day keeps the admin away
  • #5393: Мозги наружу
  • #5394: Ребут животворящий
  • #5395: Первокурсные перфокарты
  • #5396: Для вашего же блага
  • #5397: Смотри, куда суёшь
  • #5398: Пара тысяч котиков уместится
  • #5399: Как ни крути
  • #5400: Беззубая молодость
  • *** Примечания ***