Детство мое тоже проходило за компами, правда, чужими. Там я методом тыка ставил пароли на БИОСе, находил скрытую, запиханную невесть куда, порнуху... Немногим позже начал обходить LockWin в комп. залах, шариться везде, куда только мог залезть. Удалять злым людям, не говорящим пасс от сервака контры, части движка КС через сетку..
Пишущие дисководы тогда были в новинку, и найти их у кого-то возможности не представлялось. Вот и носился я от флопика к флопику с приличной пачкой 3,5 дюймовых дискет. Пришел как-то к подруге и начал скидывать с компа все то интерестное, что только попадалось. И, естественно, при копировании увлекательной игры Arkanoid, скинул только ярлык от нее. Проверил - работает. Приехал к двоюродному брату, вставил дискетку со словами: "Я тут крутую игруху нарыл". Открываю дискету, двойной клик по иконке - о чудо, работает. Сижу играю. И тут мне друг сообщает, что эта игра была у них когда-то, но не работала, и ее удалили. Понятное дело, что удалили только ярлык, но тогда я об этом не подумал. Поэтому следующие двое знакомых были поставлены перед фактом, что у них плохие компы, т.к. игра на них не работает.
Но в итоге с ярлыками я таки разобрался, игра оказалась на 2 мб и заняла 2 дискеты. В нее же мы играли в кабинете технологии, на очень старом десктопнике, с вин 95 и 20Мб на жестком. Надо сказать, что мышь у этого детища техники колесиком не обладала, потому приходилось засовывать палец в мышь, и крутить контактные датчики вручную. Таким образом, мы повысили сложность аркады до эксперта.
Было это года 2 назад. Работал я тогда в небольшой госконторе, компов на 40, програмистом. По сути работа заключалась в сопровождении оркл сервера, дописывания мини-приложений, ну и борьбе с кривыми руками пользователей... Основная пролема заключалась в том, что "штат" набирался "по блату", а не по уму. А у директора данной конторы компа не было совсем, впрочем, как и понятия о нём.
Зато директриса усиленно боролась со всеми проявлениями безделья на работе, будь то простейшие игрушки или еще что... В очередной раз "отловив бездельника", дамочка издала распоряжение выявить всех "бездельников", положить ей список игр, у кого - что, ну и, соответственно, снести всё. Естественно, все на это забили, единственное, что было сделано - спрятаны ярлыки, а особо нерадивым - в пуске папку игры я сделал скрытой (быстро и эффективно). Многие, правда, в итоге держали на этот случай дежурную дискету с ярлыками игрушек.
А в списке для директора я написал все компы и стандартные игры. В итоге диалог: Директор: Почему на всех ПК установлены игры? Я: Они ставятся вместе с системой... Удалять бесполезно, всё равно останутся. Директор: Так напишите такую ОС, в которой не будет игрушек!
Когда несколько лет назад я возглавлял отдел тестирования, в производстве находился очень интересный модуль. Модуль позволял работать с графическими образами отсканированных файлов и сшивать их в PDF документы на основе предварительно нанесенных штрих-кодов.
Работа кипела, баги правились, добавлялась поддержка новых форматов. Но в один прекрасный день при запуске процесса - откуда-то появились нещадные "тормоза", особенно на быстрых машинах. Тестеры зафиксировали проблему, но причину понять так и не удалось: на медленных машинах все окей, на быстрых - тормозит. При этом иногда каждый раз, иногда ни разу за сессию.
Когда полезли в код ковырять - удивлению не было прeдела! Мало того, что разработчиком на момент запуска была добавлена непонятно зачем "закладка" вида: for(i = 0; i < 100000000; i++); так еще и в момент запуска, инициализировалось "пасхальное яйцо", которое наш товарищ наваял во время обеденного перерыва.
Дальше с его слов: "Ну а чего, если файлов много - скучно же сидеть и ждать! Пусть юзер в тетрис порубится!". Он-то и сжирал основную часть ресурсов, иногда забывая отрисоваться на экране.
Купил на днях себе второй компьютер, чтобы жена не отвлекала со своими пасьянсами. Ну и как положено - свитч, сетка, все дела. Принес, повтыкивал пачкорды, диски расшарил - пинги есть, интернет есть, сетевого окружения нет. Так, думаю, начинается. Смотрю, на обоих компах запрещена гостевая учетная запись. Разрешил - сетевого окружения все равно нет. Создал одинаковых пользователей - не работает.
Ну, думаю, продавцы ставили какую-то самопальную сборку винды, может там что-то с политиками безопасности. Синхронизировал политики на обоих компах - нет сетевого окружения и все тут. Ладно, может у меня тож что-то с политиками не так. Позвонил знакомому, синхронизировал с ним. Не работает. Поднял впн, сконектились со знакомым - по впн работает, а по локалке - нет. Лана, сборка винды с какими-то обновлениями, которые не пускают тех, у кого нет этих обновлений. Ну, мало ли что в майкрософте придумают? Сношу винду на новом компьютере, устанавливаю, настраиваю все так, как у меня - не работает! Блин, думаю, наверно надо мою винду сносить. Жалко, привык я к ней. Делаю последнюю проверку перед решительными действиями. Смотрю - в свойствах локалки присутствует IPX (в старкрафт по впн игрался, видимо сетевым подключением промазал). Убираю - есть сетевое окружение, ести расшареные диски! Эта зараза винда зачем-то пустила NetBIOS через IPX.
Вот так, 4 часа возни и головной боли из-за когда-то не туда поставленой галочки.
Историей про шашки навеяло... Писал я как-то в универе морской бой - такая курсовая была. Компу была прописана рекурсивная процедура, чтобы после попадания в корабль он стрелял по соседним клеткам, добивал, так сказать, "подранка". Ну, конечно, писалось все в посленюю ночь перед сдачей, отлизывать программу было некогда и задержку между выстрелами я не ставил. И после попадания мгновенно следовал следующий залп компа. При двух-трех попаданиях за ход создавалось впечатление, что комп долбит очередями.
Так вот, при сдаче процедурка где-то забарахлила и потрясенному преподавателю комп расстрелял все корабли хода за полтора - ну, повезло железяке, что попадала часто, бывает! - оставив каждому ровно по одной(!) целой клеточке! А затем, на секунду задумавшись, и, клянусь, злорадно ухмыляясь, бездушная вроде бы железяка одной длинной "очередью" садистки добила всех оставшихся на плаву. Зачет мне поставили, не задумываясь.
Дело было давно, когда я только учился программировать. Один баг запомнился особенно. Решил написать игру в шашки. Ну, сделал поле, расставил шашки, объяснил компу основные правила – куда ходить, как есть, как ходить нельзя и т.д. Мой ход, ход компа – и на цикл.
Стал тестировать – играть. Сначала, вроде, всё нормально: комп примитивно играет, но правильно. Вдруг замечаю, что шашек компа становится всё меньше (я столько не съедаю). Задумался… А, хрень какая-то, играем дальше. Через несколько ходов мои шашки стали тоже исчезать, причём в тылу, а на их месте стали появляться шашки компа! Ничего не понятно!. Несколько прогонов – то же самое.
Когда разобрался, выяснил: так как компу было прописано «ходить вперёд на соседнее свободное место» (по правилам шашек), то он просто уходил за край доски – там же препятствий нет! У меня прорисовывалось только поле шашек 8х8, а его шашки уходили на 0-й, 9-й, 10-й столбец массива. Потом коварно, из невидимости, у меня в тылу ел мои шашки по всем правилам «если рядом наискосок вражеская шашка, и за ней – пусто, то надо есть». Исправил сей баг по-русски: чтобы не писать везде в коде ограничения по координатам, просто расширил массив (-2 to 11)х(-2 to 11) и все неотображаемые клетки вокруг игрового поля забил тройным рядом своих шашек. Теперь шашки компа за край не совались – занято!
Была одна забавная история. Учился я тогда на первом курсе, и был у нас в группе один достаточно умный и усидчивый парень. Тогда нам преподавали паскаль, и была такая возможность - придумать себе сложное задание на целый семестр и в конце его сдать - уже на оценку в зачетку. Этот парень решил сделать игрушку. Он использовал графику, у него в игре работала мышка, да и сама игрушка была вполне ничего, что-то вроде легендарной Lines.
И вот во время сдачи он предлагает нашему любимому преподавателю информатики с ним сыграть - естественно, на пятерку. Преподаватель немного подумал и согласился. Соперники по очереди выстраивают линии. Препод начинает серьезно проигрывать, и ему это не нравится. Наконец парню остается всего два хода для победы. - И все-таки, вы поставите мне отл, - говорит студент, выставляя предпоследний кружочек. - Нет, не поставлю, - с раздражением в голосе говорит препод, наводит стрелочками на клавиатуре шарик, тыкает enter, и... Критикал эррор!
Лицо студента было ужасно. Он еще несколько дней искал багу... Так и не нашел вроде, хотя тут я уже не уверен.
На старой работе пристрастился к DotA-моду Warctaft III, где ты управляешь одним-единственным героем. Когда ничего больше делать не хочется, я захожу поиграть на публичном сервере. Собрал мощный геймерский компьютер, покупая детали где придётся - там материнку и память, там процессор с блоком питания... Компьютер работал, но изредка уходил в блускрин (впоследствии выяснилось, что виновата память одного известного производителя).
И вот я на этом глючноватом компе захожу в доту. Попался мне персонаж, у которого главная способность - меняться процентами жизни с любым другим героем. То есть, хочешь - возрождаешь из пепла полуубитого танка. Хочешь - из жертвы превращаешься в охотника. И вот я промахиваюсь курсором и обмениваюсь жизнью с полуубитым врагом, сразу после этого комп слетает.
А теперь представьте себе, как это выглядит со стороны. Некто %username% восстанавливает убегающему врагу 100% жизни и сразу после этого выходит дисконнектом! P.S. Бана, вроде, не последовало.
Когда мобильные игры достигли запредельной жирности, "сверху" появилось требование: игра должна работать из-под браузера. То есть загружаешь её через WAP, на вопрос "Запустить?" отвечаешь: "Да", и она должна запускаться и не зависать. Впоследствии опомнились: браузер отъедает столько памяти, что игра получится кастрированной! Но делать что-то надо...
Программисты придумали вот что. Появляется заставка: "Если игра зависла, выйдите из браузера и закройте ненужные программы". Затем выделяется большой блок памяти. И только если память удачно выделилась, возвращаем её и загружаем собственно игру: графику, звуки и всё остальное. А если нет - игра зависает на этой самой заставке.