Рубрика «node.js»

Поговорим про микро-оптимизацию. Про, казалось бы, самую безобидную вещь: обычный {}.

[object Object] выглядит почти бесплатной абстракцией. Создал объект, напихал полей в любом порядке, удалил ненужное, передал дальше и забыл. Но, внезапно, одинаковые для тебя объекты могут оказаться разными для V8, порядок присваиваний влияет на машинный код, а “безобидный” delete оставляет после себя совсем не пустое место.

Читать полностью »

Внедрение HTTP-3 задерживается - 1

Сетевой протокол HTTP/3 в разработке с 2016 года, а его транспорт QUIC вышел в 2013-м. На сегодняшний день оба эти стандарта поддерживаются всеми ведущими браузерами (кроме Samsung и Opera Mini) и составляют 32,5% HTTP-запросов на CloudflareЧитать полностью »

Я сделал бота для заметок и задач в Telegram — TG Notion. Недавно добавил общие доски, которые работают прямо в чате. В этой статье расскажу, как это устроено технически, с чем пришлось сильно повозиться и что ещё не готово.

До общих досок бот уже умел личные заметки и задачи. Пользователь заходит, пишет заметку, ставит задачу с чекбоксом — всё как в обычном блокноте, только внутри Telegram. Выглядит примерно так:

Читать полностью »

Под капотом AI Free: три разных способа работы с веб-провайдерами, единый агентный рантайм, память, skills и много кода восстановления после сбоев.


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

Читать полностью »

Зачем все это или «А что, так можно было?»

Использую node.js и php в разработке. А это означает, что постоянно приходится скачивать пакеты (npm, composer). И речь не только об объеме трафика, который каждый раз нужно гонять по сети, но и времени ожидания загрузки, синхронизации пакетов между рабочей станцией и ноутбуком. Ещё о том, что делать, когда интернет неожиданно заканчивается или оказываешься там, где его совсем нет или скорость оставляет желать лучшего.

Читать полностью »

Как я случайно создал голосовой чат, который невозможно прослушать - 1

Сразу разочарую любителей громких фраз: я не делал «защищённый мессенджер», я не думал ни про слежку, ни про прослушку, ни про приватность вообще.

Читать полностью »

Разбор архитектуры локального клиента для агрегации вакансий, который я, senior backend-инженер, написал для себя — потому что искать работу через классические job-борды оказалось неожиданно трудоёмкой инженерной задачей. Внутри: фронтенд без сборки и без virtual DOM, маршрутизация с управляемым фокусом, клиентский API-слой поверх SSE, двухфазный сканер с детерминированным завершением, SSRF-envelope на DNS-pinning, локализация на 13 локалей с RTL, запуск всей системы одной командой и тестовая пирамида из 1543 кейсов. Отдельно — метод разработки: Spec-Driven Development и закрепление инвариантов тестами.

Проект: Читать полностью »

Спасибо Фрэнку Герберту, что воспитал поколение хакеров

Спасибо Фрэнку Герберту, что воспитал поколение хакеров

npm installЧитать полностью »

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

import { test, expect } from "@playwright/test";

test("basic test", async ({ page }) => {
  await page.goto("https://playwright.dev/");

  await expect(page).toHaveTitle(/Playwright/);
});

В этом примере мы запрашиваем у Playwright фикстуру pageЧитать полностью »

Если ваша CMS или CRM умеет отправлять email-копию о новом заказе на произвольный адрес — этот гайд для вас. InSales, RetailCRM, МойСклад, WooCommerce, Битрикс, самописная система — без разницы. Инфраструктура одна и та же. Ссылка на гитхаб с полный мануалом по установке на русском в конце статьи.

Поводом написать стало то, что неделю назад приложение InSales было удалено из App Store и пуши о заказах пропали сразу. Таким образом мы пропустили несколько заказов, но благо они не сорвались полностью, хотя небольшой неприятный осадок остался.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js