7466

Алгоритм высокого уровня

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

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

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

Само задание обсуждать нет смысла, да и не помню я его, а вот к «оформлению» были строгие и конкретные требования:

1) Программа должна быть выполнена в виде объявления функции с требуемым алгоритмом и примером вызова этой функции.

2) Принести её надо на двух трёхдюймовках.

3) Сразу сдать распечатку всего кода.

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

5) Текст программы должен быть читабелен (никаких «в одну строчку») и прокомментирован.

6) Оно должно работать.

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

Когда я пришёл к аудитории, где была назначена выдача автоматов, я удивился первый раз. Число команд уменьшилось вдвое. Половина либо не успела (ещё большие раздолбаи, чем я?), либо не справилась с переводом того, что они писали на лекциях, в принимаемую компилятором форму.

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

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

7465

Помоги руками

Послал молодую девочку-сотрудницу ввести коллеге в домен компьютер. Через пять минут звонит с паникой в голосе:

— Костя! У меня проблема: я сижу у него под столом, а у него интерфейс красненький, потому что драйвер не стоит!

7463

Яйца — в разные корзины

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

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

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

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

7462

Пйакс!

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

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

7461

Индастриал-ремикс

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

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

«Фонарей далёких мерцает свет…» — подвывают двигатели. В такт ударным щёлкают реле, жужжат сервомоторы. Суммарно с такой песней это всё представляет собой зрелище необычайное.

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

7460

Жизнь после собачки

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

— Телефон… Ну, пусть будет 555-55-55. Адрес? Такой-то… E-mail!

Начинает неуверенно диктовать по буквам:

— B, O, N, D, A, R… C, H, U, K. Собачка? Собачка ведь? (Смотрит заискивающе в глаза.) А дальше как?

7459

Индусы узкоглазые

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

При линковке лезут конфликты. Несколько переменных одновременно определены в разных объектниках. Ладно, думаю, может, лишнее что прислали? Начинаю выкидывать объектные файлы по одному, потом по два и так далее. То не хватает чего-то для линковки, то перебор в виде означенных переменных. На третьи сутки занятий комбинаторикой не выдерживаю и через своё руководство обращаюсь к партнерам. Приходит ответ: «Установите в линкере флаг „Разрешить множественные определения“». То бишь прикажите машине игнорировать ошибку.

Никакие они не японцы. Индусы узкоглазые, блин.

7458

Компьютерщик декоративный

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

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

— Вы ведь по поводу работы?

— М-м-м…

— Очень кстати! Срочно надо! Я вас сейчас отведу, со всеми познакомлю!

Залетели таким манером в какую-то дверь, за которой сидели двое: дама средних лет и девочка с улыбкой до ушей (на всякий случай). Затолкнув меня туда со словами: «Вот! Я вам девочку нашла!», бабулька исчезла.

Я стала выяснять, что к чему, что хоть за работа. Сказали: что за работа — не знают, они другим занимаются, а моё временное рабочее место пока тут, — и указали на стол с монитором. Ага, уже немного легче. Сажусь за стол. Монитор, клавиатура, мышь тянут свои провода в никуда. Интересуюсь: где же системник? Девочка:

— А что, разве так нельзя печатать?

Как потом выяснилось, системник был отдан на лечение, а им нужен был сотрудник в IT-отдел. Срочно. Даже такой, как я, временно поломанный. Там и полис выдали заодно.

7457

Я не вижу ваших рук

У одного скромного программиста возникла насущная необходимость связаться по телефону со своей альма-матер. Что делает умный, но увлекающийся человек, которому сказали позвонить строго в 17:15, если он отработал полную рабочую неделю, сейчас собирается нырнуть в дебаггер, и есть шанс, что не вынырнет до конца рабочего дня? Он оставит себе записочку. Ещё более умный человек оставит себе автоматическую напоминалку на сотовом телефоне или на наладоннике. Если человек ещё более умный, он сообразит, что автоматическую напоминалку можно оставить и на компьютере, за которым он в любом случае сидит.

А что сделает чрезмерно умный человек?

Так вот, только чрезмерно гениальный специалист, у которого все мозги заняты теряющимися пакетами TCP/IP-трафика, может сдуру решить, что самый удобный способ оставить себе автоматическую напоминалку — это Scheduled Tasks в Windows. На рабочем-то компьютере, на котором установлены Microsoft Outlook, Nokia PC Suite и есть доступ к cron, каждый из которых предоставляет замечательные возможности по созданию автоматических напоминалок!

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

Итак, недобитый гений уходит в глубокий дебаг, временами выныривая на поверхность и бегая в лабораторию убеждаться, что за время тестирования оптоволоконный провод не отрастил себе дополнительных хвостов. Провод при внезапных визуальных проверках успевает втягивать отростки обратно. Эффект присутствия проявляется во всей красе: если сверхгениальный, но очень скромный программист во время теста сидит в лаборатории, тест проходит на ура; если же он наблюдает за тестом со своего компьютера, TCP/IP-пакет находит дырочку в изоляции, просачивается наружу и убегает, мерзко хихикая. Хитроумные ловушки в дебаггере остаются настороженными, пакеты упрямо не желают раскрывать тайну своего пути побега.

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

Программист, на секунду растерявшись, читает текст, шевеля губами, — он же сверхгениальный, помним? — и обнаруживает две проблемы. Первая состоит в том, что текст написан русскими буквами. Вторая — в том, что текст набран на русско-ивритском суржике, а русское слово «добавочный» намного длиннее аналога (ивритские слова вообще обычно короткие). И вот сверхнедогений, страдая от кессонной болезни из-за слишком быстрого выныривания из дебага, читает буквально следующее: «Звяк 04-ХХХХХХХ, шлюха 100».

Рабочий кабинет оглашается возмущённым воплем: «Это кто здесь шлюха?!»

7456

Постоянная переменчивость

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

Электрик звонит в дверь. Одевшийся герой открывает дверь. «Здравствуйте», — говорит электрик и заливается раскатистым смехом.

Наш герой встречает электрика в майке с обложкой AC/DC — «High Voltage».