[bash.org.ru] [IT Happens] [zadolba.li]

IT Happens

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

#832: Пикселы и перекрёстки

30 апреля 2009, 09:00

рейтинг: 1202

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

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

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

 

#829: Дитя хаоса

30 апреля 2009, 09:00

рейтинг: 1953

В университете при проверке лабораторной работы преподаватель спрашивает студента:

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

Задумчивый голос откуда-то из глубин аудитории ставит точку:

— Ага, пользователь — это периферийное устройство хаотического ввода...

 

#819: И тебе привет!

26 апреля 2009, 20:30

рейтинг: 1724

Зашел я как-то на старое место работы с бывшими коллегами пообщаться и застал одного из них за процессом написания программы. Надо сказать, что товарищ от программирования весьма далёк, но, как мне объяснили, получает высшее образование заочно. Сидит, чешет голову, листает килограммовые талмуды — решил не беспокоить. Мало ли, может, курсовик пишет?

Через пару часов раздался победный вопль, который известил нас о том, что программа наконец заработала. Я повернул голову, чтобы посмотреть на творение и увидел черное досовское окно с радостной строчкой «Hello World!»

 

#817: Наших бьют!

25 апреля 2009, 09:00

рейтинг: 2364

Несколько лет назад я сильно болел известной MMORPG Lineage 2 и узнал, что существует и активно развивается open source-проект по эмуляции серверной части этой игры. Поскольку сервер был написан на Яве, которая в то время была моим любимым хобби, я не мог пройти мимо.

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

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

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

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

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

 

#794: Критическая ошибка — нажмите OK для увольнения

17 апреля 2009, 20:30

рейтинг: 3257

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

Хотите узнать, что такое настоящая ошибка?

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

В день приезда генерального директора.
На машину генерального директора.
В которой мирно спал кот жены генерального директора.

 

#775: 1 >> 0

13 апреля 2009, 20:30

рейтинг: 1770

Изучаю чужую БД и вижу поле (bool) IS_FEMALE. Зову товарища и восхищаюсь нетипичностью решения.

— Обычно это поле называется SEX и значение «true» закреплено за мальчиками.
— И действительно, почему это мужчины — «тру»? Хотя в некотором смысле логично обозначать мальчиков единичкой, а девочек — ноликом.

Сам же создатель же схемы так прокомментировал этот диалог: «Логическое поле должно быть названо так, чтобы значение трактовалось однозначно — например, HAS_PENIS. Так как базу будут читать приличные люди, назвали IS_FEMALE».

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

 

#744: Byte, но не int, зато unsigned!

6 апреля 2009, 11:00

рейтинг: 1460

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

— Слушай, а в for-цикле можно использовать что-то кроме int i?
— Можно... Наверное. Попробуй?..
— Не работает!
— Покажи, что ты там написал... Поменяй свои запятые на точки с запятой!

"Штирлиц насторожился." Тут выкрик другого парня:

— Что написать перед int, ну... это... чтобы он без минусика был?

О том, что человеку нужно ключевое слово unsigned, я догадался только после подсказки его коллеги:

— Untitled.
— Не, не работает, даже не выделяет цветом!
— Ну цветом он не выделяет, потому, что мелкомягкие всё криво написали!
— Да и вообще, замени на byte и не мучайся. — это уже третий программист.

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

 

#743: Векторно-гипертекстовое иерархическое народовластие

6 апреля 2009, 09:00

рейтинг: 2344

Девяносто пятый год, пишем систему отображения результатов выбора в ГосДуму с использованием иерархической СУБД OpenM (папа Cache). В ходу такие понятия, как "ствол", "ветви" и "листья". Двое коллег обсуждают структуру базы данных:

— А давай-ка мы каждого кандидата в депутаты повесим на отдельной ветке!...

Не спорьте со специалистом по БД. Он знает толк в оптимизации иерархических структур!

 

#733: Watch your six

3 апреля 2009, 20:30

рейтинг: 1685

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

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

Принялись за объект героя, написали ему систему поражений и прикрутили обратно. Тут началось странное — при попытке атаковать первого же врага главный герой погибал.

В чём дело? Условия смерти героя мы описали верно, разве что кровь ещё не нарисовали. В игре используется всего один объект «пуля». Бились над проблемой долго и безрезультатно.

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

Проблему решили, написав новый объект «пуля_героя», для которой сам герой был неуязвим. Товарищи, никогда не забывайте про кровь — по крайней мере на время разработки!

 
747372• • •12111098• • •321
 
текст или номер истории
реклама
обратная связь
Хотите разместить рекламу?
Информация для рекламодателей.

Вопросы, предложения, что-то не так на сайте? Пишите в саппорт!
на сайте
Утверждено: 8399
Сегодня: 5
В рассмотрении: 2013
тэги
лучшие последних семи дней
статистика
Рейтинг@Mail.ru