habrahabr
DOOMQL: DOOM-подобный многопользовательский шутер на чистом SQL

Недавно я набрёл на шедевр Патрика — клон DOOM, основанный на DuckDB-WASM и работающий в браузере. Прочитав о нём, я решил довести эту великолепную идею до логического завершения: написать многопользовательский DOOM-подобный шутер целиком на SQL. При этом всю тяжёлую работу хотел сделать через базу данных CedarDB. Отлучившись с работы в месячный отпуск по уходу за ребёнком (бессонных ночей хватало), я попытался сделать именно это.Вот вам тизер DOOMQL:Ладно, демка вышла на славу, а теперь давайт…

  • пятница, 12 сентября 2025 г. в 00:00:13
habrahabr
Как ФБР запустило стартап для наркокартелей и три года читало их переписку — история Anom

Наркоторговец из Южной Австралии Доменико Катанзарати был уверен, что провернул сделку века. Он использовал Anom — свой анонимный защищенный смартфон — для координации поставки кокаина, спрятанного внутри промышленного сварочного аппарата.Катанзарати был спокоен. Anom считался «Роллс-Ройсом» в мире шифрованной связи, его рекомендовали влиятельные люди из криминального мира. Устройство работало на кастомной операционке, а сообщения шифровались так надежно, что, казалось, никакие спецслужбы не вс…

  • пятница, 12 сентября 2025 г. в 00:00:12
habrahabr
Устройства, которые мы потеряли: что внутри у легендарного Nokia 6600?

Под прошлой статьей о Siemens C65, многие читатели ставили под сомнение легендарность немецких телефонов и говорили о том, что настоящими легендами были устройства от Nokia. И это правда — именно поэтому я решил написать подробную ретроспективную статью, в которой расскажу не только об аппаратных платформах легендарных Symbian-смартфонов, но и об их программных особенностях. Если вам интересно узнать что внутри у легендарной «бочки», причём здесь КПК Psion и какие необычные решения использовали…

  • пятница, 12 сентября 2025 г. в 00:00:11
habrahabr
День, когда высох Ниагарский водопад

До строительства электростанций на реке Ниагара поток воды, проходящий через водопад, более чем вдвое превышал современный. Тем не менее, в ночь с 28 на 29 марта 1848 г. он практически иссяк. В то время, благодаря каналам и железным дорогам, население местности и число туристов уже были велики, так что осталось много подробных свидетельств о случившемся. День начался с того, что людей разбудила непривычная тишина.Водопад без воды в 1969 г. Ревущий поток необъяснимо уменьшился до нескольких тон…

  • пятница, 12 сентября 2025 г. в 00:00:10
golang
За пределами отладчика: полное руководство по отладке Go-приложений

Команда Go for Devs подготовила перевод статьи о том, как отлаживать приложения на Go. Автор показывает, что баги бывают разными: воспроизводимые, случайные, гейзенбаги и конкурентные. А в арсенале Go-разработчика должны быть — TDD, стратегическое логирование, Delve, git bisect и даже онлайн-отладчик GoTutor.Не все баги одинаковы. Одни легко обнаружить и устранить с помощью отладчика. Другие могут проявляться редко или быть крайне неочевидными — искать их всё равно что искать иголку в стоге сен…

  • пятница, 12 сентября 2025 г. в 00:00:09
javascript
Создание интерактивного макета. Задача упаковки кругов в круг. Метод отжига

Я начала разработку интерактивного интерфейса для своего проекта «Florist». Центральным элементом сайта должен был стать интерактивный макет — с его помощью пользователь мог бы визуализировать различные цветочные дизайны, располагая в ячейках макета цветы из каталога. Я создала прототип, внедрила его в сайт и доработала окончательный дизайн до такой картинки: Концепт интерактивного макета реализован в два этапа: сначала пользователь выбирает количество цветов и форму букета из предложенных вар…

  • пятница, 12 сентября 2025 г. в 00:00:07
javascript
Push-Notifications в PWA и браузере: полная реализация без сторонних сервисов

Service Worker + Push API + VAPID ключи + Notifications API = полноценные push-уведомления в браузере. Никаких внешних сервисов, полный контроль над функциональностью.В отличие от нативных приложений, веб-push не требует установки, обновляется автоматически и работает на всех платформах. Единственная сложность — особенности iOS, где Apple добавила поддержку только в 2023 году.Архитектура push-уведомленийСистема push-уведомлений — это сложная экосистема из четырех компонентов. Они работают вмест…

  • пятница, 12 сентября 2025 г. в 00:00:06
javascript
Почему браузеры ограничивают JavaScript таймеры?

Команда JavaScript for Devs подготовила перевод статьи о том, почему браузеры намеренно замедляют выполнение setTimeout и других таймеров. Автор объясняет, как это связано с защитой пользователей, рассказывает о своём бенчмарке разных подходов (setTimeout, MessageChannel, scheduler.postTask) и делает прогноз, какие таймеры будут использоваться в будущем.Даже если вы давно пишете на JavaScript, вас может удивить, что setTimeout(0) на самом деле не совсем setTimeout(0). Вместо этого колбэк может …

  • пятница, 12 сентября 2025 г. в 00:00:05
javascript
Прочитал документацию и подготовил обзор библиотеки Motion для React и её возможностей

Что представляет из себя данная статья?Когда я начал разбираться с Motion для React, то оказалось, что свежих обзорных статей почти нет — нашёл только несколько старых постов про framer-motion. Поэтому я решил написать свой обзор: перевёл и разобрал документацию (ссылки в конце), попробовал библиотеку в деле и собрал всё в одном месте. В статье есть примеры кода, GIF-анимации и описание хуков, которых, по моему личному мнению, достаточно, чтобы понять Motion, и, возможно, попробовать его руками…

  • пятница, 12 сентября 2025 г. в 00:00:03