Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

141,47
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как построить эпюры Q и M в многопролётной балке: следующий шаг после построения линий влияния Q и М

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели6.3K

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

Теперь — следующий шаг.

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

Читать далее

Новости

Я сделал Vite-плагин, который сохраняет изменения CSS прямо в исходники

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.9K

Каждый раз, когда я хотел поправить отступ или цвет в процессе разработки, я делал одно и то же:

открыл DevTools → нашёл элемент → поменял значение → понравилось → скопировал → переключился в редактор → нашёл файл → вставил.

Это семь шагов ради однострочного изменения. Я сделал LiveStyleSync, чтобы это был один шаг.

Читать далее

Диванный инвестор #3. +88% годовых на бектесте

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.8K

Если вы, как и я, пробовали инвестировать - покупали и продавали ценные бумаги по наитию или рандому, то вам сюда. Тут мы начнем выстраивать наши хаотические метания в систему для генерирования денег.

Читать далее

Три мажора, две ошибки: проектирование API приостановки для интерпретатора машины Тьюринга

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.1K

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

К разбору полётов

Редактор, в котором главный — терминал: как я делал лёгкую IDE под эпоху ИИ-агентов

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.7K

Год назад я почти перестал писать код руками - теперь чаще диктую задачу агенту прямо в терминале. И однажды понял, что мой здоровенный IDE превратился в дорогую рамку вокруг одного окна. Так появился лёгкий редактор, где терминал главный, а код с git - сбоку.

Внутри - про инженерию, а не про “качайте продукт”: как агент-независимо ловить “агент работает / ждёт ответа / закончил” через /proc, как собрать Windows-сборку Electron прямо с Linux без Wine, темы на контракте CSS-токенов и пара граблей, на которых я знатно подгорел (привет, Ctrl+V в русской раскладке).

Читать далее

Заброшенные репозитории на GitHub. Какие языки теряют разработчиков и когда код перестают обновлять

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели9K

GitHub постепенно превращается в кладбище старого кода. Мы сравнили тысячи репозиториев и посмотрели, какие языки быстрее теряют активность, а где экосистема всё ещё растёт.

Читать далее

JavaScript. Работа с большими файлами в браузере. Часть 2/2: Создание 5Gb файлов в браузере

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.9K

Онлайн доска DGRM.net кеширует файлы в постоянном кеше. Постоянный кеш не удаляется при закрытии вкладки. Рассказываю как хранить большие файлы в браузере.

Читать далее

Структурированное логирование и трейсинг в Node.js: @cleverbrush/log и @cleverbrush/otel

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели5.8K

Статья о том, как получить наблюдаемость (observability) в приложении с минимальным кодом, а бонусом получить структурированные логи с типизированными шаблонами, автоматическую корреляцию со спанами OpenTelemetry, всё это с помощью набора библиотек, которые я называю CleverBrush Framework.

Читать далее

Современный Angular: Заменяем жизненные циклы на сигналы

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели6.5K

Если вы пишете на Angular, то наверняка часто используете хуки жизненного цикла вроде ngOnChangesngOnInit и ngOnDestroy. С появлением сигналов и концепции Zoneless (когда Zone.js уже не обязателен) у нас появились более элегантные и читаемые альтернативы.

Давайте разберем, как современный подход позволяет упростить код и избавиться от "шумных" методов жизненного цикла.

Читать далее

Как я 8 дней ловил утечку памяти в Nuxt 3 SSR, и несколько раз думал, что починил

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели13K

Всем привет. Я занимаюсь фронтендом в небольшой команде сервиса бронирования отелей. Хочу как я 8 дней ловил утечку памяти на проде, несколько раз думал, что починил, и каждый раз ошибался. А последний фикс был не в нашем коде, а в патче самого Vue, который через неделю апстрим откатил как регрессионный. У нас в результате осталась одна патч-версия, в которой утечки нет; обычный minor/patch update сейчас для нас не безопасен без повторной проверки heap-снапшотами.

Наш стек Nuxt 3.18 + Vue 3.5.x + TypeScript, SSR, Pinia, PM2 cluster, nginx перед Node. Обычный каталог отелей с тысячами SEO-страниц вида /oteli-v-{город}/{подборка}

Читать далее

Линии влияния в многопролётных шарнирных балках: бесплатный веб-инструмент для проверки расчётов

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели9.6K

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

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

Читать далее

Я перевёл 200K строк JS на TS с Claude Code. Что прошло, что сломалось

Время на прочтение10 мин
Охват и читатели14K

За 6 недель Claude Code преобразовал 200K строк JS в strict TypeScript. Не переименование файлов, а настоящая типизация: интерфейсы, строгие null-чеки, перехваченные баги в проде. Тут разбор реального кейса с цифрами, ошибками агента и главным вопросом: стоит ли вам это повторять?

Читать далее

Назирокодил утилиту на Kotlin и JavaScript для создания аккордов в любой тональности

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели6.5K

Написал утилиту для создания аккордов в любой мыслимой тональности.

Собственно в статье описываю путь от идеи до реализации этой утилиты и показываю, как ей пользоваться.

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

Читать далее, как легко сгенерить аккорды

Ближайшие события

Как вредоносный код переписал мой Git-коммит и заразил десятки проектов и несколько рабочих машин

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели11K

История о том, как один странный git push оказался началом расследования, которое вывело меня не на один взломанный аккаунт, а на цепочку зараженных репозиториев и проектов.

Снаружи все выглядело почти нормально: знакомый автор, знакомый коммит, привычные файлы. Но внутри последнего коммита уже жил чужой обфусцированный JavaScript. Он прятался в конфиге, менял Git-историю и маскировался под обычную работу разработчика.

Первой версией был взлом моего GitHub, но смена ключей и паролей ничего не решила.

Потом след вывел на другого разработчика, потом еще на несколько проектов, и картина стала намного неприятнее.

Это оказалась PolinRider-like supply chain атака, которая использует сам developer workflow как транспорт.

В статье я разбираю, какие мелкие странности помогли заметить проблему и почему им нельзя махать рукой.

Показываю реальные скриншоты, подозрительные изменения в .gitignore и payload внутри babel.config.js.

В конце оставил скрипты, которые могут помочь быстро проверить свои проекты и логи на PolinRider похожие признаки.

Читать далее

Архитектура безопасности во frontend-приложениях: Server Actions и защита данных в эпоху Next.js

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели8K

Мир frontend-разработки за последние несколько лет изменился коренным образом. Если еще пять лет назад стандартом де-факто были одностраничные приложения (SPA), где вся логика выполнялась в браузере, а сервер был просто REST API, то сегодня мы наблюдаем массовый переход к гибридным архитектурам. Next.js с его Server Components и Server Actions стал не просто популярным фреймворком, а промышленным стандартом для enterprise-приложений.

Этот переход принес с собой множество преимуществ: улучшенную производительность, лучший SEO, упрощенную разработку. Однако он же изменил и модель угроз, с которыми сталкиваются разработчики. Привычные методы защиты, основанные на JWT в заголовках и CORS-политиках, больше не обеспечивают полную безопасность. Серверная логика теперь исполняется в непосредственной близости от клиента, а граница между фронтендом и бэкендом стала размытой (для некоторых сценариев).

По данным исследований Snyk и других security-вендоров, 39% облачных средств содержали уязвимые версии React и Next.js в 2024-2025 годах. Это не просто статистика. Это реальные приложения, обрабатывающие данные пользователей, платежную информацию и конфиденциальные бизнес-данные. Уязвимость CVE-2025-55182, получившая максимальный рейтинг CVSS 10.0, показала, насколько критичными могут быть последствия недостаточного внимания к безопасности в современных frontend-приложениях.

React Server Components (RSC) стали новым стандартом, но вместе с ними пришли новые векторы атак. Server Actions, предоставляющие удобный способ вызова серверной логики прямо из компонентов, фактически являются публичными HTTP-эндпоинтами. При неправильной конфигурации они могут стать лазейкой для злоумышленников. Традиционный подход security through obscurity здесь не работает: скрытие эндпоинтов не защитит от целенаправленного перебора.

Читать далее

Как я сделал «клик по элементу → открыть в VS Code» за один вечер

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.7K

Началось всё банально. Зашёл коллега, говорит: «Где у нас хлебные крошки в шапке лежат?». Проект — около 150 компонентов, всё именуется по-своему, структура папок местами загадочная. Я начал тыкать в React DevTools, искать по тексту «Breadcrumb» в файлах… В общем, минут через пять нашёл. Это в очередной раз раздражало.

Читать далее

Как я хотел две странички для SAMBA и NFS, а сделал полноценную панель управления NAS на 20+ страницах

Время на прочтение4 мин
Охват и читатели15K

Как я хотел две странички для SAMBA и NFS, а сделал полноценную панель управления NAS на 20+ страницах

Читать далее

Как уместить DOOM в QR-код

Время на прочтение6 мин
Охват и читатели6.8K

DOOM известен тем, что запускается где угодно – благодаря портам, которые появляются с 1993 года. Мем «It Runs Doom» («Он запускает DOOM») живёт в интернете уже больше десяти лет. Люди запускали DOOM на тостерах, на тачбарах макбуков, на умных холодильниках. И, кажется, я – первый человек, который уместил DOOM в QR-код.

Читать далее

Capacitor: от веба к мобильным приложениям. Часть 4. Интегрируем локальный LLM в проект

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели11K

В этой уже 5 по счету статье мы поговорим про актуальность локального AI в мобильных приложениях а также займемся интеграцией плагина для локальных LLM в Capacitor приложение.

Читать далее

@tanstack/vue-table: почему я почти отказался от этого…

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели10K

Привет. Недавно пришлось повозиться с @tanstack/vue-table. Задача была стандартная: нужна таблица с сортировкой, фильтрами и редактированием ячеек. Казалось бы - идеальное время подключить готовое решение. Но не всё так гладко. Делюсь мыслями, граблями и тем, как я в итоге выкрутился.

Читать далее
1
23 ...