Обновить
206.73

Алгоритмы *

Все об алгоритмах

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

Единая система мониторинга и оповещений BI: правда или вымысел?

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


Привет, Хабр! Мы, Юлия Лузганова HiJulia и Наталия Прудникова balzaant, аналитики в команде Business Intelligence Delivery Club. Наш департамент аналитики стремительно вырос за последние полтора года, сейчас в нем 50 человек и десятки различных проектов. Мы в группе BI-аналитики помогаем пользователям получать чистые и актуальные данные. Например, количество заказов, работающие рестораны и время доставки заказов — одни из главных сущностей. Наша основная задача — своевременная и бесперебойная поставка данных в аналитическое хранилище и их подготовка к дальнейшему использованию. Для этого нам необходимо оперативно выявлять проблемы с загрузкой и обработкой информации.

В этой статье мы хотели бы рассказать о создании мониторинга и системы “near real-time” оповещений. С технической точки зрения реализация простая, а вот нервных клеток разработчиков DWH, BI и пользователей после внедрения сохранено бесконечно много.

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

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

Разбор алгоритмов генерации псевдослучайных чисел

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

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

Читать далее

Задача, которую предлагали разработчикам на собеседованиях в Reddit: разбор и решение от сотрудника компании

Время на прочтение8 мин
Количество просмотров24K
Впервые я столкнулся с техническими собеседованиями еще в 2012 году, когда искал свою первую работу в IT. Я выслушал условия задачи, нацарапал решение на доске, ответил на несколько вопросов и ушел, весь перепачканный черный маркером. В то время я совершенно не представлял, как выглядит весь этот процесс с другой стороны; всё, что мне оставалось – в тревоге ждать результатов и надеяться, что я вписался в неизвестные мне критерии тех, кто проводил собеседование.

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

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

Разбиения чисел и магические шестиугольники

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

Среди свойств разбиений чисел на части можно указать одно, не называемое другими авторами, которое в ряде случаев оказывается весьма полезным. Речь идет о свойстве разбиений числа, закрепляющем за конкретными слагаемыми подмножества позиций (точек) дискретной плоскости, в котором эти слагаемые могут перемещаться, не выходя за его пределы. Например, рассмотрим такую задачу. Имеется 2 спицы длиной 12 ед и 7 шаровых бусин с диаметрами 2,2,2,3,3,4,4 ед и сквозными отверстиями, проходящими через центры бусин. Как распределить и нанизать бусины на спицы, чтобы спицы после вставки их в кольцо с диаметром большим 12 образовали симметричную фигуру?

Читать далее

Интеграция сервиса «Проверки по списку недействительных российских паспортов» или как сжать csv-файл в 38 раз

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

Имеется ежедневно обновляемый архив со списком недействительных российских паспортов в формате csv. Размер архива list_of_expired_passports.csv.bz2 — 506 MB, размер распакованного csv-файла — 1,6 GB.

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

1. Проверка наличия паспорта (Серия + Номер) в списке недействительных паспортов.
2. Возможность обновления данных без прерывания работы сервиса.

Читать далее

Рекомендательные системы: проблемы и методы решения. Часть 2

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

Привет! Меня зовут Екатерина Ванская, и я занимаюсь data science в компании Prequel. В этой статье я продолжу обзор рекомендательных алгоритмов, которым мы начали в предыдущем моем материале

(вот ссылка на первую часть).

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

Читать далее

Транспортная задача линейного программирования

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

Транспортная задача линейного программирования относится к перечню классических задач, решаемых в практике деятельности людей. Эта задача методами классической математики не решается. В задаче необходимо отыскивать экстремум целевой функции. В задаче целевая функция – линейная. Ограничения на переменные (их может быть очень много) описываются также линейными зависимостями. Казалось бы чего проще. Но как раз ограничения и порождают трудности, связанные не просто с поиском max и min при отсутствии ограничений, а с необходимостью учета таких ограничений. Искать требуется не просто экстремум, а условный экстремум. Методы решения задачи позволяют учитывать особенности структуры задачи и даже отказаться от симплексного метода решения в чистом виде.

Читать далее

Нейросети против пылесоса, или Как мы убрали лишний шум в звонках ВКонтакте

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

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

Читать далее

Удаление в красно-черном дереве

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

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

Читать далее

Инфекционная угроза населению планеты сегодня и завтра

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

В теории безопасности атакой на объект называют реализацию потенциальной угрозы. Такая реализация преобразует угрозу из потенциальной в действующую реально и проявляется (начинает действовать) как возмущающий (наносящий ущерб) фактор. Для реализации угрозы должны быть созданы необходимые и достаточные условия. Здесь вступает в силу положение теории об уязвимостях объекта. Знаменитой уязвимостью с древних времен является "пята Ахилла". Отсутствие уязвимостей объекта делает угрозу невозможной. Но одно дело не видеть, не понимать уязвимостей декларировать полное отсутствие уязвимостей, и совсем другое - глубокий анализ объекта и прогнозы развития объекта. Сложность подобного анализа - проблема прошлого времени, настоящего и, скорее всего, будущего. Известно, уязвимости имеют особенность быть неожиданными, внезапными.

Сегодня в повестке дня актуальна борьба с коронавирусом COVID-19 (SARS-CoV-2).

О ней и поговорим.

Читать далее

Протокол безопасности транспортного уровня (TLS), версия 1.2 (RFC 5246) (Часть 1)

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

На настоящий момент (август 2021 года) автором данного перевода не было найдено хоть сколько-нибудь приемлемого перевода стандарта протокола TLS версии 1.2 на русский язык. Единственный найденный перевод находится сайте protocols.ru и, во-первых, доступен только в кэше поисковика, а во-вторых, при всем уважению к его переводчику, не устраивает автора по причине неудобочитаемости и трудности восприятия. И хотя на сайте efim360.ru находится качественно выполненный перевод стандарта протокола TLS версии 1.3, многие места этого перевода могут вызвать некоторые трудности для понимания, особенно у начинающего изучать криптографию читателя. Для устранения таких «белых пятен»   и было задумано осуществить перевод стандарта протокола TLS версии 1.2 на русский язык.     

Читать далее

Методы машинного обучения теперь и при интеграции информационных систем

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

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

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

Читать далее

DataScience Digest — 12.08.21

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

Приветствую всех!

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning подготовленный командой Data Phoenix и не забывайте подписываться на наш Telegram-канал.

Напоминаю, что 17 августа буду проводить вебинар "The A-Z of Data: Introduction to MLOps". В его рамках мы рассмотрим, что такое MLOps, основные принципы и практики, лучшие инструменты и возможные архитектуры. Мы начнем с простого жизненного цикла разработки ML решений и закончим сложным, максимально автоматизированным, циклом, который нам позволяет реализовать MLOps. Детали и обязательная предварительная регистрация здесь.

Читать далее

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

3D-реконструкция и нейронные аватары: 3D компьютерное зрение на CVPR 2021

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

В конце июня прошла CVPR 2021 – одна из самых значимых конференций в области компьютерного зрения. Наибольшее число докладов было посвящено теме 3D компьютерного зрения. Наша команда Twin3d посетила конференцию и в рамках нашего обзора мы покроем последние тренды в академии, связанные с 3D-реконструкцией и виртуальными нейронными аватарами, расскажем о преимуществах и недостатках различных подходов к нейронному рендерингу, а также постараемся покрыть потенциальные применения этих передовых технологий.

Читать далее

JPEG, который можно посмотреть в блокноте

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

Если открыть произвольный JPEG-файл в блокноте, то можно увидеть лишь хаотичный набор символов. Отсюда вопрос: возможно ли закодировать изображение так, чтобы его было можно просмотреть не только обычным способом, но и в обычном блокноте, в виде ASCII-графики.

Читать далее

Модельно-ориентированное проектирование на службе у специалиста по электроприводу. Часть 1. Моделирование

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

Всем привет! На Хабр есть несколько статей, в которых рассказывается об использовании модельно-ориентированного проектирования (МОП) при разработке различных систем, в том числе и системы управления электродвигателем.

Мне тоже захотелось попробовать этот подход в деле при том, что в лаборатории давно пылился отладочный комплект на базе микроконтроллера серии C2000 от Texas Instuments, да еще и с синхронным двигателем с постоянными магнитами (СДПМ) в придачу.

В этой и последующей статьях я хотел рассказать, как с помощью МОП я создал адекватную модель объекта управления (трехфазного двигателя), промоделировал алгоритм векторного управления, настроил регуляторы и автоматически сгенерировал код для микроконтроллера из модели.

Читать далее

Автоматически генерируем стикеры для Телеграма из фото плакатов в интернет-магазине

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

Всем привет!

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

Давайте автоматизируем

Процедурная генерация 3D миров в Godot Engine при помощи GPU. Часть 1

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

Привет!

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

Читать далее

DataScience Digest — 05.08.21

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

Приветствую всех!

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning подготовленный командой Data Phoenix и не забывайте подписываться на наш Telegram-канал.

Также хочу пригласить всех 17 августа на свой вебинар "The A-Z of Data: Introduction to MLOps". В его рамках мы рассмотрим, что такое MLOps, основные принципы и практики, лучшие инструменты и возможные архитектуры. Мы начнем с простого жизненного цикла разработки ML решений и закончим сложным, максимально автоматизированным, циклом, который нам позволяет реализовать MLOps. Детали и обязательная предварительная регистрация здесь.

Читать далее

Разбираемся с ChainMap из коллекций Python

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

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

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

Читать далее

Вклад авторов