Истории с тегом: программизмы

Всего историй: 900

2614

Всех их вместе соберём

Продаём мы библиотеку, написанную на С++. К ней написали примерчик, как с помощью этой «либы» построить СОМ-сервер, и клиента на Visual Basic, чтоб показать, как этот COM-сервер дёргать.

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

2613

Ножками потопаем, попами попопаем

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

— А здесь мы попушаем и попопаем!

Команды push и pop прервали занятие минут на пять — группа истерически ржала под непонимающим взглядом преподавателя.

2564

А сам-то

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

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

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

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

В общем, отыгрался я знатно, а свидетелями его позора стали ещё два препода и моя группа в полном составе.

2547

Дебаг по-французски

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

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

В дебаге время пролетело незаметно, и вот я уже сижу один во всём офисе. Голова работает плохо, баг никак не хочет обнаруживаться. В процессе редактирования файла нажимаю Ctrl+Z и вижу, что ничего не поменялось, а вылез диалог закрытия окна. Я уже ничему не удивляюсь, ищу кнопку Undo и щёлкаю мышкой. Чуть позже нажимаю Ctrl+W, а получается как раз Undo. Опытным путем выясняю, что работают клавиши теперь наоборот. Меня начинает разбирать нервный хохот. В общем, разум отказался далее воспринимать эту реальность, и я «поплыл» домой.

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

2536

Отвернись, я стесняюсь

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

При пристальном наблюдении за торрентами скорость падала или внезапно отваливались все сиды.

Если я больше пяти минут смотрел на роутер, то он наглухо вис; если же не вспоминал о нём, работал без сбоев неделями.

При наблюдении за процессом нарезания в 80% случаев болванка запарывалась.

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

Если только что написанная программа не компилируется — надо нажать на кнопку «Компилировать» и отвернуться. Иногда срабатывает.

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

В общем, надо либо искоренять пуританскую мораль у компьютеров, либо учиться работать с техникой вслепую.

2497

Не знаю, но в часе два литра

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

— Сколько в сантиметре пикселей?

Уважаемые программеры, хоть изредка отрывайте свой взор от экранов!

2487

С первого выстрела

Ковырял сегодня модуль на PHP. Уже было собрался заканчивать, но вспомнил, что не дописал одну необходимую функцию. Полез снова в код, и так его крутил, и эдак — не работает, и всё тут!

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

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

2464

Спецдопуск к спецзапуску

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

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

2455

На русском, английском и закорючках

Учился я в техникуме на программиста. Курс тогда был то ли первый, то ли второй. Урок программирования на Паскале. Была у нас в группе светловолосая девушка Ира, которая, как и большинство, ни черта не понимала в программировании, но очень выпендривалась, наслушавшись своего парня-программиста. Ира спрашивает учителя:

— Почему мы ещё учим Паскаль, а не Делфи? Мой парень говорит, что мы должны уже изучать Делфи.

— Твой парень программист?

— Да.

— Ну, а на каких языках он программирует?

— В смысле? Ну... на русском, английском...

Только бедняжка Ира не поняла, над чем все хохочут.

2433

Всё, что запрещено, разрешено

У нас эксплуатируется взрослая система радиосвязи от одного маститого европейского производителя. Так вот, у этой штуки, в программе управления абонентами есть две вкладки: «Permissions» (разрешения) и «Blocking» (запреты). Так вот, в «Permissions» установка галочки напротив того или иного пункта означает запрет абоненту пользоваться услугой, обозначенной в пункте, а на вкладке «Blocking» — наоборот.

Интеграторы заметили это дело поздно, когда система уже пошла в серию, а поэтому просто задокументировали: «Это не баг, это фича».