и посмотреть медиа
Будни разработчика: блог лид JS
и посмотреть медиа
Блог ведущего JS-разработчика о повседневной работе.
Блог ведущего JS-разработчика о повседневной работе.
Личный блог Lead JS-разработчика. Публикации о буднях в IT, полезных практиках, инструментах и опыте. Инсайты для frontend и fullstack разработчиков, желающих развиваться в JavaScript экосистеме.
Проект от подписчика! Напоминаю, что я выкачу любую статью или проект от вас, не стесняйтесь писать. Презентация? Выступили на митапе? Хотите поделиться интересной статьёй — добро пожаловать! Всем привет! Меня зовут Ильдар. Я легаси-подписчик этого канала – уже около 6 лет, всегда с интересом наблюдал посты про личные проекты и хочу сегодня поделиться своим. Я пришёл в команду как Frontend Lead и получил несколько проектов, которые до этого в основном развивали джуны. Кодовая база и процессы были довольно хаотичными, а качество оставляло желать лучшего. Я привык использовать системы трекинга ошибок вроде Sentry и Bugsnag. Но здесь возникло сразу несколько проблем. Проекты были на старом стеке, версии Node для сборки варьировались от 9 до 16, а сам продукт физически находился в России. Использование сторонних сервисов было рискованным и в любой момент можно было потерять к ним доступ. В итоге production-баги отлавливались вручную: через поддержку, тестировщиков и самих клиентов. Позже, когда из-за кризиса рынка команда сократилась, стало понятно, что такой подход больше не работает. Нужно было автоматизировать сбор ошибок, но я не хотел просто получать бесконечный поток событий. Хотелось видеть уже готовые проблемы, сгруппированные по смыслу, а ещё добавить AI-объяснение, чтобы происходящее могли быстро понять не только разработчики, но и менеджеры. Так появилась идея сделать собственный сервис. Так родился RetraceKit. За несколько месяцев вечерний pet-проект вырос в полноценную платформу: собственный zero-dependency SDK, backend на Kotlin, dashboard на SolidJS, интеграции с Telegram, AI summaries, релизы, breadcrumbs. Самым неожиданным оказалось не написать код. Самым сложным было постоянно отвечать себе на вопрос: «А эта функция действительно нужна сейчас?» Именно поэтому я сознательно отказался от десятков идей и старался оставить только то, что действительно помогает быстрее понять production-проблему. Сегодня проект дошёл до состояния, когда им уже можно пользоваться. Теперь начинается, пожалуй, самый сложный этап - это понять, нужен ли RetraceKit другим разработчикам так же, как оказался нужен мне. Ссылка на проект: Ссылка скрыта Приветствую поддержку и фидбэк на ProductHunt: Ссылка скрыта
Открыть канал и посмотреть медиа#фишка дня Поменяли какую-то настройку в VS Code, и теперь всё сломалось? Вообще не проблема! Вводим в поиск @modified и — вуаля — видим все настройки, отличные от дефолтных! Да, вторым вариантом, конечно же, будет нажать иконку с переворачиванием листа и, буквально, увидеть изнанку настроек — JSON-файл. Тоже отличный вариант. #vscode #settings #json #бородач
Открыть канал и посмотреть медиа#баг дня или история одного апокалипсиса Знаете, что происходит, если в Firefox ввести в что-то вроде lol? Он позволяет. Да, вы видите эти lol, будто это валидное число. Только вот значение value в DOM превращается в пустую строку. Ну типа «я тебе это показал, но делать с этим ничего не буду». Гениально. Баг #1398528 в Bugzilla живёт с 2017 года. Проблему признают: Firefox нарушает спецификацию WHATWG, согласно которой input type=number должен принимать только корректные числовые строки. А на деле — буквы, кириллица, эмоджи — всё идёт в бой. Только вот под капотом — пусто. Т.е. ты видишь, что ввёл, но значение не считается валидным. UX? Ну, такое себе. Почему не фиксят? Ответ классический: «а что, если у нас локаль с деванагари и арабскими цифрами, и вообще — как различать запятую и точку?». Ну и правда, лучше пусть вводится вся клавиатура, чем разбираться в сепараторах. А теперь немного цирка из Chrome: В Chrome иногда разрешает ввод e, ведь вдруг ты хочешь ввести 1e10 (научную запись). Но если ты просто набрал e, поле становится… валидным. Бинго! Ещё веселее: 1e- — тоже "нормально", но 1ee — уже нет. Картинку с барабаном вставите сами. А если ты вводишь 1,5 в локали, где десятичный — это точка, Chrome может забраковать это, а может и нет — зависит от версии, луны и количества кофе у разработчика. В итоге: у Firefox можно ввести хоть «привет», и он такой: «ну окей, но это не число». Chrome вроде бы фильтрует, но делает это через лунную призму. Что же мы делаем? Пишем код, блять! Мораль: в 2026 году проще создать свою валидацию под конкретный случай, чем надеяться, что браузеры когда-нибудь договорятся. А баг тем временем отмечает 8 лет жизни, всё ещё «NEW», и, судя по комментариям, будет жить Баг-репорт: Ссылка скрыта Подпишитесь и следите, если вы, как и мы, верите (нет) в чудеса стандартизации. P. S. тем временем Firefox пробивает дно за дном. В англоязычном интерфейсе выдаёт мне ошибки валидации на финском языке. P. P. S. я молчу уже о том, что вообще нахер не нужен и даже вреден: Ссылка скрыта #firefox #bug #input #number #бородач
Открыть канал и посмотреть медиа#заметка дня Electron.js, Tauri, ProtonShell, да сотни их. Всё это — средства разработки desktop-приложений на JavaScript/TypeScript и иже с ними. Где-то справедливо, где-то — не очень — критикуемы. Какие-то из них используют биндинги к нативным виджетам системы, какие-то — к Wx, Qt или GTK. А что если я вам скажу, что есть среда, в которой JavaScript приложения — новая норма? И это, внезапно, GNOME. Тот самый, что по дефолту в Ubuntu, Fedora, openSUSE Linux. Изначально, движок JavaScript в GNOME — GJS — задумывался для расширений GNOME Shell, собственно, среды рабочего стола. Основан он на SpiderMonkey, движке из Firefox. Путь GJS как движка для разработки приложений, а не только расширений, был достаточно тернист, но в итоге мы получили мощное средство разработки UI, вытесняющее даже изначально придуманный для этого язык Vala. Естественно, интерфейс рисуется не веб-технологиями. Присутстсвуют биндинги к GTK и, естественно, libadwaita. Последнее это не просто библиотека, содержащая дефолтную тему GTK для GNOME, но целая определяющая поведение виджетов среда. Что-то, что делает гном — гномом, пусть многим это и не всегда нравится. И вот одним из последних приобретений списка дефолтных приложений GNOME стал аудиоплеер Decibels: Ссылка скрыта Если вам хочется вообще выйти за рамки веба, оторваться от React и попробовать свои силы в чём-то максимально близком к нативной разработке, при этом, без изучения нового языка, то разработка приложений для GNOME вполне может стать началом чего-то интересного. Вот, например, шаблон: Ссылка скрыта А тут есть история разработчика, который портировал приложение Диктофон: Ссылка скрыта Иногда бывает полезно выскочить из привычной среды. Пробуем, котаны? #gtk #linux #gnome #бородач
Открыть канал и посмотреть медиа#ссылка дня Кто хотел красивых анимированных иконок без обязательств? 🙋 Я точно хотел! Итак, вашему вниманию иконки от Дмитро Товстокорого: Ссылка скрыта Анимированные при помощи библиотеки motion SVG с MIT-лицензией, что может быть прекраснее? Давайте немного насладимся воем на болотах о том, что ещё одна библиотека анимации в проект нам не нужна. Ну и никто не мешает вдохновиться и реализовать своё, с использованием своих инструментов, ведь правда? К слову, библиотека Motion выросла из инструмента Framer, а их уж новичками никак не назовёшь. Так что вполне себе проверена в бою. Берём, котаны? #icons #svg #animation #бородач
Открыть канал и посмотреть медиа#статья дня Так получилось, что я использовал матрицы преобразований — осмысленно — всего раз в жизни. Правда, в итоге перешёл на решение попроще: Ссылка скрыта Но это не значит, что они не нужны :) Просто не у всех есть под них задачи. А вот у Ивана Шубина — автора редактора диаграмм Schemio — такая задача возникла. Правда, осознал он это не сразу :) Ну кто бы мог подумать, что тебе понадобятся матрицы преобразований, когда ты разрабатываешь векторный редактор, правда? Прекрасная статья для тех, кто говорит, что программисту математика не нужна: Ссылка скрыта Ну, точнее, линейная алгебра. Есть перевод на русский: Ссылка скрыта Не, кроме шуток, просто шикарнейшая статья, после которой очень многое в работе с векторной (и не только) графикой станет понятно. #svg #math #matrix #transform #бородач
Открыть канал и посмотреть медиа#инструмент дня Сайтов с палитрами, генераторами и готовыми сочетаниями цветов полно. Но грибной среди них, кажется, один — Mushroom Color Atlas. Это большой интерактивный атлас цветов, которые можно получить из разных видов грибов. Палитру разрешают фильтровать по самому грибу, типу ткани, протраве, красителю или пигменту. Причём это не просто коллекция красивых образцов: для каждого цвета зафиксированы материалы и условия эксперимента. Проект сделала художница и дизайнер Джули Билер. Она выросла рядом с лесами у подножия вулкана Сент-Хеленс и с детства интересовалась грибами и природой. Позже Билер начала экспериментировать с натуральными красителями, а для атласа решила превратить эти опыты почти в лабораторное исследование: повторять один и тот же процесс, записывать переменные и постепенно собирать базовую карту грибных цветов. Результат — сотни неожиданно насыщенных красных, жёлтых, зелёных, фиолетовых и синих оттенков, полученных из вещей, которые обычно выглядят просто коричневыми и невзрачными. Короче, котаны, долой бездушных роботов, даёшь грибы как источник вдохновения ваших палитр. #color
Открыть канал и посмотреть медиа#заметка дня В рассылке ядра Linux снова спорят об ИИ. То есть люди, способные неделями обсуждать правильный подсчёт байт, спустились на землю. Поводом стал Sashiko — LLM-инструмент для проверки патчей. Laurent Pinchart предложил сначала прогонять его вывод через человека и сослался на рекомендации Software Freedom Conservancy, где поддерживают право проектов вообще запрещать AI-generated contributions. Roman Gushchin резонно заметил: если мейнтейнер обязан перепроверить каждое замечание, инструмент экономит ему время примерно никак. Тут вмешался Линус. Письмо прекрасное: Linux не anti-AI-проект. Не нравится — форкайте или уходите. По его мнению, спор о пользе ИИ уже закончился. Он полезен, находит реальные ошибки и иногда ставит людей в неловкое положение, потому что замечает то, что они пропустили. Если инструмент заваливает мейнтейнеров мусором, надо чинить инструмент, а не изображать, будто LLM не существует. Сам Линус уже навайбкодил с Google Antigravity Python-визуализатор для своего проекта AudioNoise. DSP на C написал сам, а разбираться ради вспомогательной утилиты в Python не стал. Раньше собирал бы её по чужим примерам, теперь просто убрал из цепочки себя. Другие проекты осторожнее. QEMU не принимает AI-generated code из-за проблем с происхождением и лицензиями. Похожие ограничения есть у NetBSD, Gentoo, Zig и отдельных проектов GNOME. Разница простая. Они сначала видят юридическую и ревьюерскую головную боль. Линус сначала смотрит, работает ли штука. ИИ — инструмент. А запрещать инструмент целиком потому, что им удобно производить говно, — довольно странная инженерная политика. #ai
Открыть канал и посмотреть медиаIngress-nginx уходит в прошлое. С марта 2026 поддержка прекратилась. А что вместо него? Предлагаем посмотреть на Gateway API, новый стандарт Kubernetes SIG. 23 июля в 17:00 старший SRE-инженер MWS Cloud Евгений Макеев на практике покажет: ⚫️ чем маршрутизация Gateway API отличается от Ingress ⚫️ как выбрать контроллер ⚫️ как установить Gateway API в Managed Kubernetes ⚫️ как настроить безопасное подключение через TLS-сертификат Будет полезно для DevOps, платформенным инженерам и разработчикам. Регистрируйтесь по ссылке
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!
Selections top Telegram topically R_channels. Discover new resources and content every day.
Guidelines and advice on PUBG Mobile for players.