Pull to refresh
4
0
Владислав Родин @rodinvv

Java team lead

Send message

Автономный картографический сервер с питанием от USB

Level of difficultyEasy
Reading time11 min
Views4.9K

Представьте себе: вы только что добрались до начала тропы, за многие километры от цивилизации, а приложение с картами на вашем смартфоне решило, что самое время уйти в оффлайн-режим. Статус приложения? Отключено. Обновления? Забудьте об этом. Память? Заполнена. Добро пожаловать на дикую природу, где ваш телефон потерян больше, чем вы сами.

Здесь на помощь приходит Backcountry Beacon — устройство с открытым исходным кодом, которое не зависит от Wi-Fi. В него предустановлены детализированные топографические карты USGS, которые не требуют обновлений; он оснащён надёжным GPS, точно определяющим ваше местоположение; а ещё он работает как простой файловый сервер, где можно хранить всё, что может понадобиться в походе, — будь то руководства по узлам, справочники растений или аудиокниги.

Читать далее
Total votes 23: ↑22 and ↓1+28
Comments25

Всё, что вы хотели знать о Django Channels

Reading time10 min
Views1.8K

Приветствую, друзья!

Когда я впервые начал работать с Django, меня всё устраивало, за исключением одного момента: как сделать так, чтобы приложение могло общаться с пользователем в реальном времени? Веб-сокеты, уведомления, асинхронные запросы — казалось, это точно не про чистый Django. Но затем я наткнулся на Django Channels, и многое изменилось. Channels позволили мне сделать приложение асинхронным, добавить поддержку веб-сокетов и превратить его во что-то гораздо более крутое.

В этой статье я расскажу, как работать с Django Channels.

Читать далее
Total votes 14: ↑14 and ↓0+19
Comments0

Scrum или Kanban, что выбрать для вашей команды?

Reading time5 min
Views1.8K

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

Читать далее
Total votes 16: ↑12 and ↓4+13
Comments3

Как и зачем использовать Template Method в C#

Level of difficultyEasy
Reading time7 min
Views5K

Template Method (он же «Шаблонный метод») — это паттерн проектирования, который определяет скелет алгоритма в методе, оставляя определенные шаги подклассам. Проще говоря, есть базовый алгоритм, но мы можно менять детали, переопределяя части этого алгоритма в наследниках.

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

Template Method позволяет создать базовую структуру этих шагов и менять конкретные реализации без изменения самой структуры. В этой статье мы рассмотрим, как реализовать этот паттерн на C#.

Читать далее
Total votes 15: ↑13 and ↓2+16
Comments45

Sidecar на Go: позволь другому заниматься твоими проблемами

Level of difficultyEasy
Reading time4 min
Views1.9K

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

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

Сегодня мы рассмотрим реализацию Sidecar на Golang.

Читать далее
Total votes 18: ↑17 and ↓1+21
Comments1

Apache Spark: настройка и отладка

Level of difficultyEasy
Reading time7 min
Views2.2K

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

Однако, при серьезном использовании любой системы рано или поздно возникает необходимость в гибкой настройке. А необходимость в отладке как правило возникает гораздо раньше. Apache Spark в этом плане не является исключением и в этой статье мы поговорим о механизмах настройки Spark и некоторых параметрах, которые пользователям может понадобиться отрегулировать под свои нужды. Также мы рассмотрим механизмы журналирования.

Читать далее
Total votes 15: ↑10 and ↓5+12
Comments0

Регулярные выражения в SQL

Reading time6 min
Views14K

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

Представьте, что вам нужно найти иголку в стоге сена, но стог — это ваша БД, а иголка — данные со сложным шаблоном. Деофлтные операторы LIKE и IN тут не помогут — слишком уж они прямолинейны. Но зато здесь отлично зайдут регулярные выражения, которые позволяют выполнять сложные поиски и преобразования строк.

Читать далее
Total votes 27: ↑26 and ↓1+30
Comments11

Обзор библиотеки LIBMF для Rust: факторизация матриц

Level of difficultyEasy
Reading time6 min
Views1.1K

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

Сегодня поговорим о библиотеке libmf — одном из лучших инструментов для факторизации матриц на Rust. libmf используется для задач машинного обучения: построение рекомендаций, сжатие данных и уменьшение размерности.

Устанавливается она через Cargo легко и просто.

Читать далее
Total votes 14: ↑12 and ↓2+15
Comments0

База, которую нужно знать про JSON Schema

Level of difficultyEasy
Reading time7 min
Views15K

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

Сегодня мы рассмотрим одну из тем, которая, как ни странно, остаётся недооценённой — JSON Schema. Если ты аналитик (или хочешь им быть) и в твоей работе часто мелькают JSON-файлы, то наверняка знаешь, как сложно порой бывает держать всё это под контролем. В этой статье мы разберём всё, что тебе нужно знать про JSON Schema.

Читать далее
Total votes 34: ↑30 and ↓4+36
Comments10

Как поднять свой WebSocket сервер на Node.js: основы

Level of difficultyEasy
Reading time4 min
Views3.2K

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

Сегодня создадим свой WebSocket сервер на Node.js. Это тот самый протокол, который позволяет отправлять и принимать данные в реальном времени без перекладывания на HTTP. Для этого мы будем использовать библиотеку ws.

Читать далее
Total votes 24: ↑15 and ↓9+12
Comments7

Bukva: алфавит русского жестового языка

Level of difficultyEasy
Reading time7 min
Views4.2K

Всем привет!

Недавно мы анонсировали словарь русского жестового языка (РЖЯ), а в этой статье поговорим про задачу распознавания алфавита РЖЯ, именуемого также дактильным алфавитом или дактилем. Предлагаем ознакомиться с нашей работой, в которой мы представим новый датасет Bukva — первый полноценный видеонабор данных для распознавания дактильной азбуки. Он содержит 3757 видеороликов с более чем 101 видео для каждой буквы дактиля, включая не только статические, но и динамические жесты. В статье расскажем, как мы собрали датасет для решения задачи и какие модели обучили в качестве бейзлайнов. Все данные и код открыты и доступны в репозитории команды.

Читать далее
Total votes 51: ↑49 and ↓2+61
Comments6

LLM агент для работы с Google Spreadsheets

Level of difficultyMedium
Reading time17 min
Views1.3K

Салют, Хабр! На связи Арсенин Никита из команды R&D в SberDevices. Сегодня я хочу рассказать про одно из наших направлений исследований — разработку агентских систем на основе больших языковых моделей.

В этой статье мы постараемся сделать обзорный тур по ключевым технологическим аспектам проектирования и реализации LLM‑агентов, рассмотрим способы работы связок LLM и функций, некоторые компоненты мультиагентных систем, методы контролируемой генерации и повышения робастности. Кроме того, представим и подробно опишем архитектуру и способ построения одного из прототипов LLM‑агентов, нацеленных на выполнение задач в Google SpreadSheets.

Наш LLM‑агент был реализован при помощи SDK GigaChain и GigaGraph, адаптированными под работу с GigaChat. Вы можете посмотреть на итоговую версию Google SpreadSheets агента в репозитории или начать разработку своего агента с вводного туториала.

Читать далее
Total votes 14: ↑14 and ↓0+21
Comments3

OpenCV: компьютерное зрение на Python

Reading time6 min
Views6.5K

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

В этой статье мы рассмотрим несколько примеров работы с компьютерным зрением с помощью бесплатной библиотеки OpenCV.

Читать далее
Total votes 10: ↑9 and ↓1+11
Comments5

Усиление PostgreSQL с помощью PL/Python

Level of difficultyEasy
Reading time4 min
Views3.2K

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

Сегодня мы прокачаем PostgreSQL, добавив в него Python. А именно — PL/Python. Это расширение позволяет писать функции на Python прямо внутри базы данных. Лично для меня это как объединение двух лучших миров: любимого PostgreSQL и могучего Python.

PL/Python — это про то, когда стандартного SQL мало. Когда надо сделать что-то действительно интересное: сложные расчеты, массивы данных, или интеграция с аналитикой прямо в базе. А самое крутое — можно тянуть любые Python-библиотеки.

Для начала нужно просто установить расширение в PostgreSQL.

Читать далее
Total votes 11: ↑9 and ↓2+10
Comments6

Повышение эффективности воронки продаж. Автоматизация реактивации клиентов. Ч.2

Reading time5 min
Views540

Привет, Хабр. В этой статье мы продолжим разбираться с автоматизацией воронки продаж. Как писал в прошлой статье, за 7 лет работы с продажами я выделил топ-3 инструмента автоматизации: реактивация отказов, реактивация клиентов и контрольные точки на этапах продаж.

С реактивацией отказов мы разбирались в прошлой статье, а сейчас перейдем ко второму пункту — реактивации клиентов.

Читать далее
Total votes 10: ↑6 and ↓4+5
Comments0

Как научить LLM понимать видео? Обзор подходов

Level of difficultyMedium
Reading time9 min
Views3.6K

Всем привет! Сегодня поговорим про задачу понимания видео и эволюцию подходов к обучению мультимодальных больших языковых моделей для этой задачи.

Video Understanding — направление на стыке компьютерного зрения (CV) и обработки естественного языка (NLP), включающее в себя множество разнообразных задач на восприятие и интерпретацию видео. От базового распознавания предметов и объектов в видеоряде, локализации объектов в пространстве или во времени, подсчета предметов и людей, до генерации кратких или развернутых описаний видео и задач на рассуждения о причинах происходящего на видео, требующих глубокого понимания мира — от человеческой психологии до физических свойств объектов. 

Читать далее
Total votes 23: ↑23 and ↓0+34
Comments0

Перфоратор не помеха. Наслаждаемся «чистым» звуком с денойзером от SaluteJazz

Level of difficultyMedium
Reading time14 min
Views4.3K

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

Меня зовут Артем Соколов. Я и мои коллеги занимаемся направлением улучшения звука в команде SaluteSpeech. Мы в SberDevices разрабатываем и развиваем целую линейку В2В‑решений — от речевых сервисов до видеоконференцсвязи. И во всех наших продуктах стремимся использовать собственные технологии.

Один из флагманских продуктов, который мы создаём, — сервис для видеоконференций SaluteJazz. В первую очередь он ориентирован на бизнес‑коммуникации, которые предполагают высокое качество звука без посторонних шумов. За достаточно короткий срок мы подготовили и встроили в него собственный «шумодав» (он же денойзер). Про него и пойдет речь в этой статье.

Читать далее
Total votes 20: ↑18 and ↓2+23
Comments14

Из чего состоит безопасность современных приложений

Reading time7 min
Views1.4K

В сети можно встретить различные трактования понятия AppSec (Application Security). И в этой статье мы попробуем разобраться с тем, что же должно входить в AppSec и какие навыки требуются специалистам, работающим в данной отрасли и какие инструменты они должны применять.

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

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

Рассмотрим более подробно составные части методологии AppSec.

Читать далее
Total votes 11: ↑8 and ↓3+9
Comments4

Darts: тестируем временные ряды с нуля

Reading time5 min
Views1.4K

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

Если вы когда-либо имели дело с временными рядами, то, вероятно, слышали о Darts. А для тех, кто ещё в танке: Darts — это мощный инструмент, который поддерживает мультиварибельные временные ряды и легко интегрируется с PyTorch и TensorFlow.

Зачем же тестировать временные ряды, когда в классическом машинном обучении всё так просто с кросс-валидацией? Временные ряды обладают своей изюминкой: они подвержены временным зависимостям, сезонности, трендам и другим радостям жизни. Так что, если вы хотите, чтобы ваши модели не провалились на тестах, время разобраться с их особенностями!

Читать далее
Total votes 11: ↑9 and ↓2+11
Comments3

Машинное обучение и криптография: знакомимся с CipherGAN

Level of difficultyEasy
Reading time7 min
Views1.3K

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

Читать далее
Total votes 10: ↑10 and ↓0+14
Comments0
1
23 ...

Information

Rating
Does not participate
Works in
Registered
Activity