Комментарии 66

Пасхалка в спектограмме саундтрека Doom Eternal от Aphex Twin
Спасибо
Зачем разработчики ПО прячут пасхалки в коде
Просто хочется заняться творчеством, а не рядовым созданием продукта.
А потом простые программы весят к примеру по 500 мегабайт, как на Андроиде
Там графика в основном, а не код
Скорее раздудые фреймворки с кучей ненужного функционала)
ненужные ресурсы, как правило, удаляются на этапе сборки релизных билдов
в играх, 90% текстуры, 5 меши, 3 анимации, потом звуки, остальное мелочь и код. на фоне текстур, код практически ничего не занимает.
это касается игр писи, консолей. мобилки, догогоняют, потому что экраны становятся плотнее и текстурки пожирнее.
Вот наша игрушка в стиме
Textures 25.3 gb 90.0%
Meshes 735.8 mb 2.6%
Animations 357.1 mb 1.2%
Sounds 0.0 kb 0.0%
Shaders 554.5 mb 1.9%
Other Assets 1.2 gb 4.3%
Levels 0.0 kb 0.0%
File headers 5.3 mb 0.0%
Total User Assets 28.1 gb 100.0%
Complete build size 29.0 gb
Тут звуки в other лежат в виде паков.
Поэтому тот кто говорит, что проекты пухнут из за кода, из за фреймворков, это как минимум неправда.
@DjUmnik, не попали. Разрастание кода происходит из-за бездумного напичкивания библиотек, неграмотной оптимизации проекта. Небольшие комментарии и пасхалки не помешают нормальной работе кода. Присём первые, как правило, вычищаются из релихной версии.
Так что именно из-за низкой квалификации или напичкивания библиотеками и тп хламом в современном проприетарном софте всё всрато (прошу прощения за выражение, это цитата).
правильно imgui ), 1000 descriptorPoolов, математика ), либа чтобы открывать 3д, либа чтобы оптимизировать модельки), либа чтобы оптимизировать хэш и вот уже на этапе сборки в статику с ассимпом тем-же имеем 34 мегабайта ), а ведь там еще само окно ), fmt на любителя ), плюс если это фулл-стек) sqlite3 какойнить ), websockets, shader-tooling какойнить), lua, и так до бесконечно )
Не вижу ничего плохого в пасхалках
Нет никакого коровьего уровня!
"человек в зонтике и шляпе "
Перевод что ли?
почему статья не помечена как перевод? это явно перевод, причем скорее всего полностью машинный:
В течение многих лет в официальном приложении μTorrent была спрятана секретная игра Tetris. Если вы использовали μTorrent и были слишком нетерпеливы, чтобы завершить загрузку, вы могли запустить игру, чтобы скоротать время.
Вы найдете эту пасхалку в меню «О программе» — простая команда «T» запустит игру. Это классический вариант Tetris, но вы никогда не ожидали, что он будет представлен в таком приложении, как μTorrent.
Trials Evolution 2012 года — это гоночная игра-головоломка о велосипедах
Но есть старые пасхалки, которым разрешили остаться, потому что они на самом деле являются высоко ценимыми утилитами. Попробуйте подбросить монетку или бросить кубик.
велосипеды не обнаружены и головоломки тоже...
ниодна из ссылок не работают
таки да это тупой перевод
Монетка, впрочем, подбрасывается.
В Contra игроки получали 30 жизней вместо обычных трех.
Мой мир рухнул. Сотни игр сыгранных в детстве с трёмя жизнями...
Хотя, на третьем, кажется, уровне, где сверху падают камни, "расстрел" камня давал сколько-то очков. Стрелять можно сколько угодно, и после определенного количества камней давали жизнь. Помню я на несколько часов зажал кнопку стрельбы стулом, и потом с сотней жизней единственный раз прошел игру.
Эх, вспоминаю и плачу, вот времена были.

Мой мир рухнул. Сотни игр сыгранных в детстве с трёмя жизнями...
У нас были пиратские сборники с Контрой. 30 жизней да ещё и с S-кой на старте. Лично для себя считал сначала вызовом начинать с 3х жизней и дефолтным оружием, а потом уже и нормой. Пройти один круг без смертей - наверное даже сейчас руки вспомнят, спустя 30 лет. Лет 15 назад катал - всё ещё мог, практически на автомате.
Проперло нас на ностальгию в институте.
Купили клон денди, и картриджей, в том числе и контру.
Сидим играем, с тремя жизнями, дошли до боса-яйца - убили его и одногруппник, ногой задевает блок питания, все вырубается.
Перекурили, пошли на второй заход, убили боса яйцо и оказывается это был финальный уровень.
Тупо дважды за день прошли игру с 3 жизнями. Оказывается это не так сложно, просто в детстве я был ракалом...
В первой контре финальный босс это сердце.

Ну по мне так яйца на холоде)
Но да - этот самый.
В два игрока убивается на изи, один стоит стреляет прямо, второй бежит на право и стреляет по диагонали.
Ну по мне так яйца на холоде)
Ну, у кого что болит. (С)
В два игрока убивается на изи
В одного с турбокнопкой и S-кой убивается за 3 секунды. Решительно подбегаешь, поливаешь и всё. Я помню устраивал челлендж: убивал сначала гнёзда, но чтобы сердце оставалось живым. Труднее всего было убить вернее правое, чтобы не задевать сердце. Но получилось.
Эта статья будет неполной без ссылки на статью про пасхалки в документации.
Сам я, кстати, люблю добавлять в объемную документацию
всякие невинные шутки
Например, раздел справки про спектры у нас начинается с пояснения: зачем нужно так много спектральных методов? Почему нельзя обойтись парой-тройкой стандартных? Суть пояснения изложена одной фразой: "Если от некоторой болезни существует очень много разных лекарств, - это значит, что ни одно из них не лечит по-настоящему!"
А раздел про методы заполнения пропусков данных предваряется честным признанием авторов программы, что они изучали этот вопрос много лет. Но так и не смоги подсчитать, сколько же разных алгоритмов заполнения пропусков можно построить, комбинируя стандартные опции нашей программы. Поэтому про некоторые их этих алгоритмов (до которых авторы проги не докопались) рассказа в справке не будет...
Хотя и знаю, что здесь есть много блюстителей строгости, которые нещадно минусуют сарказм и юмор, вставленный в серьезное обсуждение. Возможно потому, что они иногда "покупаются" на такие шутки, после чего испытывают обиду, вместо чтоб рассмеяться?
Наткнулся недавно на шутки в документации... не смешно...
Сроки горят, инфы в документации кот наплакал, не работает то, что должно...
а в мануале вместо хотя бы одного примера барин шутить изволит.
тьфу. Шоб таким шутникам зп выдавали бумажками из банка приколов.
@Vdm_ro, спасибо за критику! Понятно, что шутки должны быть не вместо инфы, а в дополнение к ней. И в соотношении примерно 1:100, иначе смешно не будет. Но вот для меня это скорее вопрос хорошего вкуса (хотя понятно, что он у всех разный), чем категорическое "нельзя".
P.S. Ну и еще наверно есть разница между массовыми продуктами (когда между юзером и разработчиком стоит несколько промежуточных звеньев) и узконишевыми, как в нашем случае. Когда с половиной пользователей авторы знакомы лично, и шутки направлены в хорошо понятную аудиторию. А в крайнем случае можно написать авторам в почту и через сутки (в среднем) получить конструктивный ответ. А через месяц - исправленную документацию, куда этот ответ будет вписан.
P.P.S. Но вообще - ставлю плюсик Вашему комментарию за полезную (для меня) обратную связь.
del - не та ветвь.
То, что у вас написано - это и не юмор, и не пасхалки. Такие вещи никому не нравятся, кроме их авторов. Если это была бы книга - то да, в предисловии или в сносках* можно подобное позволить. В документации, в коде, в комментариях к коду - категорически нет.
P.S. но в мире Линукса принято наоборот - там очень любят давать названия вещам, максимально оторванных от сути. Назвать аудиоплеер "мёртвая говядина", а команду помощи "человек" - не смущает вообще никого.
Назвать аудиоплеер "мёртвая говядина", а команду помощи "человек" - не смущает вообще никого.
Ну, "man" это сокращение от "manual". Ну а 0xDEADBEEF это одно из магических цифр в хекспике: https://ru.m.wikipedia.org/wiki/Hexspeak
"man" это сокращение от "manual"
О чём и речь - не просто сокращение, а сокращение, полностью меняющее смысл. Сократить можно было и до "mnl" - что и набирать проще, и общей традиции выкидывания гласных соответствует.
Кстати - простое стихотворение, чтобы выучить команды Linux
rm cp ln ls,
grep awk ps.
gpg dd bs,
apt-get gzip ss.
man tail ping cat wget chmod,
killall tar ping whois.
tree pwd du -hast acpid,
fsck whatis.
0xDEADBEEF это одно из магических цифр в хекспике
Об этом несложно догадаться. Сложно догадаться, какое отношение и то, и другое имеет к аудио-плееру. Опять же в контексте пасхалок это имеет интерес при 10-ричной записи (3735928559), чтобы интригу соблюсти.
Название намекает, что плеер стремится быть достойной заменой фубара на линуксе.
Сократить можно было и до "mnl" - что и набирать проще, и общей традиции выкидывания гласных соответствует.
Нельзя. Вы когда в адресной строке набираете адрес, вы ничего же не выкидываете, а браузер вам подставляет наиболее часто используемые сразу, уточняя выбор с кажлой буквой. Например, у меня на "tr" сразу вылазит переводчик, ибо других сайтов начинающихся с этих букв я не использую. А на "y" сразу ya.ru выходит. Так работает быстрый поиск с историей.
Тем не менее, это ведь не помешало сократить "copy" до "cp". А также "mv", "ln", etc. Впрочем, в контексте "man" придирка автора исходного комента к линуксу выглядит странно - все эти команды гораздо старше линукса.
Я думаю, это потому, что пытается анализировать не нейтив. Команды действительно старше линукса, И придумали их англоговорящие люди-носители с определённым бэкграундом и т.д. и т.п. И нам никогда не понять "логику" ибо её тут нет.
Тем не менее, это ведь не помешало сократить "copy" до "cp". А также "mv", "ln", etc.
Но при этом в DOS это были полные слова. А вот "dir" почему-то стал "ls" (list?).
То, что у вас написано - это и не юмор, и не пасхалки. Такие вещи никому не нравятся, кроме их авторов. Если это была бы книга - то да, в предисловии или в сносках* можно подобное позволить. В документации, в коде, в комментариях к коду - категорически нет.
Позиция понятна, и в определенной мере я с ней согласен. Юмор в пошаговой инструкции вряд ли уместен. Особенно если она написана на неродном языке, которым ты не владеешь свободно. Например, когда тебе надо загрузить данные, пришедшие в ana-формате, в программу, инструкция к проге должна быть предельно конкретной и четкой.
Что же касается конкретно нашего случая
то он достаточно близок к "книге". Дело в том, что примерно четверть от всего объема документации у нас составляют не пошаговые инструкции, а "философские рассуждения", в которых речь идет скорее про общие принципы построения алгоритмов. Специфика нашей работы в том, что она очень плохо формализована. Программа, как правило, не дает готовых решений, а предоставляет набор примитивов, из которых юзер сам, как из кубиков, собирает нужный ему алгоритм. Каким должен быть целевой алгоритм - не знают ни юзер, ни тем более авторы проги. В справке мы скорее делимся своим опытом в этом плане, причем заранее неизвестно: подойдет ли он юзеру, или нет. И такие рассуждения, отвечающие на вопрос "ЧТО вообще можно сделать в такой ситуации", часто довольно объемны. А главное, было бы совершенно неправильно, чтобы читатель к ним относился, как к догме. Вот в этот момент, как мне кажется, шутка может настроить его на правильный лад.
Что же касается способов "привинчивания" выбранных кубиков друг к другу (когда юзер ищет ответ на вопрос "КАК сделать вот это"), - то тут я с Вами согласен на сто процентов: инструкция должна быть короткой, конкретной и четкой. Буду обращать на это внимание в будущем, так как во время работы со слитным текстом (исходники справки) голова не всегда автоматом переключается на правильный стиль.
Вообще, мне кажется, что стиль инструкции к проге можно сравнить с двумя вариантами путешествия к заданной цели. В первом случае у тебя есть легенда, в которой перечислены повороты, и сказано: сначала направо, потом налево, а дальше три раза прямо. Кому-то так удобней всего. Однако при малейшем изменении местности, или при опечатке в легенде ты попадешь не туда. К тому же такую инструкцию надо составить для каждой возможной цели. А если есть варианты с начальными точками - то для каждой возможной пары "старт-финиш".
Поэтому начиная с какого-то уровня сложности вместо пошаговых списков удобнее карта. Которая не содержит рекомендаций: куда и где повернуть. Все на совести едущего.
Так вот, если Вы работаете в первом, пошаговом стиле, то ирония неуместна. Если же документация больше похожа на дорожную карту, то почему бы и нет? Особенно если авторы сами не очень-то хорошо представляют ее окраины. Вот про эти тропинки нам все достоверно известно - отражаем в документации. А где-то вот в этом районе - болото, предположительно с крокодилами (но говорят, что там собирают хорошую клюкву). В общем, мы сами там не были, пробуйте на свой страх и риск.
Те же спектры, к примеру, нельзя посчитать единственно правильным способом. Если в настройках метода есть четыре параметра, в справке можно раскрыть, что делает каждый из них. А вот какую их комбинацию следует выбрать в каждом конкретном случае - не ответит никто. Так как этих "конкретных случаев" - миллионы, в зависимости от особенностей данных, шумов, целевой функции и т.п. Даже если бы авторы знали ответы, в справке их изложить невозможно. А мы их вдобавок еще и не знаем (собственно, в этом научная работа и состоит)
.
P.S. Потрясающе. Вашему комментарию кто-то поставил минус. Я понимаю, когда минусуют за очевидную токсичность, за хамство, за грубую фактическую ошибку (которая кого-то введет в заблуждение). Но за корректно высказанное альтернативное мнение, с которым ты не согласен?! А как же тогда совершенствовать свое понимание, если всегда
слушать только приятное?!
Наверно, тут будет уместным упомянуть мое любимое следствие из третьего закона Ньютона:
Опираться можно только на то, что оказывает сопротивление!
Что касается "если от некоторой болезни существует очень много разных лекарств, - это значит, что ни одно из них не лечит по-настоящему!" - то я с этим полностью согласен и вне зависимости от того, какой процент иронии в эту фразу изначально был заложен. Но. Наиболее подходящее лекарство должен выбирать таки врач, а не пациент. Типичный пациент даже инструкцию к прописанному лекарству не читает, а про все остальные ему и тем более знать не интересно.
Так и тут. Пользователю (обычно) не интересна математическая подоплёка. И читать документацию ему тоже не интересно без крайней на то необходимости. И если программист не знает самого лучшего решения в конкретном данном случае - это ещё не значит, что этого самого лучшего решения не существует (и это ни в коем случае не камень в ваш адрес, а просто такие же философские размышления).
Например, спектроанализаторы на основе FFT традиционно предоставляют возможность выбрать размер окна (причём исключительно степени двойки, хотя более совершенные алгоритмы давно уже существуют) и оконную функцию из списка Rect/Hann/Hammning/Blackman... И если с размером окна как-то понятно, то название оконной функции (кроме первой) не говорит вообще ничего о её свойствах, потому что это просто фамилии. Пользователи выбирают её наугад, опираясь на собственные фантазии и фазы луны.
Но математически обоснованная идеальная оконная функция тоже ведь давно существует - построенная на многочленах Чебышева. Просто реализовать её несколько сложнее. А пользователю намного удобнее будет оперировать понятиями "ширина в герцах" и "глубина в децибелах", а размер окна можно автоматически считать исходя из этого.
Непонятна придирка, команда "man" гораздо старше линукса.
В автомобиле Газель можно поиграть в Тетрис на панели приборов.
Играл.
Гугл в помощь.
На форуме «Council on Foreign Relations» глава компании Anthropic Дарио Амодей заявил, что с развитием технологий уже через 12 месяцев весь код будет писать ИИ.
Как говорится - помянем современное ПО в таком случае. Мистер "я самая современная языковая модель" он же чатгпт4 не смог мне с нескольких попыток на C++ сделать лексер для CSS, что уж говорить про сложные задачи
А какая ваша любимая программная пасхалка? Пишите в комментариях
Та, которую сам и написал: разработчик поисковой системы, но если в поиске вбить ник разработчика, то появится пасхалка, и да, с неожиданным для пользователя поведением, как упомянули в комментах:
>>>"Просто хочется заняться творчеством".
А какая ваша любимая программная пасхалка?

А как же 3D гонки в Excel?
Видел у страховщиков во внутреннем софте с очень кривым глючным интерфейсом, если набрать определенное слово в любом поле заявки и подождать 15-20 минут (чуть меньше таймаута), появлялся бегающий жирный динозавр и "доламывал" интерфейс совсем. С - самоирония.
У нас один SCADA-разработчик в ситуации, которая никогда не может случиться, вставил демонстрацию порно-ролика. Ситуация случилась в присутствии большого начальства. Неловко вышло.
"Lexa Lexa ty mogu~ movet dave zloebu~"
«bush hid the facts» - не пасхалка, а ошибка. Причём не нули там показываются, а иероглифы китайские символы. Ну если у кого шрифт не установлен, то прямоугольники, которые автору показались нулями.
Вместо этого было бы логично рассказать про пасхалку в Win95 с информацией о разработчиках. Было красиво, музыка оттуда до сих пор в голове звучит.
А ещё была "полупасхалка" из установщика (точнее, постинсталла) винды ХР — музыка, которую никто не слышал где надо из-за отсутствия драйвера звуковой карты, зато потом часто находили как якобы "скрытый трек" по наводке из интернета в C:/Windows/System32/oobe/title.wma :-)
Внутри файла был приятный даунтемпо трек, который почему-то все считали творчеством Брайана Ино (видимо, по старой памяти после интро к вин2000), а имя реального автора и лослесс-версию трека в итоге нашли только уже после его смерти.
Для ЛЛ
Имя настоящего автора композиции Windows XP Welcome Music — американского композитора из Сиэтла Стэн ЛеПард (Stan LePard):
Своё авторство ЛеПард фактически подтвердил 13 лет назад, выложив на SoundCloud одну из изначальных версий трека, который носил название Windows 98 Velkommen. Вполне себе при жизни
https://habr.com/ru/companies/ru_mts/articles/788122/
Года 4 назад, когда тестировал анимацию в приложении, использовал для этого известного Nyan Cat. Не знаю, почему, просто именно эта гифка первой пришла в голову. В итоге после реализации функционала картинка осталась в ресурсах, и позже возникла идея заныкать её глубоко в настройки. Когда заказчик (к слову, японский) её обнаружил, то написал нам, что они немного офигели, но остались довольны)
В старых версиях MS-DOS (до DOS 6.2), если вы нажимали F1, функциональную клавишу Help, находясь во вкладке About, вас встречало диалоговое окно с надписью «No Help Available (so leave me alone)». Это была не особо смешная пасхалка, и из более поздних версий ее удалили.
судя по всему этот абзац тоже пасхалка статьи. Кто-нибудь поясните мне как вызвать вкладку about в command.com?
пасхалка в Winrar
Зачем разработчики ПО прячут пасхалки в коде