• Ищем знакомые лица

      Привет

      В статье я хочу познакомить читателя с задачей идентификации: пройтись от основных определений до реализации одной из недавних статей в данной области. Итогом должно стать приложение, способное искать одинаковых людей на фотографиях и, что самое главное, понимание того, как оно работает.
      Wake up, Neo
    • Clean Recycler Adapter. Часть 1

      Введение




      Списки, списки, списки… Вертикальные, горизонтальные, комбинированные. Практически ни одно мобильное приложение не обходится без них. Более того, нередко приложения состоят из одних только списков.

      И если в “однородных” списках нет ничего страшного, то разные типы ячеек уже могут вызывать вопросы, основные из которых:

      • как облегчить изменение и масштабирование типов ячеек
      • как минимизировать количество мест для изменения, снизив риск потенциальных ошибок
      • как избавиться от if-else уродства
      • как избавиться от уродливых проверок на тип и опасных приведений типов
      Читать дальше →
    • Расширение Visual C++ for Linux Development

      • Translation
      Расширение Visual C++ for Linux Development позволяет создавать решения на C++ для серверов, настольных ПК и устройств под управлением Linux. Управлять подключениями к ним можно непосредственно в Visual Studio. VS будет автоматически копировать и удалённо собирать исходный код программ. Также среда позволяет запустить ваше приложение в режиме отладки. Система управления проектами поддерживает создание решений для конкретных архитектур, в том числе APM. Под катом мы расскажем, как начать работу с новыми проектами для Linux.


      Читать дальше →
    • Консоль в массы. Переход на светлую сторону. Bash

      • Tutorial
      keep-calm-and-bin-bash

      Вступление


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

      Мы добрались до самой интересной и увлекательной темы — это скрипты на bash. Когда вы запускаете терминал, внутри него работает специальная программа-оболочка — shell (англ) — интерпретатор команд. Shell понимает все команды, которые вы вводите с клавиатуры, и обрабатывает их. Также выводит сообщения об ошибках, следит за корректностью команд и их синтаксисом. Примером таких команд могут быть: сменить директорию, создать новую директорию, добавить текстовый файл, отредактировать текстовый файл, сохранить изменения и другие.
      Читать дальше →
    • Android Tips and Tricks

        В данном материале можно будет увидеть различные инструменты и подсказки, которые здорово облегчают жизнь Android разработчикам. Большая часть собрана напрямую от знакомых разработчиков и содержит вещи, которые должен знать каждый. Дополнения и расширения приветствуются, и если вы знаете о каком-то крутом механизме, который не был упомянут в статье, не поленитесь перейти в оригинал и открыть pull request.
        Читать дальше →
      • BLE под микроскопом 2

          image

          BLE под микроскопом. Часть 2

          часть 3
          В первой части мы проанализировали для чего был придуман стандарт Bluetooth LE, а так же рассмотрели формат пакетов объявления «advertising». В данной части, мы продолжим изучать особенности формата и рассмотрим механизм присоединения устройства BLE к смартфону.
          Читать дальше →
          • +28
          • 20.7k
          • 3
        • BLE под микроскопом

          image

          BLE под микроскопом. Часть 1

          часть 2, часть 3
          В мире существует большое разнообразие способов передачи информации «по воздуху». В последнее время всё большую популярность обретает формат BLE. Сегодня мы рассмотрим особенности этого протокола и поговорим о том, почему же он так востребован в современном мире. Так же мы рассмотрим средства разработки и особенности работы вспомогательных приложений на windows, android от фирмы Nordic.
          Читать дальше →
        • Ресемплинг. Цифровая кирпичная стена против теории заговора. Рождественская сказка для любителей чистого звука

            Ни в одной области электроники не скопилось столько мифов,
            как в области Hi-Fi и Hi-End устройств для воспроизведения звука.
            Ударим Рождественской Историей по одному из них!




            Когда старый год уже проводили, Новый встретили сначала в узком семейном кругу, а затем с более дальними родственниками, когда закончились или пришли в негодность новогодние салаты и стало отпускать похмелье…

            Те, кто не захотел или не смог встречать Новый Год в Дальнем Зарубежье, начинают ощущать на себе зов персонального компьютера.

            Именно для них и предназначена моя рождественская история, об основах ресемплинга — технологии, позволившей значительно улучшить качество воспроизведения дисков формата Аудио CD в начале тысячелетия. Именно тогда для воспроизведения 16 битных записей начали применять 18 и даже 20 битные цифро-аналоговые преобразователи. С первого взгляда это выглядело как маркетинговая уловка производителей, направленная на извлечение дополнительной порции денег из кошельков доверчивых аудиофилов, но в этот раз сторонники теории заговоров могут курить в сторонке. На самом деле это было удачной попыткой улучшить качество воспроизведения и снизить цену дорогостоящей профессиональной аппаратуры. История старая, но поучительная, во многом актуальная и по сей день.
            Рождественская история от электронщика, ищущего объективность
          • Android Things


            Google представила обновленную платформу для интернета вещей — Android Things



            13 декабря Google официально объявила о выходе в релиз Developer preview своей платформы для интернета вещей с поддержкой разработки под Android. Теперь всем знакомым с Android разработкой будет еще легче войти в мир создания IoT устройств.

            Официально поддерживаются три типа устройств:


            Поддержка еще двух ожидается в ближайшее время:

            • Intel® Joule™ 570x
            • NXP Argon i.MX6UL

            Все что нужно для разработки приложения это Android Studio, и одно из устройств выше.
            Читать дальше →
            • +16
            • 22.3k
            • 5
          • Android Fingerprint API: приделываем аутентификацию по отпечатку

            • Tutorial
            Привет, Хабр! Прошло достаточно много времени, как появился Fingerprint API для Android, в сети много разрозненных сэмплов кода по его внедрению и использованию, но на Хабре по какой-то причине эту тему обходили стороной. На мой взгляд, настало время исправить это недоразумение. Всех заинтересовавшихся прошу под кат.


            Читать дальше →
          • Ранний доступ в Google Play. Что внутри?



              Этой осенью компания Google открыла в Google Play отдельную секцию Early Access для приложений и игр, которые доступны только в бета-версии. Мое приложение попало в эту секцию через две недели после запуска и находилось там два месяца.

              В статье я расскажу как попал в данную секцию, как она на текущий момент функционирует и какие возможности дает для развития приложения.
              Читать дальше →
            • Разработка IoT устройств с использованием Bluetooth LE

              • Tutorial


              Технология Bluetooth энергично пробивает себе место в сфере интернета вещей. Часть этой технологии, именуемая Bluetooth LE (Bluetooth Low Energy, она же Bluetooth Smart, она же BLE) прямо позиционирует себя как идеальный выбор для IoT (Internet of things). Трудно не согласится. BLE уже умеет маршрутизировать Internеt трафик, определять координаты в помещениях, подключать промышленные программируемые логические контроллеры, поддерживать WEB серверы, подключать весы, термометры, пульсометры, оксиметры, тонометры и массу других вещей. C BLE автоматически решается множество проблем присущих решениям с использованием Wi-Fi. Недолго осталось до момента, когда устройства с BLE смогут организовываться в MESH сети, по технологии схожей с ZigBee. Это уже отражено в спецификации Bluetooth 5.0
              Читать дальше →
            • Как бесплатно обновить Windows 7 и 8.1 до Windows 10 после 29.07.2016

                Как известно, в Microsoft изначально заявляли, что Windows 10, вышедшая 29.07.2015, будет бесплатным обновлением для розничных и OEM инсталляций Windows 7 и Windows 8.1 в течении одного года – до 29.07.2016. А после 29.07.2016 обновление через Windows Update предлагаться не будет, и его придётся покупать. Windows Update на Windows 7 и Windows 8.1 регулярно предлагал выполнить обновление до Windows 10.


                В действительности, с 19.07.2016 на всех активированных системах с установленными розничными изданиями Windows 7/8.1 на которые пользователи регулярно устанавливали рекомендованные обновления Microsoft, включился счётчик с обратным отсчётом оставшегося для бесплатного обновления времени. Безусловно, это подстегнуло многих, отложивших обновление на последние дни. И, как и обещали, с 29.07.2016 предложения бесплатно обновить ОС через Windows Update исчезли. Неужели те, кто не успели обновить остались без возможности получить новую ОС бесплатно? К счастью, нет! Возможность бесплатного обновления ОС осталась. Давайте разберемся, как теперь можно обновить свои Windows 7 и Windows 8.1 до Windows 10.
                Читать дальше →
              • Анализ трафика Android-приложений: обход certificate pinning без реверс-инжиниринга

                  Иногда нужно исследовать работу бэкенда мобильного приложения. Хорошо, если создатели приложения не заморачивались и все запросы уходят по «голому» HTTP. А что, если приложение для запросов использует HTTPS, и отказывается принимать сертификат вашего корневого удостоверяющего центра, который вы заботливо внедрили в хранилище операционной системы? Конечно, можно поискать запросы в декомпилированом приложении или с помощью реверс-инжиниринга вообще отключить применение шифрования, но хотелось бы способ попроще.

                  image
                  Читать дальше →
                • Push уведомления в Android. Грабли, костыли и велосипеды

                  На написание данной статьи меня подтолкнула задача, которая была поставлена передо мной в одном из рабочих проектов: реализовать Push-уведомления в приложении. Казалось, все просто: штудируешь документацию, примеры и вперед. К тому же, опыт работы с уведомлениями уже был. Но не тут то было…
                  А что же все таки было?
                • Использование android.os.Binder для организации асинхронного взаимодействия в Андроиде

                    Одна из естественных и первых задач при разработке под Андроид – организация асинхронного взаимодействия. Например, обращение к серверу из некоторой активности и отображение на ней результата. Трудность состоит в том, что за время обращения к серверу поверх может быть открыта другая активность или другое приложение, исходная активность может быть безвозвратно завершена (пользователь нажал Back) и т. д. Вот получили мы результат от сервера, но активность «неактивна». Под «активна», в зависимости от обстоятельств, можно понимать, например, что находится между onStart и onStop, onResume и onPause (или, как у нас в проекте, между onPostResume и первым из onSaveInstanceState и onStop). Как понять, завершена активность окончательно (и результат нужно отдать сборщику мусора) или лишь временно неактивна (результат нужно хранить, и отобразить, как только активность станет активной)?

                    Удивительно, но в документации, интернетах, при личном общении я ни разу не встречал корректного и приемлемо универсального способа. Хочу безвозмездно поделиться решением, которое мы применяем два с половиной года в мобильном интернет-банкинге. Приложение установлено (как часть более крупной системы) у нескольких сотен банков, на данный момент имеет около миллиона пользователей.
                    Читать дальше →
                  • Сравнительное тестирование девяти ORM для Android

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

                    Данное тестирование проведено было скорее для собственного интереса. Т.к. ORM много, все они разные, и хотелось бы иметь объективное представление о существующих системах.
                    Читать дальше →
                  • Кюветы Android, Часть 2: SDK и Libraries

                      Разрабатывая под Android, всегда нужно быть начеку. Шаг влево / шаг вправо — и вот прошел ещё один час за дебагом. Кюветы могут быть какие угодно: начиная от обычных багов в SDK и заканчивая неочевидными именами методов с контекстно зависимым результатом (да-да, Fragment.getFragmentManager(), это я о тебе).

                      В предыдущей статье были описаны кюветы «на поверхности» SDK, в которые угодить очень легко. На этот же раз кюветы будут поглубже, помудрёнее и поспецифичнее. Также будет несколько моментов, связанных с Retrofit 2 & Gson.
                      image
                      Читать дальше →