Pull to refresh
4
0
Maxim Makarov @art1fact

ex-редактор блога RUVDS на хабре

Send message

Yakuza 0 — идеальный приквел, спасший серию

Level of difficultyEasy
Reading time10 min
Views5.4K
image

По китайскому календарю 2024 год — год Дракона. Это и факт того, что в январе вышла Like a Dragon: Infinite Wealth — девятая (!) игра в основной линейке серии, известной на западе как Yakuza, сподвигли меня устроить своеобразный «челлендж»: пройти до конца года все игры серии. До этого моё знание о франшизе сводилось к мемам об абсурдности и драйвовости серии, так что разобраться, почему эти странные японские игры настолько любимы как критиками, так и игроками, стало моей основной целью.

Спустя же несколько десятков часов в Yakuza 0 я могу заявить, что свой ответ я уже получил. Одна из лучших когда-либо написанных историй в видеоиграх, качественная боевая система, уникальный подход к созданию открытого мира и просто общий стиль — «Якудза» никого не оставит равнодушным. Потому приглашаю со мной посетить один из самых криминальных районов Токио, в котором началась история видеоигровой иконы с почти двадцатилетней историей.
Читать дальше →
Total votes 29: ↑28 and ↓1+40
Comments9

Как в 180 000 раз ускорить анализ данных с помощью Rust

Level of difficultyMedium
Reading time18 min
Views17K

В этой статье я опишу одно из последних своих дерзновений в сфере оптимизации производительности с помощью Rust. Надеюсь, что в ней вы откроете для себя какие-то новые приёмы для написания быстрого кода на Rust.
Читать дальше →
Total votes 58: ↑52 and ↓6+68
Comments12

Южно-Сахалинск: самый ̶я̶п̶о̶н̶с̶к̶и̶й̶ корейский город страны

Reading time20 min
Views24K

Географическая близость к Японии предопределила развитие Сахалина как «моста» между нашими странами. Две трети населения пограничного региона живёт на самом юге острова, в агломерации Южно-Сахалинска. Японское прошлое города иногда выглядывает из-за угла и, показав игриво рожки, вновь прячется за стандартными советскими кварталами. Рожки — это в том числе пробки в центре и постоянно захлёбывающаяся ливневая канализация. Где же заканчивается Тоёхара и начинается современный Южно-Сахалинск, что делает его самым корейским городом страны, и почему он продолжает расти, несмотря на суровый климат и удалённость? Давайте разбираться!
Читать дальше →
Total votes 68: ↑61 and ↓7+77
Comments43

Почти классический овердрайв Tube Screamer

Level of difficultyEasy
Reading time8 min
Views5.9K

Привет, Хабр! Каждый из тех, кто играет на электрогитаре, наверняка хотя бы иногда пользовался Тьюб Скримером, потому что это одна из самых удачных гитарных педалей за всю историю их развития.

Знаете, сколько всего существует разных Тьюб Скримеров и родственных им педалей? — Вряд ли кто-нибудь сможет перечислить их все. Но про некоторые из самых знаковых я сегодня расскажу. А одну из них соберу, и мы сможем её послушать.
Читать дальше →
Total votes 35: ↑33 and ↓2+51
Comments20

Войны битов

Level of difficultyEasy
Reading time37 min
Views13K

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

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

Будем заниматься странными вещами: подсчётом бит в игровых приставках и попытками найти в этом занятии какой-то глубокий смысл. Открывайте форточки, будет душно!
Читать дальше →
Total votes 61: ↑60 and ↓1+88
Comments13

Как Rust меняет мышление разработчика

Level of difficultyEasy
Reading time9 min
Views48K
Я страшно ненавижу C++. Обычно я люблю программирование, но каждый проект, с которым я имел дело на C++, ощущался как монотонная рутина. В январе 2023 года я пошёл по пути изучения Rust, поэтому теперь могу сказать, что знаю язык системного программирования, который действительно люблю использовать.

Первый стабильный релиз Rust появился в 2015 году, и каждый год, начиная с 2016, он признаётся в Stack Overflow’s Annual Developer Survey самым любимым языком (в 2023 году эта категория называется «обожаемый»). Почему же разработчики, ощутившие вкус Rust, не могут отказаться от его использования? Похоже, в мире прогремевших наследников C/C++ репутация растёт только у Rust. Как же этот язык, появившийся на сцене меньше десятка лет назад, стал настолько популярным?

Ржавый красный краб Феррис по версии Midjourney

Кривая обучения оказалась крутой. Я нашёл многое, что мне нравится в Rust, но постоянно попадал в его ловушки. Однако в конечном счёте именно препятствия и проблемы, с которыми столкнулся, я научился любить больше всего.

Я начну историю с разговора о том, что легко полюбить — со среды Rust, управления пакетами и документации. Затем я расскажу о системе типов и типажах (trait). Далее я поведаю о тех возможностях тестирования и test driven development, которые становятся возможными благодаря Rust. Наконец, мы обсудим самую запутанную и сбивающую с толку часть — одержимость Rust тем, кто какой переменной владеет.
Читать дальше →
Total votes 87: ↑75 and ↓12+89
Comments147

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 2

Level of difficultyMedium
Reading time8 min
Views6.2K

Я продолжаю рассказывать, как HTML и CSS могут улучшить или ухудшить доступность интерфейсов. В своём рассказе я использую свой опыт и моего незрячего знакомого Ильи.


В этой статье будет: атрибут autofocus и его нюансы, паттерн «Skip-link» и идея Ильи об использовании его на практике, проблема использования одинаковых ссылок для одной новости, что не так с кнопкой «Наверх» и как вы спрятали список от скринридеров.


Давайте начнём!

Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments10

«Окей, бумер» — как шутеры в ретро-стилистике потеряли самобытность

Level of difficultyEasy
Reading time8 min
Views12K

В последние лет 5 стали популярны «бумер-шутеры». Шутливое название по мотивам мемов про так называемых бумеров и зумеров относит нас к олдскульным шутерам от первого лица. И хоть жанр на пике популярности, а отдельные его представители крайне восхваляются игроками и прессой, у меня есть альтернативное мнение насчёт таких игр: не все они так хороши, как о них говорят.
Читать дальше →
Total votes 39: ↑36 and ↓3+51
Comments29

Как и почему я писал для Флиппера на Си-с-классами

Level of difficultyMedium
Reading time8 min
Views12K
Мой Флиппер дошёл до меня больше полугода назад, но что-то под него написать я собрался только сейчас. Его API рассчитаны на язык С — а у меня с ним опыта не очень много. Но проблем с тулингом не возникло — у Флиппера есть своя система сборки, которая скачала мне нужный тулчейн и сгенерировала настройки для IDE.

А для написания кода я решил использовать всё же не C, а C++ — точнее, даже «Си-с-классами». На мой взгляд, затуманенный языками более высокого уровня, такой подход получился удобнее, чем писать на чистом C. Результат можно увидеть в моём репозитории, а в этой статье я попытаюсь описать, какие конкретные фичи языка я использовал, и как именно они мне помогли.

Читать дальше →
Total votes 47: ↑44 and ↓3+60
Comments8

Как зловредные приложения могут скрывать работу с буфером обмена в Android 14

Level of difficultyMedium
Reading time8 min
Views5.3K

Вы когда-нибудь копировали в буфер обмена уязвимую информацию, например, пароли, номера кредитных карт, сообщения или личные данные? Если да, эти данные могут оставаться в буфере устройства достаточно длительное время. Доверяете ли вы буферу обмена и приложениям, получающим доступ к этим данным? В этой статье мы изучим Android Clipboard Manager и продемонстрируем необходимость более качественной защиты копируемых данных.
Читать дальше →
Total votes 35: ↑34 and ↓1+51
Comments3

Управление Linux-сервером — самая ценная инвестиция

Level of difficultyEasy
Reading time6 min
Views70K

В эпоху облаков настройка Linux-сервера своими руками кажется неким вымирающим искусством. Для непосвящённого человека даже bash-скрипты выглядят как заклинания, а коллеги проникаются уважением к сисадмину, как древние индейцы к своему шаману…

Сейчас это «древнее искусство» вновь стало актуальным. История идёт по кругу — всё старое возвращается в новом виде. Запуск сервера на своём хостинге стал хорошей альтернативой облакам. Этому есть ряд причин, которые мы не будем подробно разбирать, только повторим вкратце: безопасность, свобода, контроль над своими данными, экономия финансов.
Читать дальше →
Total votes 78: ↑74 and ↓4+97
Comments117

Электромагнетизм и некоторые интересные явления и процессы

Level of difficultyEasy
Reading time12 min
Views14K
Картинка Freepik

Электромагнитные явления (молния, притягивающие свойства натёртого янтаря) люди наблюдали на протяжении всей истории, тем не менее упорядоченные научные знания впервые появились только около 200 лет назад, но, даже сейчас, несмотря на проработанность теории электромагнетизма, многие электромагнитные явления воспринимаются их изучающими несколько отстранённо, так как лежат за пределами непосредственного опыта, поэтому несложно понять, почему только в последние пару веков люди смогли связать воедино разнородные явления и создать более-менее стройную теорию.

Читать дальше →
Total votes 39: ↑35 and ↓4+52
Comments33

Пишем графический ASCII-калькулятор с помощью стандартной библиотеки Си

Level of difficultyHard
Reading time17 min
Views14K

Программа calculator.c родилась как школьный проект в рамках Student Innovation Scholarship. Сперва я решил написать простой инструмент для построения графиков функций с помощью символов ASCII, но после завершения первого прототипа понял, что задача намного сложнее, чем предполагалось. Вернувшись к проекту год спустя, я увидел, что в нём есть много неочевидных нюансов. Поэтому предлагаю разобрать весь процесс разработки моего графического калькулятора с нуля.


Читать дальше →
Total votes 52: ↑51 and ↓1+75
Comments25

Итальянцы в России и не только. История Olivetti

Level of difficultyEasy
Reading time8 min
Views8.7K

Если бы у нас была возможность отправиться на машине времени в самое начало 90-х годов и включить телевизор, то мы слегка обалдели бы от транслируемых в эфире рекламных роликов. Реклама водки и сигарет, уникальные креативные приёмы из серии «вам пора, и вам пора с вентиляторным заводом заключать договора», подмигивающий Распутин, Лёня Голубков в неизменной майке-алкоголичке, и, конечно же, маскулинный полисмен, отбирающий у сексуальной блондинки незаконную пачку «Стиморола». Среди всего этого великолепия определённой скромностью и сдержанностью отличалась реклама компьютеров производства итальянской компании Olivetti. Да что там реклама — логотип Olivetti какое-то время украшал циферблат часов, демонстрировавшихся в эфире Первого канала перед программой вечерних новостей. Об истории этого удивительного бренда — наш сегодняшний рассказ.
Читать дальше →
Total votes 37: ↑35 and ↓2+52
Comments42

Sovietwave и Sovietpunk: как романтика несбывшегося переплавила ностальгию по СССР в новый жанр? Часть 2

Level of difficultyEasy
Reading time6 min
Views15K

На рубеже нулевых и десятых годов в Рунете всё чаще стали появляться образы «ностальгии по несбывшемуся Советскому Союзу». По альтернативным таймлайнам, где СССР не распался в начале 90-х, а продолжил существование и преуспел — или же имел более красивое и позитивное прошлое, нежели в реальности. Чем дальше, тем больше в этих образах было ретрофутуризма и технооптимизма, в то время как воинственность уходила на задний план. Это явление стало частью широкого понятия «советпанка» — его «светлой стороной», хотя была и тёмная. В прошлой части мы рассказали о зарождении неосоветской эстетики, теперь же поговорим о её становлении и бурном развитии в 2010-е — хотя не только.
Читать дальше →
Total votes 70: ↑64 and ↓6+85
Comments50

Самые крупные DDoS-атаки нулевого дня на HTTP/2

Level of difficultyEasy
Reading time9 min
Views6.6K

В августе и сентябре злоумышленники развернули крупнейшие распределённые DDoS-атаки в истории интернета, эксплуатирующие известную уязвимость в ключевом техническом протоколе. В отличие от других серьёзных атак нулевого дня последних лет – например, Heartbleed или log4j – которые вызвали хаос повсеместным наплывом эксплойтов, более недавняя их форма, получившая название HTTP/2 Rapid Reset, привлекла пристальное внимание лишь нескольких инженеров.
Читать дальше →
Total votes 28: ↑26 and ↓2+39
Comments1

Легендарный Brown Sound на полевых транзисторах

Level of difficultyEasy
Reading time9 min
Views16K

Привет, Хабр! Brown Sound — это специфическое звучание электрогитары, ставшее визитной карточкой Эдди Ван Халена. Повторить уникальный звук великого гитариста пытались и пытаются многие. У каждого получается что-то своё.

Сегодня мы соберём и послушаем один из вариантов «дисторшна по ван-халеновски», используя интересную схему на полевых транзисторах с управляющим переходом (JFET).
А также поговорим об истории электрогитары.
Total votes 30: ↑29 and ↓1+43
Comments5

Роль личности в науке: нашли бы мы теорию относительности без Эйнштейна?

Level of difficultyEasy
Reading time8 min
Views9.6K

Законы механики и всемирного тяготения Ньютона прекрасно описывают практически все земные явления, а также движения Луны и планет. В этом смысле Ньютон обеспечил прекрасный синтез двух ранее различных наборов явлений: земных и небесных. Однако, как и в случае со всеми теориями, сочетание экспериментальных результатов и концептуальных рассуждений в конечном итоге заставило отойти от теории тяготения Ньютона и заменить её общей теорией относительности (ОТО) Эйнштейна.

Со временем в теории Ньютона вскрылось в общей сложности три проблемы. Во-первых, концептуальная: согласно Ньютону сила тяготения между двумя телами была пропорциональна произведению инерционных масс тел. Таким образом, инерционная масса выполняла двойную функцию. В первую очередь она по определению, была мерой сопротивления объекта изменению скорости. А кроме того, инерционная масса была чем-то вроде «гравитационного заряда». Подобно тому, как электрический заряд определяет силу электростатических сил между двумя заряженными объектами, инерционная масса (она же гравитационный заряд) определяет силу соответствующей гравитационной силы. Именно по этой причине, как установил Галилей, все предметы падают на Землю с совершенно одинаковой скоростью. Причина такого двойного действия — полная загадка в контексте ньютоновской механики, но, по сути, тривиальное следствие эйнштейновской гравитации.
Читать дальше →
Total votes 42: ↑33 and ↓9+40
Comments21

Графика древности: легендарный Mode 7

Level of difficultyEasy
Reading time22 min
Views9.2K

Технологический переход в индустрии видеоигр, случившийся в середине 1990-х годов — от пиксельной графики игр прошлых лет к полигональной графике игр чуть менее прошлых лет — произошёл не одномоментно. Ему предшествовала эпоха экспериментов, когда разработчики придумывали разнообразные способы убедительной имитации трёхмерного изображения в рамках скромных вычислительных ресурсов. Изометрический движок Filmation и силуэтная графика в Tau Ceti на ZX Spectrum, технология масштабирования спрайтов Super Scaler компании Sega, рейкастинг в Wolfenstein 3D, BSP-дерево в Doom, воксельный ландшафт в игре Comanche — эти времена породили множество любопытнейших технологий, каждая из которых достойна отдельного рассказа.

В до сих пор звучащих отголосках так называемых консольных войн той эпохи (что круче — Sega Genesis или Super Nintendo?) часто можно услышать ещё одно название, которым уместно дополнить список выше — Mode 7. Мы не знаем, что это такое, если бы мы знали, что это такое, но обычно под этим подразумевается какое-то вращение или масштабирование объектов в играх, или же уходящая вдаль дорога, как в гоночных играх F-Zero и Super Mario Kart, или же карта мира, как во многих играх жанра JRPG. В реальности всё интереснее, сложнее, и как водится, требовало от разработчиков недюжинной креативности. Сегодня поговорим об этой технологии.
Читать дальше →
Total votes 79: ↑79 and ↓0+79
Comments10

Умные программисты пишут STUPID-код

Level of difficultyEasy
Reading time9 min
Views52K
Умные программисты пишут STUPID-код, ведь они понимают, что неожиданно возникшая сложность может привести к провалу проекта.


▍ Страдание


На момент написания этой статьи на моих часах 21:30.

Этим утром я проснулся в хорошем, оптимистичном настроении, рассчитывая на прекрасный день, но теперь вымотан.

Я вымотан не физически, а, скорее, разочарован тем, что, несмотря на все имеющиеся у нас замечательные технологии, позволяющие писать наилучшее ПО, мы, как люди, профессионально пишущие код, по множеству причин склонны ценить больше сложность, а не простоту.
Читать дальше →
Total votes 62: ↑58 and ↓4+73
Comments77
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Marketing Manager
Senior
From 120,000 ₽
HTML
Landing design
Graphic design
Editorial and proofreading
Text translation
Email Marketing
Content Marketing
Content management
Blogging
Moderation