Как стать автором
Обновить
102
0
Антон Титов @Lachezis

CTO and Co-Founder at Spiral Scout

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

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

Время на прочтение5 мин
Количество просмотров11K
Привет, Хабр!

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


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

RBK.money выпустила первый в мире open-source платежный процессинг — творим будущее вместе

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


Привет!


Если вы читали наши предыдущие посты (читали же?), то точно помните, что мы в RBK.money очень сильно за опенсорс. Настолько, что выложили в открытый доступ наш антифрод в виде открытых исходников под лицензией Apache 2.0.


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


Зачем мы это сделали? Как это работает внутри? Как теперь жить дальше? Читайте под катом. Я гарантирую, что такого вы еще не встречали — еще никто в мире не опенсорсил платежную систему такого уровня.


История меняется прямо сейчас на ваших глазах!

Читать дальше →
Всего голосов 68: ↑66 и ↓2+82
Комментарии43

Генерируем тексты песен цепями Маркова

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

Сегодня я хочу рассказать про свой опыт генерации текста песен с помощью python и библиотеки Markovify


Дисклеймер: автор хотел повеселить себя вечером и не придумал ничего лучше, как:


В качестве корпуса для "обучения" цепи я буду использовать текст песен группы Кис Кис.


image


Пикча выше иллюстрирует то как работает цепь Маркова. А вот неплохая статья.

Читать дальше →
Всего голосов 23: ↑15 и ↓8+17
Комментарии17

История о том, как я разработал язык программирования

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

Привет Хабр! Меня зовут Ильдар. Мне 29 лет. Программирую с 2003 года. За свою жизнь создал 4 фреймворка и язык программирования. В этом посте я поделюсь своим опытом, инсайтами, которые я получил при разработке языка программирования BAYRELL Language. Заранее прощу прощения за возможные синтаксические и пунктуационные ошибки в тексте и отсутствие картинок.

Читать дальше →
Всего голосов 24: ↑19 и ↓5+21
Комментарии48

People meet recommender systems. Factorization

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

Машинное обучение довольно сильно проникло в нашу обыденную жизнь. Некоторые уже не удивляются, когда им рассказывают про нейронные сети в их смартфонах. Одной из больших областей в этой науке являются рекомендательные системы. Они есть везде: когда вы слушаете музыку, читаете книги, смотрите сериалы или видео. Развитие этой науки происходит в компаниях гигантах, таких как YouTube, Spotify и Netfilx. Конечно же, все научные достижения в этой области публикуются как на известных конференциях NeurIPS или ICML, так и на чуть менее известной RecSys, заточенной на эту тематику. И в этой статье мы поговорим, как развивалась эта наука, какие методы применяются в рекомендациях тогда и сейчас и какая математика за всем этим стоит.


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

Веб-компоненты и открытые стандарты

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

Если спросить разработчиков, почему они выбрали веб-компоненты для своего проекта, довольно часто можно услышать такие аргументы


  • Это веб-стандарт, сделанный открытым сообществом, а не какой-то частной компанией
  • Веб-стандарты не ломают обратную совместимость, не придется переживать за свой код в будущем
  • Все современные браузеры придерживаются стандарта в своем поведении, меньше сюрпризов на кросс-браузерном тестировании

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

Читать дальше →
Всего голосов 73: ↑70 и ↓3+87
Комментарии55

Делаем универсальный RFID-ключ для домофонов

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


Читать дальше →
Всего голосов 42: ↑41 и ↓1+55
Комментарии48

Обзор WCS 5.2 — WebRTC сервера для веб-разработчиков онлайн трансляций и видеочатов

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


Алиса — опытный фулл-стек разработчик и способна за неделю написать каркас SAAS проекта на своем любимом фреймворке с использованием php. На фронтенде предпочитает Vue.js.


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

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

Очередь задач в PostgreSQL

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

Очередь слонов - pixabay.com


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


Как правило, используются готовые системы очередей сообщений (MQ — message queue), но иногда нужно организовать ad hoc очередь или какую-нибудь специализированную (например, очередь с приоритетом и отложенным перезапуском не обработанных из-за исключений задач). О создании таких очередей и пойдёт речь ниже.


Ограничения применимости


Предлагаемые решения предназначены для обработки потока однотипных задач. Они не подходят для организации pub/sub или обмена сообщениями между слабо связанными системами и компонентами.


Очередь поверх реляционной БД хорошо работает при малых и средних нагрузках (сотни тысяч задач в сутки, десятки-сотни исполнителей), но для больших потоков лучше использовать специализированное решение.


Суть метода в пяти словах


select ... for update skip locked
Читать дальше →
Всего голосов 22: ↑19 и ↓3+24
Комментарии58

К вопросу о странном (опять) и о выборе транзисторов

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

Найди всему причину и ты многое поймешь


Очередная загадка появилась в устройстве, спроектированном одним моим молодым коллегой (далее ММК). Устройство предназначено для входного контроля аккумуляторов серии 18650 (нет, Илон Маск может спать спокойно, наша фирма не собирается делать электромобили, это совсем для других изделий) и реализовано на довольно-таки известной микросхеме BQ29700, которая отличается от множества подобных ей контроллеров аккумулятора наличием двух раздельных выводов для управления ключами и возможностью контроля тока («не забудь, дружок, про подтяжки»). Схема реализована в полном соответствии с рекомендациями производителя (смотрите КДПВ), вопросов быть вообще не должно, но… они есть.



Далее будет опыт небольшого инженерного расследования с последующей тривиальной (и наверняка скучной) моралью.
Кого не испугал трейлер, жмите сюда
Всего голосов 21: ↑20 и ↓1+27
Комментарии40

Резонатор с изюминкой, о которой не знают физики

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


Для исследования физической картины микромира приходится строить циклопические
сооружения. Этот тренд захватил и исследования нейтрино.

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

Эта модель представляет нейтрино в виде анаполя или тороидного диполя. Картина силовых
линий поля в такой модели (http://victorpetrov.ru/author/admin) в чем-то похожа на картину
силовых линий тороидального трансформатора. Но анаполь статичен, то есть производные
напряженностей поля по времени у него равны нулю. Это означает, что осцилляций между
магнитной и электрической энергиями не происходит.


Оказывается, что нет запрета на существование похожей структуры в несколько необычном,
треугольном резонаторе. В таком резонаторе, показанном на рисунке 1, можно получить
стоячие волны, которые образуются сложением шести отраженных друг на друга бегущих
волн.
Читать дальше →
Всего голосов 13: ↑6 и ↓7+5
Комментарии56

Префиксное дерево с битмап-индексами

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

Другие реализации не устроили, в первую очередь, по потребляемой памяти. Да и в любом случае ещё одна реализация префиксного дерева будет не лишней.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+11
Комментарии5

Flipper Zero — пацанский мультитул-тамагочи для пентестера

Время на прочтение10 мин
Количество просмотров287K
Flipper Zero — Multi-tool Device for Hackers

Warning

Информация в статье устарела, Flipper Zero был полностью пеработан на другой платформе. Актуальная информация в нашем блоге blog.flipperzero.one


Flipper Zero — проект карманного мультитула на основе Raspberry Pi Zero для пентеста IoT и беспроводных систем контроля доступа, который я разрабатываю с друзьями. А еще это тамагочи, в котором живет кибер-дельфин.

Он будет уметь:

  • Работать в диапазоне 433 MHz — для исследования радиопультов, датчиков, электронных замков и реле.
  • NFC — читать/записывать и эмулировать карты ISO-14443.
  • 125 kHz RFID — читать/записывать и эмулировать низкочастотные карты.
  • iButton ключи — читать/записывать и эмулировать контактные ключи, работающие по протоколу 1-Wire.
  • Wi-Fi — для проверки защищенности беспроводных сетей. Адаптер поддерживает инъекции пакетов и мониторный режим.
  • Bluetooth — поддерживается пакет bluez для Linux
  • Режим Bad USB — может подключаться как USB-slave и эмулировать клавиатуру, ethernet-адаптер и другие устройства, для инъекции кода или сетевого пентеста.
  • Тамагочи! — микроконтроллер с низким энергопотреблением работает, когда основная система выключена.

Я с волнением представляю свой самый амбициозный проект, идею которого я вынашивал много лет. Это попытка объединить все часто необходимые инструменты для физического пентеста в одно устройство, при этом добавив ему личность, чтобы он был милым до усрачки.
В данный момент проект находится на стадии R&D и утверждения функционала, и я приглашаю всех поучаствовать в обсуждении функций или даже принять участие в разработке. Под катом подробное описание проекта.
Читать дальше →
Всего голосов 176: ↑173 и ↓3+231
Комментарии162

Динамическая CDN для WebRTC стриминга с низкой задержкой и транскодингом

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


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


Однако, кроме низкой задержки, важно обеспечить зрителям хорошее качество трансляции, ведь за это они и платят. В реальной жизни, каналы между Edge серверами и подписчиками могут быть разными по пропускной способности и качеству. Например, мы публикуем поток разрешением 720p с битрейтом 2 Мбит/с, а пользователь играет его на Android-смартфоне, используя 3G подключение в зоне неуверенного приема сигнала, и максимальное разрешение, при котором картинка будет плавной, всего 360p с битрейтом 400 Мбит/с.

Читать дальше →
Всего голосов 6: ↑5 и ↓1+8
Комментарии3

Как я искала эталон красоты с помощью Natural Language Processing (и не нашла)

Время на прочтение8 мин
Количество просмотров20K
Невозможно объективно измерить, какие девушки красивее: блондинки или брюнетки, смуглые или белокожие, высокие или миниатюрные. Но можно посчитать, какие черты внешности упоминают чаще, когда говорят о красоте.

У меня была неделя на эксперименты, наши движки анализа данных,16 тысяч русских романов и повестей XIX века и 15 тысяч современных длинных произведений. И, конечно, не было никаких размеченных данных.

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

Вот визуализация того, что получилось. Точнее, одного из распространённых вариантов.


Цвет глаз, волос, платье, рост, воспитание — всё это можно выделить из корпуса текстов.

Конечно, не всё так просто и однозначно как на рисунках, но примерное представление вы уже получили. Теперь давайте расскажу про детали и последовательность действий.
Читать дальше →
Всего голосов 89: ↑81 и ↓8+73
Комментарии65

Запускаем PHP-скриптики через php-fpm без web-сервера. Или свой FastCGI-клиент (под капотом)

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

Приветствую всех читателей "Хабра".


Дисклеймер


Статья получилась довольно длинная и тем кто не хочет читать предысторию, а хочет перейти сразу к сути прошу прямиком к главе "Решение".


Вступление


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

Читать дальше →
Всего голосов 34: ↑29 и ↓5+24
Комментарии18

Умный парсер числа, записанного прописью

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


Пролог


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


Умным данный парсер делает возможность извлечения чисел из текста с ошибками, допущенными в результате некорректного ввода или в результате оптического распознавания текста из изображения (OCR).


Для ленивых:
Ссылка на проект github: ссылка.


Читать дальше →
Всего голосов 137: ↑136 и ↓1+135
Комментарии59

Python + Keras + LSTM: делаем переводчик текстов за полчаса

Время на прочтение8 мин
Количество просмотров27K
Привет, Хабр.

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



Для тех, кому интересно как это работает, подробности под катом.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии22

YIMP — Панель управления для Yii 2 на Bootstrap 4

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

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


Работая над новой версией, я постарался обобщить весь свой опыт по этой теме, и в результате получился YIMP — велосипед, которым не стыдно поделиться: GitHub, LiveDemo, API Documentation.


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

Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии7

Параметризация нейросетью физической модели для решения задачи топологической оптимизации

Время на прочтение10 мин
Количество просмотров13K
Недавно на arXiv.org была загружена статья с не очень интригующим названием "Neural reparameterization improves structural optimization" [arXiv:1909.04240]. Однако оказалось, что авторы, по сути, придумали и описали весьма нетривиальный метод использования нейросети для получения решения задачи структурной/топологической оптимизации физических моделей (хотя и сами авторы говорят, что метод более универсален). Подход очень любопытный, результативный и судя по всему, — совершенно новый (впрочем, за последнее не поручусь, но ни авторы работы, ни сообщество ODS, ни я, аналогов припомнить не смогли), поэтому его может быть полезно знать интересующимся как использованием нейросетей, так и решением разнообразных задач оптимизации.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии68

Информация

В рейтинге
Не участвует
Откуда
San Francisco, California, США
Зарегистрирован
Активность