Рубрика «ненормальное программирование» - 36

«Пасхальное яйцо» (англ. Easter Egg) — секрет в компьютерной игре, фильме или программном обеспечении, заложенный создателями. Отличие пасхального яйца в игре от обычного игрового секрета состоит в том, что его содержание, как правило, не вписывается в общую концепцию, выглядит в контексте неправдоподобно, нелепо, и зачастую является внешней ссылкой. Пасхальные яйца играют роль своеобразных шуток для внимательных игроков или зрителей. (wiki)

Пасхальные яйца бывают разные. Например широко известна команда apt-get moo, которая рисует корову в консоли:

         (__) 
         (oo) 
   /------/ 
  / |    ||   
 *  /---/ 
    ~~   ~~   
...."Have you mooed today?"...

Пожалуй все согласятся с тем, что apt-get moo не является деструктивной функцией. Эта пасхалка может показаться смешной, или же нет, а то и вовсе неуместной, но она наверняка вам ничего не сломает. Также можно посмотреть некоторые другие пасхалки в linux.

В этой статье я бы хотел остановиться на одной конкретной пасхалке. А конкретно о "christmas" в ant-design. Это неплохая UI библиотека контролов для React-экосистемы. Про неё можно было бы написать отдельную статью, но сейчас не об этом.

Читать полностью »

Я обнаружил эту закономерность, когда разглядывал пост пользователя xcont. Наткнувшись на эту публикацию, я обратил внимание на то что узоры повторяются не только при увеличении масштаба по числам Фибоначчи.

Фрактал Герасимова. Обнаружил закономерность. Таблица Чёрного - 1

Мне стало интересно есть ли закономерность в этих узорах. Но имея только 2 параметра x и y, я решил что нужно обозначать что-то ещё, общее среди всех получаемых узоров. Тут я заметил что если взять первые 4 квадрата на поле, в любом случае мы получаем 3 варианта начала узора, если линия идёт:

вверх(↑)

Фрактал Герасимова. Обнаружил закономерность. Таблица Чёрного - 2

вниз(↓)

Фрактал Герасимова. Обнаружил закономерность. Таблица Чёрного - 3

или же не идёт*(-)

Фрактал Герасимова. Обнаружил закономерность. Таблица Чёрного - 4 Читать полностью »

Надо знать, где поставить ноль - 1

Для некоторых оптимизаций требуются сложные структуры данных и тысячи строк кода. В других же случаях серьёзный прирост производительности даёт минимальное изменение: иногда нужно лишь поставить ноль. Это похоже на старую байку о котельщике, который знает правильное место для удара молотком, а потом выставляет клиенту счёт: $0,50 за удар по клапану и $999,50 за знание, куда бить.

Я лично встречал несколько ошибок производительности, которые исправлялись вводом одного нуля, и в этой статье хочу поделиться двумя историями.
Читать полностью »

Image

Начитывая очередную статью про малоизвестные фичи языка JavaScript и втихую пописывая какие-то невменяемые решения в консоли браузера, я часто проговариваю в голове мол ну на проде то конечно все не так!? Ведь язык давно обзавелся огромнейшим комьюнити и имеет удивительно широкий охват промышленной разработки. Раз так, то почему же мы часто забываем про его возможность быть понятным для каждого и буквально пропагандируем все эти специфичные и "запоминаемые" конструкции? Just make it Obvious!

Читать полностью »

Трехмерный движок на формулах Excel для чайников - 1

В этой статье я расскажу, как мне удалось портировать алгоритм рендера трехмерных сцен на формулы Excel (без макросов).

Для тех, кто не знаком с компьютерной графикой, я постарался как можно проще и подробнее описать все шаги. В принципе, для понимания формул должно быть достаточно знания школьного курса математики (+умение умножать трехмерную матрицу на вектор).

Также я сделал небольшое веб-приложение, где можно потренироваться в создании формул для произвольных фигур и сгенерировать свой файл Excel.

Осторожно: 19 картинок и 3 анимации под катом.Читать полностью »

Russian AI Cup 2018: CodeBall. Зрелищное 3D соревнование - 1

С 2012 года ежегодно проводится соревнование Russian AI Cup по написанию искусственного интеллекта и ботов, которые ожесточенно сражаются в виртуальном мире вместо своих владельцев. За все прошлые чемпионаты на платформе зарегистрировалось более 40 000 пользователей, которые прислали нам более 150 000 различных решений. Каждый новый чемпионат — это новая игровая задача со своими правилами, законами и механикой. Стараемся постоянно вносить новые идеи и фичи, чтобы игры из года в год становились еще более интересными и зрелищными, развивая наш мотор под капотом проекта и делая всё во славу нашего сообщества.

Этот год не стал исключением. Mail.Ru Group в сотрудничестве с Codeforces.com официально объявляют о датах чемпионата Russian AI Cup 2018 под названием CodeBall.

Итак, поехали!
Читать полностью »

Сортировка «Ханойская башня» - 1

Ханойские башни
Про знаменитую игру Эдуарда Люка́ на Хабре не писа́л только ленивый. Кажется, все покровы сорваны и что-то ещё по поводу алгоритма добавить уже невозможно. Но нет, у данной темы есть ещё скрытые ресурсы. Сегодня, в частности, мы переделаем алгоритм решения этой головоломки в полноценную сортировку. (Зачем? Just for fun. В пятницу можно.) Читать полностью »

Транспайлер-цепь Python → 11l → C++ [для ускорения Python-кода и не только] - 1Транспайлер-цепь Python → 11l → C++ [для ускорения Python-кода и не только] - 2Транспайлер-цепь Python → 11l → C++ [для ускорения Python-кода и не только] - 3Транспайлер-цепь Python → 11l → C++ [для ускорения Python-кода и не только] - 4Транспайлер-цепь Python → 11l → C++ [для ускорения Python-кода и не только] - 5

В данной статье рассматриваются наиболее интересные преобразования, которые выполняет цепочка из двух транспайлеров (первый переводит код на языке Python в код на новом языке программирования 11l, а второй — код на 11l в C++), а также производится сравнение производительности с другими средствами ускорения/исполнения кода на Python (PyPy, Cython, Nuitka).
Читать полностью »

Mini AI Cup #3: Пишем топового бота - 1

В начале осени завершился конкурс по написанию ботов Mini AI Cup #3 (aka Mad Cars), в котором участникам необходимо было сражаться на машинках. Участники много спорили о том, что будет работать и что не будет, высказывались и проверялись идеи от простых if’ов до обучения нейросетей, но топовые места заняли ребята с, так называемой, "симуляцией". Давайте попробуем разобраться с тем, что это такое, сравним решения за 1ое, 3е и 4ое места и порассуждаем на тему других возможных решений.

Читать полностью »

И хотя людей, которые для написания списка покупок или компиляции данных по квартплате используют скрипты на python, пересчитать по головам, но если так получилось, что вы используете скрипты для решения рутинных задач и иногда скрипты работают недопустимо долго, то возможно, идея применение ленивых вычислений ко всему что движется, придётся вам по вкусу.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js