Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Расчёт вкусов пользователя для ленты рекомендаций с применением item2vec-подхода

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

Ежемесячная аудитория ОК только в России превышает 36 млн человек. Причём это активные пользователи, которые хорошо взаимодействуют с нашим контентом: ставят Классы, комментируют, делают репосты. Залогом активного отклика во многом является формирование новостной ленты с учетом предпочтений каждого конкретного пользователя.

Меня зовут Дмитрий Решетников. Я тимлид команды рекомендаций в Ленте ОК. В этой статье я расскажу, как выглядит наш пайплайн рекомендации в ленте новостей, о месте item2vec в нём и результатах внедрения такого подхода.

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии4

Python streaming (spark+kafka)

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

В этой статье, посвященной Python streaming с использованием Spark и Kafka мы рассмотрим основные шаги по настройке окружения и запуску первых простых программ

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии7

Защищаем сервис от перегрузки с помощью HAProxy

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

Если вам доводилось использовать HAProxy для балансировки трафика, вы наверняка как минимум слышали, что этот продукт умеет отслеживать показатели активности сервиса и пользователей и реагировать на них по предопределённым условиям. Обычно в статьях на эту тему приводится пример ограничения пользователя по исходному IP-адресу, если частота запросов с него превышает некоторый предопределённый заранее лимит. Вот, к примеру, такая статья с сайта разработчиков.

Я бы хотел немного углубиться в тематику использованного механизма stick tables, но поговорить не про пользователей, активно интересующихся вашим сайтом, а про нагрузочную способность, или ёмкость, всего сайта (ну или каких-то его путей). Во-первых, любой сервис ограничен в количестве одновременных запросов, которые возможно обслужить на существующих ресурсах. Во-вторых, чаще всего у сервиса не одна площадка или хотя бы не один экземпляр балансёра. А это значит, что поймать одинокого пользователя — это, конечно, здорово, но хотелось бы решить и другую интересную задачу: защитить сервис от перегрузки в целом и в случае, если балансёров более одного. Бонусом поговорим о проблеме умного перераспределения нагрузки между локациями.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии0

Введение в Locust: open source инструмент для нагрузочного тестирования на языке Python

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

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

Читать далее
Всего голосов 12: ↑11 и ↓1+13
Комментарии0

Использование IDA+IDAPython+Xdbg при восстановлении обфусцированного семпла

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

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

Итак, перед нами некая вредоносная программа для платформы Windows. Первым делом загрузим ее в IDA Pro Disassembler и попытаемся выполнить автоанализ. Как ни странно, это нам не удается, поскольку тот спотыкается уже в самом начале — на функции Main. Это значит, что для разбора образца нам потребуется приложить определенные усилия.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Проектирование алгоритма под рекомендательную систему

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

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

Читать далее
Всего голосов 9: ↑7 и ↓2+6
Комментарии14

Умный дом с голосовым ассистентом на минималках

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

Небольшой лонгрид с предысторией и планами, чтобы лучше понимать почему, что и как получилось.

Разработка шла с переменной скоростью в течении лет 5. Совсем не сразу взялся за летопись, поэтому прошу прощения, если что-то будет некорректно ;)

В результате имеем масштабируемое решение, которое можно использовать в любом месте (квартира, дом или еще что).

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии19

Как сделать кастомный Semi Donut Chart с помощью SVG

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

Я сделал конфигурируемый Semi Donut Chart на svg, и решил поделиться с вами.

В этой статье вы узнаете как сделать Semi Donut Chart, гибким и конфигурируем меньше чем за 100 строк кода на Vue 3(применимо к любому другому Фреймворку).

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Создание сервера для онлайн ММО игр на PHP ч. 10 — Открытый бесшовный мир в 2D игре

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1+9
Комментарии13

Создаем блог на Django с опросами и тестами. Краткая инструкция. Часть 2

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

В предыдущей части мы частично разобрали шаблон для нашего блога, выбрали виртуальную машину и запустили на ней нативный веб-сервер Django. Однако он предназначен только для тестирования и запуска приложений во время разработки. Для обработки запросов в продакшене нужно настроить Nginx и WSGI Gunicorn. В этой статье показываем, как это сделать.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии6

Как ранжируются сайты в тематике криптовалют?

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

В последнее время наблюдается определенная динамика выдачи, связанная с выходами на лидерские позиции в выдаче новых сайтов, таких как VPN-агрегаторы

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

Читать далее
Всего голосов 3: ↑1 и ↓2-1
Комментарии0

Как мы разрабатывали сервис расчета стоимости доставки для ритейлера

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Несколько мыслей по подготовке к алгоритмической части собеседования

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

Всем привет! На связи снова Петр Коробейников, техлид сервисов DBaaS for Redis и RabbitMQ (релиз скоро) в #CloudMTS. В этой статье хочу поделиться с вами некоторым опытом подготовки к прохождению алгоритмических интервью. Конечно, статья не про хардкорные алгоритмы. Это, скорее, эскиз к роадмапу по подготовке. Тем не менее, я надеюсь, он будет полезен новичкам (и даже некоторым «старичкам»).

Готовьтесь


Это первый и самый важный совет. Если вы думаете, что, ворочая базами в десятки терабайт, вывозя 50-100k RPS к фронту, обрабатывая десятки миллионов сообщений в Kafka, вы сможете перенести свой опыт на решение алгоритмических задач, то могу вас немного расстроить.

Двоичное дерево без подготовки вы сможете покрутить в лучшем случае только на неприличном месте. Это чем-то похоже на экзамен по математике или физике: вы не сможете вывести формулу, если не знакомы с теорией и не решали задачи заранее. И вас будет ждать обидный провал.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+19
Комментарии13

Один сервис, чтобы коннектиться со всеми, или как я интегрировал игру с VK и немного увлекся

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

В начале 2020 года я только начинал разрабатывать HTML‑игры, и коллега посоветовал выложить что‑нибудь на Яндекс Играх — эта площадка недавно открылась. Первым делом нужно было подключиться к SDK Яндекса. Я разрабатываю игры на Construct. Он поддерживает JavaScript, так что я написал небольшой фрагмент кода, который позволял получать игроков и показывать рекламу, и подключиться к SDK.

Потом добавил добавил поддержку Яндекс Метрики, просмотр видео за вознаграждение, и постепенно собралась маленькая библиотечка. Тогда я еще не предполагал, что за полтора года эта идея вырастет в целый сервис‑посредник для интеграции с разными игровыми площадками.

Под катом расскажу, как так получилось, и что под капотом у этой разработки.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии1

BULLY — шедевр Rockstar из нулевых, о котором забыли даже сами разработчики

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров19K
ДОСТАВАЙТЕ НОСОВЫЕ ПЛАТОЧКИ, ОТКРЫВАЙТЕ ФОРТОЧКИ И УБЕРИТЕ ДЕТЕЙ ОТ ЭКРАНОВ… АВТОР ПРИВЁЗ ДВА КАМАЗА ТЕКСТА

«BULLY» (Она же Балли, Булли, Бычок, Хулиган, GTA в школе и 'Собака Собака Править') — видеоигра 2006 года от Rockstar Vancouver. Изначально разработанная на PS2, но лишь в 2008 добравшаяся до обладателей пекарных мастерских. А на данный момент в неё и вовсе можно поиграть уже на 8 разных платформах разных поколений: PC, PlayStation 2-3-4, Xbox 360, Wii, iOS и Android.

Копирование Wiki на этом, пожалуй, стоит закончить, ведь впереди будет написано очень много букаФФ.

image
Читать дальше →
Всего голосов 32: ↑28 и ↓4+33
Комментарии16

Тестирование блоков питания. Часть 1. Методическая

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

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

Всем интересующимся — добро пожаловать под кат!
image
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии24

Поднимаем Kubernetes с нуля

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

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

Читать далее
Всего голосов 30: ↑27 и ↓3+30
Комментарии55

AutoGPT: личный ИИ ассистент, решает задачи за человека. Попробовала — делюсь результатами

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

Всем привет!

Twitter взорвался от сообщений. АвтоGPT сам заказывает пиццу. АвтоGPT заменил целый отдел продаж: находит лиц, принимающих решения, отправляет им письма и назначает встречи в календаре. AutoGPT написал сайт.

«ChatGPT — это уже прошлое» — именно такое заявление распространено среди энтузиастов ИИ. АвтоGPT может заменить целые команды. Может быть личным ассистентом: ставлю цель, ухожу пить чай — прихожу — задача готова.

Я проверила — установила его к себе на компьютер и ниже делюсь результатами.

Читать далее
Всего голосов 19: ↑14 и ↓5+11
Комментарии27

[Паттерны API] Двунаправленные потоки данных. Push и poll-модели

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

Это глава 21 моей книги «API». v2 будет содержать три новых раздела: «Паттерны API», «HTTP API и REST», «SDK и UI‑библиотеки». Если эта работа была для вас полезна, пожалуйста, оцените книгу на GitHub, Amazon или GoodReads. English version on Substack.

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Добавляем дачу на карты для курьерской доставки

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

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

Однако часто при заказе нужно указать точный адрес. Поговорим о том, как добавить свой дачный домик на карту.

Добавляемся на карту
Всего голосов 36: ↑35 и ↓1+41
Комментарии25
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность