Работая над своей реализацией Тетриса на Javascript, я столкнулся с необходимостью тестирования игры. Тестировать хотелось в условиях, максимально приближенных к реальности, т.е., играя в него. Самому тратить часы на игру не было ни желания, ни времени. Я решил разработать бота, который будет играть в тетрис вместо меня. Такого бота можно оставить играть на несколько часов и отловить редкие ошибки, которые слишком трудно воспроизвести вручную. Кроме того, мне было просто интересно написать такого бота.
Моя лента
Новости
Почему Илья Суцкевер не ходит на работу?
Слева направо: Грег Брокман и Илья Суцкевер. Фон — картины Суцкевера. @gdb
Илью Суцкевера не уволили, официально не отстранили, но на рабочем месте его не видели всю прошлую неделю. В других случаях это был бы типичный прогульщик, если бы речь шла не про главного научного сотрудника OpenAI.
Почему Суцкевер не ходит в офис? Пока что сказать трудно. Зато сейчас легко предположить, почему уволили Сэма Альтмана. Для этого нужно размотать клубок OpenAI до самого основания компании.
Магия swizzle из шейдеров в C++
В шейдере мы можем написать vec3 v0 = v1.xxy * 2
и любую другую комбинацию x, y, z и w в зависимости от длины вектора. Я рассматриваю только размеры вектора до 4, как самые распространенные для использования. Полученный вектор может не иметь той же самой размерности, как в меньшую так и в большую сторону и его компоненты могут быть скопированы в произвольном порядке. Это операция называется "swizzle" и это чертовски удобно для различных операций с малоразмерными векторами, особенно если они представляют игровые сущности в виде позиций, размера или цветов. Вектора используются повсюду в игровых проектах (да и не только в игровых), и не только в шейдерах. В какой-то момент swizzle было решено затащить и в наш игровой движок в базовые классы vec2, vec3 и vec4. Встали вопросы чтобы добиться такого же синтаксического и семантического поведения в C++ коде? Да сделать без особой потери производительности.
Apple: режим блокировки iPhone пока никому не удалось взломать
Apple утверждает, что режим блокировки, предназначенный для защиты от кибератак, пока никто не смог взломать. Компания добавила эту функцию в iPhone в прошлом году, и она предназначена в первую очередь для пользователей из группы риска, таких как политики, журналисты и активисты.
Бесплатный безлимитный Telegram-бот Спич для расшифровки голосовых и кружочков
Обзор бесплатного и безлимитного Telegram-бота для расшифровки гс и кружков Спич.
У всех же бывало когда присылают кружок, а ты прям никак не можешь прослушать, но вдруг там что-то важное?
Или любители голосовых... не зря мемы про них не теряют актуальности.
Frontend и цветовая слепота или путь в IT длиною 15 лет с дальтонизмом
Доброго времени суток, меня зовут Юрий, мне 38 лет и я фронтендер. А еще у меня имеется генетическое нарушение, которое влияет на способность различать определенные цвета, в частности, я плохо различаю некоторые оттенки зеленого и красного. Как при этом мне удается совмещать эту особенность с моей работой и до сих пор оставаться в разработке? Давайте разберемся.
Зачем металлу зёрна и что это такое?
Вероятно, вам приходилось слышать, что структура любого металла представлена зёрнами. Это не те зёрна, которые клюют куры и едят мыши. Но тогда какие?
Исследование: экосистема биткоина в 2023 году потратит более 2000 гигалитров воды
Экосистема биткоина потратит 2237 гигалитров (1 гл = 1 млн м3) воды в 2023 году, а на одну транзакцию биткоина уходит около 19 тыс. литров воды. Таковы результаты исследования основателя Digiconomist и кандидата наук в области данных Амстердамского свободного университета Алекса де Вриза. Он предупреждает, что экосистема криптовалюты может вызвать нехватку пресной воды, особенно в странах-центрах майнинга.
На Rostelecom Tech Day представлена ОС «Аврора 5.0» и проект Aurora Foundation
Компания «Открытая мобильная платформа» (ОМП) представила новую версию операционной системы (ОС) «Аврора 5.0» на мероприятии Rostelecom Tech Day, проходившем в Москве 8 декабря 2023 года. Разработчики заявили, что в новой версии ОС кардинально изменён интерфейс.
Расчет АБ T-тестом
Продолжаем нырять в тему АБ и разбираться как считают тесты в большинстве продуктовых команд, где нет отдельного АБ-департамента.
Если ты еще не видел, то глянь вот здесь про дизайн тестов, как принять гипотезу от менеджера и привести ее в формат документации.
Примеры будут на R, но если ты питонист, можешь найти эти темы у меня в ТГ, там версия для Python тоже присутствует.
А теперь про сам тест.
Фантастический OpenRISC и где он обитает, или недетский разбор детской камеры
После запуска Doom на кнопочном телефоне, я искал устройства на которых можно это повторить. К ним есть требования: цветной экран и несколько мегабайт памяти (идеально 4, но можно запустить и на двух). Видел счётчик электричества и USB тестер, то и другое есть с цветными экранами. Но покупать не стал, потому что скорее всего такие устройства имеют лишь десятки килобайт памяти, как и мощный чип им не нужен. Наконец на распродаже на известном китайском маркетплейсе увидел детский фотоаппарат, его и заказал для своего извращённого развлечения реверс-инжинирингом.
Но также нашел детский фотоаппарат со скидкой в немного другом корпусе на нашем маркетплейсе, заказал и его, ведь он будет у меня много раньше чем товар из Китая. Его и начал изучать первым...
Да простят меня подписчики хаба фототехники.
Пишем приложение на Python для подготовки к собеседованиям по Python
На конец 2023 года язык программирования Python является самым популярным по индексу TIOBE. Что касается работы, то по количеству вакансий в мире язык Python занимает второе место (после JavaScript/TypeScript). Поэтому у соискателей на должность, где требуется Python, возникает потребность подготовки к собеседованиям.
В этой статье я расскажу о том, как используя Python, можно написать desktop-приложение для ОС Windows, которое поможет быстро, эффективно и абсолютно бесплатно подготовиться к собеседованиям по Python.
Недокументированная возможность в Phpstorm: нативная консоль php -a с автодополнением из IDE
В прошлой статье я уже рассказывал о том, что использовать консоль Xdebug как аналог Python Console в Phpstorm. В комментариях меня спросили, чем не подходит для этого нативная консоль php, которую можно вызвать командой php -a
(Php Interactive Shell). Я тогда ответил, что она не интегрирована с IDE, и у нее нет соответствующих фич, таких как автодополнение. Однако недавно выяснилось, что на самом деле ее можно "интегрировать" с Phpstorm одним хитрым способом...
Ближайшие события
Kafka Connect на примере Debezium PostgresConnector
В предыдущей статье про микросервисную архитектуру на основе событий с использованием Kafka Streams достаточно поверхностно был упомянут io.confluent.connect.jdbc.JdbcSourceConnector
, который использовался для вычитания данных из SQLite и отправки их в топик Kafka. Сейчас я бы хотел более подробно разобрать технологию Kafka Connect на примере io.debezium.connector.postgresql.PostgresConnector
. Как и в прошлый раз, я реализовал небольшой демо проект, код которого доступен на GitHub. В проекте кода совсем немного, однако чтобы понять все настройки, примененные в коннекторе, придется достаточно подробно пройтись по теоретической части. Итак, приступим.
Как я пытался облегчить работу в поликлинике
Работа врача поистине тяжелая. Для того, чтобы облегчить ее и сделать чуточку проще, попробовал с помощью «No‑code» разработать удобное приложение, по подобию доставки. Что из этого вышло и почему бессмысленно.
История создания Оптимизатора для ПК: Nuxt.js, Electron и C++ в Одном Проекте
Как я проектировал свой самый большой проект, сложности с которыми я столкнулся. Фишки и неочевидные моменты при разработке.
Typescript: принцип подстановки функций
По аналогии с принципом LSP из ООП, при работе с функциями в Typescript стоит придерживаться следующего принципа:
Принимая колбэк с меньшим числом аргументов, оборачивайте его, прежде, чем передавать его далее в качестве колбэка с большим числом аргументов.
Пьеса о неудачном запуске предзаказа
Воскресный пост без технических нюансов. Просто история одного дня из жизни команды разработки. Пост для развлечения и поднятия боевого духа перед началом рабочей недели – все решаемо и всегда есть выход из ситуации, главное его найти.
Пора делать нормальных телеграм-ботов #1
Вы создаёте ботов в телеграме? Даже если нет, полезно будет знать о некоторых моментах, касающихся разработки телеграм-ботов. Никакого кода не будет, только картинки и описание 5 распространённых ошибок, которые меня — заядлого педанта в области разработки простых интерфейсов — раздражают.