melikhov.dev
4.8K subscribers
118 photos
2 videos
2 files
217 links
Фронтенд, фронт-бек и около. Всё, что в голову пришло.

нейрорак за нейроруку
нейрогреку нейрослоп
Download Telegram
6 декабря делаем финальный в этом году Я.Субботник по разработке интерфейсов в Петербурге (и онлайн).

Снова буду говорить про работу с AI API. Другие доклады ещё лучше, заходите на огонёк.
https://events.yandex.ru/events/ya-subbotnik-2025-12-06
👍269🔥8😴5😁1
Уважаю NuPhy за то, что хоть они и сняли F1 с продажи, но для Air не забывают идею, что клавиатуру можно (и нужно) использовать поставив прямо поверх родной клавиатуры ноутбука.

Зачем оно мне? Да чтобы дисплей чистый был, конечно же.

Там, кстати, Air75 v3 вышел, надо попробовать.
🤡4117👍12🤩6😁4🔥3🤔2💯1
🔥2712👍8💩4
Сегодня в докладе показывал новый Gravity компонент для AI-чатиков, кажется забыл сказать, что демка с ним лежит за веточкой aikit https://github.com/melikhov-dev/subbotnik-2025-demo/tree/aikit
👍24💊1611🔥7😁2
melikhov.dev
Уважаю NuPhy за то, что хоть они и сняли F1 с продажи, но для Air не забывают идею, что клавиатуру можно (и нужно) использовать поставив прямо поверх родной клавиатуры ноутбука. Зачем оно мне? Да чтобы дисплей чистый был, конечно же. Там, кстати, Air75 v3…
Приехал NuPhy Air75 v3 на Blush свичах. И она хороша!

С коробкой больше не стыдно зайти в автобус. Никаких тебе странных картинок. Уровень исполнения так же сильно шагнул вперёд — клавиатура очень монолитная, чем-то похожа на WhiteFox. Blush свичи очень тихие, никакого щёлканья и дребезга, только лёгкий шум как от камешков (такое я и люблю). Время работы от аккумулятора без RGB обещают просто невероятное — 1200 часов.

Ножки хорошие, но после магнитных ножек на v1 — любые будут хороши.

Из минусов:
Крутилка как по мне прикольная, но бесполезная, ради неё точно не стоит брать. Дефолтные цвета кейкапов скучные, но и v2 была скучнее v1.
44👍18😁4😎1
Я попозже напишу про технически итоги года (многое можно послушать в свежем выпуске Веб-стандартов), а пока главный итог года такой, что семья наша стала не только официальной, но и увеличилась на одного человека (нас теперь четверо).

Впереди весёлые дни, всех с наступающим!
193🎉54👍29🙈3
Пока готовим CTF 2026 — решил всё сломать задевопсить всё нормально. Там же всё было на палках и rsync, чем больше мы накручивали заданий тем дольше шёл деплой. Конфигурации максимально в ручную, каждый год заново вспоминать, что же там было в прошлом году.

В общем в этом году будет на отдельной vm с терраформами, докерами, флуент бит, клауд логгингом и прочими радостями. А чтобы девопсить было веселей — собрал всё через claude code, такие задачки он на ура делает. Посидел с superpowers побрейнстромил и вперёд

☐ Task 1: Создать базовую структуру Terraform
☐ Task 2: Создать cloud-init конфигурацию
☐ Task 3: Создать основную Terraform конфигурацию (VPC, Subnet, Security Group)
☐ Task 4: Добавить Static IP, Data Disk и Compute Instance в Terraform
☐ Task 5: Создать Terraform outputs
☐ Task 6: Создать Terraform README
☐ Task 7: Создать nginx конфигурацию
☐ Task 8: Создать Fluent Bit конфигурацию
☐ Task 9: Создать обновлённый docker-compose.yml
☐ Task 10: Создать .env.example для docker-compose
☐ Task 11: Создать deployment скрипты
☐ Task 12: Создать Infrastructure README
☐ Task 13: Обновить GitHub Actions workflow
☐ Task 14: Создать документацию по первому деплою
☐ Task 15: Финальная проверка и подготовка к деплою
👍30🔥10🥰3
2025

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

Потому быстренько пробежимся.

Софт года для меня однозначно Claude Code. Я делаю в нём всё больше и больше, и это не только кодинг, но и в принципе всё, что можно сделать из консоли (а значит, всякие разные CLI-утилиты вдвойне выросли в ценности). В этом году надо обязательно попробовать OpenCode.

Zed не дотянул. Пока слишком сыро, чтобы полноценно перейти на него. Но попытку засчитываю.

Самое важное, что случилось в кодинге за прошедший год — это, конечно, LLM. Я и не ждал, что мне, старичку, подвезут, наконец, инструмент, чтобы не просто вернуться в производительность 20-летнего, но и сделать x2-x3. Да и в целом рутина ушла, радость программирования вернулась. Эксперименты стали практически бесплатными.

Новые подходы к обучению (а я всё ещё учусь). Больше не вычитываю длинные скучные гайды, вместо этого беру нейронку, планирую с ней, что и как надо сделать, разбираюсь, пока не пойму всё, а дальше итерация за итерацией доводим до конца. Чистый кайф. Обязательно попробуйте, возьмите задачу из области, где вы плаваете, но что-то базовое знаете. Время широких специалистов.

Книги.

Тут я не считаю всякую бизнес-литературу, для меня это где-то в районе технических статей, затрагивает другие нейрончики и вообще не об этом. А значит, совсем немного:

— Ежегодный Пелевин. Ну норм, не «Круть», и на том спасибо.
— Добил «Семиевие» Стивенсона. Сам не ожидал, но как-то ехал часов 8 на поездах, и вот.
— Исака Которо «Поезд убийц». По ней сняли прекрасный «Bullet Train». Рекомендую. Местами совпадение с фильмом до диалогов, и одновременно полная противоположность по духу, идее и посылу.
— Закрыл гештальт по «Дом, в котором...» Мариам Петросян. Сейчас уже никто и не помнит, а лет 15 назад шумела сильно.

Спорт.

Был. Два раза в неделю функциональные тренировки + велосипед в воскресенье. Потом словил эпикондилит (таскал тяжести, потом строил лоджию и много работал с электролобзиком) и вынужден был носить ортез и сидеть без тренировок. Как полегчало — попробовал сайклинг, здорово, но тут уже оказалось не до спорта (см. в самое начало).

Техника.

Всё так же продолжаю таскать Garmin Forerunner 255 и не понимаю, на что их менять (а хочется уже новый датчик с температурой). Прекрасные Suunto всё ещё не получили календарь и лежат в ящике. Это меня расстраивает.
Клавиатуру вот прикупил новую, Nuphy Air 75 v3 — кажется, единственная заметная покупка техники за год.
Рабочий MacBook Pro 16 M1 поменял на MacBook Pro 16 M4 — разницы особо и не ощутил. Камера стала заметно лучше.

Два топовых небольших гаджета — аккумуляторный насос Xiaomi. И бустер (пусковое устройство) от 70mai (опять же суббренд Xiaomi) . С таким ты будешь лучшим другом-соседом.

Из того, чего нет, но очень хочется попробовать в 2026 — очки XREAL. Жду, когда они заменят монитор.

Достижение года.

Ну тут, безусловно, семья (Доминик Торрето джипег). Нас стало сначала трое, потом четверо. Ресурсов забирает это неимоверно, но и даёт пинка хорошего. Надо продолжать ускоряться.

Непонимание года.

Что бы такого сделать, кроме нерегулярного блога и более-менее регулярного посещения «Веб-стандартов». К лету хочу достроить каморку под «студию», буду думать.

Как-то так. В 2026 буду много учиться и много экспериментировать. Должно быть ещё интереснее (мне). Как сделать интереснее вам — пока не придумал.
🔥9359👏14🤮1💯1
Если вам некомфортно в Claude Code работать с кодом в терминале (я вижу, что многих это останавливает от перехода на CLI-агенты), то попробуйте включить auto-connect to IDE в настройках.

Появится и diff в IDE и проброс ошибок. СС начнёт понимать контекст открытых файлов и выделенных строк. Почти всё, что нужно.
🔥30👍144👎1
Новости Claude Code

Ultrathink no longer does anything. Thinking budget is now max by default

А какая красота была!

https://github.com/anthropics/claude-code/issues/18072

теперь значит так


// 1. Determine thinking budget
let budgetTokens = 31999; // Default: max

if (process.env.MAX_THINKING_TOKENS) {
budgetTokens = parseInt(process.env.MAX_THINKING_TOKENS);
}

// 2. Auto-enabled for supported models
const thinkingEnabled = isSupportedModel(model); // Opus 4.5, Sonnet 4/4.5, Haiku 4.5, Opus 4

// 3. Passed to Anthropic API on every request
await client.messages.create({
model: "claude-sonnet-4-...",
messages: [...],
thinking: thinkingEnabled ? {
type: "enabled",
budget_tokens: budgetTokens // ← 31,999 by default
} : undefined
});


и, кстати, можно попробовать дать максимальный бюджет для размышлений


export MAX_THINKING_TOKENS=63999
🙈116
В этом году старшей в школу (7 лет будет осенью). Она у нас пока счастливо живёт без экранов, но явно пора потихоньку вводить. Подумал передать ей свой прекрасный, но всё такой же бесполезный iPad Pro 11.

И тут я задумался: планшет-то этот старше ребёнка. Он был выпущен в 2018 году. У него корпус как у современной прошки. Те же клёвые чехлы на магнитах. Та же парящая Magic Keyboard. Тот же Apple Pencil второго поколения с магнитной зарядкой. У него последняя iPadOS со странными подвижными окошками. И никаких значимых тормозов (не летает, но жить можно вполне комфортно).

Погодите. Первый iPad вышел в 2010-м. Мой — в 2018-м. Между ними пропасть в дизайне и возможностях. И вот в прошке 2018 года они приблизились к идеалу этого форм-фактора. А дальше что? Засунули лидар, прокачали камеры (зачем?) и меняют M-процессоры. Всё.

Мы по-прежнему не понимаем, зачем айпад по настоящему нужен. С клавиатурой он весит как Air, но заменить ноутбук так и не может. Продуктовый тупик какой-то.

А для ребёнка порисовать — самое то. Если не помрёт, то и младшей достанется. Ещё 7 лет потерпеть всего-то.
😁50👍208🤔3🔥2
Если вы думаете, что ваш проект как-то медленно двигается, то вот вам моя любимая статья в Википедии
https://ru.wikipedia.org/wiki/Ветра_зимы#Создание_и_публикация
😁66😢14🤣74🔥1
Один из интересных наблюдаемых эффектов от LLM-кодинга это лёгкое движение в сторону zero-dependency. Вместо того, чтобы тащить либу с пачкой дырявых транзитивных зависимостей, кучей неиспользуемых API и слоями совместимости с древними версиями node.js — можно быстро (правда быстро!) запилить код, решающий ту же задачу, но точечно, эффективно и покрыв всё тестами.

Конечно, есть либы ценность которых неумолима (сложность, выверенная безопасность, огромная работа сообщества). Но есть и целая пачка утилитарных обёрток над публичными API и прочие микрохелперы, ценность которых была только в том, чтобы самостоятельно код не писать.

И, более того, если вы не лентяй, то и код вычитаете полностью.
👍91👎114🤔3💯2
Ждали целый год? Дождались! Уже в эту субботу мы запускаем Frontend CTF 2026. Наконец-то у нас появился шикарный лэндинг https://ctf.ilovefrontend.ru

Приходите. Может быть у нас и не самый сложный CTF но точно очень красивый.

Как обычно, подсказки и полное прохождение тут.
41🎉17
Комментарий на ютьюбе

Он разработчик ИНТЕРФЕЙСОВ, но при этом он еще и нейронками занимается, т.е. работает за двоих.... лучшая антиреклама яндекса как работодателя


Ну, камон. Опять эта странная боязнь заглянуть чуть дальше, чем положено по названию должности. Бэкендеры, вон, не боятся залезть в вёрстку, наоборот, так и норовят везде HTMX протащить. И только счастливы будут всё сами напилить.

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

Не ставьте себе искусственные рамки, вот мой поинт. Вдруг окажется, что рядом не менее интересно, и вы уйдёте с головой в ML или кубер или ещё куда. Здорово, когда это можно сделать не меняя компанию. И вообще шикарно, когда можно всё попробовать и выбрать, что по душе.
🔥73👍52💯2613😁11💩2🤡2
Год назад в кулуарах «Я люблю фронтенд» Артём @artalog показал мне Roo. Я вернулся в Петербург, подключил Roo к Sonnet 3.7, удивился, что теперь действительно что-то можно отдать на откуп LLM и пошёл подсаживать команду. Мы нашли кейсы, где нейронка хороша, собрали мемори банк и настроили конфиги там, где она тупила. Именно тогда для меня и был переломный момент, когда я полностью поменял свое отношение к AI-кодингу.

А вчера я удалил папку .roo из проекта. И мемори банки удалил. Клод код пошуршал по этим файлам и сказал, что это прошлый век, там нет ничего полезного и он может лучше из коробки. Я с ним согласился и ушёл настраивать openclaw.
😁74🥱25💊12🤝9👍5🤣43
Вот так вот просто и красиво подошли к важнейшей проблеме с другой стороны. Вспоминаю, сколько мы сил и времени потратили когда-то на внедрение монады Either, которую отдел так и не принял всем сердцем.

Напомню прекрасный доклад Артёма Кобзаря и Димы Махнёва — (не|ну)жная монада Either на практике и в теории

И напомню, что ошибки и исключения — это принципиально разные сущности.

Мы считаем, что исключения должны редко использоваться в рамках обычной работы программы: они должны быть зарезервированы для непредвиденных событий. Предположим, что неперехваченное исключение завершит работу вашей программы. Спросите себя: «Будет ли этот код по-прежнему выполняться, если я удалю все обработчики исключений?» Если ответ «нет», то, возможно, исключения используются в неисключительных обстоятельствах.

Dave Thomas and Andy Hunt: The Pragmatic Programmer
16🔥7
Forwarded from artalog (artalar)
https://errore.org/

Кто-то запарился и сделал огромный лендос. Что же, я только всеми лапами за! И вам советую.

UPD: автор запилил сравнение
🔥19👍103💩2👀2
В поисках самого лучшего эмулятора терминала

Как подметил Тонский, пока мы пытались сделать хорошие интерфейсы — зумеры ушли в консоль. А для консоли нужен эмулятор терминала, чтобы вывозить все эти реакт-приложения (что? да!)

Сначала немного теории.

Что такое эмулятор терминала? Это программа, которая эмулирует древнюю железку — терминал. Например вот VT100. То, что в обиходе называет терминалом, на самом деле эмулятор такой железки.

Что такое эскейп последовательности? Нам нужно отправить в шелл или в программу, запущенную в консоли комбинацию клавиш, которую мы нажали. Но у нас нет никакой возможности, кроме как закодировать это набором символов. Как-то так `^[b` для option + left. Попробуйте сами — нажимаем `ctrl + v` и дальше нажимаем нужную нам комбинацию клавиш.

Проблема в том, что нет нормального стандарта на эскейп последовательности. Если в базовых option+left и т.д. все ещё более менее совпадают, то shift+enter кто во что горазд кодирует. Как система понимает, с каким эмулятором она работает? Знание об этом храниться в $TERM. Например, для terminal и item2 это будет `xterm-256color`. Для других терминало может быть другое значение. В системе есть целый справочник `/usr/lib/terminfo` где сказано, как читать эскейп последовательности для вашего эмулятора терминала.


Родной эмулятора терминала macOS — отлетает сразу, у него нет эскейп-последовательностей на shift + enter (а нам надо! мы же хотим в клод коде промпты писать!). И не круто же, из коробки белый фон. Мы такое не уважаем, эмулятор терминала должен всем показать, что ты крутой хакер.

iterm2 дефолт, но конечно достал. Не быстрый, из коробки пользовать им невозможно (ну реально раздражает каждый раз после установки идти проходить квест по настройке эскейп последовательностей в диких менюшках). Ну и просто старый. Фу. Но куда бежать?

Ghostty. Быстрый (написан на zig), нативный, с простым конфигом. Ну просто лепота. Но есть одно но, большинство линуксов ничего о нём не знает. И когда вы подключитесь по ssh и откроете клод код — shift + enter работать не будет. В ghostty это понимают и предлагают автоматический режим для закидывания terminfo на любую машинку куда вы подключаетесь. Даже два режима: прокидывай terminfo, либо автоматически подменяй $TERM на xterm-256color (нам не катит, мы же ищем shift + enter). Если вы готовы немножко помусорить на удалённых машинках, то всё ок.

Kitty Тоже быстрый, но не такой нативный и красивый как Ghostty. Супер конфигурируемый, мощь. Проблема с terminfo присутствует.

Warp. AI во все поля. Чтобы зайти — нужно создать в облаке учётку и залогиниться. Это я не понял и не уважаю. Не по нашему это, не по хакерски. Дизлайк, отписка.

Пока остановился на Ghostty за красоту. Но релизы там какие-то ну совсем редкие. Наверное дальше пойду на Kitty
19🥱9🔥2👍1🤮1
Кто хочет Маттео Коллину к себе в команду практически бесплатно? Он есть у меня у себя! Ну не весь, конечно, а только в виде своих лучших практик.

https://adventures.nodeland.dev/archive/my-personal-skills-for-ai-assisted-nodejs/

tl;dr


npx skills add mcollina/skills
🔥457👍7😁4💊2🤔1
Уже пару месяцев как присоединился к тренду не писать код руками (совсем). Пока ещё не перевёл агента на полный цикл «посмотри какие у меня там таски в трекере и сделай», но иногда, во время дежурств и правда получается ваншотить: входящее обращение от пользователя о багах превращается в прекрасно оформленный PR, в котором и придраться не к чему. А как HAR разбирает — так просто песня. А можно ещё и рядом репозиторий бэкенда подложить, ммм.

В рабочих задачах это всё ещё куча циклов брейшторма, ревью и откатов назад. Но код я не трогаю. Общаюсь в чате, в конце прошу оформит PR. Возможно, будь у меня дикий «безлимитный» тариф я бы и попробовал пожить в режиме ральф лупа, но имеем, что имеем. Нужно быть осторожным, чтобы Опуса хватило на месяц. Потому никаких запущенных параллельно агентов и x10 продуктивности. x3-x4 максимум (но плохо чтоль? хорошо!)

Удивительно удачно это наложилось на бессонные ночи и отсутствие личного времени. Буквально спасло меня от сваливание в андерперформера (ну или от смерти от истощения, хе-хе).

С одной стороны «Не можешь победить — возглавь». С другой — а зачем побеждать? Я пишу код уже без малого 30 лет и сам процесс написания кода никогда не был для меня источником удовольствия. Гораздо интереснее всегда было само комплексное решение задачи. И вот здесь (пока) ничего не меняется. Ну кроме того, что это стало веселей

Я думаю, что кодирование постепенно уйдёт в прошлое. И возможно пугающе быстро. Как когда-то исчезла профессия переноса алгоритмов на перфокарты. Останутся любители писать код вручную как хобби. Так же как сейчас кто-то пишет на функциональных языках для удовольствия. Да и я сам больше всего удовольствия получал от ассемблера (прямо как водить машину с ручной коробкой передач. Чистый кайф)

Останется ли человеко-читаемый код? Вот этот вопрос гораздо интересней. И пока никаких прогнозов тут дать не могу. Будут ли программы писаться сразу в машинных кодах? Сможет ли человек это раздебажить самостоятельно? Хорошие вопросы.

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

Ну а может завтра нам выкатят такие цены за инференсы, что забудем всю эту историю как страшный сон и снова будем код набивать.
👍65💩2921🔥9🤡7😁5🤔5💊4👎3💯21