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

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

4395

Начало большого пути

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

Итак, первый день. Несмотря на зловещее проклятье всех студентов (им я в тот момент себя ещё не ощущал, что не помешало мне хорошо отпраздновать моё поступление), зелёного утреннего змия, я пришёл за 15 минут до начала занятий. Нас попросили включить компьютеры и запустить Visual Studio. Через 10 минут с этим справились все, даже непонятно как оказавшаяся в кабинете блондинка с большой буквы, которая пыталась объяснить преподу, что компьютер ей совсем не нужен, а записывать всё она будет в тетрадку.

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

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

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

Прости меня, индус! Уже прошёл год, а ты всё ходишь, хмуро насупившись и глядя на меня из-под бровей. Виной всему — зелёный змий и предрассудки. И всё же хочется спросить: неужели это была часть индусского шаманства, попадающего под категорию if(0 != 0)?

4349

Два процента толка

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

Для написания «перделки», которая на VB делается за полчаса, надо непременно использовать С++, желательно под линуксом — и наплевать, что пользователь сидит под виндой. Времени уйдёт несколько месяцев.

Если в проекте используется сторонняя библиотека, её надо объявить дерьмом и написать свою. Если в проекте встретилась слишком простая функция — её надо обязательно переписать на ассемблере.

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

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

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

Думаете, смешно? А я насмотрелся на поделки, где одновременно используется три самопальных класса для одних и тех же кнопок на тулбаре, три библиотеки для работы со строками и пять подпрограмм для умножения матриц — с ошибками, естественно. На программы, где на ассемблере с SSE переписаны функции копирования памяти, при этом один и тот же файл открывается и закрывается в цикле двадцать раз, чтобы прочесть первые три байта сигнатуры. На проги, где используются параллельно оконная библиотека MFC и своя, с ней несовместимая. Программы, у которых после наведения «архитектурной чистоты» начинались тормоза, а размер своп-файлов поднимался с единиц мегабайтов до терабайтов. Многопоточные программы, которые не в состоянии были загрузить процессор на 40%, потому что потоки дрались за критические секции...

КПД программерского коллектива — как у паровоза Черепановых: все пыхтят и создают работу друг для друга. Полезный выход — два процента.

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

4254

Портнихи — налево, кодеры — направо

Вчера был на дне открытых дверей в учебном центре одного крупного производителя софта для зарубежных заказчиков. В начале презентации нам раздали пакеты с атрибутикой. Кроме дисков и рекламной мишуры, в пакете присутствовала маечка с логотипом той самой компании. Глянув на ярлычок, я долго не мог прийти в себя. Сбила меня с ног надпись: «Произведено в Индии».

4146

Наиндусячил

Бывший одноклассник, нынче студент Бауманки, поведал историю о том, как сдавал лабораторную на «сях».

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

Unknown error. Program is bad. Coder is Indian.

4098

Безопасность без забот

Наткнулся в коде страницы с формой логина на такую функцию:

function check() {

if (document.login.user.value == "user" &&

document.login.password.value == "correct_password")

    window.location.href = 'http://this.site/login.html';

else

    window.location.href = 'http://this.site/loginfehler.html';

return false;

}

4086

Священные скрижали

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

Записать диск мне так и не удалось. Решил тщательно рассмотреть упаковку, чтобы запомнить производителя. Что бы вы думали? «Сделано в Индии».

3945

Ай да фокус

Вот и дошла очередь до индусов на IT happens. Коли холиворы «Linux vs. Windows» и «программисты vs. бухгалтеры» себя исчерпали, подкину свою вязанку хвороста в огонёк нового тренда.

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

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

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

3942

Индус индусу рознь

Говорите, не уважаем мы индусов, унижаем князей с двухтысячелетней родословной и вообще историю не знаем ни разу? Да, не уважаем.

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

— производитель самого массового авиалайнера;

— первый автобренд, освоивший конвейерную сборку;

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

— первый производитель микропроцессоров;

— мировой лидер по объёму производства мототехники;

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

Да, это индусы создают однострочные if-else-конструкции, включающие семьдесят операторов сравнения, а потом не могут самостоятельно разобраться, откуда появились ложные срабатывания.

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

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

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

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

Но знаете ли вы, какие именно индусы так делают?

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

3928

Дорасти до индуса

«Индийский код» — выражение, ставшее уже ругательно-нарицательным. Так и вижу самого-самого гениального программиста, конечно же, русского, с бездной знаний, насмешливо-презрительно цедящего сквозь зубы: «А-а-а, па-а-анятно — индийский ко-о-од». Пока что мне известно очень малое количество программ, наваянных русскими гениями, которые действительно работают без проблем и глюков. Прямо скажу — количество их стремится к нулю. А Индия, между прочим, уже за 6000 лет до нашей эры была наиболее развитым, могущественным и культурным государством мира, с мнением которого считались все остальные. Знания в области медицины, математики, астрономии, физики и природопользования, открытые только в нашем тысячелетии, индийцы имели уже тогда, чему есть множество подтверждений в их древних книгах. Культура Индии задавала тон миру. Индийские князи имеют 2000–2500-летние родословные. А кем были ваши предки 2000 лет назад? Пастухами?

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

3663

Абстракцион невиданной тупости

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

Все знают, что хорошим стилем написанием сайта является отделение кода от дизайна. Но то, что я увидел в самописной CMS, детище прошлого PHP-кодера, повергло меня в тихий ужас:

$karkas=tr(bgcolor("D9EDFB"), td(w("1%").style("").valign("top"),br()).td(valign("top"), hr(noshade().size(1).color("D9EDFB")).table(cs(0).cp(10).border(0), tr(no(), td(no(), 'текст'...

Каждый HTML-тег со всеми атрибутами был переопределён в отдельную функцию со своими параметрами. Нашлось место даже для замечательной функции br().

На десерт я увидел структуру БД. Попавшаяся мне CMS (если этот шедевр быдлокодирования можно назвать столь гордой аббревиатурой) работала всего от одной таблицы, в которой наблюдалось штук тридцать колонок с названиями: «tp0», «tp1», «bd0».

Оторвите руки этому кодеру или скажите, где его найти, — справлюсь и сам.