alexgriss.tech
1.19K subscribers
32 photos
6 videos
70 links
Я Саша Григоренко, фронтенд-архитектор и продуктовый инженер.

Пишу о зрелом инженерном мышлении, лидерстве, архитектуре и продуктовой разработке, создаю https://webaudio.studio

Сайт: https://alexgriss.tech
ТГ: @astroscientist
Download Telegram
Сегодня с большим удовольствием залипал на Spotify Wrapped — это интерактивная статистика по итогам всех прослушиваний музыкальных треков за год в приложении. В этом году он особенно круто сделан с точки зрения визуала и залипательности.

Музыка — это моя главная страсть наряду с программированием. Я слушаю очень много музыки в течение дня, и во время работы тоже. Поэтому мне хочется поделиться этой своей стороной жизни в канале. Тем более проект Web Audio Lab, о котором я много рассказываю, напрямую связан со звуком, так что это будет в тему :) В этом году я много слушал шугейз, блэкгейз и похожие жанры — это шумная, текстурная музыка, которая отлично помогает мне держать фокус.

Давайте познакомимся поближе? Поделитесь в комментах своими музыкальными итогами года — из Spotify, Яндекс Музыки или чем вы ещё пользуетесь, интересно посмотреть, что вы слушали в этом году 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🔥3
Media is too big
VIEW IN TELEGRAM
Хочу поделиться одним хобби-проектом, который я навайбкодил на прошедшей неделе. Это каталогизатор музыкальных альбомов, в котором я теперь собираю цифровую коллекцию своих самых любимых пластинок.

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


Поэтому я создал Vinilyst — декстопный оффлайн-каталогизатор. Мне было лениво кодить всё руками, и я решил выступить в этом проекте больше как лид, продуктовый менеджер и архитектор, а разработку делегировать Cursor. Получилось очень даже неплохо, хоть и не без моего вмешательства в код в некоторых особенно заковыристых местах.

Раз кодил курсор, я сосредоточился на выборе стека и промптах. В плане технологий я смог попробовать кое-что новое для себя, например, Tauri — фреймворк для запуска веб-приложений на декстопе. В отличие от Electron он не тащит целый браузер в бандл, а использует встроенный в ОС WebView, поэтому и размер приложения меньше, и расход оперативной памяти ниже. Также я попробовал Dexie — очень удобную обёртку над IndexedDB, которая скрывает все странности нативного стандарта.

Формулировать промпты мне помогал ChatGPT, я же просто задал структуру, в которой они должны быть прописаны и дальше генерировал из своих продуктовых идей готовые инструкции для модели. Получился такой полуавтоматический конвейер: я вайблю в чатике с ChatGPT → ChatGPT формализует мои идеи в инструкции для Cursor → Cursor кодит через Opus 4.5.

Я на 100 процентов доволен этим опытом и тем, что получилось. Это было чисто продуктовое творчество без особых инженерных потугов и позволило мне отдохнуть от кодерской рутины и получить массу удовольствия от процесса. Понятно, что большую часть кода писал Cursor и проект завайблен на 95%. Поэтому я не рассматриваю его как часть своего портфолио и не стал бы выпускать его как публичный продукт. Как минимум потому, что я не смогу гарантировать стабильность его работы. Но я точно могу порекомендовать такой формат разработки для личного удовольствия, экспериментов и поддержания творческого тонуса.
11👍7🔥6
Про когнитивное трение и заметки в один клик

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

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

Мой идеальный UX для заметочника предельно прост. Он позволяет записать мысль буквально в один клик, без выбора режимов, без подготовки, без необходимости думать о заголовках и форматировании. На рабочем столе должна быть одна кнопка, тап по которой сразу открывает экран ввода с автофокусом и включённой клавиатурой. Такой UX предполагает минимум трений и раздумий, но на практике ни одно из популярных приложений под это не заточено.

Возьмём, например, Google Keep — стандартный заметочник для Android. У меня телефон Pixel 10 и раньше я активно пользовался Keep: выносил виджет на рабочий стол и... терпел кучу неудобств и лишних микродействий. Нужный мне виджет с предпросмотром последних заметок — это громоздкая бандура размером 4×3 клетки, которая занимает полэкрана. Из-за этого виджет приходится выносить на отдельный рабочий стол и каждый раз делать лишний свайп. Плюс на виджете ещё четыре кнопки, которые мне не нужны: для создания списков, аудио, рисунков и фото. На экране редактора нет автофокуса в поле ввода, а самих полей два — для заголовка и текста. Когда я где-то на ходу выгружаю мысль из головы, последнее, что мне нужно — это придумывать для неё заголовок. В Apple Notes, кстати, это сделано ещё тупее: автофокус сразу стоит в заголовке, и любой текст вводится огромным шрифтом.

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

В итоге я разработал Instant Notes — тщательно продуманное приложение для быстрых текстовых заметок. В нём два виджета: кнопка 1×1 для мгновенного перехода к созданию заметки и блок 1×3 с кнопкой и двумя последними записями. Один тап — и вы сразу в поле ввода с открытой клавиатурой. Никаких заголовков, просто текст с одним важным удобством: списки, начатые с дефиса, автоматически продолжаются по Enter. Заметки сохраняются по мере ввода, поэтому можно не переживать, что что-то потеряется. Можно сохранять заметки и из других приложений, например, пошарить ссылку из браузера. Я также добавил экспорт и импорт заметок в JSON, чтобы не потерять их при переезде на другое устройство. Приложение написано на нативном Android-стеке — Kotlin + Jetpack Compose, с минимумом магии и максимумом предсказуемости, в духе самого UX.

Я сознательно оставил в Instant Notes только один сценарий — быстро выгрузить мысль из головы в текст. Я пользуюсь приложением уже неделю и вижу, насколько реально уменьшилось раздражение от, казалось бы, такой мелочи.

.apk для установки я оставил в первом комментарии. Если заметите странности в работе приложения, напишите, пожалуйста, что именно сломалось и как это воспроизвести.


Мораль: простые задачи не должны требовать повышенного внимания пользователя. Если инструмент постоянно раздражает, значит он плохо спроектирован и не заточен под решение конкретной задачи. Обратите внимание, где именно возникают микротрения в приложениях, над которыми вы работаете — чаще всего именно там и скрываются самые очевидные улучшения.
2🔥95👍52
Закрытая группа для создателей проектов

Я уже рассказывал в канале, что разрабатываю образовательную платформу Web Audio Lab. Это довольно амбициозный проект, и порой я остро чувствую, как непросто продвигаться в нём одному. В разработке таких проектов много неопределённости и затыков, длинных периодов изучения нового, и долго может не быть видимых результатов.

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

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


Мне хочется, чтобы эта группа была не просто клубом по интересам, а рабочим инструментом, который помогает двигаться вперёд. Поэтому я решил ввести символическую плату за участие — 100 рублей в месяц через @tribute. Это не монетизация, а способ задать минимальный порог вовлечённости и сохранить рабочий тон внутри сообщества. Подписку можно отменить в любой момент, первые три дня пробные.

Если вы сейчас делаете свой проект и не хотите проходить этот путь в одиночку, напишите мне в личку: @astroscientist. Расскажите кратко, над чем вы работаете и что бы хотели от такого сообщества. Я планирую собрать небольшую, но живую группу, поэтому хочу для начала пообщаться лично.
🔥123👍2
Спасибо всем, кто поучаствовал в опросе!

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

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

На мой первый пост уже откликнулось несколько человек, но для полноценного запуска я бы хотел собрать ещё хотя бы 2-3 участника.

Я буду собирать группу до конца этой недели, поэтому, если вам эта история близка, пишите мне в личку @astroscientist с кратким описанием того, над чем вы сейчас работаете и что бы хотели от этого формата.
53👍2
Media is too big
VIEW IN TELEGRAM
Сейчас моя основная задача в Web Audio Lab — продумать, как максимально наглядно и доступно рассказать о работе узлов в Web Audio API. Каждый узел в WAA решает свою конкретную задачу, и в рамках курса важно не просто показать его параметры, а объяснить, зачем он нужен, как он вписывается в общий аудиопайплайн и что реально делает с сигналом. И, конечно, дать возможность с ним повзаимодействовать вживую. Если некоторые узлы, например GainNode, визуализируются довольно просто (GainNode по сути сводится к управлению громкостью одной крутилкой), то другие требуют куда более нетривиального подхода к подаче и визуализации.

Один из самых сложных узлов в Web Audio API и, в целом, в цифровой обработке звука — это узел динамического компрессора. Компрессоры широко используются в аудиопродакшене для управления динамикой сигнала: они помогают уменьшить разницу между тихими и громкими моментами, сделать звук более ровным и контролируемым, чтобы отдельные элементы микса не терялись и не звучали слишком резко.

Работая над визуализацией работы компрессора, я старался найти баланс между учебной наглядностью, узнаваемостью для тех, кто уже сталкивался с компрессорами в DAW, и демонстрацией специфических особенностей реализации компрессии в Web Audio API.

Хочу поделиться результатом этой работы — интерактивным визуализатором, который показывает, как именно работает узел DynamicsCompressorNode. Приложение полностью работает локально: вы можете загрузить любой аудиофайл, покрутить параметры компрессора и не только услышать, но и увидеть, как динамическая компрессия влияет на аудиосигнал.

🔗 Ссылка: https://alexgriss.tech/dynamics-compessor-node-anatomy/
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥5👍4
😁9🌚3
Хочу поделиться подборкой материалов по Web Audio API, которые накопились у меня за время разработки Web Audio Lab. Когда-нибудь всё это сложится в цельный образовательный курс внутри моего проекта, а пока можно погрузиться в изучение стандарта с помощью этих замечательных ресурсов:

🧱 База Web Audio API

Web Audio API 1.1 Specification — официальная спецификация стандарта
Web Audio API Specification (Editor's Draft) — последняя версия драфта спецификации
Web Audio API — MDN documentation — документация API, описание концептов и примеры использования
W3C Web Audio Working Group GitHub Issues — актуальные ишьюсы и работа над стандартом
Web Audio/MIDI Samples by Chrome Web Audio Team — подборка ресурсов, демок и проектов, курируемых командой Google Chrome
Code examples and resources for AudioWorklet — подборка ресурсов и демок по AudioWorklet от команды Google Chrome

🧩 Библиотеки

Tone.js — самая популярная либа поверх WAA
Howler.js — ещё одна популярная либа поверх WAA
p5.sound — либа от creative coding сообщества p5.js
standardized-audio-context — кроссбраузерная обёртка над AudioContext
YandexAudio — аудио-плеер от Яндекса (даю чисто в исторических целях, как пример проекта на WAA)

🎓 Видео и интерактивные курсы

Web Audio School by NodeSchool — интерактивный курс с задачами для освоения WAA
Web Audio Synthesis & Visualization by Matt DesLauriers — видео-курс от канадского разработчика и creative кодера
Web Audio API Courses and Certifications — подборка видео-курсов по WAA

📝 Статьи и обзоры

Introduction to the Web Audio API — хорошая вводная статья про WAA
A tale of two clocks by Chris Wilson — маст-рид про разницу таймеров в JS и про отдельный аудио-таймер
Web Audio API performance and debugging notes — глубокое практическое руководство по перфу в WAA и узким местам
Learn Web Audio from the Ground Up — отличная вводная статья про WAA в 4-х частях
JavaScript Systems Music — крутейшее руководство по использованию WAA для написания музыки как инженерной системы
Creating Audio on the Web Is Easy—Until It’s Time to Export — обзор проблем, связанных с экспортом сложных аудиопроектов на WAA
Web Audio + WebAssembly: Lessons Learned — разбор ограничений связки Web Audio и WebAssembly

📖 Книги

Web Audio API: Advanced Sound for Games and Interactive Apps by Boris Smus — книга, которая была написана по горячим следам имплементации стандарта DevRel-инженером команды Google Chrome и официальный русскоязычный перевод книги Web Audio API от меня
Working with the Web Audio API by Joshua D. Reiss — очень глубокое погружение в WAA от одного из ведущих мировых исследователей в области DSP
JavaScript for Sound Artists by William Turner & Steve Leonard — книга по WAA для начинающих

🧪 Web Audio Modules (WAM)

Web Audio Modules 2 official site — крайне важный проект по созданию экосистемы для плагинов на WAA
A collection of built Web Audio Modules ready for use — коллекция WAM-плагинов
Faust IDE — визуальный редактор для разработки WAM-плагинов
Sequencer Party — плейграунд для подключения и тестирования WAM-плагинов

🎠 Playgrounds & demos

Плейграунды, где можно визуально собирать аудиографы:
WebAudio Playground by haveyouwantto
Web Audio Playground by arek_durlik
Web audio playground by smbddha
Advanced Web Audio API Playground by davvoz
Online synthesizers and web piano apps — много интересных демок и синтов, построенных на WAA

🎹 WAA-based цифровые рабочие станции (DAWs)

WAM Open Studio 2.0 — экспериментальная DAW от разработчиков Web Audio Modules
WAM Open Studio 2.0 paper — описание функционала WAM-Studio
Soundation — полноценная коммерческая web-based DAW (её даже покупала Spotify, но не так давно продала обратно разработчикам — обзор новости)
Amped Studio — ещё одна коммерческая web-based DAW, над которой работают создатели Web Audio Modules с поддержкой VST-плагинов
BandLab — успешный пример симбиоза web-based DAW и социальной сети
Audiotool Studio — чуть менее, но всё ещё успешный пример такого симбиоза, DAW больше похоже на Max, чем на Ableton
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍11🔥83
Технологии уже давно и бесповоротно проникли в нашу жизнь. Но как вам технологии, которые проникают... в нашу смерть?

Я не сошёл с ума, я просто изучаю рынок фронтовых вакансий и наткнулся на одну интересную компанию в сфере DeathTech 🤘

All Funeral Services, LLC — это IT-компания из Нью-Йорка, которая работает в секторе DeathTech, то есть разрабатывает цифровые сервисы для похоронной и кладбищенской индустрии. Их основной продукт — это CMS, только не Content Management System, а буквально Cemetery Management Software, то есть SaaS для управления кладбищами.

С технологической точки зрения всё довольно современно и неожиданно нормально: дашборды, Google Maps с интерактивной разметкой участков, управление продажей мест, система документооборота, встроенная CRM и даже 3D-визуализации мавзолеев и склепов. В общем, задач хватит на целую вечность — главное не срывать дедлайны.

У меня это вызывает довольно странное ощущение. С одной стороны, такой привычный B2B-продукт, но при этом настолько непривычная и совсем не весёлая доменная область. Цифровизация официально добралась до всех сфер человеческого бытия (и небытия).

А вы бы пошли работать в такую компанию?
Please open Telegram to view this post
VIEW IN TELEGRAM
9🤩5👀2
Последний месяц я сосредоточился на разработке визуального языка для аудиоузлов Web Audio API (WAA). Можно сколько угодно описывать словами, за что отвечает каждый узел, показывать код и проигрывать звук, но этого недостаточно, чтобы по-настоящему понять, что происходит с аудиосигналом внутри графа.

Это как с электротехникой: если бы мы не видели кнопки, диоды, резисторы и конденсаторы, то вряд ли смогли бы собирать схемы, опираясь только на абстрактные законы физики. Узлы WAA — по сути те же электронные компоненты. Вместо токов — сигналы, вместо генераторов тока — источники аудио, вместо печатных плат — аудиограф, вместо электронных компонентов — узлы обработки звука. Однако у этих узлов до сих пор не было чётких визуальных метафор — по крайней мере в рамках самого стандарта Web Audio API.

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

Всего в WAA 20 узлов. В спецификации они никак не классифицированы, поэтому я разделил их на группы и закодировал цветом:

Sources — источники сигнала: от живого входа (микрофона) до генератора постоянного сигнала, который используется, например, для LFO-модуляций;
Tone & Spectral — узлы, влияющие на тембр и спектральную структуру звука;
Dynamics & Level — контроль амплитуды и динамического диапазона;
Time & Space — пространственно-временные эффекты;
Infrastructure — маршрутизация, анализ и визуализация;
Output — узлы аудиовыхода (колонки или MediaStream).

Этот набор узлов не случайный. Авторы стандарта WAA — специалисты по DSP (digital sound processing), и в браузерах реализован именно тот минимально достаточный набор узлов, из которых можно собрать практически любую схему обработки звука.

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

Визуализация генерируется из пользовательского кода, который выполняется в изолированном окружении — песочнице. Песочница строит реальный аудиограф и передаёт его для отрисовки на канвасе. В итоге пользователь не просто слышит результат — он видит структуру того, что сам закодил. Затем он может свободно экспериментировать с графом через UI: менять параметры руками, отключать/включать узлы, перестраивать цепь и тут же слышать, как это влияет на характер звука.

Для меня это не просто UI-эксперимент. Это попытка превратить Web Audio API из набора абстрактных методов в интуитивно понятную визуальную систему.

Работа продолжается, впереди ещё много сложных и интересных задач, о которых я буду рассказывать в своём блоге. Кстати, я переименовал проект с Web Audio Lab в Web Audio Studio. Если вы хотите быть в числе первых, кто узнает о релизе, оставляйте свой email на специальном русскоязычном лендинге — ru.webaudio.studio — и следите за анонсами.

Буду рад обратной связи — особенно от тех, кто работает со звуком и Web Audio API на практике.
🔥14👍3👏2
Итак, хочу поделиться новостью о публичном релизе Web Audio Studio!

🎛 🎛 🎛 🎛 🎛

Web Audio Studio — это инструмент для визуализации и отладки аудиографов, написанных на JavaScript с использованием Web Audio API. Устройство приложения простое: слева вы пишете WAA-код, запускаете его — и справа рендерится реально работающий аудиограф.

Сейчас в приложении поддержаны практически все узлы, описанные в спецификации Web Audio API, за исключением двух узлов для работы с многоканальным звуком и AudioWorkletNode, с помощью которой можно писать собственную DSP-логику в отдельном аудиоворкере. Работа над ними уже ведётся, и поддержка появится в будущих версиях.

Однако лучше расскажу не о том, чего в WAS пока нет, а о том, что в нём уже есть:

• полноценный редактор с подсветкой, форматированием кода и выводом ошибок;
• визуальный аудиограф с отображением практически всех доступных в WAA аудиоузлов на канвасе;
• маппинг аудиопараметров 1:1 — никаких лишних абстракций, только реальные параметры Web Audio API;
• поддержка модуляций аудиопараметров;
• возможность в реальном времени менять параметры и сразу слышать, как меняется сигнал;
• возможность проанализировать аудиосигнал в любом месте графа, вставив AnalyserNode между двумя узлами;
• встроенная визуализация аудиопроцессов в основных узлах: фильтрах, ревербераторах, компрессорах и других;
• 20 готовых шаблонов кода для демонстрации ключевых возможностей Web Audio API.

Моей мотивацией создать этот инструмент было сильное желание разобраться в сложном, но невероятно интересном мире синтеза и обработки цифрового звука. Конкретные идеи родились из личного опыта работы с Web Audio API (и боли) — он действительно может быть сложным для понимания и отладки. Web Audio Studio задуман как способ сделать эту работу более прозрачной и понятной.

WAS пока находится в статусе альфа, работает только на десктопе и, к сожалению, может быть недоступен с РФ-адресов. Надеюсь, в будущем смогу найти способ это обойти, но сейчас прошу учитывать это ограничение.

🎛 🎛 🎛 🎛 🎛

Ссылка: https://webaudio.studio

Буду рад любому фидбеку, особенно от разработчиков, которые уже делали что-то нетривиальное на Web Audio. Мне важно понимать реальные боли аудио-разработчиков в браузере — это поможет делать инструмент действительно полезным. Вы можете оставить обратную связь в комментариях, в личке в Telegram, по почте contact@webaudio.studio или через форму обратной связи в приложении. Также буду рад, если вы подпишетесь на обновления через форму внизу лендинга.

Буду благодарен за распространение Web Audio Studio среди ваших коллег и знакомых,
уже работающих или заинтересованных в Web Audio.
Please open Telegram to view this post
VIEW IN TELEGRAM
115🔥12❤‍🔥6😍1
В рамках продвижения Web Audio Studio написал статью на Хабре: https://habr.com/ru/articles/1007526/

Рассказал о своей мотивации начать разработку проекта, поделился деталями особенно интересных инженерных решений и высказал свои мысли о том, почему стандарт Web Audio API недооценён и что бы могло помочь ему стать более дружелюбным для разработчиков — не только для начинающих, но и для тех, кто ежедневно работает над аудиоприложениями в вебе.

Прошу вас поставить лайки статье и поделиться с теми, кому интересна работа со звуком в браузере.
👍764
Продолжаю накатывать обновления для Web Audio Studio.

Из последних важных штук добавилось:

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

Кстати, можете попробовать загрузить и протестировать сниппет реально большого графа (25+ нод с LFO модуляциями) для полностью синтезированного звука ambient drone pad: https://app.webaudio.studio/?s=HI51EScm

Сейчас я активно собираю обратную связь от разработчиков, работающих с веб аудио, чтобы вместе сделать Web Audio Studio главным инструментом для исследования и отладки аудиографов. Буду рад вашим мыслям, идеям и предложениям по проекту — пишите в комментариях или в личку.
🔥7👍32
Сегодня я зарелизил поддержку AudioWorkletNode в 🎛 Web Audio Studio.

Теперь в нём можно инспектировать не только встроенные аудиоузлы, но и кастомные DSP-процессоры. Вот, например, аудиограф, который генерирует белый шум: https://app.webaudio.studio/?s=DV3g9jCd. В синтезе белый шум часто используется как база для перкуссии и различных эффектов.

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

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

Всё дело в том, что писал его не я, а Opus 4.6. И принять тот факт, что мне всё чаще не нужно писать код самому, оказалось сложнее, чем я ожидал.

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

И вот теперь праймовая модель пишет фронтовый код не хуже, и уж точно в разы быстрее, чем могу писать его я со своими 10+ годами опыта написания кода.

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

И это серьёзный сдвиг, который требует осмысления. Наша работа меняется, и это неизбежно вызывает сложные эмоции и даже беспокойство.

Об этом говорит всё больше разработчиков. К примеру, Gergely Orosz, автор известной рассылки The Pragmatic Engineer, пишет, что испытывает чувство горя, когда ИИ пишет большую часть кода за него, и связывает это с потерей привычной роли и идентичности инженера, которую многие из нас выстраивали годами.

Некоторые испытывают синдром самозванца, как будто они не заслужили право обладать сгенерированным кодом.

Кто-то чувствует потерю ощущения авторства и контроля над своими проектами.

И вот тут начинается главная мысль этого поста.

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

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

Чтобы реализовать поддержку AudioWorklet в моём проекте, я должен был за очень короткий срок стать полноценным автором этой фичи. Ведь без моего видения и желания иметь именно такой инструмент никакая модель ничего бы не сделала.

В процессе работы я дал опусу максимум возможного контекста, тщательно описал архитектурные решения, требования к UI/UX, продуктовую логику, узкие места и способы их решения, прерывал и перенаправлял его в процессе реализации, а после досконально ревьюил все решения, рефакторил, писал требования к тестам, проверял пользовательские сценарии вручную и много чего ещё.

Единственное, чего я почти не делал — не писал код руками.

Где-то всё ещё проще писать код самому, но этих мест становится всё меньше. Куда важнее становится навык и готовность брать более сложную ответственность: за архитектуру, за продукт, за систему, за вкус, за скорость, за качество продукта целиком.

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

А как вы проживаете этот технологический сдвиг? Поделитесь в комментариях и в опросе ниже.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍43
😁7👏2🤯1