Обновить

Разработка

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

Как я нашел криптографический бэкдор в крупнейшем даркнет-рынке: разбираем кражу $12 миллионов через уязвимость ECDSA

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

Криптографическая уязвимость Evolution Marketplace: Анализ кражи Исследование безопасности ECDSA подписей крупнейшего даркнет-рынка

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

How to make 3D Skeletal animation system — custom overview

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

Свой ControlValueAccessor в Angular

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

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

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

Про ControlValueAccessor

Делаем самые лучшие фото для документов

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

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

Делали ли вы электронную визу в Индию? А, может, в Южную Корею? Или подавались на лотерею Green Card в США? Если да, то вы точно знаете, что для заявки на все эти документы надо прикрепить фотографию определённого размера с целым набором требований...

А такое ну просто необходимо автоматизировать!

И, как можно догадаться, сайтов для автоматизации фотографий на документы просто куча. Только вот есть одна проблема: все эти сайты хотят много денег - от 5 до 12 долларов за приведение фото к нужным требованиям.

Терпеть такое я, конечно же, не стал и написал своего бота в Телеграме, который делает это всё бесплатно.

Подробности под катом!

Читать далее

Сверхтьюринговые вычисления и гиперкомпьютеры. Тезис Чёрча-Тьюринга как универсальный предел познания

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

Как говорил Альберт Эйнштейн, «наиболее необъяснимое во Вселенной – это то, что она объяснима». Но что делает Вселенную познаваемой? Почему работает научный метод? Как вообще прямоходящие кожаные мешки с обезьяньим мозгом могут что-либо узнать о физической реальности, если они всю жизнь проводят в виртуальной реальности своего сознания? Ведь всё, что нам известно о мире – продукты нашего разума. Не означает ли это, что мы никогда не сможем узнать, какова реальность на самом деле? Что мы вообще знаем, если Вселенная на 95% состоит из неведомых тёмных субстанций? Откуда мы знаем, что законы физики универсальны и постижимы человеческим разумом? Где гарантия, что законы физики изотропны в пространстве и однородны во времени? Может, они варьируются от места к месту, изменялись в прошлом или изменятся в будущем? Существует ли вычислительно более мощный компьютер, чем машина Тьюринга? Вычислима ли каждая физическая система? Является ли сама Вселенная вычислительной машиной? Каковы фундаментальные физические и логические ограничения на то, что может быть вычислено и постигнуто? Есть ли вычислительный барьер, который невозможно преодолеть, независимо от того, насколько далеко и какими способами развиваются компьютеры? Или новые типы оборудования, основанные на квантовых, релятивистских или квантово-гравитационных явлениях, могут привести к принципиально новым вычислительным парадигмам и сделать невычислимое вычислимым? В этой статье мы погрузимся в глубины теоретической информатики, чтобы выяснить, каковы фундаментальные пределы вычислимости и возможны ли в нашей Вселенной гиперкомпьютеры.

Читать далее

Лидерство в тестировании: управление своей карьерой

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

В условиях стремительных перемен в ИТ‑сфере специалистам по тестированию необходимо быть гибкими, осваивать новые подходы и непрерывно развивать лидерские и коммуникативные навыки. Это помогает оставаться конкурентоспособными вне зависимости от технологий.

Читать далее

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

Архитектура ИТ решений. Часть 4. Архитектура приложений. 4.1. Область разработки прикладных систем

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

В предыдущей части мы обсудили общие аспекты ИТ Архитектуры, и подробно затронули такой ее слой, как архитектура Данных, которая охватывает все многообразие бизнес-информации предприятия, знания о потоках ее распределения, сборе, обработке и использовании, представляемой в виде различных моделей данных.

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

Архитектура прикладных решений (ESA –Enterprise Solution Architecture) — это организационный дизайн всего программного приложения, включая все подкомпоненты и внешние приложения, интерфейсы для их взаимодействия, а также их поведения в рамках сотрудничества структурных элементов.

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

Потому для упрощения восприятия, как правило, разделяют две основные области ее применимости:

Читать далее

Когда ваш ИИ-браузер становится вашим врагом: катастрофа безопасности Comet. Мнение колумниста Venture Beat

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

Помните времена, когда браузеры были простыми? Нажимаешь на ссылку — страница загружается, может, заполняешь форму, и всё. Теперь ситуация изменилась: ИИ-браузеры вроде Comet от Perplexity обещают сделать всё за вас — кликать, печатать, думать и даже выбирать.

Но вот неожиданный поворот: этот «умный» ассистент, который помогает вам в интернете, может выполнять приказы самих сайтов, от которых должен вас защищать. Недавний провал безопасности Comet — не просто позорный случай, а учебник по тому, как не нужно строить ИИ-продукты.

Читать далее

Длинное мышление против жёстких пайплайнов: как DeepAgent превращает рассуждение в действие

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

Почему ИИ-агенты в реальных задачах за пределами академических экспериментов до сих пор часто наступают на хорошо знакомые грабли: путаются в деталях, не удерживают цель при длинных рассуждениях и теряют контекст использования инструментов? 

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

В этом обзоре: что меняется в поведении агента, когда у него появляется возможность связанно использовать различные инструменты на протяжении всей задачи, какие методы используются и как это приближает нас к по-настоящему автономному ИИ.

Читать далее

BDD: Как заставить тесты говорить на одном языке с бизнесом (и перестать платить за недопонимание)

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

Привет! Меня зовут Анатолий, я ведущий разработчик в ITFB Group, и сегодня я хочу рассказать о том, как можно превратить скучные тесты в главного специалиста по продукту.

Знакомо: ваши JUnit-тесты проходят, CI/CD зелёный, все довольны. Но тут приходит бизнес-аналитик и спрашивает: "А этот сценарий проверяет, что будет, если клиент с рейтингом 700 запросит 10 миллионов?"

Вы начинаете лихорадочно копаться в коде, пытаясь найти тот самый @Test... А что если бы ответ на этот вопрос лежал не в глубинах Java-кода, а в красивом, читаемом файле, который понятен всем — от тимлида до заказчика?

Читать далее

Зачем компаниям платформенный подход и как он возникает даже без отдельной команды

Время на прочтение13 мин
Количество просмотров961

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

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

Читать далее

Градиентный спуск: как «слепой в лабиринте» находит выход в миллиардном пространстве — и почему это сердце любого ML

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

Пошаговый разбор с метафорами, формулами и лайфхаками, которые спасут ваш fit()

Привет, хабровчане! В мире ML градиентный спуск это двигатель внутреннего сгорания: он везде, он работает, но мало кто заглядывает под капот, а ведь именно он превращает случайные веса в модель, которая угадывает котиков, переводит тексты и генерирует картинки.

Вы запускаете model.fit() - и через 100 эпох у вас есть результат, но как именно нейросеть «находит выход» из хаоса параметров? Почему иногда она перепрыгивает минимум, а иногда зависает в тупике? И как настроить learning_rate, чтобы не ждать до пенсии?

Полный разбор с нуля, с формулами и примерами. Давайте разберём по полочкам, чтобы было понятно даже новичку.

Читать далее

Файловые дескрипторы 0, 1, 2: полное руководство по работе с потоками

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

Привет, Хабр! Конструкции вроде 2>&1 и &> встречаются повсюду — в мануалах, скриптах, инструкциях. Их используют постоянно, но редко понимают до конца. Почему ошибки продолжают появляться в терминале, хотя, казалось бы, должны уходить в файл? Почему конвейер передаёт только часть вывода?

В статье разберём всё от базового синтаксиса до работы с tee и /dev/null - каждая часть будет разобрана и показана на практических примерах.

Читать далее