Pull to refresh
@resetmeread⁠-⁠only

Скромный пастух нулей и единиц…

Send message

PostgreSQL Antipatterns: где скаляру в GiST место?

Reading time3 min
Views3.4K

В PostgreSQL есть "волшебный" тип индекса GiST, который позволяет быстро искать разные сложные вещи - от интервалов до массивов и даже реализовывать полнотекстовый поиск.

Про его внутреннее устройство и возможности подробно рассказывал Егор Рогов, а я в статье "PostgreSQL Antipatterns: работаем с отрезками в «кровавом энтерпрайзе»" показал, как с помощью расширения btree_gist он позволяет решать типовые бизнес-задачи.

Одной из таких задач является поиск отрезков внутри сегмента со скалярным идентификатором. И если для btree очевидно, что поле с меньшей кардинальностью должно стоять в индексе раньше - индекс от этого и меньше и быстрее (см. "DBA: находим бесполезные индексы"), то так ли это однозначно для btree_gist?

Читать далее

Как Яндекс научился распознавать, что написано в рукописных архивах

Reading time11 min
Views37K

Привет, Хабр. Меня зовут Саша, в прошлый раз я рассказывал сообществу про поиск организаций в Яндексе. В этот раз мы вновь поговорим про поиск, но уже совершенно другого рода. Сегодня расскажем про «Поиск по архивам». Этот проект вырос из моего личного интереса к истокам семьи, но в итоге (хочется верить!) поможет тысячам других таких же пользователей чуть больше узнать о своих корнях.

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

Чтобы упростить этот процесс, мы научились превращать в текст сканы архивных документов. Основная сложность этой задачки заключалась в том, что текст в архивах написан от руки. Машинописный текст всё-таки создан по предсказуемым правилам: автор использует набор уже известных шрифтов. А рукописный текст уникальный, потому что каждый человек пишет по-своему. Кроме того, архивные документы написаны не просто от руки, но и на дореволюционном русском языке, который существенно отличается от современного. 

Решению этой задачи мы и посвятим историю. А поможет мне с ней Таня @miryable из команды, которая уже много лет развивает в Яндексе технологию оптического распознавания символов (OCR).

Читать далее

Как создать эвристический алгоритм онлайн-мастеринга и получить предупреждение от RIAA

Level of difficultyMedium
Reading time24 min
Views17K

Добрый день, меня зовут Сергей. В своей статье я бы хотел осветить тему аудио мастеринга, а именно: автоматизированного онлайн-мастеринга музыки.

Я расскажу о своём пути от продюсера психоделического транса до мейнтейнера самой популярной open source библиотеки автоматизированного референсного мастеринга на Python, получившей предупреждение от американской ассоциации звукозаписывающих компаний RIAA.

Читать далее

А давайте… по ГОСТу

Reading time3 min
Views11K

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

Хотелось бы вспомнить одну из парадигм Agile " Работающий продукт важнее исчерпывающей документации ", но в данном случае это не наша история, поэтому сегодня поговорим немного о ГОСТах.

Стоит сделать небольшое лирическое отступление и начать с формального определения:

Читать далее

Как писать конспекты на компьютере быстрее, чем от руки, при помощи VS Code

Reading time5 min
Views55K

Привет всем!

В этой статье говорится о том, как я конспектирую на компьютере, а точнее описываются способы ускорения набора LaTeX-овского текста.

Читать далее

Задача коммивояжера (TSP) точное решение — метод целочисленного линейного программирования (Integer programming)

Reading time20 min
Views25K

Дочитав эту статью до конца, вы сможете решать точно задачу коммивояжёра на сотню элементов за считанные секунды!

Заинтригованы? Тогда, добро пожаловать под кат.

Читать далее

Тестирование автоматизации Ansible с помощью Molecule Часть 1

Reading time9 min
Views16K

Molecule – это проект Red Hat, призванный помочь в тестировании ролей Ansible. Он обеспечивает поддержку тестирования с различными операционными системами и дистрибуями. Molecule также является весьма разноплановым проектом, позволяющим использовать множество провайдеров виртуализации, тестовых фреймворков и тестовых сценариев. Такой подход обеспечивает последовательность в разработке и обслуживании ролей.

В статье много информации об Ansible. Давайте посмотрим, как тестировать роли с помощью Molecule, Docker и Testinfra.

Читать далее

Пишем драйвер ядра Linux для неизвестного USB-устройства

Reading time15 min
Views19K
image

В этой статье объяснен весь процесс, на выходе которого получается рабочий драйвер ядра Linux для недокументированного USB-устройства. Выполнив обратную разработку коммуникационного протокола USB, я покажу архитектуру драйвера ядра для USB. Кроме драйвера ядра в этой статье будет рассказано о простом инструменте для пользовательского пространства; при помощи этого инструмента можно управлять таким устройством. Конечно, придется углубиться в подробности, касающиеся конкретного прибора, но не сомневайтесь – описанный процесс с тем же успехом применим и к другим USB-устройствам.
Читать дальше →

Polars: библиотека для работы с данными, написанная на RUST

Reading time6 min
Views26K

Настоящий хреновый программист всегда находится на гребне волны новых технологий. Зачем ему это? Чтобы при случае можно было повыделоваться багажом своих знаний, и заработать немного очков уважения в окружении своих менее осведомлённых коллег. Stay toxic, brothers. Я с вами.

Когда-то давно мне нужно было обработать чуть больше тысячи жирнейших excel-таблиц и сделать это нужно было быстро. Буквально за час я вкатился в Python и Pandas, а за второй час выполнил все необходимые манипуляции. Так я и познакомился с этими двумя. С тех самых пор приходилось выполнять самые разные задачи по анализу данных и всё бы ничего, но хотелось бы, чтобы Pandas работал побыстрее. Оказывается хотелось не одному мне, а целой команде разработчиков, на Rust.

Как и полагается, всё что на Rust то Blazingly-Fast, и Polars не стала исключением. За счёт чего Polars быстрее Pandas? Что это за библиотека и стоит ли на неё переходить? Давайте попробуем разобраться в этой статье.

Читать далее

Бритва Оккама и другие острые бритвы познания — как использовать в IT и в жизни

Reading time5 min
Views29K

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

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

Читать далее

Нужны ли изменения в работе команды? Рассчитываем ответ по формуле Глейчера

Reading time8 min
Views5.2K

Старая мудрость гласит: «Работает — не трогай»‎. Но что делать, если результат работы ухудшается или появились новые вводные? Например, рабочая нагрузка увеличилась, а людей в команде столько же. Вы хотите что-то поменять, но не знаете, как это сделать, не навлекая на себя гнев сотрудников. Да и вообще, так ли нужно что-то менять?

Под катом рассказываем, как с помощью формулы Глейчера оценить необходимость изменений в работе и подготовиться к ним. А в комментариях ждем ваши истории — внедряли ли вы изменения сами или, может, стали «жертвой» непродуманных изменений.
Читать дальше →

Слепые капитаны ищут дно: почему российский бизнес – это болото, в котором барахтаются идиоты-«менеджеры»

Reading time12 min
Views144K

Владельцы компаний часто жалуются на сложности ведения бизнеса: людишки уже не те, кредиты дорогие, страна тоже не та. Так ли это на самом деле? Частично да, но есть и другие нюансы. Главная проблема – совокупность негативных факторов: общество зацементировалось и развивается не потому что, а вопреки.

Как часто вас подставляли или динамили разные невменяемые люди на работе? Бывало ли так, что вы орали матом в бессилии и хотели кому-нибудь сломать ноги за эпические фейлы? Сейчас я расскажу о том, почему так всё складывается.

Читать далее

Более 12 лет ставлю цели на год: рассказываю, как и почему этот процесс работает у меня

Reading time13 min
Views39K

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

Читать далее

Для чего нужен CJM?

Reading time5 min
Views14K

Вы уже наверное много слышали про CJM - Customer Journey Map. Давайте не будем открывать Америку, и попробуем разобраться на примерах - почему нужно делать CJM, отслеживать его на пути становления вашего продукта и актуализировать, когда продукт находится на стадии роста.

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

Один из пунктов, почему так происходит - правильно выстроенный и отточенный клиентский путь.

Читать далее

Как распознать синтезированную речь

Reading time5 min
Views7.9K

Привет, Хабр! Меня зовут Елизавета Петрова я Data Scientist и являюсь участником профессионального сообщества NTA. В современном мире технологии синтеза речи и клонирования голоса стремительно развиваются и уже достигли впечатляющих результатов. С 2015 года проводится специальное соревнование ASV Spoofing, на котором ежегодно презентуют новые методы проведения спуфинг-атак (атаки, когда один человек или программа маскируется под другую путем фальсификации данных) с помощью видео-дипфейков и синтеза речи. Существующие речевые системы способны синтезировать речь и тембр голоса, на слух неотличимые от настоящих. Технологии клонирования голоса привлекают всё большее внимание и находят широкое применение в таких сферах, как голосовое управление, робототехника, голосовые ассистенты (например, Siri и Алиса) и т.д. Однако вместе с этим открываются новые возможности для мошенничества. Особенно уязвимы системы, использующие голосовую биометрию для идентификации пользователей: используя синтез речи, мошенники могут получить доступ к аккаунтам и данным пользователей.

Читать далее

Проверка корректности А/Б тестов

Reading time8 min
Views26K

Хабр, привет! Сегодня поговорим о том, что такое корректность статистических критериев в контексте А/Б тестирования. Узнаем, как проверить, является критерий корректным или нет. Разберём пример, в котором тест Стьюдента не работает.

Читать далее

YOLOR — Объяснение статьи и выводы – Углубленный анализ

Reading time20 min
Views3.1K

В последние годы наблюдается огромный прогресс в серии YOLO, в настоящее время в ней используются как модели обнаружения объектов без привязки, так и модели обнаружения объектов на основе привязки. Вместо того, чтобы сосредоточиться исключительно на архитектурных изменениях, YoloR выбирает новый маршрут. Он черпает вдохновение в том, как люди сочетают неявные знания с явными знаниями для решения новых задач. Предлагаемые методы значительно улучшают производительность Обнаружение объектов YoloR модели, в результате которых они будучи на ~88% ?быстрее и лучше (? 57,3% на Набор для тестирования COCO) с минимальными дополнительными затратами.

Читать далее

Распределенные сервисы с применением gRPC

Reading time12 min
Views31K

Часто бывает так, что эффективная коммуникация – один из основных движущих факторов в современных программных системах, даже в мире, живущем по законам микросервисной архитектуры. Технология gRPC может справляться с этими требованиями. В этой статье будут рассмотрены некоторые основы gRPC, а еще мы реализуем первое клиент-серверное приложение с применением .NET. Кроме того, клиент на основе Python демонстрирует, насколько эффективной может быть коммуникация между различными сервисами.

Читать далее

Celery: проясняем неочевидные моменты

Reading time8 min
Views91K

Да, действительно, в этом посте не будет гайда, как поднять Celery в Django. Это статья для тех, кто уже пощупал Celery и хочет погрузиться в детали.

Мотивацией перевести эту статью были следующие вопросы, на которые я не знал ответа: при запуске создается процесс или поток? В какую очередь попадают отложенные задачи с ETA? А какие бывают очереди (спойлер: она не одна)? А в какой момент задача удаляется из очереди? Если я создам задачу с ETA=завтра_в_12:00, она ровно в этот момент и выполнится (спойлер: нет)?

Ответы на все эти вопросы в статье, велком!

Запустить таску

Information

Rating
Does not participate
Registered
Activity