bash.im ithappens.me zadolba.li
7302

Честные картонные спрайты

20 сентября 2011, 08:00

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

Однажды мне попался на глаза код не слишком сложной игрушки, который поразил меня своей структурированностью и простотой: все данные и алгоритмы были прописаны так лаконично и просто, что, казалось, просто невозможно что-то добавить или убавить. Важно отметить, что графика в программе была полностью программной: все объекты игрового мира отрисовывали себя сами по довольно интересным законам, не загружая какой-либо информации извне.

Через некоторое время судьба даровала мне личное знакомство с человеком, написавшим этот код. Разумеется, речь зашла об игре.

— Ах, это… — сказал мой знакомый, расплываясь в улыбке. — Действительно, красиво получилось, мне самому понравилось.

Задумавшись на минуту, он продолжил:

— Знаешь, самым сложным во всём проекте для меня было написание графического движка: сам я с детства не умею рисовать, и понять, как это делается, для меня было непросто.

— Но ведь в игре не такая уж и сложная графика, — заметил я.

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

Ранее я был уверен, что не имеют меры лишь отрицательные человеческие качества — например, разгильдяйство. Однако в тот день я понял, что не только они, но и добросовестность может порой не знать границ. Почему? Потому что речь шла об игре по известному всем мультсериалу «South Park», в точности копирующей оригинальную графику.

7301

Стоит винда? Не вытащишь ты рыбку из пруда

20 сентября 2011, 08:00

На одном предприятии на стыке веков заказали делали очень крутую и умную АСУ. Естественно, это стоило немерено баксов. В рамках поддержки отечественного производителя заказали у наших.

Через год началось внедрение и параллельная доработка. И дорабатывать было что: ставилась система с бубном, BSoD был нормой жизни. О том, что ПО требовало административной учётки, можно даже не говорить. За год поголовье багов не уменьшилось. Заказчики стали очень сильно волноваться и грозить погромистам анальными карами.

Вдруг число багов резко пошло на убыль. Так планомерно и равномерно, что не прошло и полугода, как всё предприятие уже работало в АСУ. Секрет оказался очень прост: исполнители наняли нового руководителя проекта. Последний всё сменил кардинально: выкинул большую часть уже написанных велосипедов и заменил их на свободные аналоги, а остатки заставил переписать почти с нуля по жёстким гайдлайнам. Его уже хотели было уволить из-за того, что он выгнал из команды нескольких очень уважаемых специалистов по WinAPI и заменил их спецами по Лиспу, но число багов говорило само за себя. Цель таких изменений открылась позже: проект тупо переписали под FreeBSD.

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

АСУ благополучно работает до сих пор. А мораль сей басни такова: если у вас глючное основание, то и от надстроек не следует ожидать высокого качества.

7300

С юзерским рылом в калашный ряд

19 сентября 2011, 15:45

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

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

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

Кореец скачивает дистрибутив на рабочий стол, а он не запускается: у наших пользователей нет прав на запуск из профиля. С умным (наверное) видом пытается скопировать файл в корень диска C:, чтобы получить права «Создатель/владелец» — а вот хрен ему: нашим пользователям нельзя ничего создавать в корне системного диска, только в своём профиле. Копирует на второй диск — с него тоже не запускается.

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

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

* * *

Разрабатываете софт? Недостаточно отловить все баги и ошибки. Включайте мозг, реализуя «второстепенные функции» установки и обновления.

7299

Один шаг от английского до C++

1985 год. В московском Дворце пионеров идёт набор в кружки. Восьмилетний рыжий кудрявый мальчишка просится в компьютерный, хотя читать он умеет, а на табличке написано: «С 12 лет». Но рыжие — они, как правило, наглые. Преподаватель внимательно смотрит на мальчишку и говорит:

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

Мальчишка продержался. Преподаватель сдержал слово, и в кружке появился девятилетний ученик.

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

7298

Девушка, вы десктоп обронили

Работал лет десять назад в университетском ИВЦ. Ближе к лету работы стало меньше, и в свободное от безделья время я сидел в компьютерном интернет-классе, вёл списки посетителей, следил, чтобы левых не было. Работа — не бей лежачего; развлекался, как мог. Ещё и лето, посетителей мало, каникулы — в классе на десять компов сидело не больше трёх студентов.

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

7297

Отбитый четырьмя минутами

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

Ну, сидит она, ковыряется в Паскале и вдруг спрашивает: «А почему тут время 12:44, хотя уже четыре часа?» Ну, думаю, мало ли, часы сбились — комп-то старый, могла батарейка сесть. Смотрю на экран и сгибаюсь пополам от хохота. В Турбо-Паскале, если кто не помнит, в нижней строчке отображаются строка и позиция курсора через двоеточие. Сквозь смех посоветовал подвигать курсор стрелками и полюбоваться путешествием во времени.

7296

Белый шум с подозрительным акцентом

19 сентября 2011, 10:00

История произошла лет десять назад. Были мы красноглазыми студентами-первокурсниками, всё ещё одержимыми предметом, а посему слегка неадекватными.

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

— Лёх, а чего это ты его разобрал?
— Да что-то каналы переключать не хочет, зараза. Полез посмотреть…
— А какую ошибку пишет?

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

7295

Уроборос, или Не нужна мне жена

19 сентября 2011, 10:00

Все знают, как трудно бывает понять проблему, когда её описывают в терминах типа «тут у меня что-то пищит». Но бывают перлы и почище.

Как-то раз звонит один из пользователей: «Я сам в себя войти не могу!» Оказалось, не мог получить доступ к своей папке на сетевом диске. Фраза у нас стала крылатой.

7294

Бригада трезвых грузчиков выедет к заказчику

В диких девяностых я работал на одну контору. «Маски-шоу» тогда налетали, как месячные у студентки: нерегулярно, но стабильно и часто. Рубильник, гасящий компы всей конторе, затёрся, а товарищ, на нём сидящий, задёргался и начал грозиться увольнением.

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

Февраль, питерский двадцатиградусный мороз. Залетают злющие «маски», вся сеть гаснет. Вспоминая наших матерей, замёрзшие и озверевшие мужики в форме выносят пудовые системники в неизвестном направлении.