#статьи
👋 Ментальная модель потоков в Node.js
Статья исследует концепцию потоков в Node.js, объясняя их ключевую роль в модулях, таких как fs и http. Рассматриваются основные концепции и ментальная модель, помогающая понять и эффективно использовать потоки.
Читать
👉 Новости 👉 База вопросов
Статья исследует концепцию потоков в Node.js, объясняя их ключевую роль в модулях, таких как fs и http. Рассматриваются основные концепции и ментальная модель, помогающая понять и эффективно использовать потоки.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Ментальная модель потоков в Node.js
Приходилось ли вам работать с потоками в Node.js? Когда я впервые столкнулся с потоками, я, мягко говоря, оказался в растерянности. Эта концепция была совершенно новой для меня. Я полагал, что смогу...
❤1👍1
#полезное
❤️🔥 Как пересылать сообщения из Telegram в SMS с помощью бота
В этом гайде пользователь объясняет, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.
Читать
👉 Новости 👉 База вопросов
В этом гайде пользователь объясняет, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как пересылать сообщения из Telegram в SMS с помощью бота
Всем привет! У платформы МТС Exolve есть сообщество, которое часто делится полезными гайдами от прокачки своих серверов до открытия ворот по SMS. Наиболее интересные и подробные решили размещать в...
❤2👍2
#Собес #docker
🤔 Чем отличается логирование контейнера от логирования демона?
💬 Кратко:
Логирование на уровне демона касается самого процесса работы Docker (системных сообщений и ошибок), в то время как логирование контейнера фокусируется на выводе, генерируемом внутри конкретных контейнеров. Логи демона содержат информацию о работе Docker, а логи контейнера - данные, связанные с выполнением приложений в контейнерах.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Логирование на уровне демона касается самого процесса работы Docker (системных сообщений и ошибок), в то время как логирование контейнера фокусируется на выводе, генерируемом внутри конкретных контейнеров. Логи демона содержат информацию о работе Docker, а логи контейнера - данные, связанные с выполнением приложений в контейнерах.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Библиотека GeoAI.js теперь поддерживает Image Feature Extraction — поиск похожих объектов на спутниковых снимках.
Работает полностью локально в браузере благодаря Transformers.js.
https://docs.geobase.app/geoai-live/tasks/image-feature-extraction
👉 Новости 👉 База вопросов
Работает полностью локально в браузере благодаря Transformers.js.
https://docs.geobase.app/geoai-live/tasks/image-feature-extraction
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Browserable — открытый инструмент для автоматизации браузера с помощью AI-агентов.
Что делает:
🟠 Управляет браузером как человек: переходит по сайтам, кликает, заполняет формы, вытаскивает данные.
🟠 Достигает 90.4 % на тесте Web Voyager — один из лучших результатов среди подобных решений.
🟠 Работает локально (self-hosted) или через удалённые браузеры.
🟠 Запуск в 1 команду (`npx browserable`) или в полном окружении через Docker.
🟠 В комплекте: админ-панель, REST API, JavaScript/TypeScript SDK, интеграция с LLM (OpenAI, Claude, Gemini и др.).
Зачем полезно:
— Автопарсинг и мониторинг сайтов
— Автоматизация тестирования веб-приложений
— Интеграция с агентами для сложных сценариев в интернете
GitHub
👉 Новости 👉 База вопросов
Что делает:
Зачем полезно:
— Автопарсинг и мониторинг сайтов
— Автоматизация тестирования веб-приложений
— Интеграция с агентами для сложных сценариев в интернете
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
LeetCode
Minimum Size Subarray Sum - LeetCode
Can you solve this real interview question? Minimum Size Subarray Sum - Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray whose sum is greater than or equal to target. If there is no such subarray…
#ЛитКод
Задача: 363. Max Sum of Rectangle No Larger Than K
Дана матрица размером m x n и целое число k, вернуть максимальную сумму прямоугольника в матрице, такая что его сумма не превышает k.
Гарантируется, что будет прямоугольник с суммой, не превышающей k.
Пример:
👨💻 Алгоритм:
1⃣ Создать вспомогательную функцию updateResult, которая будет находить максимальную сумму подмассива в одномерном массиве, не превышающую k.
2⃣ Преобразовать каждую подматрицу в одномерный массив и применить к ней функцию updateResult.
3⃣ Вернуть максимальную найденную сумму.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 363. Max Sum of Rectangle No Larger Than K
Дана матрица размером m x n и целое число k, вернуть максимальную сумму прямоугольника в матрице, такая что его сумма не превышает k.
Гарантируется, что будет прямоугольник с суммой, не превышающей k.
Пример:
Input: matrix = [[1,0,1],[0,-2,3]], k = 2
Output: 2
Explanation: Because the sum of the blue rectangle [[0, 1], [-2, 3]] is 2, and 2 is the max number no larger than k (k = 2).
class Solution {
constructor() {
this.result = Number.NEGATIVE_INFINITY;
}
updateResult(nums, k) {
let sum = 0;
const sortedSum = [0];
for (let num of nums) {
sum += num;
let idx = this.binarySearch(sortedSum, sum - k);
if (idx < sortedSum.length) {
this.result = Math.max(this.result, sum - sortedSum[idx]);
}
sortedSum.push(sum);
sortedSum.sort((a, b) => a - b);
}
}
binarySearch(arr, target) {
let left = 0, right = arr.length;
while (left < right) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] < target) left = mid + 1;
else right = mid;
}
return left;
}
maxSumSubmatrix(matrix, k) {
const rows = matrix.length;
const cols = matrix[0].length;
for (let i = 0; i < rows; i++) {
let rowSum = Array(cols).fill(0);
for (let row = i; row < rows; row++) {
for (let col = 0; col < cols; col++) {
rowSum[col] += matrix[row][col];
}
this.updateResult(rowSum, k);
if (this.result === k) {
return this.result;
}
}
}
return this.result;
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #docker
🤔 Есть ли ограничения на количество контейнеров, которые можно запустить в Docker?
💬 Кратко:
B Docker нет явного ограничения на количество контейнеров. Ограничения зависят от аппаратных ресурсов, таких как обьем памяти и количество процессорных ядер.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
B Docker нет явного ограничения на количество контейнеров. Ограничения зависят от аппаратных ресурсов, таких как обьем памяти и количество процессорных ядер.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#статьи
😱 Кэширование информации в Redis на NestJS
Статья показывает, как подключить Redis к проекту и настроить кэширование данных с помощью @nestjs-mod/cache-manager. Рассматриваются примеры работы с Docker Compose и Kubernetes для оптимизации запросов.
Читать
👉 Новости 👉 База вопросов
Статья показывает, как подключить Redis к проекту и настроить кэширование данных с помощью @nestjs-mod/cache-manager. Рассматриваются примеры работы с Docker Compose и Kubernetes для оптимизации запросов.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Кэширование информации в Redis на NestJS
Предыдущая статья: Интеграция внешнего файлового сервера https://min.io в фулстек приложение на NestJS и Angular На каждом фронтенд запросе к бэкенду запрашивается информация по профилю пользователя...
❤2
#полезное
😐 Неожиданное возвращение: легендарный Smalltalk-80 обрёл новую жизнь в мире JavaScript.
Теперь это бесплатная и опенсорсная реализация, которая компилируется в JS и работает как в браузере, так и в Node.js. Сохраняется дух полностью объектно-ориентированного Smalltalk, но с привычным синтаксисом и экосистемой JS.
🟠 Вместо «имиджей» используется файловая структура — удобно писать в VS Code
🟠 Подсветка кода и отладка доступны сразу «из коробки»
🟠 Классы и методы максимально близки к JavaScript, поэтому порог входа минимален
🟠 Встроены браузерные API, Express, базы данных, файловая система и даже многопоточность
Еще недавно появилась поддержка NW.js, так что теперь можно собирать кроссплатформенные десктопные приложения с интерфейсами на HTML+CSS — легче и менее прожорливо, чем на Electron.
Подробнее и с примерами: https://small-js.org/
👉 Новости 👉 База вопросов
Теперь это бесплатная и опенсорсная реализация, которая компилируется в JS и работает как в браузере, так и в Node.js. Сохраняется дух полностью объектно-ориентированного Smalltalk, но с привычным синтаксисом и экосистемой JS.
Еще недавно появилась поддержка NW.js, так что теперь можно собирать кроссплатформенные десктопные приложения с интерфейсами на HTML+CSS — легче и менее прожорливо, чем на Electron.
Подробнее и с примерами: https://small-js.org/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#статьи
😬 Отслеживание позиций торгового робота Московской биржи через CSV файл
Статья посвящена созданию кроссплатформенного торгового робота для Московской биржи через API брокера. Рассматриваются проблемы готовых решений, таких как QUIK, и преимущества разработки легкого и гибкого инструмента.
Читать...
👉 Новости 👉 База вопросов
Статья посвящена созданию кроссплатформенного торгового робота для Московской биржи через API брокера. Рассматриваются проблемы готовых решений, таких как QUIK, и преимущества разработки легкого и гибкого инструмента.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Отслеживание позиций торгового робота Московской биржи через CSV файл
Нахожусь в процессе написания механизма торгового робота, работающего на Московской бирже через API одного из брокеров. Брокеров имеющих своё АПИ для МосБиржи катастрофически...
❤2
#Собес #docker
🤔 Что такое Docker Compose?
💬 Кратко:
Docker Compose - это инструмент для управления многоконтейнерными приложениями. С помощью простого YAML-файла (
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Docker Compose - это инструмент для управления многоконтейнерными приложениями. С помощью простого YAML-файла (
docker-compose. yml ) можно настроить и запустить несколько контейнеров, определяя их сервисы, сети и тома.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
👋 Удобный просмотр кода с rendergit
С помощью rendergit вы можете легко преобразовать любой репозиторий GitHub в статическую HTML-страницу с подсветкой синтаксиса и навигацией. Идеально подходит для быстрого просмотра, анализа кода и удобного поиска.
Основные моменты:
🔴 Два режима просмотра: Человеческий и LLM
🔴 Подсветка синтаксиса и рендеринг Markdown
🔴 Умное фильтрование больших файлов
🔴 Адаптивный дизайн для мобильных устройств
🔴 Удобная навигация по файлам
GitHub
👉 Новости 👉 База вопросов
С помощью rendergit вы можете легко преобразовать любой репозиторий GitHub в статическую HTML-страницу с подсветкой синтаксиса и навигацией. Идеально подходит для быстрого просмотра, анализа кода и удобного поиска.
Основные моменты:
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Thread Pool в Node.js 🙂
Node.js у нас вроде как “однопоточный”, да? Но это не значит, что у него под капотом нет магии. Помимо Event Loop, в деле ещё участвует thread pool — набор рабочих потоков, которыми управляет библиотека libuv
🐧 Сколько потоков?
По умолчанию их 4. Но если хочется больше — можно поднять значение переменной окружения UV_THREADPOOL_SIZE (максимум до 1024)
😳 Зачем он нужен?
Thread pool берёт на себя тяжёлые и блокирующие задачи, чтобы не нагружать Event Loop. Туда скидываются:
1) операции с файловой системой (fs)
2) криптография (hash, pbkdf2 и т.п.)
3) DNS-резолвы
4) компрессия/декомпрессия
И пока отдельный поток уничтожает задачки — твой основной поток (event loop) спокойно крутит коллбеки и промисы
⌨️ Можно ли к тред пулу обратиться самому?
Напрямую нет, но можешь использовать нативные API (fs, crypto и т.д.), которые уже завязаны на thread pool. А вот если подключаешь native addon (N-API или Nan), то да, там можно регистрировать асинхронные задачки через uv_queue_work. И тогда твой C++ код действительно будет выполняться в thread pool
Кста не путать тред пул и worker_threads — это совсем другой инструмент
В итоге: Node.js сам решает, что кидать в thread pool, но знать о инсутрменте полезно, чтобы понимать почему работа с криптографией не блокирует наш основной поток эвент лупа
🚀 Пост Guru Node.js: @DemetraIT
Node.js у нас вроде как “однопоточный”, да? Но это не значит, что у него под капотом нет магии. Помимо Event Loop, в деле ещё участвует thread pool — набор рабочих потоков, которыми управляет библиотека libuv
По умолчанию их 4. Но если хочется больше — можно поднять значение переменной окружения UV_THREADPOOL_SIZE (максимум до 1024)
Thread pool берёт на себя тяжёлые и блокирующие задачи, чтобы не нагружать Event Loop. Туда скидываются:
1) операции с файловой системой (fs)
2) криптография (hash, pbkdf2 и т.п.)
3) DNS-резолвы
4) компрессия/декомпрессия
И пока отдельный поток уничтожает задачки — твой основной поток (event loop) спокойно крутит коллбеки и промисы
Напрямую нет, но можешь использовать нативные API (fs, crypto и т.д.), которые уже завязаны на thread pool. А вот если подключаешь native addon (N-API или Nan), то да, там можно регистрировать асинхронные задачки через uv_queue_work. И тогда твой C++ код действительно будет выполняться в thread pool
Кста не путать тред пул и worker_threads — это совсем другой инструмент
В итоге: Node.js сам решает, что кидать в thread pool, но знать о инсутрменте полезно, чтобы понимать почему работа с криптографией не блокирует наш основной поток эвент лупа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
#Собес #docker
🤔 Можно ли потерять данные, если контейнер существует?
💬 Кратко:
Пока контейнер существует, данные не теряются. Потеря данных может произойти только при удалении контейнера, если данные не были сохранены в постоянном хранилище.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Пока контейнер существует, данные не теряются. Потеря данных может произойти только при удалении контейнера, если данные не были сохранены в постоянном хранилище.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1
#полезное
📞 Совет по HTML
Примеры использования элементов thead, tbody и tfoot в HTML
👉 Новости 👉 База вопросов
Примеры использования элементов thead, tbody и tfoot в HTML
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2⚡1
#Собес #docker
🤔 Как удалить все остановленные контейнеры и неиспользуемые сети в Docker?
💬 Кратко:
Для удаления всех остановленных контейнеров и неиспользуемых сетей используется команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Для удаления всех остановленных контейнеров и неиспользуемых сетей используется команда
docker system prune . Она также удаляет неиспользуемые образы и кэш.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#статьи
🤓 Способ стабильного создания больших приложений с помощью ИИ
Покажу, как собрать «большое» приложение из независимых модулей (~200 строк) с помощью ИИ: стабильные промпты, чат вместо агентов, бэкенд в Yandex Cloud. Плюсы и грабли.
Читать
👉 Новости 👉 База вопросов
Покажу, как собрать «большое» приложение из независимых модулей (~200 строк) с помощью ИИ: стабильные промпты, чат вместо агентов, бэкенд в Yandex Cloud. Плюсы и грабли.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Способ стабильного создания больших приложений с помощью ИИ
В этой статье я детально опишу свой опыт создания «большого» приложения с помощью ИИ. «Большое» оно по меркам, тех приложений, который показывают на презентация AI‑моделей. Уверен, ваше...
❤1
#статьи
🥄 Решаем задачу: как сохранить нервные клетки пользователей с помощью валидации поля ввода
В этом году я много путешествовал, поэтому нередко заполнял формы с анкетами на разные визы — в них бывало по 30—40 полей. Когда что-то шло не так, часто сайты не давали никакой обратной связи. Иногда они сбрасывали всё, что я заполнял в течение часа, если одно из полей невалидно.
Решить проблему могла бы валидация. Это критически важная часть разработки веб-приложений, которая соотносит данные с необходимым форматом и указывает на ошибки. Также она гарантирует безопасность дальнейшей обработки этих данных.
В этой статье мы разберёмся, как настроить валидацию поля ввода.
Читать статью
👉 Новости 👉 База вопросов
В этом году я много путешествовал, поэтому нередко заполнял формы с анкетами на разные визы — в них бывало по 30—40 полей. Когда что-то шло не так, часто сайты не давали никакой обратной связи. Иногда они сбрасывали всё, что я заполнял в течение часа, если одно из полей невалидно.
Решить проблему могла бы валидация. Это критически важная часть разработки веб-приложений, которая соотносит данные с необходимым форматом и указывает на ошибки. Также она гарантирует безопасность дальнейшей обработки этих данных.
В этой статье мы разберёмся, как настроить валидацию поля ввода.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🛞 Вызов функции через
👉 Новости 👉 База вопросов
evaleval вызывает функцию по её имени, заданному в functionName, и передаёт ей аргумент argument. В данном случае вызывается функция greet с аргументом "Alice".Please open Telegram to view this post
VIEW IN TELEGRAM
Guru Node.js at YeaHub | Деметра
Всем привет!
Я — Дима, Senior Backend разработчик на Node.js и ментор
В IT больше 6 лет: шикарно перекладываю json’ы в микросервисах. Поднял стартап с нуля до продакшена под высокой нагрузкой. Сейчас работаю в крупной компании и активно участвую в найме (провожу собеседования)
Менторю по Node.js — помогаю прокачаться, разложить backend по полочкам и выйти на работу мечты. Особенно люблю фронтов, которые решили перебраться на тёмную сторону
А ещё я Guru Node.js в YeaHub — слежу за качеством контента и всей экосистемой
А ещё подписывайтесь на другие каналы Экосистемы YeaHub
Проект YeaHub:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤2