Pull to refresh
314
58
Алексей Костенков @Erwinmal

Рептилоид

Send message

KORG в кармане

Level of difficulty Easy
Reading time 7 min
Views 8.1K
image

Игровые консоли могут издавать звуки? Звуки могут меняться, если в игре происходят разные действия? Могут. Так, стоп! Но ведь это уже основа для создания музыкального софта для консолей. «Ни слова больше!», — слова не мальчика, но композитора, который стоит за созданием портативных версий KORG для Nintendo.
Читать дальше →
Total votes 57: ↑57 and ↓0 +57
Comments 10

Четыре способа оптимизации ПО

Level of difficulty Medium
Reading time 13 min
Views 13K

Преждевременная оптимизация может оказаться корнем всех зол, а запоздалая — корнем безысходности. Каким бы быстрым ни становилось аппаратное обеспечение, мы находим способы писать медленные программы. И зачастую проявляется это не сразу. Пользователи могут годами не обращать внимания на проблему в производительности ПО, пока она не становится очевидной, что порой происходит в течение одного дня.
Читать дальше →
Total votes 67: ↑62 and ↓5 +57
Comments 12

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

Level of difficulty Medium
Reading time 8 min
Views 5.9K

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


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


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

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

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

Level of difficulty Easy
Reading time 9 min
Views 47K
Я страшно ненавижу 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 113: ↑101 and ↓12 +89
Comments 147

Войны битов

Level of difficulty Easy
Reading time 37 min
Views 13K

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

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

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

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

Level of difficulty Easy
Reading time 8 min
Views 11K

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

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

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

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

Читать дальше →
Total votes 66: ↑63 and ↓3 +60
Comments 8

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

Level of difficulty Medium
Reading time 8 min
Views 5K

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

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

Level of difficulty Easy
Reading time 6 min
Views 69K

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

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

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

Level of difficulty Hard
Reading time 17 min
Views 14K

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


Читать дальше →
Total votes 77: ↑76 and ↓1 +75
Comments 25

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

Level of difficulty Easy
Reading time 12 min
Views 14K
Картинка Freepik

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

Читать дальше →
Total votes 60: ↑56 and ↓4 +52
Comments 33

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

Level of difficulty Easy
Reading time 7 min
Views 28K

Выход «Atomic Heart» не просто стал громким событием в истории российского геймдева — он наиболее отчётливо отразил любопытную культурную тенденцию последней дюжины лет. С начала 2010-х футуристические образы и сюжеты в подчёркнуто советском стиле стали всё чаще встречаться в Рунете в самых разных формах. Особенно ярко это стало проявляться ближе к концу десятилетия с массовым распространением музыки в стиле ретровейва — российским ответвлением которого стал стилизованный под мелодии и ритмы советской эстрады Sovietwave. Ну а сейчас советский ретрофутуризм уже можно назвать мейнстримом, даже не особенно прибегая к совам и глобусам. Он выражает ностальгию по положительным чертам и характерным деталям советской эпохи, но с начала 90-х годов эта ностальгия успела сильно измениться. Что же с ней случилось?
Читать дальше →
Total votes 168: ↑159 and ↓9 +150
Comments 223

Недооценённый принцип квантового мира, без которого жизнь была бы невозможной

Level of difficulty Medium
Reading time 8 min
Views 17K


О каких законах, принципах и свойствах квантового мира обычно вспоминают люди, думая о физике элементарных частиц?

Кто-то, скорее всего, вспомнит принцип неопределённости Гейзенберга. Он гласит, что существует предел точности, с которой можно одновременно знать некоторые пары физических свойств частиц — например, положение и импульс. Другими словами, чем точнее измеряется одно свойство, тем менее точно может быть известно другое.

Говоря более формально, принцип неопределённости представляет собой одно из множества математических неравенств, накладывающих фундаментальное ограничение на произведение точности некоторых связанных пар измерений квантовой системы, таких как положение, x, и импульс, p. Такие парные переменные называются дополнительными или канонически сопряжёнными переменными. Принцип неопределённости, впервые введённый в 1927 году немецким физиком Вернером Гейзенбергом, утверждает, что чем точнее определено положение частицы, тем менее точно можно предсказать её импульс, исходя из начальных условий, и наоборот.
Читать дальше →
Total votes 70: ↑63 and ↓7 +56
Comments 27

Как эффективно добавлять документацию при разработке продукта?

Level of difficulty Easy
Reading time 7 min
Views 11K

Как технический писатель я встречала различные подходы команд и целых компаний к добавлению документации в процесс разработки продукта. В одних ситуациях они используются намеренно, а в других по воле случая, и ниже мы разберём достоинства и недостатки нескольких таких подходов, которые позволят делать выбор в пользу того или другого более обдуманно.
Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Comments 6

Кейпад для управления умным домом — проект выходного дня

Level of difficulty Easy
Reading time 8 min
Views 18K

После апгрейда обычного дома до «полуумного» появилась очень простая, но неочевидная проблема в виде удобства управления домом. У тебя может быть самый крутой в мире дашборд с кучей кнопок, датчиков и остальных интересных элементов, но управлять всем этим с телефона банально неудобно, так как требует воспроизвести целый список действий (найти его, взять, разблокировать, открыть приложение дома и т. д.). Но недавно мне попался интересный проект настольного макрокейпада, который, как мне кажется, идеально подходит для быстрого управления некоторыми функциями дома.

О сборке и настройке макрокейпада можно почитать далее в статье.
Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Comments 59

Возможные векторы кибератак на новые французские цифровые удостоверения личности

Level of difficulty Hard
Reading time 12 min
Views 9.6K
Больше года назад меня пригласили в закрытую программу баг-баунти с необычной мишенью для исследования: France Identité — новым французским цифровым ID. Сама по себе программа меня разочаровала, я бы сказал, что, вероятно, она не стоила моих усилий; впрочем, мне выплатили награду за несколько отчётов. С другой стороны, тема была для меня очень интересной, а техническая часть в конечном итоге сгладила негативные аспекты.

Для изучения предпродакшен-версии использовалась методика «чёрного ящика». Я получил «образец» французской ID-карты (carte d'identité), которая, естественно, не была связана с реальным гражданином. Однако я не получил PIN, поэтому не мог полностью изучить всю функциональность, реализованную в системе France Identité.

Ниже я расскажу о том, что обнаружил.

Читать дальше →
Total votes 48: ↑48 and ↓0 +48
Comments 4

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

Level of difficulty Medium
Reading time 11 min
Views 4K


В предыдущих частях цикла статей (часть 1, часть 2) мы настроили подключение к IPv6-брокеру на VDS под управлением операционной системы CHR от Mikrotik. Подготовили туннелирование до устройств сети, которые как умеют, так и нет работать с VPN, используя PPTP, SSTP и статическую маршрутизацию. Уделили достаточно внимания обеспечению сетевой безопасности подключаемых к IPv6 пользователей.

Настало время перенести всё на Linux. При этом самая простая задача (конфигурирование клиента для подключения к брокеру) уже выполнена. В завершающей части цикла настроим туннелирование IPv6 до устройств домашней сети посредством старого доброго L2TP, а для работы мобильных устройств дополнительно организуем IKEv2-сервер. Чтобы лучше понимать происходящие процессы, рекомендуется ознакомиться с предыдущими двумя статьями, так как с целью исключения болтологии вводный материал повторяться не будет.
Читать дальше →
Total votes 42: ↑42 and ↓0 +42
Comments 3

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

Level of difficulty Easy
Reading time 9 min
Views 15K

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

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

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

Level of difficulty Easy
Reading time 9 min
Views 6.4K

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

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

Level of difficulty Easy
Reading time 6 min
Views 14K

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

Information

Rating
75-th
Works in
Registered
Activity