Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 33 min ago

ORM в Node.js — когда от него больше вреда чем пользы. Почему вам, не нужен дополнительный абстрактный слой

Wed, 10/29/2025 - 10:30

Object-Relational Mapping (ORM) — технология, призванная «поженить» реляционную природу SQL-баз (PostgreSQL, MySQL, SQLite и т.п.) с объектной моделью языков программирования. Она настолько популярна, что её пытаются реализовать даже в необъектных языках — например, в Go или Erlang.

Если в Java без ORM действительно неудобно, то в экосистеме Node.js (и TypeScript в частности) ситуация принципиально иная. И ORM здесь — зачастую избыточная абстракция. В большинстве случаев рациональнее обойтись компактным SQL-билдером который сильно упрощает построение запросов, оставляя над ними полный контроль, и который совсем не занимается управлением объектами. Почему в Node.js ORM почти не даёт преимуществ...

Читать далее

IT-сектор после перегрева, часть 2: наплыв нейросетей, бесконечные собеседования и конфликт интересов

Wed, 10/29/2025 - 10:23

В первой части этого материала мы объясняли, что IT-рынок не умер — он перестраивается. Что за громкими заголовками про «массовые увольнения» и «схлопнувшийся пузырь» скрывается не катастрофа, а «нормализация» и «взросление отрасли». 

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

Читать далее

Как мы перестали хранить Pydantic в JSON и в 7 раз сократили расход памяти в Redis

Wed, 10/29/2025 - 02:21

У нас был большой продакшен-сервис с ~10M MAU, где Redis использовался как основное хранилище состояния пользователей. Все данные лежали в нём в виде JSON-сериализованных Pydantic-моделей. Это выглядело удобно, пока не стало больно.

На определённом этапе мы выросли до Redis Cluster из пяти нод – и он всё равно задыхался по памяти. JSON-объекты раздувались в разы относительно полезных данных, и мы платили за тонны пустоты — буквально деньгами и деградацией.

Я посчитал сколько весят реально полезные данные и получил цифру, от которой понял, что так жить больше нельзя.

Читать далее

ChatGPT: как пользоваться нейросетью в России

Wed, 10/29/2025 - 01:55

OpenAI официально ограничила доступ для российских пользователей, но это не значит, что дорога к передовым технологиям искусственного интеллекта для нас закрыта. Напротив, сегодня получить доступ к ChatGPT 5 стало даже проще, чем когда-либо — без необходимости искать стабильный VPN или заводить зарубежные карты.

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

Читать далее

«Манускрипт. Распознать нельзя забыть: как мы научили нейросеть читать рукописи XIX века»

Wed, 10/29/2025 - 01:08

Manuscript OCR — открытая нейросеть для чтения рукописей XIX века

Мы обучили свою OCR-модель распознавать дореформенную кириллицу, нестандартные почерки и сложные сканы. Всё — на собственных данных, с нуля. В статье — как мы это сделали и ссылки на репозиторий с кодом.

Открыть рукопись

How to make 3D Skeletal animation system — custom overview

Wed, 10/29/2025 - 00:14

Всем привет! Сегодня на обзоре Скелетная анимационная система, её организация и упорядочивание.

Скелетная анимация в 3D - это инструмент для лучшего погружения в повествование.

Часто ли вам приходилось задаваться вопросом: как сделать скелетную систему для 3D? Как организовать данные, как удобнее? Возможно, есть какие-то желания, которые при реализации хотелось бы учесть. Именно таким вопросом я задался, каким-то вечером. И так я начал изучать, что и как сделать. Но всё глубже погружаясь в какие-то туториалы, я обращал внимание на то, как организован код, и всё ускользало, как сквозь пальцы. Казалось бы, вот код, но он как бисер, рассыпан по многочисленным файликам какого-то обзорщика. Так же в какой-то момент, я уже точно знал, как я хочу, чтобы выглядел код, какой мне бы хотелось. Конечно, не совсем так. Узнал о том, какой я хочу код, после некоторых тестов... В общем, предлагаю взглянуть на то, как я смог реализовать анимационную систему в моём стиле. Добро пожаловать в эту статью, кому интересно рассмотреть какие-то нюансы с первых строк кода.

Читать далее

Что еще могёт курсор

Tue, 10/28/2025 - 23:45

Началось все весьма прозаично, клиент позвонить к нам в техподдержку и спросил «а как бы мне поставить ваш софт но в другую схему БД». Собственно вопрос проще некуда — мы писали на спринге, а значит лезем в application.yml и ставим схему. Но, клиент не из тупых и уже это попробовал — не сработало.

Начинаем разбираться что сломалось и кто виноват. Первым делом ДевОпс повторяет кульбиты клиента и выдает простой вердикт: «В 151 миграции лажа». Я открываю и: «батюшки родный, да это же лосенок явное указание схемы!»

Читать далее

Практический гайд по акциям и скидкам — настраиваем промо для хостинга

Tue, 10/28/2025 - 23:36

Хостинг — рынок конкурентный. Чтобы выделиться, нужно не только предлагать пользователям качественные сервисы, но и грамотно их продвигать. BILLmanager предоставляет провайдерам целый арсенал маркетинговых инструментов: от CRM с сегментацией клиентов до email-рассылок, реферальных программ и рекламных механизмов.

Но сегодня поговорим об одном из ключевых маркетинговых инструментов платформы — скидках и акциях. Функциональные возможности BILLmanager позволяют запускать промоакции любой сложности: от простых скидок на тарифы до многоуровневых акций с промокодами и сегментированием аудитории. Причем все это — без сторонних сервисов и интеграции, прямо в панели управления.

Читать далее

Звёзды у нас в голове. О роли астроцитов в работе нейронных сетей

Tue, 10/28/2025 - 23:07

Продолжая тему, затронутую в статье об искусственном интеллекте и здравом смысле, хочу затронуть два принципиальных, но зачастую упускаемых из виду отличия мозга от искусственной нейронной сети. Во-первых, нейронная сеть состоит исключительно из «нейронов», а мозг – из нейронов и глиальных клеток. Оставлю здесь ссылку на интересную обзорную статью о глии, которую написала на Хабре уважаемая Василиса Белокопытова @vasilisa_b. До недавнего времени считалось, что глиальные клетки играют в мозге сугубо вспомогательную роль и функционально подобны оболочке проводов, передающих сигнал. Однако свежие исследования, в том числе, с применением искусственных нейронных сетей, привлекают всё более серьёзное внимание к астроцитам. Это небольшие звёздчатые клетки в составе глии. Они взаимодействуют как с нейронами, так и с синапсами, и вопрос о том, могут ли они передавать нейронные импульсы, рассматривался на сайте N+1 ещё около двух лет назад. Подробнее об этом — под катом.

Читать далее

Свой ControlValueAccessor в Angular

Tue, 10/28/2025 - 22:14

Привет, Хабр!

Каждый, работавший с формами в Angular, рано или поздно сталкивается с ситуацией, когда стандартных полей ввода недостаточно. Хочется сделать что-то свое: например, красивый рейтинг в виде звёздочек, компонент для ввода телефона с маской или даже кастомный текстовый редактор на базе contenteditable. Однако просто создать компонент недостаточно, Angular Forms не поймет, как работать с вашим контролом без дополнительных вмешательств.

Про ControlValueAccessor

Who's online

There are currently 1 user and 8 guests online.