Как стать автором
Обновить
23.91

Node.JS *

Среда для запуска JavaScript-приложений

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

Простой GPT-ассистент в Telegram на базе Яндекса и Node.js

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

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

В статье вас ждёт "сборка" очень простой связки из распознавания и синтеза речи, а также запросов в модель YandexGPT на Node.js. Наш телеграм бот будет получать голосовое сообщение, а затем распознавать его, скармливать в модель GPT и синтезировать полученный ответ в голосовое сообщение.

Хочется начать с небольшого предисловия. В ходе написания этого простейшего решения я потратил кучу времени на попытку интегрироваться с популярным OpenAI ChatGPT, но мои нервы вышли из чата (обход блокировки, HTTPS прокси и т.п.), поэтому я перешёл к Яндексу. Он встречает нас дружелюбной консолью, понятной документацией и грантом на тестирование. В целом, если гранта по каким-либо причинам нет, то мне на все тесты хватило 20 рублей.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии7

Банки.ру: от монолита до микрофронтендов

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

Всем привет! Меня зовут Марсель Абдрахманов, я фронтлид в Банки.ру. В статье хочу поделиться нашей историей ухода от монолита к микрофронтендам. У нас в Банки.ру большой отдел веб-разработки, за последнее время мы сильно выросли, ежедневно катим десятки релизов на прод. Расскажу, как мы относительно быстро внедрили микрофронтенды и перешли на архитектуру, которая позволила сократить время доставки обновлений на прод с двух дней до нескольких часов.

Если интересно, прошу под кат.
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

Утечки памяти, которые не утечки

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров20K

Что случилось? Авария, ужас-ужас

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

В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течёт, сервисы падают с OOM каждый день, все пропало!

Да, картинка действительно удручающая. Всё время, когда есть нагрузка, память в контейнере прирастает и почти не очищается при снятии нагрузки. Все остальные метрики, которые мы собирали были в норме: event loop lag, использование CPU, active request, open handles. Прирастала только используемая память и незначительно увеличивалось время отклика сервиса.

Что-ж, выглядит как классическая утечка, надо искать источник.

Читать далее
Всего голосов 95: ↑94 и ↓1+106
Комментарии15

Синхронизация локальных изменений с kubernetes контейнером. Часть 2

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

В предыдущей статье показал вам как работают docker desktop watch, skaffold dev и tilt up, которые помогают синхронизировать локальные изменения в контейнер, что очень важно во время разработки.

На этот раз хочу показать DevSpace и Garden, эти инструменты очень похожи на Tilt, у них есть dashboard, как у Tilt, есть мгновенная синхронизация изменений и под катом вы увидите, как легко можно запустить проект в kubernetes и начать разрабатывать.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

Истории

Zod умер. Да здравствует ajv-ts

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров8.6K

TLRD: zod не подходил в проекте и решили сделать свой builder с помощью ajv в zod-like API. Поскольку гугление не показало никаких вменяемых результатов - было решено сделать свои костыли решения.

Если стало интересно - прошу под кат!

стало интересно, посмотрим что там!
Всего голосов 7: ↑5 и ↓2+5
Комментарии12

Коллекция утилит NestJS-mod для унификации приложений и модулей на NestJS

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

Коллекция утилит NestJS-mod предназначена для унификации приложений и модулей NestJS, а также представляет новые логические возможности разделения обязанностей между модулями (System, Core, Feature, Integration, Infrastructure).

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Как мы используем Puppeteer для создания Open Graph изображений с Node.js

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

В наше время многочисленные сайты создают страницы, которыми пользователи хотели бы делиться в разных социальных сетях или мессенджерах. Благодаря тегам Open Graph ссылки могут иметь красочное превью изображение, которое привлекает еще больше внимания. В этой статья я хотел бы рассказать как с помощью Puppeteer и node.js мы упростили поддержку и сократили время разработки при создании таких изображений.

Узнать больше
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

В плену JavaScript: как веб-разработка стала заложницей одного языка

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

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

Читать далее
Всего голосов 48: ↑41 и ↓7+40
Комментарии8

Решение Амазон капчи Waf Captcha на полном автомате, имея за плечами практически нулевой опыт в разработке

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

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

Собственно к чему все это? Да к тому, что когда мне потребовалось решить капчу от Амазон, пресловутую Waf Captcha я пошел копать на сервис, которым постоянно пользуюсь при работе с Кей Коллектором, и некоторыми другими сервисами (2капча - жаль Хабр банит статьи за реферальные ссылки).

Ну и нашел там инструкцию, ссылку на которую собственно и привел выше. Как вам вероятно стало понятно из эпиграфа - я ни черта не понял, вернее я понял, что надо использовать АПИ, но на этом все...

С Селениумом было реально проще.

Главная проблема - малый таймаут, который выделяется на решение со стороны Амазона. Время на решение капчи ограничено и если ответа нет, то капча обновляется (у нее обновляются 2 параметра - iv и context).
Получается, что таймаут свежести капчи около 30 секунд, а за это время необходимо найти на странице параметры, скопировать их, вставить в код скрипта и запустить его, после этого 2капча должна ее решить и вернуть правильный ответ. Я пробовал это сделать пару безуспешных часа, вырабатывал автоматизм действий, но увы, на поиск и замену изменяемых параметров уходит не менее 12-15 секунд, и остается от 15 до 18 секунд мы решение капчи сервисом, что в нынешних реалиях звучит достаточно фантастически.

Тут нужен другой подход, искать и подставлять параметры должен скрипт, но как его написать человеку, который в своей жизни ничего сложнее Ahrefs не видел?

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Кто на самом деле пользуется is-odd и is-even?

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

Разработчики любят подшучивать над раздуванием зависимостей Javascript (и вполне имеют на это право, учитывая историю пакетов наподобие left-pad); при этом часто упоминаются пакеты is-even и is-odd. Поэтому я заинтересовался, кто же на самом деле их использует?

Читать далее
Всего голосов 19: ↑18 и ↓1+26
Комментарии18

Создание сетевой игры с помощью Collagen_2, Node.js и библиотеки socket.js

Время на прочтение12 мин
Количество просмотров3.2K

В данной статье будет описан простой способ создания сетевой онлайн мини игры на подобии небольшой чат комнаты. Игроки могут передвигаться по полю игры, прятаться за деревьями, также есть возможность управлять камерой вида. Для тестирования игры необходимо скачать редактор зайти в папку collagen_2/games/game_3, ввести в командной строке forever start app.js. Для работы игры требуются модули socket.js и forever(глобальная инсталяция).

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Окей, я джуниор, как начать управлять?

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

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

Читать далее
Всего голосов 20: ↑8 и ↓12+2
Комментарии92

JavaScript однопоточный или многопоточный? Ставим точку

Время на прочтение10 мин
Количество просмотров32K

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

Читать далее
Всего голосов 38: ↑32 и ↓6+34
Комментарии188

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

Конференция HR API 2024
Дата14 – 15 июня
Время10:00 – 18:00
Место
Санкт-ПетербургОнлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Работа с ETH, BSC, TRX кошельками на сервере NodeJS — отправка транзакций, получение баланса, генерация мнемоники

Время на прочтение14 мин
Количество просмотров2.6K

Удивительно, как мало готовых решений для работы с крипто-кошельками на серверной стороне. А конкретно для таких базовых задач, как: отправка самой монеты, отправка токенов, получение баланса, подпись транзакций.

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

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии3

Крупномасштабный стриминг видео с использованием Kubernetes и RabbitMQ

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров12K
Давайте поговорим о тех проблемах, с которыми приходится сталкиваться на сайтах для стримингового видео, и как организовать архитектуру такого сайта, чтобы было проще справляться с нагрузками.

image
Читать дальше →
Всего голосов 15: ↑12 и ↓3+15
Комментарии17

Serverless в первый раз

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.8K

Давно я приглядывался к Serverless технологиям, но все не доходили руки. Как и во многих компаниях, там где я работаю есть строгое разделение на бэкендеров и фронтендеров. Проблемы у этого известные и самая неприятная — надо договариваться, а разработчики далеко не всегда самые общительные люди.

Но однажды все поменялось...
Всего голосов 17: ↑16 и ↓1+16
Комментарии24

DagazBot — Хранитель ключей и мётел

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров968
История проекта Dagaz прошла у вас перед глазами. Когда я только начинал писать про Zillions, главным возражением было то, что платформа эта платная и запускается только под Windows. Появился Dagaz — полностью бесплатный проект с открытой лицензией и общедоступным исходным кодом, игры которого можно запускать из браузера, даже на мобилках. Блокирующим фактором стало отсутствие адекватных ботов. Пришлось осваивать GarboChess и разрабатывать DagazServer, на котором игроки могли бы играть по сети друг с другом. Это стало большим шагом вперёд, но на сервере требуется авторизация, а логины и пароли — это как раз то, что забывается легче всего. Счастлив сообщить, что теперь их запоминать не надо.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Как создать веб-приложение на базе Telegram Mini Apps

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

Telegram Mini Apps — отличная возможность выйти за пределы обычных ботов и попробовать себя в создании более интересных интерфейсов приложений. На базе этого инструмента можно создать магазин или даже сервис для заказа шавермы.

В этой статье познакомимся с Telegram Mini Apps и попробуем создать простое приложение. Сделаем это с использованием обновленного Angular 17 и telegraf, а в конце — задеплоим проект на виртуальный сервер.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии6

Использование node-cron для запуска запланированных заданий в Node.js

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

Использование node-cron для запуска запланированных заданий в Node.js. CRON позволяет повторять задачу через определенный интервал времени. Могут быть повторяющиеся задачи, такие как ведение журнала и создание резервных копий, которые необходимо выполнять ежедневно, еженедельно или ежемесячно.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии11

Возможности JS, о которых вы возможно не знали

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров19K

Всем привет! Меня зовут Леша, я фронтенд-разработчик. Крашу кнопочки, пишу js скрипты, веду канал в TG https://t.me/frontend_tales (подписывайтесь, стараюсь выкладывать полезный материал).

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

Читать далее
Всего голосов 30: ↑17 и ↓13+9
Комментарии25

Вклад авторов

Работа