Як встановити Jenkins на екземпляр EC2 в AWS

pic

Фото Mohammad Rahmani на Unsplash

Я натрапив на jsdom, коли шукав способи емулювати веб-браузер без використання драйвера браузера. Jsdom — це чиста JavaScript-реалізація багатьох веб-стандартів, таких як WHATWG DOM та HTML Standards, яка призначена для використання з Node.js. Вона дозволяє нам емулювати частини функціональності браузера, що робить її корисною для таких задач, як тестування та веб-скрейпінг 😈.

Jsdom розбирає HTML і надає віртуальний DOM, з яким ми можемо взаємодіяти програмно, так само як і з реальним DOM браузера. Ось простий приклад:

const jsdom = require("jsdom");  
const { JSDOM } = jsdom;  
const dom = new JSDOM(`
Hello world
`);   
Читати далі

Що таке JSDOM?

pic

Фото: Mohammad Rahmani на Unsplash

Я натрапив на jsdom, коли шукав способи емуляції веб-браузера без використання драйвера браузера. Jsdom — це чиста JavaScript-реалізація багатьох веб-стандартів, таких як DOM стандарт WHATWG та HTML стандарти, призначена для використання з Node.js. Вона дозволяє емулювати частини функціональності браузера, що робить її корисною для завдань, таких як тестування та веб-скрапінг 😈.

Jsdom аналізує HTML і надає віртуальний DOM, з яким можна взаємодіяти програмно, як і з реальним браузерним DOM. Ось простий приклад:

const jsdom = require("jsdom");  
const { JSDOM } = jsdom;  
const dom = new JSDOM(`
Hello world
`);   console.log(dom.window.document.querySelector("p").textContent); // "Hello world"  
Читати далі

Socket-IO для початківців 🔌

  • Socket-IO: Socket.IO — це бібліотека з відкритим кодом, крос-платформенний інструмент, який забезпечує двосторонню комунікацію між клієнтом і сервером на основі подій.

Навіщо потрібен Socket-IO?

  • Традиційна модель клієнт-сервер

У традиційній архітектурі клієнт-сервер комунікація відбувається за принципом запит-відповідь. Клієнт надсилає запит серверу, сервер обробляє цей запит і надсилає відповідь. Після цього з'єднання закривається. Ця модель має суттєве обмеження: сервер не може ініціювати комунікацію з клієнтом. Якщо сервер хоче надіслати додаткові дані або оновлення клієнту, він не може цього зробити без того, щоб клієнт спочатку не надіслав запит.

pic

  • Приклад: Розглянемо чат-додаток, побудований за традиційною моделлю. Коли користувач (клієнт) надсилає повідомлення, воно потрапляє на
Читати далі

Як витягти текст з зображення в Node.js за допомогою Azure AI Services | Computer Vision

pic

Можливий сценарій

У вас є додаток, в якому необхідно перевіряти особу користувачів. Ця перевірка полягає в завантаженні особистого документа, такого як паспорт, посвідчення водія, медична картка тощо.

Процес валідації даних може бути довгим з боку установи, яка запитує документ (ви чи ваша компанія). Оскільки перевірка цих даних є складною, часто виникають помилки при введенні.
Для прискорення цього процесу можна скористатися OCR.

Але що таке OCR?

Згідно з порталом Azure:

Оптичне розпізнавання символів або OCR також відоме як розпізнавання тексту або витягування тексту. Технології OCR, засновані на машинному навчанні, дозволяють витягувати надрукований або рукописний текст з зображень, таких як афіші,

Читати далі

Шерлок Холмс: Справа про перевантаження Redis під час DDoS-атаки

pic

Обкладинка

Цей день почався спокійно, поки не сталося лихо. Ми отримали сповіщення про DDoS-атаки та атаки методом підбору паролів з випадкових IP-адрес ботів. Наша команда швидко мобілізувалася, щоб нейтралізувати атаки. І ось коли ми подумали, що ситуація під контролем, з’явилося ще одне тривожне повідомлення: наша база даних Redis була на 80% заповнена! Це стало шоком, адже зазвичай розмір нашої Redis БД не перевищує 20 МБ.

Фаза розслідування: Містика з Redis

pic

Перед тим, як звернути увагу на проблему з Redis, ми зосередилися на припиненні DDoS-атак та атак методом підбору паролів. Ми реалізували обмеження запитів для певних кінцевих точок за допомогою … Читати далі

🚀 Знайомтесь з Noder: Спрощуйте паралельну обробку в Node.js без зусиль

pic

Node.js потужний, але коли справа доходить до обчислень, які вимагають значних ресурсів CPU, однопотоковий цикл подій може стати вузьким місцем. А що, як ви зможете без зусиль перенести ці важкі обчислення? Знайомтесь із Noder: легким та інтуїтивно зрозумілим npm пакетом, створеним для використання потужності worker threads та worker pool.

Чи то обробка великих обсягів даних, виконання обчислювально важких функцій або паралельне виконання кількох задач — Noder пропонує безболісне рішення для прискорення ваших Node.js застосунків.

Чому обрати Noder? 🤔

Існує безліч бібліотек для роботи з worker pool. Тож чому саме Noder?

Тому що простота зустрічається з потужністю.
На відміну від … Читати далі

Пет-проєкт №2. Монорепозиторій. Репозиторій на основі пакетів, PNPM Workspace.

В попередньому дописі я розповів, що почав заново займатись своїм пет-проєктом codata. Суть проєкту — перевести код в дані і в подальшому полегшити аналіз цих даних.

В цьому ж дописі розповім детальніше про:

  • початковий сетап репозиторія;
  • чому я віддаю перевагу монорепозиторію і pnpm;

Монорепозиторій. Навіщо ускладнювати?

Спочатку може виникнути питання, а навіщо так ускладнювати? Чому просто не створити проєкт-бібліотеку, чи якусь SPA-шку? Коротка відповідь — це зручніше для мене. Довша відповідь складається з ряду причин, про них нижче.

Простір для експериментів

В рамках монорепи я можу створювати, яку завгодно кількість різнотипних проєктів, ніяк себе не обмежуючи. Якщо хочу SPA — … Читати далі

Будівництво серверів MCP: Частина 2 — Розширення ресурсів за допомогою шаблонів ресурсів

pic

Це зображення було створено за допомогою програми для створення зображень на основі штучного інтелекту.

Цю статтю було написано за допомогою кількох помічників на базі штучного інтелекту.

Це друга частина з чотирьох частин навчального посібника з побудови MCP серверів. В Частині 1 ми створили перший MCP сервер з базовим ресурсом. Тепер ми розширимо можливості нашого сервера за допомогою шаблонів ресурсів. Код у цьому пості передбачає, що ви продовжуєте з того місця, де ми зупинились.

Що таке шаблони ресурсів?

Шаблони ресурсів дозволяють визначати динамічні ресурси за допомогою шаблонів URI. На відміну від статичних ресурсів, що мають фіксовані URI, шаблони … Читати далі

Оволодіння типом `never` у TypeScript: Використання та основні відмінності

pic

Фото від Nangialai Stoman на Unsplash

Чи колись ви дивилися на визначення типу TypeScript і відчували повне здивування? Я точно так відчував. Коли я вперше зустрів таке, як const createToken: (variables: never, options?: Options | undefined) => void, я був вражений. Як можна взагалі передати вхідні дані, коли очікуваний тип — це never? Здавалося, що це непосильне завдання! Це початкове здивування привело мене до глибшого розуміння типу never, і я впевнений, що багато розробників TypeScript можуть відчути те саме.

Тип never у TypeScript — це важливий інструмент для вираження неможливих станів і забезпечення типобезпеки. Він представляє тип, … Читати далі

Основи SQL з PostgreSQL

Цей документ розглядає основні операції CRUD у SQL, спеціально адаптовані для PostgreSQL. CRUD — це абревіатура для Create, Read, Update, Delete, що є основними операціями для управління даними в базі даних. Ці операції є базовими елементами будь-якої системи управління базами даних, дозволяючи користувачам ефективно зберігати, отримувати, змінювати та видаляти дані.

pic

1. Що таке CRUD?

CRUD — це акронім для чотирьох основних операцій, що виконуються з таблицею бази даних:

  • Create: Додавання нових записів до таблиці за допомогою оператора INSERT.
  • Read: Отримання даних з таблиці за допомогою оператора SELECT.
  • Update: Оновлення існуючих записів у таблиці за допомогою оператора UPDATE.
Читати далі