Pull to refresh
36
0
Сергей @CaptainTrunky

Научный сотрудник

Send message

RandLib. Библиотека вероятностных распределений на C++17

Reading time 6 min
Views 16K

Библиотека RandLib позволяет работать с более чем 50 известными распределениями, непрерывными, дискретными, двумерными, циклическими и даже одним сингулярным. Если нужно какое-нибудь распределение, то вводим его имя и добавляем суффикс Rand. Заинтересовались?
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Comments 33

Еще примеры использования R для решения практических бизнес-задач

Reading time 6 min
Views 17K

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

Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 54

Великая цепь уверенности: как блокчейн и доверие меняют мир

Reading time 5 min
Views 13K
Одна из вещей, которые отличают развитые страны от не очень — это доверие между людьми. В маленьких городках и деревнях доверие может держаться на том, что все друг друга знают. Но в быстро урбанизировавшихся обществах вроде российского, где люди оказались относительно быстро вырваны из одной среды, не успев до конца встроиться в другую — как обычно, в таких случаях приводят в пример то, что соседи по лестничной площадке часто не знакомы друг с другом — это уже не работает. Здесь уже приобретает значение другой фактор — прочность институтов. Чувство большей безопасности и комфорта в какой-нибудь уютной центральноевропейской стране держится на презумпции качественной работы институтов, государственных и общественных, от полиции до благотворительности, а вовсе не на вере, что люди там более честные и порядочные сами по себе. Люди везде более-менее одинаковы — различается только уровень доверия между ними. И сильные институты в индустриальную эпоху вернули людям доверие уровня маленькой общины.

Но в постиндустриальном обществе качество их работы удовлетворяет всё меньше. Что-то не так с самими институтами или просто человек XXI века ставит повышенные требования, которые старым системам не под силу удовлетворить — вопрос дискуссионный. Факт в том, что они стали слишком непрозрачны, слишком громоздки и, главное, слишком медлительны для современных темпов жизни. На смену им приходят технологии — теперь они должны обеспечить современному человеку тот уровень доверия, который необходим для комфортной жизни.

О том, как технологии, включая блокчейн, меняют взаимоотношения между людьми, удовлетворяя фундаментальную потребность во взаимном доверии новыми способами — выступление Рейчел Ботсман на TED в июне этого года:


Total votes 34: ↑28 and ↓6 +22
Comments 30

Что такое свёрточная нейронная сеть

Reading time 13 min
Views 263K


Введение


Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


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


Задача


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


Читать дальше →
Total votes 91: ↑91 and ↓0 +91
Comments 74

«Больше чем Аудиомания»: Как научиться играть на барабанах?

Reading time 12 min
Views 54K


Фото rskspyder man / CC

Бывают в жизни такие моменты, когда одна навязчивая идея прочно врезается в голову, не отпуская ни на минуту. Иногда это следствие осознанного и планомерного движения к цели, иногда – импульсивное желание осуществить детскую мечту.

Наш сегодняшний материал для тех, чья цель (или мечта) – научиться играть на барабанах. Мы в Аудиомании собрали интересные и полезные советы начинающим барабанщикам и узнали у Дмитрия Полтинина – менеджера по международной логистике Аудиомании и барабанщика и бэк-вокалиста группы †B†C†B† – о его опыте игры на ударных.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 31

DisType: простое приложение для общения

Reading time 3 min
Views 13K
Всем привет! Как я обещал в комментариях, заливаю на GitHub свои программы. Начну с DisType Pro. Репозиторий тут, но перед тем как писать о том, что я хочу сделать и в чем мне нужна помощь, расскажу об истории этой программы:


DisType pro.
Читать дальше →
Total votes 71: ↑69 and ↓2 +67
Comments 12

Как узнать какие цветы дарить девушке, если у нее двигается только голова и она не может говорить?

Reading time 3 min
Views 73K
Всем привет! Я Иван Бакаидов. И сейчас я расскажу как я помогаю людям с двигательными нарушениями и нарушениями речи. Но сначала немного обо мне:

  • Мне 17 лет
  • ДЦП — у меня самопроизвольно сокращаются мышцы тела… Все
  • Неразборчивая речь. Понимают только мама, брат и одноклассница
  • Node.js, Java, Android dev, Unity3d
  • Выступал на гуманитарном саммите ООН с посланием о правах человека с нарушениями речи и важности AAC

image

Читать дальше →
Total votes 314: ↑310 and ↓4 +306
Comments 84

Машинное обучение с помощью TMVA (ROOT)

Reading time 4 min
Views 4.2K

В последние пару лет только и слышно о том, что Python и scikit-learn являются неким золотым стандартом в data science.
Я же хочу рассказать Вам о возможности альтернативного развития в области machine learning, библиотеке написанной на С++.
TMVA (Toolkit for Multivariate Data Analysis with ROOT) — open-source библиотека алгоритмов машинного обучения, которая идёт в дополнение к пакету анализа больших данных ROOT, соответственно устанавливается вместе с ним. Про установку подробно написано в мануале, поэтому мы не будем рассматривать этот момент.

Читать дальше →
Total votes 9: ↑5 and ↓4 +1
Comments 5

Представление движений в 3D моделировании: интерполяция, аппроксимация и алгебры Ли

Reading time 14 min
Views 29K
В этой статье мне бы хотелось рассказать об одном интересном математическом приеме, который будучи весьма интересным и полезным мало известен широкому кругу людей, занимающихся компьютерной графикой.

Сколько существует разных способов представить обыкновенный поворот в трехмерном пространстве? Большинство людей, когда-либо занимавшихся 3D-графикой или 3D-моделированием, сходу назовут три основных широко распространенных варианта:

  • Матрица поворота 3x3;
  • Задание поворота через углы Эйлера;
  • Кватернионы.

Люди с богатым опытом добавят сюда почему-то не пользующийся популярностью четвертый пункт:
  • Ось поворота и угол.

Мне бы хотелось рассказать о пятом способе представления вращений, который симпатичен тем, что удобен для параметризации, позволяет эффективно строить полиномиальные аппроксимации этих параметризаций, проводить сферическую интерполяцию, и главное, универсален — с минимальными изменениями он работает для любых видов движений. Если вам когда-либо был нужен метод, который позволял бы легко сделать «аналог slerp, но не для чистых вращений, а для произвольных движений, да еще и с масштабированием», то читайте эту статью.
Читать дальше →
Total votes 54: ↑53 and ↓1 +52
Comments 14

SObjectizer: что это, для чего это и почему это выглядит именно так?

Reading time 15 min
Views 19K
Разработка многопоточных программ на C++ — это не просто. Разработка больших многопоточных программ на C++ — это очень не просто. Но, как это обычно бывает в C++, жизнь сильно упрощается, если удается подобрать или сделать «заточенный» под конкретную задачу инструмент. Четырнадцать лет назад выбирать было особенно не из чего, поэтому мы сами для себя сделали такой «заточенный» инструмент и назвали его SObjectizer. Опыт повседневного использования SObjectizer-а в коммерческом софтостроении пока не позволяет жалеть о содеянном. А раз так, то почему бы не попробовать рассказать о том, что это, для чего это и почему у нас получилось именно так, а не иначе…
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 10

Технофашизм — будущее человечества? (не политика)

Reading time 4 min
Views 16K
Мы видим будущее, когда все силы человечества направлены на технический прогресс. Исследовательские зонды летят к звездам, огромные корабли бороздят космос, люди напрямую общаются с компьютерами, ищут братьев по разуму и сами создают их, колонии землян на далеких планетах бурно процветают, а роботы освобождают человека от утомительной рутины.

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

image

Читать дальше →
Total votes 29: ↑7 and ↓22 -15
Comments 21

Разработка игр на Rust. Обзор экосистемы

Reading time 6 min
Views 44K

Здравствуйте! Я занимаюсь разработкой игры на Rust и хочу рассказать об этом.


Моя первая статья будет полезна тем, кто хочет начать делать игру на Rust, но не уверен, какие из пакетов (крейтов) стоит использовать и что вообще происходит в экосистеме Rust для игрового разработчика.

Читать дальше →
Total votes 61: ↑60 and ↓1 +59
Comments 67

Пишем сериализатор для сетевой игры на C++11

Reading time 18 min
Views 25K
Написать этот пост меня вдохновила замечательная статья в блоге Gaffer on Games «Reading and Writing Packets» и неуёмная тяга автоматизировать всё и вся (особенно написание кода на C++!).

Начнём с постановки задачи. Мы пишем сетевую игру (и сразу MMORPG, конечно же!), и независимо от архитектуры у нас возникает необходимость постоянно посылать и получать данные по сети. У нас, скорее всего, возникнет необходимость посылать несколько разных типов пакетов (действия игроков, обновления игрового мира, просто-напросто аутентификация, в конце концов!), и для каждого у нас должна быть функция чтения и функция записи. Казалось бы, не вопрос сесть и написать спокойно эти две функции и не нервничать, однако у нас сразу же возникает ряд проблем.

  • Выбор формата. Если бы мы писали простенькую игру на JavaScript, нас бы устроил JSON или любой его самописный родственник. Но мы пишем серьёзную многопользовательскую игру, требовательную к трафику; мы не можем позволить себе отправлять ~16 байт на float вместо четырёх. Значит, нам нужен «сырой» двоичный формат. Однако, двоичные данные усложняют отладку; было бы здорово, если бы мы могли менять формат в любой момент, не переписывая целиком все наши функции чтения/записи.
  • Проблемы безопасности. Первое правило сетевой игры: не доверяй данным, присланным клиентом! Функция чтения должна уметь оборваться в любой момент и вернуть false, если что-то пошло не так. При этом использовать исключения считается неважной идеей, поскольку они слишком медленные. Мамкин хакер пусть и не сломает ваш сервер, но вполне может ощутимо замедлить его беспрерывными эксепшнами. Но вручную писать код, состоящий из if'ов и return'ов, неприятно и неэстетично.
  • Повторяющийся код. Функции чтения и записи похожи, да не совсем. Необходимость изменить структуру пакета приводит к необходимости поменять две функции, что рано или поздно приведёт к тому, что вы забудете поменять одну из них или поменяете их по-разному, что приведёт к трудно отлавливаемым багам. Как справедливо замечает Gaffer on Games, it is really bloody annoying to maintain separate read and write functions.

Всех интересующихся тем, как Бендер выполнил своё обещание и при этом решил обозначенные проблемы, прошу под кат.
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Comments 33

Чикаго «умнеет» на глазах

Reading time 9 min
Views 12K
Чикаго — город ветров на пересечении денежных потоков, второй после Нью-Йорка экономический центр США сегодня всерьез претендует на то, чтобы в обозримой перспективе, как минимум, сравняться по уровню развития и интеграции умных цифровых технологий с ведущими интеллектуальными центрами Азии и Европы. Об амбициозных планах администрации города в реализации программы Array of Things, призванной до конца 2017 года превратить Чикаго в эпицентр интернета вещей Среднего Запада мы расскажем в этой публикации.

image
Подробнее
Total votes 21: ↑18 and ↓3 +15
Comments 5

Дистанционное открытие брокерского счета через портал Госуслуг: зачем и как это сделать

Reading time 4 min
Views 39K


Вопрос сохранения и приумножения собственных сбережений всегда актуален. Биржа, а в частности фондовый рынок, является доступным способом получения дополнительного источника дохода.

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

В сегодняшнем материале мы рассмотрим, для каких целей нужно открывать брокерский счет, и представим исчерпывающую инструкцию о том, как это сделать через Госуслуги.
Читать дальше →
Total votes 27: ↑16 and ↓11 +5
Comments 73

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

Reading time 3 min
Views 181K
Сегодня вечером закон, приравнивающий порнографию с совершеннолетними актерами «изображающими несовершеннолетних», тексты, изображения и хентай к детской порнографии, был единогласно принят в финальном третьем чтении.
После подписи Советом Федерации и Путиным он будет опубликован в интернете и через 10 дней после публикации вступит в силу.
Так как это не изменение самих статей, а «всего лишь» определение, принятый закон будет иметь обратную силу.
image
Суть закона состоит в том, что вводится определение дп:
Под материалами и предметами с порнографическими изображениями несовершеннолетних в настоящей статье и статье 242.2 настоящего Кодекса понимаются материалы и предметы, содержащие любое изображение или описание в сексуальных целях:
полностью или частично обнаженных половых органов несовершеннолетнего;
несовершеннолетнего, совершающего либо имитирующего половое сношение или иные действия сексуального характера;
полового сношения или иных действий сексуального характера, совершаемых в отношении несовершеннолетнего или с его участием;
совершеннолетнего лица, изображающего несовершеннолетнего, совершающего либо имитирующего половое сношение или иные действия сексуального характера.

За распространение указанного выше наступает ответственность по 242.1 статье УК — от 3 до 10 лет тюрьмы. Под распространением понимаются в том числе скачивание при помощи торрентов и выкладывание картинок в соцсети.
Кроме того, дела по этой статье передаются Следственному Комитету.

Читать дальше →
Total votes 46: ↑40 and ↓6 +34
Comments 1214

Разжёвываем линейно-квадратичный регулятор для управления перевёрнутым маятником

Reading time 8 min
Views 33K

Преамбула


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

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

Итак, это уже четвёртая статья, для лучшего понимания происходящего неплохо бы прочитать предыдущие три:


Вот фотография системы (кликабельно):


Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Comments 60

Как я писал книгу 'Python Machine Learning'

Reading time 7 min
Views 43K
Здравствуйте, уважаемые хабровчане!

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



Предлагаем почитать, что сам автор рассказывает об этой книге. Мы позволили себе сократить статью практически вдвое, так как вся ее вторая часть посвящена тонкостям писательского труда и оформления книги, а тематические тонкости и актуальность темы рассмотрены в самом начале. Надеемся, что вам понравится текст, а нам — результаты опроса.
Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Comments 11

Nix как менеджер зависимостей для C++

Reading time 7 min
Views 19K

Nix loves C++


В последнее время много разговоров идет о том, что для C++ нужен свой пакетный менеджер подобный pip, npm, maven, cargo и т.д. Все конкуренты имеют простой и стандартизированный механизм подключения нестандартной библиотеки. В C++ же все действуют как умеют: кто-то прописывает в README список пакетов для Ubuntu, CentOS и других дистрибутивов, кто-то использует git submodule и скрипты для их сборки, кто-то использует CMake ExternalProject, кто-то копирует все исходники в один гигантский репозиторий, кто-то делает образ Docker или Vagrant.


Чтобы решить проблему был даже создан стартап — biicode, но он обанкротился и его будущее неизвестно. Взамен появился conan, дополняя зоопарк конкурентов — nuget, cget, hunter, cpm, qpm, cppget, pacm и даже gradle for c++.


Меня не устраивал ни один из перечисленных способов. Я было начал писать пакеты для Conan, но столкнулся с большим числом хаков, неразвитым API, отсутвием гайдлайнов и, как следствие, низкой вероятностью переиспользования чужих пакетов. И тут вспомнилось, что когда-то мне очень понравились идеи пакетного менеджера в NixOS. И подумал — а зачем плодить пакетный менеджер специально для C++, если те же задачи решает обычный пакетный менеджер? Нужно только чтобы он был достаточно гибким и простым в части описания пакета. И Nix идеально подошел на эту роль.

Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Comments 16

Мозговой имплантат впервые позволил парализованному человеку управлять рукой

Reading time 2 min
Views 17K


Почти шесть лет назад 19-летний первокурсник колледжа Иан Беркхарт (Ian Burkhart) неудачно нырнул в море и по несчастному стечению обстоятельств сломал шею о песчаное дно. Он оказался полностью парализован, потерял способность управлять руками и ногами. Такие травмы всегда считались неизлечимыми. До вчерашнего дня.

13 апреля 2016 года специалисты из университета штата Огайо объявили, что им удалось восстановить частичный контроль над кистью правой руки и пальцами Беркхарта. Для лечения применили экспериментальную кибернетическую технологию: имплантированный в мозг чип напрямую по проводам посылает сигналы мускулам, в обход спинного мозга. Это первый в истории медицины случай восстановления контроля над кистью у пациента с квадриплегией.
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Comments 37

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity