Search
Write a publication
Pull to refresh
36
0

Пользователь

Send message

Xbox is a new Dreamcast. Зачем покупать консоль от Microsoft в 2023 году и во что играть

Level of difficultyEasy
Reading time11 min
Views9.3K
image

В 2001 году вышла консоль, которая крайне дерзко показала всем геймерам, каким будет будущее видеоигр. К её технологиям не все были готовы, а графика поражала воображение уже в лонч-тайтлах. Этой консолью стал Xbox.

Первая консоль от Microsoft фактически стала идейным наследником Dreamcast — консоли от Sega, вышедшей в 1998 году. Xbox получил сиквелы известных сеговских тайтлов, да и определённые технические моменты сильно напоминают японскую консоль, провалившуюся благодаря неумолимому росту популярности Playstation 2.
Читать дальше →

Япония — родина мобильного гейминга

Level of difficultyEasy
Reading time9 min
Views5.1K
image

Мобильные игры были с нами всегда. Мы привыкли к тому, что в нулевых были чёрно-белые «Нокии» и «Сименсы», на которых были простенькие чёрно-белые игры. Мы все прекрасно помним, как появлялись первые телефоны с цветными экранами и полифонией — потихоньку они умнели, становились ярче и громче. Появлялись модели с выходом в Интернет (кто из нас не попадал на кругленькую сумму, просаживая весь трафик, качая очередные заставки на экран и игры?). В конце концов мы обменивались скачанными играми по ИК-порту. Однако мобильный гейминг начинался вовсе не со «Змейки»…
Читать дальше →

Большинство оконных приложений — это недоработанные real-time приложения

Level of difficultyEasy
Reading time6 min
Views9.5K

В оконных приложениях таких платформ, как Windows, Linux и macOS, скрывается ряд недоработок, которые порой снижают их быстродействие до раздражающе медленного. Сюда относятся нюансы работы в реальном времени, блокирование памяти при доступе к диску и недостаточно эффективное планирование для активного оконного приложения. В статье мы подробно разберём все эти проблемы.

Я программирую уже давно. Под давно я имею в виду не один десяток лет работы. Надеюсь, это достаточно долго. За это время мой опыт в основном заключался в программировании для современных платформ вроде Linux, Windows, macOS для десктопных и серверных архитектур процессоров. Недавно я участвовал в создании MIDI-движка для систем значительно меньшей мощности.

Вскоре после начала я столкнулся с проблемой, которая требовала обеспечить невозможность переполнения очереди событий ввода. По сути, эта задача сводится к тому, чтобы каждый обработчик событий не выполнялся дольше некой максимальной продолжительности времени. Затем меня осенило! Я уже слышал это раньше — «максимальная продолжительность времени», так как занимаюсь разработкой систем, работающих в реальном времени.
Читать дальше →

Самые ностальгические мобильные игры. Часть 1: от «тетриса» и «змейки» до WAP

Level of difficultyEasy
Reading time7 min
Views11K

В наши дни возможность играть на смартфоне кажется такой же привычной и подразумеваемой по умолчанию, как делать им же фотографии. А ведь всего лишь лет тридцать тому назад человека, произнёсшего фразу «я поиграю на телефоне», сочли бы или поехавшим, или собирающимся творить какое-то тролльское непотребство с другими абонентами. Как именно игры превратились в органичную часть функционала мобильных телефонов, какие из них были первыми и какие стали первыми хитами в этом жанре — ныне сводя олдскулы и заставляя миллионы наших современников смахивать скупую слезу ностальгии?
Читать дальше →

Самодельные портативные игровые консоли и ESPboy

Level of difficultyEasy
Reading time22 min
Views22K

С некоторых пор в среде самодельщиков обрёл популярность новый формат — портативные игровые устройства на основе недорогих микроконтроллеров и OLED или TFT-экранчиков, подражающие популярным портативным игровым системам прошлого, таким как Game Boy компании Nintendo 1989 года.

Если техническая сторона проста и понятна, то вопросы мотивации создателей этих самоделок, зачем вообще они нужны, и что с ними можно делать конечному пользователю (а таковые стабильно находятся), остаются открытыми. Попробуем разобраться. Изложу общую историю и поделюсь личным опытом использования одного из таких устройств.
Читать дальше →

Минимум менеджеров, максимум инженеров: как Threads* удалось выпустить за пять месяцев

Level of difficultyEasy
Reading time13 min
Views7.1K
В июле этого года компания Meta* выпустила своё новое мобильное приложение Threads* — сервис микроблоггинга, ставший новым конкурентом X (бывшего Twitter). В первые пять дней после выпуска приложение скачали больше ста миллионов раз — новый рекорд для компании. Предыдущий рекорд Meta* в установке нового приложения за первые пять дней был равен одному миллиону. Вот как выглядит кривая роста для количества пользователей:

Рост приложения Threads* за первую неделю. Так как в момент выпуска Threads* был приложением только для мобильных, это число также равно числу установок приложений

Это огромные числа для нового приложения, даже учитывая то, что более чем установка нового приложения рекламировалась двум миллиардам ежемесячно активных пользователей Instagram*. Когда я узнал эту статистику, то первым делом задался вопросом, как же команда разработчиков осилила этот выпуск. Похоже, особых проблем при этом у пользователей не возникало. Особенно учитывая то, что команда Threads* сдвинула выпуск на более ранние сроки после того, как Twitter ограничил просмотры бесплатных пользователей до 600 постов в день; это решение создало прекрасную возможность для конкурента Twitter. Threads* был выпущен спустя считаные дни после введения в Twitter ограничений просмотров: и, похоже, что приложение правильно подобрало момент.

Но как всё это выглядело изнутри, с точки зрения разрабатывавших приложение инженеров? За ответами я обратился к команде разработки Threads*, которая с радостью поделилась подробностями.
Читать дальше →

Прогресс WebAssembly и будущее веба. Быстрые интерфейсы, пример Figma

Level of difficultyEasy
Reading time5 min
Views8.7K

Скетч из статьи Лин Кларк «Создание и работа с модулями WebAssembly»

WebAssembly (Wasm) — это бинарный формат для безопасного и эффективного выполнения портативных программ в стековой виртуальной машине (в браузере или на сервере). Как и ASM.js, представляет собой низкоуровневый код. Есть ещё WAT — WebAssembly Text, человекочитаемая версия бинарного кода.

WebAssembly — не столько язык программирования, сколько цель компиляции, новый вид ассемблера, который работает близко к железу, принимая программы на C, C++, Rust и других привычных языках. При этом Wasm гораздо быстрее ASM.js и выполняет код в браузере почти как нативные программы под любой ОС.
Читать дальше →

Классическое гитарное тремоло на транзисторах

Level of difficultyEasy
Reading time8 min
Views8K

Привет, Хабр! Многие гитаристы и энтузиасты самодельных гитарных педалей обходят эффекты тремоло стороной, считая их устаревшими и неприменимыми в современных стилях, слишком простыми и грубыми.

Однако умеренное тремоло без экстремальных настроек способно добавить живости и разнообразия практически любому гитарному звуку. Такую педаль я сегодня соберу, и мы сможем её послушать.
Читать дальше →

Как начать работать с IPv6 там, где его нет (часть 1)

Level of difficultyMedium
Reading time9 min
Views27K


Появлением на свет этот материал обязан переводу статьи IPv6 — это катастрофа (но поправимая) (автор Mathew Duggan) и является её логическим продолжением. Если вы живёте в небольшом городе, которого в том числе нет в этом списке, и ваш провайдер в него не входит, то велика вероятность, что просто так взять и начать по-настоящему (за пределами lan) работать с IPv6 не получится. Некоторых стран СНГ это касается в полной мере, где целые государства не имеют для этого необходимого интеллектуального и материального ресурса. Однако исследовательский интерес толкает человечество вперёд, поэтому в статье будут описаны стратегии, как получить и настроить IPv6 на различных, в том числе мобильных устройствах там, где его нет, используя возможности брокеров. В материале скомпилированы разные подходы, чтобы читатель мог реализовать подходящий вариант. Если у вас ещё имеются сомнения, нужно ли это вообще, то рекомендую почитать мотивационную статью, ссылка на которую приведена выше.
Читать дальше →

Битва русов и ящеров за воду Байкала: как пародия на неоязычество покорила Рунет?

Level of difficultyEasy
Reading time10 min
Views49K

В конце 2023 года русскоязычные соцсети внезапно заполонили мемы про древних русов и ящеров. Виной всему стали видеолекции сгенерированного с помощью нейросетей «профессора Багирова», в которых байки конспирологов-неоязычников о «тайной истории Руси» доводились до восхитительного абсурда. Вскоре пранк вышел из-под контроля: как про Медведа в старые добрые времена, про мемы о ящерах и русах стали писать крупные федеральные порталы и модные журналы, а теперь энтузиасты ещё и анонсировали игру. Почему русы и ящеры так «зашли» именно сейчас, что именно и как они стебут, и чем оказались так интересны и симпатичны аудитории Рунета?
Читать дальше →

Жирный гитарный дисторшн ProCo RAT

Level of difficultyEasy
Reading time8 min
Views8.9K

Привет, Хабр! Знаете, какую педаль перегруза использовали Джеймс Хетфилд и Кирк Хэмметт в дебютном альбоме Металлики «Kill `Em All»? Пользовались ею и Дэвид Гилмор, и Крист Новоселич из группы Нирвана, да и сам Курт Кобейн. И многие другие.

Сегодня мы изучим и соберём педаль, которая успешно продаётся в течение 46 лет. Не только по той причине, что через неё играли знаменитости, но и потому, что она действительно создаёт настоящий классический дисторшн.
И всё-таки, чем дистршн отличается от овердрайва?

Форматирование текста на C++ старым и новым способом

Level of difficultyMedium
Reading time8 min
Views18K

Форматирование текста на C++ можно реализовать несколькими способами:

  • потоками ввода-вывода. В частности, через std::stringstream с помощью потоковых операций (таких как operator <<);
  • функциями printf, в частности sprintf;
  • с помощью библиотеки форматирования C++20, в частности std::format / std::format_to;
  • с помощью сторонней библиотеки, в частности {fmt} (основа новой стандартной библиотеки форматирования).

Первые два варианта представляют старые способы. Библиотека форматирования, очевидно, является новым. Но какой из них лучше в плане производительности? Это я и решил выяснить.
Читать дальше →

Правда ли, что при расширении Вселенной энергия не сохраняется?

Level of difficultyMedium
Reading time10 min
Views17K

Расширение Вселенной — это увеличение со временем расстояния между гравитационно несвязанными частями наблюдаемой Вселенной (галактиками и их скоплениями). Сложно представить, но Вселенная не расширяется «во что-либо», и «вокруг неё» не обязательно должно существовать какое-то «дополнительное» пространство – вся Вселенная просто становится больше.

Любому наблюдателю из любой части Вселенной покажется, что все галактики, кроме ближайших друг к другу (связанных гравитацией), удаляются со скоростями, в среднем пропорциональными их расстоянию от наблюдателя. Хотя объекты не могут двигаться быстрее света, это ограничение действует только для локальных систем отсчёта и не ограничивает скорости рецессии космологически удалённых объектов – в данном случае между ними появляется дополнительное пространство.

Космическое расширение является ключевой характеристикой космологии Большого взрыва. Математически оно может быть смоделировано с помощью метрики Фридмана-Леметра-Робертсона-Уокера, где оно соответствует увеличению масштаба пространственной части метрики пространства-времени Вселенной (которая определяет размер и геометрию пространства-времени). В этих рамках стационарные объекты со временем разбегаются друг от друга, поскольку пространство расширяется. Это представить ещё сложнее, но в рамках этой метрики можно принять эквивалентное расширению Вселенной описание, при котором пространство не расширяется, а объекты просто раздвигаются друг от друга.
Читать дальше →

Робототехнические манипуляторы с компьютерным зрением

Level of difficultyEasy
Reading time8 min
Views11K
Картинка Freepik

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

Работа в этой области позволит освоить микроконтроллеры, компьютерное зрение, изучить различные виды кинематики манипуляторов.

Читать дальше →

Простой способ компрометации приватных ключей при помощи SSH-Agent

Level of difficultyMedium
Reading time8 min
Views11K

Введение


Однажды я просматривал видео из закладок и решил запустить AASLR: Leveraging SSH Keys for Lateral Movement Хэла Померанца. Примерно на середине видео я захотел начать заново и открыл заметки, чтобы документировать полученную информацию, потому что это был очень интересный материал, которого я не видел раньше. Воспользовавшись этой информацией как фундаментом, я начал искать другие способы применения утилиты ssh-agent и решил создать демо в своей домашней лаборатории. В этом посте я расскажу о своих открытиях.
Читать дальше →

Почему на новые SSD ставят вентиляторы. Термотроттлинг

Level of difficultyEasy
Reading time6 min
Views18K
ineo M.2 2280 SSD Rocket Heatsink с вентилятором, источник

Динамический термотроттлинг — функция современных SSD, когда контроллер специально замедляет/приостанавливает свою работу, чтобы снизить температуру ячеек памяти NAND. Он делает это ради сохранения данных, чтобы накопитель не перегрелся и не сработали контуры отключения питания.

С каждым поколением PCIe пропускная способность линий PCIe обычно удваивается. В PCIe 4.0 скорость SSD приближалась к теоретическому максимуму 8 ГБ/с. Сегодня SSD PCIe Gen 5.0 x4 разгоняются до 10−14 ГБ/с, при этом сильно нагревается контроллер (неудивительно, что эти микросхемы вообще долго не живут).
Читать дальше →

Собственный строковый тип на Rust

Level of difficultyMedium
Reading time14 min
Views7.3K

Писать компиляторы — моё хобби, ничего не могу с собой поделать. Поэтому я пишу и много парсеров. В программировании систем обычно лучше попытаться сделать память общей, чем использовать её многократно, поэтому мои типы AST обычно выглядят так.

pub enum Expr<'src> {
  Int(u32)
  Ident(&'src str),
  // ...
}

Когда мы парсим идентификатор, то вместо копирования его названия в новую String мы заимствуем его из входной исходной строки. Это позволяет избежать дополнительных распределений, дополнительного копирования и экономит слово на представлении данных. Компиляторы могут быть очень требовательны к памяти, поэтому стоит выбирать краткое представление.
Читать дальше →

Собственная копия YouTube

Level of difficultyMedium
Reading time7 min
Views48K


Мы уже обсуждали, как удобнее всего скачивать видео с YouTube для дальнейшего просмотра и хранения. Но если коллекция файлов становится слишком большой, то нужно их как-то организовать: по темам или тегам, по каналам, категориям, чтобы быстро найти нужный видеоролик. И желательно настроить сервер так, чтобы раздавать это видео по локальной сети или через интернет.

В итоге получается, что мы делаем нечто вроде маленькой копии YouTube, только на своём сервере. В определённом смысле это архивная копия на случай удаления видеоконтента из-за цензуры YouTube. Или на случай, если серверы YouTube станут недоступны с территории РФ из-за какого-то «технического сбоя».
Читать дальше →

Альтер эго. Как создать виртуальную личность и распознать фейк

Level of difficultyEasy
Reading time11 min
Views24K


Я люблю общаться с ботами и владельцами фейковых аккаунтов в социальных сетях. В большинстве случаев они довольно милые и относительно безобидные. Порой даже интересно угадывать, что именно они попытаются впарить мне в очередной раз: тотализаторы, БАДы, лохотрон с криптой или недвижимость в Дубае? На днях я несколько часов обстоятельно общался с одной обаятельной девушкой, пока по ряду характерных признаков не убедился в том, что этот аккаунт — тоже фейковый. Признаюсь, раскусить подделку в этот раз было непросто: создатели липовых учёток научились придавать им определённую правдоподобность. Любопытства ради я захотел разузнать, как сейчас создаются виртуальные личности, какой софт и технологии для этого используются и существуют ли способы с ходу определить, что перед тобой не живой человек, а подделка?
Читать дальше →

Разбираем формат EXIF на примере Apple Photos

Level of difficultyMedium
Reading time11 min
Views13K

В этой статье мы познакомимся с форматом EXIF и узнаем, какую информацию содержат метаданные фотографий, как эту информацию можно получить, и каким образом использовать. В качестве примера будем использовать фототеку, управляемую с помощью Apple Photos.
Читать дальше →

Information

Rating
Does not participate
Works in
Registered
Activity