• Коммуникация между Activity и Service

    Как-то возникла у меня задача передавать данные из сервиса в активити. Начались поиски решения в стандартном SDK, но так как времени не было, то сваял плохое решение в виде использования базы данных. Но вопрос был открыт и спустя некоторое время я разобрался с более верным способом, который есть в SDK — использование классов Message, Handler, Messenger.
    Читать дальше →
    • +11
    • 7.4k
    • 9
  • Android Camera2 API от чайника, часть 3. Media Codec и стрим видео по UDP

    • Tutorial
    Итак, со съемками фоточек и записью видео при помощи Camera2 API мы вроде бы, разобрались. Осталось только научиться передавать видеопоток c Android устройства страждущим получателям извне. Конечной целью, как уже неоднократно ранее говорилось, является интеллектуализация роботелеги — ставим на неё смартфон и так сказать, превращаем обезьяну в человека. В этом нам поможет Media Codec. И конечно, новое Camera2 API.


    Кому интересно, прошу под кат.
    Читать дальше →
  • Литье пластмасс в силикон — доступное мелкосерийное производство в домашних условиях

    • Tutorial
    Многие из тех, кто печатает на 3D-принтере сталкиваются или с необходимостью получить партию моделей в короткие сроки, или скопировать удачно получившуюся деталь, или получить изделия с прочностными характеристиками, превосходящими таковые у пластиков для домашней 3d-печати.

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

    image

    В этом обзоре мы сравним самые основные и популярные силиконы, полиуретаны и добавки к ним, кратко посмотрим на основные способы создания форм и изделий, подумаем, где это может найти применение и, наконец, создадим свою силиконовую форму и модель.
    Перед написанием этого поста мы прошли трехдневный тренинг у официального дилера Smooth-On в России, чтобы разобраться во всех тонкостях литья в силикон.
    Читать дальше →
  • Дизайн низкополигональных персонажей

    • Translation
    image

    Персонаж — это личность. Без истории нет индивидуальности. Каждый хороший персонаж начинается с истории, а дизайн персонажа должен рассказать эту историю.

    В своей предыдущей статье How To Make Low Poly Look Good я говорил, что главная цель низкополигонального (low poly) дизайна — донести сообщение через наименьшее количество форм.

    Это особенно справедливо, когда вы создаёте низкополигонального персонажа. Нужно рассказать историю, использовав как можно меньше форм.

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



    Я буду работать в Blender. В Maya, Max и других 3D-редакторах есть похожие инструменты, так что не беспокойтесь об этом.
    Читать дальше →
  • Как создать приложение дополненной реальности с помощью ARCore

    • Translation

    Как создать приложение дополненной реальности с помощью ARCore


    В этом гайде вы узнаете, как добавить 3D-модели в реальный мир. Библиотека ARCore от Google позволяет добавлять на 2D-изображение (картинка или видео) полноценные 3D-модели.


    Вам необходимо предоставить системе некое опорное изображение, которое ARCore будет искать в реальном мире, чтобы на его основе добавить на изображение 3D-модель. Дополненная реальность уже широко используются, например, в книгах, газетах, журналах и т.д.

    Читать дальше →
  • Создание вашего первого ARCore-приложения

    • Translation

    Создание вашего первого ARCore-приложения


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


    Если вы ещё не читали её, я настоятельно рекомендую это сделать, прежде чем перейти к этой статье и начать разработку ARCore-приложений.

    Читать дальше →
  • О чем все-таки говорит developer.android.com про RecyclerView

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


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

      А почему?
      • +12
      • 5.9k
      • 8
    • Деревовидный список RecyclerView (без сторонних библиотек и дочерних массивов)

        Доброго времени суток, уважаемые читатели.

        В своей статье я хочу поделиться реализацией деревовидного списка с помощью RecyclerView. Без использования каких-либо дополнительных библиотек и без использования дочернего массива.
        Кому интересно, прошу под кат. Постараюсь описать как можно подробнее что да как.
        Читать дальше →
      • Подключаемся к Intel Edison через Android с Bluetooth LE (BLE)

        • Translation
        • Tutorial
        Привет, Хабр! Сегодня поговорим о BLE – технологии Bluetooth с низким энергопотреблением, которая нашла применение как в коммерческих, так и в сугубо любительских продуктах благодаря и низкой стоимости, и столь же низкому аппетиту к ресурсам аккумуляторов. Эти факторы делают BLE отличным выбором для связи смартфона или планшета под ОС Android с проектами на базе плат Intel для разработчиков – Edison или Galileo.



        Задача предложенной ниже статьи – показать, как нужно писать код для соединения «железа» посредством протокола BLE на примере платформы Intel Edison и Android-устройства с Bluetooth версии 4.0. При этом используется исключительно бесплатное ПО и недорогие «железные» компоненты, уже готовые к работе.
        Читать дальше →
      • Как я делал свой учет финансов под андроид с блэкджеком, СМС и ФНС

        Введение


        Все началось в далеком 2011-м году, когда я купил свой первый андроид смартфон и открыл для себя удивительный мир андроид маркета. Именно там я нашел великолепное приложение для учета финансов Financisto. Несколько лет я трекал в нем свои расходы и доходы, сильно привык, однако были и слабые стороны:


        • необходимость вводить все транзакции вручную. Притом, что доля безналичных платежей непреклонно росла, а банк на каждый чих шлет вам смс.
        • нет глобального взгляда на бюджет в длительном временном разрезе. То есть хотелось видеть таблицу, предположим, на год, где для каждого месяца было бы видно, сколько планировалось потратить и заработать и сколько вышло по факту, плюс итого по всем строкам и столбцам. Тут ориентиром был YNAB.
        • нет синхронизации между устройствами. Да был Flowzr, но как-то он мне не зашел.

        Если вторая проблема решилась экспортом в CSV и всемогущим экселем, то с остальными нужно было что-то делать. Очевидный вариант — сменить программу. Поизучав предложение, пришел к выводу, что все приложения делятся на скудные по функционалу и на дорогие:) Тем временем шел 2015-й год и мне все сильнее хотелось изучить разработку под мобильные девайсы. Что ж, звезды сходятся, принято решение пилить свое приложение!


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



        Читать дальше →
      • Создание персонажей в Blender и Unity

        • Translation

        Визуально персонажи 3D-игр имитируются с помощью использования моделей, текстур и анимаций.

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

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

        Возможность многократного применения анимаций позволяет использовать анимации из Asset store и с таких вебсайтов, как mixamo.com, для ваших собственных персонажей. Это экономит кучу времени!

        В этом туториале вы узнаете, как подготовить гуманоидную модель в Blender и как перенести её в Unity. В частности, вы научитесь следующему:

        • Создавать арматуру (скелет) персонажа и выполнять её риггинг (привязку скелета к мешу)
        • Модифицировать персонаж добавлением аксессуаров и объектов
        • Экспортировать модель в FBX
        • Импортировать модели Blender
        • Создавать и настраивать гуманоидный аватар
        • Прикреплять к персонажу объекты
        • Анимировать гуманоида в Unity
        Читать дальше →
        • +40
        • 46.8k
        • 7
      • Правильный Singleton в Java

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

          Кроме того, можно рассматривать статью как продолжение замечательного исследования, публиковавшегося на Хабрахабре ранее.
          Читать дальше →
        • Красный Хогвартс. Серия 1. Завхоз

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

            Они где-то там, в темноте. Невидимые, неслышимые и безмолвные. Забытые практически всеми жителями Земли– им уже давно не перепадают ни мнемоны, ни даже лямишки. У счастливчиков есть родственник, в наш дурацкий суетливый век зачем-то озаботившийся «генекологическим древом». У большинства нет даже этого.

            Ты входишь туда, в эту непрогрядную черноту, один. Ты понятия не имеешь, куда идти. Всё, что у тебя есть – фамилия и инициалы. Жалкое имущество, если честно. Особенно если фамилия – Кузнецов или Смирнов. «Иметь в Германии фамилию Мюллер…», ога, ога. Но ты идешь, просто потому, что бываешь здесь частенько, и на ощупь знаешь расхожие тропки, где можно зацепить какой-то хвостик, унюхать какой-то след. Ты не знаешь, сколько ты будешь бродить, и понятия не имеешь, как ты выйдешь – с пустыми руками, или выведешь на свет человека.

            Да, по-прежнему мало кому интересного, но уже не безразличного тебе. А это почему-то важно – вывести его на свет. Я не знаю почему. Горчев, уже довольно давно ушедший туда, как-то написал эссе, которого мне и под угрозой расстрела не написать. Вы наверняка его читали, про Предназначение, а если не читали, то вы какие-то странные люди, обкрадывающие сами себя. Ну да, то самое: «На самом же деле, узнать своё Предназначение не очень сложно: если человек делает что-то просто так, не за деньги, и вообще никому это на*** не нужно, то это означает, что вот это самое и есть его настоящее Предназначение». Я бы так громко не сказал, конечно, но что-то в этом есть.

            Просто… Они там совсем одни, понимаете? Совсем-совсем. А так про них узнаю хотя бы я.

            Ладно, если без романтики и соплей, то все очень просто.
            Читать дальше →
          • Английская грамматика как математика. С чего начать тем, у кого не сложилось

              Английская грамматика – удивительна своей простотой. Её очень сложно не любить: почти всё логично, структурировано, понятно, если знать (конечно). Это не русский, где можно что угодно сказать как угодно, но и в этом есть свой шарм. Поэтому мне всегда кажется, что людям с математическим складом ума природа просто кричит в ухо, что английский надо учить и для них это просто. Полно конечно всяких исключений, куда без них, но в общей массе всё логично.
              Допустим, решились, нашли какую-то мотивацию. Так как же начать, с чего подойти? С алфавита? С неправильных глаголов? С произношения? Можно как угодно подходить, но, если ваша цель заговорить, правильнее всего будет подойти к преподавателю. Если к преподавателю лично подойти не можете, подойдите сюда.

              Читать дальше →
            • Поиск людей на фотографиях на Android с помощью OpenCV

              Недавеча столкнулся с одной интересной задачкой для мобильного “коня” на Android’e- необходимо определить контуры людей на фотографиях (если таковы там были, естественно). После поиска в интернете, было решено использовать open source проект OpenCV, который может работать на платформе Android.

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


              Читать дальше →
            • Введение в курс «Анализ изображений и видео». Лекции от Яндекса

                Мы начинаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS клуба



                Всего в программе — девять лекций. В первой из них рассказывается о том, как применяется анализ изображений в медицине, системах безопасности и промышленности, какие задачи оно еще не научилось решать, какие преимущества имеет зрительное восприятие человека. Расшифровка этой части лекций — под катом. Начиная с 40-й минуты, лектор рассказывает об эксперименте Вебера, представлении и восприятии цвета, цветовой системе Манселла, цветовых пространствах и цифровых представлениях изображения. Полностью слайды лекции доступны по ссылке.
                Читать дальше →
                • +48
                • 61.2k
                • 5
              • Сверхбыстрое распознавание речи без серверов на реальном примере

                • Tutorial

                В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
                Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
                К статье я также прилагаю все исходники программы и саму сборку под Android.

                Прикручиваем Pocketsphinx к своему Андроиду
              • Создание Android приложения для распознавания текста за 10 Минут. Mobile Vision CodeLab

                • Tutorial

                Видео версия туториала



                Оптическое распознавание символов (англ. Optical Character Recognition, сокр. OCR) дает компьютеру возможность читать текст на изображении, позволяя приложениям понимать знаки, статьи, листовки, страницы текста, меню или что угодно в виде текста. Mobile Vision Text API предоставляет разработчикам Android мощную и надежную возможность OCR, которая поддерживает большинство устройств Android и не увеличивает размер вашего приложения.


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

                Читать дальше →
                • +10
                • 15.5k
                • 8
              • Правила личной эффективности от ЭД

                  Заранее предупреждаю и извиняюсь, но оно того стоит: букаф многа.

                  Введение

                  В средней школе я был «круглым» двоечником, которого переводили в следующий класс только под значительным влиянием моего отца, в то время проректора ФПИ, довольно влиятельного (в личном общении) и властного человека.

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

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

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

                  Читать дальше →
                • Методы лечения различных ошибок в Android Studio при разработке проекта

                  Сегодня хотел бы поделиться своим анализом и способами лечением разных ошибок при разработке своего продукта в Android Studio. Лично я, не раз сталкивался с различными проблемами и ошибками при компиляции и/или тестировании мобильного приложения. Данный процесс, всегда однообразный и в 99% случаев и всегда нужно тратить n-колличество времени на его устранение. Даже, когда ты уже сталкивался с данной проблемой, ты все равно идешь в поисковик и вспоминаешь, как же решить ту или иную ситуацию.

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

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