Истории с тегом: индийский код

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

6970

Не бейте индуса — работает, как может

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

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

// Что за индусский код выше?

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

Дело было так: коллега увидел кривоватый код, решил подправить и, как вы уже догадались, об изменении умолчал. Вместо громоздких if он организовал всё через цикл for, но забыл внутри кусок старого кода: i = i + 1. Естественно, программа вместо выгрузки данных по всем фирмам по порядку начинала выгружать их через одну.

Я добавила коммент:

// Индусский код выше хотя бы правильно работал.

6946

Точка с запятой

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

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

«Странно», — подумал я, но девочка из ПФР оставила ман в сто страниц А4. Решив начать по-хорошему, я сел и стал его вдумчиво курить. Где-то на 40-й странице я наткнулся на указание сменить стандартный разделитель целой и дробной частей в винде на запятую, иначе программа не будет работать. Открыл, смотрю — ага, всё верно. Сменил на точку — программа ФОМС заработала, но перестала работать программа ПФР, выдавая всю ту же ошибку сохранения данных. Теперь пожилая женщина-кадровик обучена переключать разделитель, а я проникся небывалой нежностью к отечественным программистам.

6888

Рабочая виза обеспечена

Занимательно проходили у нас в школе уроки информатики на стареньких БК. В основном изучали предмет самостоятельно: алгоритмы, методы сортировки; баловались и играми на Бейсике.

Не знаешь какой-то оператор? Выкручивайся. Обычным делом было, например, пропустив изучение оператора позиционирования при печати (PRINT AT 10, 10), сдать задание, выводя десять раз перевод строки и нужный текст через пробел.

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

Так русские школьники и затыкали за пояс индусских программистов.

6646

Глюки без инъекций

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

Свинью подложил абонент по фамилии Логинов. Передаём пламенный привет разработчику-индусу!

6578

А леший его знает

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

Текст, появивишийся после нажатия кнопки, сразил меня наповал: «Нет, вы ошиблись. Правильный ответ: undefined».

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

6541

Четырежды включённый считать выключенным

Говорите, Виндоус нелогичен? Чтобы выключить, надо кнопку «Пуск» нажать?

Читаем руководство по эксплуатации гамма-радиометра «Атомтех РКГ-АТ1320»:

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

Какие уж тут индусы…

6387

По ту сторону нуля

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

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

var dig: Integer;

<…>

dig := dig − (dig * 2);

6266

С макросом if(false)

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

6197

После нас хоть дефолт

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

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

К следующему году расчёт налогов стал выдавать конкретную галиматью. Разобраться в этом поручили мне. Открыл программу — и в глаза бросилась строчка типа if(year == 2003). В общем, судя по программе, после 2003 года завод мог налоги не платить. Cтало страшно: казалось, над городом нависла угроза энергетического кризиса.

6150

Как угодно, но не так

Только что наткнулась на кусок кода в нашем проекте:

// Не знаю, какое условие должно быть в if, но текущее не работает

if (false) /* (старое условие) */

{

20 строчек кода;

}

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