Search
Write a publication
Pull to refresh
13
0

Android & C++

Send message

Как изучить Android за 3 года, или История одного приложения

Reading time10 min
Views10K

Всем привет!


Хочу рассказать историю о том, как я стал разработчиком под Android. Не в том смысле, что я сейчас этим зарабатываю на жизнь, а в том смысле, что из небольшого интереса к мобильной разработке я дорос до собственного приложения на PlayMarket. Но об этом чуть позже. История немного нетипична. Хотя, наверное, у каждого она своя.


Цель статьи — выплеснуть всё хорошее, что накопилось за несколько лет работы над проектом, а также поделиться своей историей (вдруг кому-то она покажется интересной). Ну, и попиариться немножко. Старался всё же, причём не только для себя. А потому буду рассказывать только о том, что делал сам, с помощью или без. Поехали.

Читать дальше →

RxRelay – это магия? Subject vs RxRelay

Reading time2 min
Views5.2K


В Android-комьюнити я встречал три типа разработчиков, которые сталкивались с RxRelay:

  1. Те, кто не понимают зачем RxRelay используется в их проекте, зачем он нужен и чем отличается от Subject
  2. Те, кто думают, что RxRelay «проглатывает» ошибки или «после того, как произошла ошибка RxRelay, продолжит работать, а Subject — нет» (та самая магия)
  3. Те, кто действительно знает, что такое RxRelay.

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

Дешевый и полнофункциональный робот-манипулятор своими руками

Reading time5 min
Views39K
Сразу оговоримся, что совсем дешево делать не будем, т.к. не хочется убивать нервные клетки, делая доморощенные энкодеры для моторчиков + хочется упростить создание 3D модели, которая нужна для управления через ROS (ссылка на готовую модель – ниже в статье).

На момент написания статьи ориентировочная конечная стоимость изделия составляет ~70 000 руб. Если у вас есть 3D принтер, то можно смело вычесть из нее 20 000 руб. Если принтера нет, то его появление станет приятным бонусом. Все расходы я буду описывать исходя из того, что у нас нет ничего, кроме денег.

Как выглядит результат:



Также нужно отметить, что для программирования руки нам понадобится компьютер с установленными ОС Linux (я использую Ubuntu 18.04) и фреймворком ROS (я использую Melodic).

Может возникнуть вопрос «почему 70К рублей – это дешево?»

Отвечаю.

Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

Reading time14 min
Views92K

Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


Читать дальше →

Нейросеть Tacotron 2 говорит с человеческими интонациями, на которых обучена

Reading time3 min
Views23K

Архитектура Tacotron 2. В нижней части иллюстрации показаны модели предложение-к-предложению, которые транслируют последовательность букв в последовательность признаков в 80-мерном пространстве. Техническое описание см. в научной статье

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

Компания Google разработала продвинутый синтезатор речи нового поколения. Он называется Tacotron 2 и основан на нейросети. Для демонстрации его возможностей компания выложила примеры синтеза. Внизу странички с примерами можно пройти тест и попробовать определить, где текст произносит синтезатор речи, а где человек. Определить разницу практически невозможно.
Читать дальше →

Представление объектов для машинного обучения, основанного на теории решеток

Reading time6 min
Views3.1K

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


got idea!

Читать дальше →

Как создать голосового помощника на основе технологий с открытым кодом, не передав вовне ни байта секретной информации

Reading time9 min
Views22K
image

Зачем нефтяникам NLP? Как заставить компьютер понимать профессиональный жаргон? Можно ли объяснить машине, что такое «нагнеталка», «приемистость», «затрубное»? Как связаны вновь принятые на работу сотрудники и голосовой ассистент? На эти вопросы мы постараемся ответить в статье о внедрении в ПО для сопровождения нефтедобычи цифрового ассистента, облегчающего рутинную работу геолога-разработчика.
Читать дальше →

Медуза, паспорта и говнокод — почему номера паспортов всех участников интернет-голосования попали в Интернет

Reading time5 min
Views58K
После завершения интернет-голосования, которое закончилось удивительно хорошо, меня и многих людей долго не покидало чувство того, что в России просто не может что-то пройти так хорошо. Сейчас можно расслабиться — реальность не подкачала и мы увидели двойное безумие: как с точки зрения архитектуры решения, так с точки зрения криптографии.

Кстати, Минкомсвязь до сих пор исключает ЛЮБУЮ возможность утечки паспортных данных избирателей

Между тем распределение серий паспортов выглядит вот так:

image

Давайте воспроизведем события и попробуем понять как всего этого можно было избежать
Читать дальше →

Самое грустное уравнение в Data Science

Reading time5 min
Views5.7K
image

Запаситесь носовыми платочками! Сейчас я расскажу вам всю правду о статистике и data science. У вас слезы на глаза навернутся, я вам обещаю.

ВЫВОД = ДАННЫЕ + ПРЕДПОЛОЖЕНИЯ. Другими словами, статистика не дает вам правду.

Распространенные мифы


Часто можно услышать следующие ошибочные представления:

  • «Если я найду правильные уравнения, я смогу узнать то, что сейчас никому неизвестно.»
  • «Если я добавлю математики в свои данные, я смогу уменьшить неопределенность.»
  • «Статистика может превращать данные в правду!»

Все это звучит как сказки, не так ли? Потому что это они и есть.

Горькая правда


Нет в мире такой магии, которая поможет вам сотворить что-то из ничего. Забудьте об этом. Статистика о другом. Поверьте мне на слово, как статистику. (В качестве бонуса эта статья сэкономит вам кучу времени, которое вы бы потратили, преследуя эту несбыточную мечту.)

К сожалению, многие шарлатаны будут пытаться убедить вас в обратном. Они будут использовать стандартный прием, «Ты не знаешь уравнений, которыми я тебя закидал, поэтому признай мое преимущество и делай как я скажу!»

Не ведитесь на слова этих позеров.
Читать дальше →

Как сбросить вес, не занимаясь спортом? Личный опыт

Reading time9 min
Views178K
Привет, Хабр!

По моим наблюдениям, всех людей можно разделить на три категории: счастливчиков с нормальным телосложением, худых, кто не знает как бы поправиться, и полных, кто не знает как бы похудеть. Мне угораздило попасть в третью категорию, и всю взрослую жизнь мой вес колебался в районе 95кг при росте 1.74м, что соответствует BMI=31.4 или ожирению. И хотя в принципе, это ничуть не мешало, но все же лишний вес накладывает определенные ограничения, как в перспективе состояния здоровья, так и в плане личной жизни. Наконец, в один прекрасный день я решил что «пора», и занялся этим вопросом более серьезно.



Думаю, среди IT-шников, работающих в офисе, немало людей с похожими проблемами, и надеюсь, мой опыт будет им полезен.

15 распространённых мифов о программировании

Reading time6 min
Views16K

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



Читать дальше →

Что делать, если в вашей команде появился «эффективный» менеджер?

Reading time12 min
Views186K

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


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


Читать дальше →

Game of Life с битовой магией, многопоточностью и на GPU

Reading time8 min
Views15K

Всем привет!


Недавняя статья на Хабре в очередной раз показала неостывающий интерес к игре «Жизнь» в частности и всевозможным оптимизациям в общем. Статья и комментарии к ней, особенно любопытство к вычислениям на GPU, вдохновили меня на то, чтобы поделиться своими изысканиями на данном поприще и, забегая вперёд, скажу, что повествование пойдёт о расчётах на GPU, битовой магии, многопоточности и огромных полях для игры «Жизнь», порядка миллиарда клеток.


Читать дальше →

9 ключевых алгоритмов машинного обучения простым языком

Reading time15 min
Views97K
Привет, Хабр! Представляю вашему вниманию перевод статьи «9 Key Machine Learning Algorithms Explained in Plain English» автора Nick McCullum.

Машинное обучение (МО) уже меняет мир. Google использует МО предлагая и показывая ответы на поисковые запросы пользователей. Netflix использует его, чтобы рекомендовать вам фильмы на вечер. А Facebook использует его, чтобы предложить вам новых друзей, которых вы можете знать.

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

Эта статья познакомит вас с фундаментальными концепциями в области машинного обучения. А конкретнее, мы обсудим основные концепции 9ти самых важных алгоритмов МО на сегодняшний день.
Читать дальше →

Ракета от Амперки, часть 1: Теория ракетных двигателей. Карамельное топливо

Reading time7 min
Views43K

Вступление


Всем привет! Мы — команда ютуб-канала Амперки, в студии и пилим видео по проектам и железкам. Однако, в какой-то момент все изменилось.



Под катом — история постройки нашей ракеты.

Использование микрофона для создания произведений искусства, реагирующих на звук, на Javascript

Reading time5 min
Views3.8K
Несколько приёмов для создания произведений процедурального (генеративного) искусства.

image

Настройка объекта для микрофона – вещь достаточно лёгкая, хоть и сначала может показаться сложной. Не надо волноваться. Даже если вы это не очень понимаете, то и не нужно. Потому что когда всё настроено и работает, вам больше никогда не придётся проделывать это всё снова…
Читать дальше →

Плохой руководитель – инструкция по эксплуатации

Reading time6 min
Views18K
Я пишу эту статью для своих бывших коллег и знакомых. Раз за разом по неопытности они попадают в одни и те же проблемы с непосредственным руководством. Но их ситуации далеко не уникальны, и эти советы могут помочь многим сделать свою жизнь лучше.
Читать дальше →

Контроль пульса во время пробежки через музыкальную обратную связь — или «ищутся тестировщики, любящие бегать»

Reading time6 min
Views14K
Все началось с того, что мне подарили пульсометр. Точнее, сначала я решил, что надо бы как-то бороться с возможными последствиями сидячей работы, и начал бегать. Как любой гик, начавший бегать, тут же поставил себе соответствующее приложение, чтобы отслеживать пробежки и делиться ими с друзьями. И вот уже после этого, когда мне подарили пульсометр и я несколько раз пробежался, замеряя пульс, товарищи попытались мне объяснить, что себя надо беречь и стараться, чтобы пульс во время пробежки не зашкаливал за 180. Я по неопытности думал, что в беге — чем быстрее, тем лучше. Но в процессе изучения матчасти выяснилось, что результат тренировки сильно зависит от того, с каким пульсом ты бегаешь — и для некоторых целей нужен низкий пульс (и, соответственно, низкий темп).

Читать дальше

Сверточный слой: быстрая свертка по методу Шмуэля Винограда

Reading time8 min
Views11K

Введение


Данная статья является продолжением серии статей описывающей алгоритмы лежащие в основе
Synet — фреймворка для запуска предварительно обученных нейронных сетей на CPU.

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

image

Шмуэль Виноград (Shmuel Winograd) 1936.01.04 — 2019.03.25 — выдающийся израильский и американский ученый в области компьютерных наук, создатель алгоритмов быстрого матричного умножения, свертки и преобразования Фурье.
Читать дальше →

Виртуальная примерочная в OpenCV

Reading time8 min
Views12K

Было ли у вас такое, что в интернет-магазине понравилась какая-нибудь вещь, но не хочется покупать ее, не примерив? Конечно, в некоторых магазинах есть возможность примерить одежду после заказа перед оплатой. Однако по статистике каждый год доля онлайн-заказов в интернет-магазинах одежды и обуви растет, но также растет и доля возвратов, она составляет 50–70% — это огромные затраты на логистику, которые можно будет значительно сократить, используя онлайн-примерочную. Представьте, вы загружаете свою фотографию, выбираете одежду и она переносится на ваше изображение. Уже существуют виртуальные примерочные обуви, они работают достаточно успешно. Некоторое время назад нас заинтересовала эта тема, как обстоят дела с одеждой? Такие работы тоже существуют, но успешных гораздо меньше, во многих из них кроме статьи найти ничего не удается, о рабочем примере остается только мечтать. Мы решили исправить это и поддержать одну из сетей в библиотеке OpenCV. Что из этого вышло можете увидеть в virtual_try_on.py sample.



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


Хотите узнать как работает виртуальная примерочная и с какими сложностями мы столкнулись при интеграции модели в OpenCV — добро пожаловать под кат!

Читать дальше →

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Registered
Activity