Что если бы мы могли воспринимать свою жизнь как ролевую игру, где каждый день — это новый квест, а каждое достижение — это заслуженная награда? Звучит интересно, правда? Геймификация жизни — это концепция, которая позволяет взглянуть на повседневные задачи и цели через призму игры, превращая их в увлекательный процесс. В этой статье мы разберём, как применить принципы RPG к реальной жизни и зачем это может быть полезно для вашей мотивации и саморазвития.
Читать далееПривет, Хабр! Недавно брат поинтересовался, как я решаю проблему с вечно забитым диском на MacBook, и я решил не только ему ответить, но и поделиться своим опытом со всеми. Расскажу, как бороться с нехваткой места и какой внешний накопитель выбрать, чтобы не разориться и не разочароваться.
Читать далееВ то время как ИИ уверенно осваивает все новые сферы - от перевода текстов до разработки лекарств - мы все чаще сталкиваемся с фундаментальным вопросом: имеет ли право такой ИИ называться «сознательным»? Модель OpenAI-o1, построенная на архитектуре трансформеров и обученная с помощью RLHF, является отличным полигоном для исследования этого вопроса. Но можем ли мы всерьез говорить о зачатках сознания у машин - или это лишь очередная иллюзия, созданная алгоритмами?
Читать далееНа прошлой неделе в Microsoft прокомментировали повышение цен на игры и консоли. Причинами роста цен компания назвала давление рынка и растущие затраты на разработку. Заявление Microsoft последовало вслед за новостью о том, что Nintendo поднимет цены для Switch 2 до 70 и 80 долларов.
Некоторые геймеры готовы платить больше, если знают, что доплачивают за более высокое качество игры. Однако журналист Джейсон Шрайер из Bloomberg отмечает, что формула «чем дороже, тем лучше» не применима к игровым хитам этого года.
Clair Obscur: Expedition 33 —превосходная RPG, которая разошлась тиражом более 1 миллиона копий за первую неделю. ПК-версия получила 90 баллов на Metacritic и 9,7 баллов от пользователей — это одни из самых высоких показателей за всю историю игр. Стоит она 50 долларов.
По той же цене продаётся Split Fiction. Она разошлась тиражом в 2 миллиона копий и даже готовится к экранизации. Её разработчик — создатель It Takes Two и A Way Out. По мнению автора статьи, это одна из самых весёлых игр, в которые ему довелось поиграть за последние годы и, несомненно, одна из лучших кооперативных игр, в которую можно зарубиться просто сидя на диване.
А ещё есть Blue Prince — захватывающая головоломка-рогалик, по большей части созданная одним человеком. Стоит она 30 долларов.
Clair Obscur разработала маленькая французская студия. Несмотря на то, что РПГ весьма популярны, возрождение механик пошагового боя — атак с QTE, а также привязанных к таймингу уклонений и парирований — можно считать рискованным шагом.
Читать далееАлгоритм сортировочной станции (Shunting Yard) был предложен Дейкстрой ещё в 1961 году и служит для преобразования математических выражений из привычной всем инфиксной записи (где операторы стоят между операндами, как в 1 + 2 * 3) в постфиксную (обратную польскую нотацию, 1 2 3 * +), удобную для дальнейшего вычисления. Однако есть один важный момент, который почти всегда упускается или замалчивается: алгоритм предполагает, что входное выражение уже синтаксически корректно.
Ни в Википедии, ни в большинстве обучающих статей вы не встретите слов о том, что выражения вроде + (1 2, 3 * 4 + ) или sin(+) должны вызывать ошибку. В лучшем случае они просто не вычисляются (что будет понятно лишь на этапе обработки в обратной польской записи), в худшем – дают бессмысленный результат. Алгоритм продолжает работать, даже если выражение изначально некорректно – и мало кто задумывается, почему это плохо.
Эта статья – попытка исправить эту несправедливую ситуацию, в которой мы не только реализуем алгоритм сортировочной станции «на максималках» с поддержкой констант, переменных, функций, унарных операторов, приоритетов и ассоциативности, но и добавим полноценную проверку корректности выражения по ходу разбора.
Читать далееOdin — это универсальный язык для системного программирования, придуманный Биллом Холлом aka «gingerBill». Odin задумывался как современная альтернатива C, и в нём делается акцент на простоте, производительности и удобочитаемости, но при этом не упускается контроль над низкоуровневыми деталями.
На сайте об этом языке Odin охарактеризован как «ориентированный на данные», именно поэтому в нём присутствуют, например, структуры массивов (SOA) и неявная инициализация значения в ноль. Удивительно, что, несмотря на такие приоритеты, в языке есть динамические словари и массивы, встроенные в сам язык. Притом, что памятью всё-таки приходится управлять вручную, такие встроенные вещи встречаются нечасто.
Возможно, вот те самые черты, придающие Odin собственный облик: язык задуман как эргономичный, такой, на котором удобно писать, и поэтому многое предоставляет «из коробки». Также в Odin предусмотрен «вендор», в котором содержатся привязки к разнообразным популярным библиотекам. Поэтому вкатываться в язык очень просто.
Читать далееВ очередной раз листая озон я наткнулся на девайс который привлек мое внимание, самоочищающийся лоток для котов Petkit Pura Max, вещь весьма интересная, особенно если у тебя три кота. Пушистые бандиты у меня крупные, потребляют много калорий и соответственно часто ходят в лоток.
Читать далееДрузья, всем привет, в последнее время в нашей среде завелась такая пикантная паника: "ИИ скоро заменит всех программистов, и мы станем не нужны!". Причём кричат так, будто бы уже завтра мы все проснёмся безработными. Но давайте вспомним, мы видели разные "замены" в IT: когда-то пугали, что калькуляторы заменят математиков, компьютеры — бухгалтеров, в 90-е уверяли, что языки высокого уровня отымут профессию разработчика, а сейчас нас пугают нейросетями. Одни предрекали, что low-code убьёт программистов, другие — что автоматизация заменит всех, но все эти прогнозы оказались преувеличением. Поэтому я встречаю такие пресказания скорее с интересом, а не с паникой.
Читать далееК классическим методам апскейпа (увеличения) относятся методы, основанные на различных интерполяциях исходного изображения и фильтров, также не выходящих за рамки классических. Есть неклассические методы: нейросетевые (к исходному изображению добавляется память обученной нейросети и по этой смеси генерируется увеличенное изображение), или основанные на самоподобии (производится затратный поиск самоподобия, результат добавляется к исходному изображению и по этой смеси генерируется увеличенное изображение) методы. Но в данной статье будут рассмотрены только простые классические методы.
Во всех публикациях в сети по апскейпу в GIMP предлагается использование только встроенного средства "Размер изображения". А в большинстве указывается применение только фильтра "кубическая" для интерполяции. Продемонстрируем:
Читать далееБыть тем, кто указывает на ошибки, — не самая простая роль в команде. Особенно когда ты только начинаешь путь в QA. Твоя задача — находить баги, недоработки и несостыковки, а затем рассказывать о них разработчикам, дизайнерам или аналитикам. По сути, ты постоянно говоришь: «Здесь что-то не так», «Это не работает», «Так быть не должно».
Неудивительно, что в такой роли можно легко почувствовать себя неуверенно или неловко.
Читать далееНачиная с 2025 года базовая ставка по налогу на прибыль составляет 25%, но не для всех. Компании из реестра отечественного ПО не просто платят всего 3%, но и полностью освобождены от НДС, применяют пониженный тариф по страховым взносам и пользуются иной государственной поддержкой.
Давайте разбираться, как начать законно платить налог 3% вместо 25% и получать другие льготы от государства через регистрацию в реестре отечественного ПО.
Читать далееПредставьте, что информацию в квантовом компьютере можно передавать не за счёт сложных проводов и резонаторов, а прямым перемещением самих квантовых битов – как по конвейерной ленте. В недавних новостях сообщается, что российские учёные предложили именно такой подход: «летающие кубиты», управляемые магнитным полем. Их метод позволяет переключать квантовые регистры в режим передачи данных, где квантовое состояние передается по цепочке без потерь, подобно падающим костяшкам домино. Разберёмся, зачем нужны такие летающие кубиты, как они работают и какие перспективы открывают – опираясь на современные исследования и примеры в оптике и спиновых системах.
Квантовый интересУскорьте разработку React-компонентов! Эта статья о создании шаблонов для автоматизации рутинных задач: генерация папок, файлов, управление экспортами. Экономьте время и фокусируйтесь на главном.
Читать далееВ первой части статьи мы рассмотрели, как можно вручную ускорить Go-код с помощью векторизации и SIMD-инструкций, реализованных через Go-ассемблер. Написали простую, но показательно быструю реализацию sliceContains и увидели, что даже базовая векторизация может дать ускорение в 10–14 раз по сравнению со стандартной реализацией.
Во второй части статьи погрузились в практическое применение SIMD в Go-ассемблере, реализовали функцию SliceContainsV1 и изучили, как с помощью VADD, VDUP и других инструкций можно добиться 10–14-кратного ускорения простых задач.
Но возможности оптимизации Go-программ на этом не заканчиваются. В этой части мы пойдём дальше: рассмотрим другие техники низкоуровневой оптимизации — от использования C-кода и альтернативных компиляторов с поддержкой векторизации до работы с аппаратными транзакциями памяти на Intel. Поговорим о том, как внедрять ассемблер в продакшен-код, не боясь за его поддержку, и как обойти ограничения стандартного Go-компилятора.
Привет, Хабр! Меня зовут Игорь Панасюк, я работаю в Яндекс, преподаю в ИТМО, а также в свободное время выступаю на конференциях, делюсь опытом в соцсетях и помогаю развитию Go-сообщества, веду телеграм-канал и youtube-канал. Если вы уже знакомы с базовыми техниками векторизации, эта часть поможет глубже понять, как устроены продвинутые способы ускорения Go-кода и на что стоит обратить внимание при работе с архитектурно-зависимыми оптимизациями.
Читать далееПривет, Хабр! Сегодня я бы хотел вместе с вами погрузится в увлекательный мир зависимостей, а точнее их внедрение.
И так, давайте сначала разберемся что же такое зависимость?
Зависимость - это объект (или функция, в Python все - это объект), который нужен другому объекту или функции для их нормальной работы. Почти в каждого объекта есть одна или несколько зависимостей. Существует 2 основных метода их получение: создание зависимости непосредственно внутри функции либо же инъекция (внедрение).
Читать далееМикроконтроллеры, светодиоды, и немного кода — вот и вся палитра для минималистичного цифрового искусства. В статье подробно рассказывается, как выстроить архитектуру крошечных, но выразительных световых анимаций с использованием C++, платформы STM32 и адресных светодиодов WS2812. Немного философии, немного инженерии — и свет оживает по команде вашего кода.
Можно потратить годы, чтобы написать красивый рендерер. А можно взять 8 строк кода, светодиодную ленту и микроконтроллер, чтобы ночью на стене заиграла световая поэма. Эта статья — про второй путь.
Код, который светится, не имеет интерфейса, не показывает графику на экране и не заботится о фреймрейте. Его задача — свет. Живой, дышащий, мерцающий свет. В идеале — чтобы всё это поместилось в пару килобайт памяти и не жрало больше миллиампера на эффект.
Читать далее