• Всегда ли нужны Docker, микросервисы и реактивное программирование?

    • Tutorial


    Автор: Денис Цыплаков, Solution Architect, DataArt

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

    Если вы не делаете что-то принципиально новое, например, первый в мире интернет-поисковик или искусственный интеллект для управления запуском ядерных ракет, создать дизайн хорошей системы довольно просто. Достаточно учесть все требования, посмотреть на дизайн похожих систем и сделать примерно так же, не совершив при этом грубых ошибок. Звучит как чрезмерное упрощение вопроса, но давайте вспомним, что на дворе 2019 год, и «типовые рецепты» дизайна систем есть практически для всего. Бизнес может подкидывать сложные технические задачи — скажем, обработать миллион разнородных PDF-файлов и вынуть из них таблицы с данными о расходах — но вот архитектура систем редко отличается большой оригинальностью. Главное тут — не ошибиться с определением того, какую именно систему мы строим, и не промахнуться с выбором технологий.

    В последнем пункте регулярно возникают типичные ошибки, о некоторых из них я расскажу в статье.
    Читать дальше →
  • Переход на Kotlin в Android-проекте: Tips and Tricks

    • Tutorial

    Автор: Сергей Ешин, Strong Junior Android Developer, DataArt

    Уже более полутора лет прошло с тех пор, как Google объявил об официальной поддержке Kotlin в Android, а самые матерые разработчики начали экспериментировать с ним в своих боевых и не очень проектах больше трех лет назад.

    Новый язык тепло приняли в Android-сообществе, и подавляющая часть новых проектов на Android стартует с Kotlin на борту. Важно и то, что Kotlin компилируется в JVM-байткод, следовательно, полностью совместим с Java. Значит, в существующих Android-проектах, написанных на Java, тоже есть возможность (более того — потребность) задействовать все фичи Kotlin, благодаря которым он и приобрел столько поклонников.

    В статье я расскажу об опыте миграции Android-приложения с Java на Kotlin, трудностях, которые пришлось преодолеть в процессе, и объясню, почему все это было не зря. Статья в большей степени рассчитана на Android-разработчиков, только начинающих изучение Kotlin, и кроме личного опыта, опирается на материалы других членов сообщества.
    Читать дальше →
  • Оффлайн-режим на iOS и особенности его реализации на Realm

    • Tutorial


    Автор: Екатерина Семашко, Strong Junior iOS Developer, DataArt

    Немного о проекте: мобильное приложение для платформы iOS, написанное на языке Swift. Цель приложения — возможность шаринга дисконтных карт между сотрудниками компании и их друзьями.

    Одной из целей проекта было изучить и попробовать на практике популярные технологии и библиотеки. Для хранения локальных данных выбрали Realm, для работы с сервером — Alamofire, для аутентификации использовался Google Sign-In, для загрузки изображений — PINRemoteImage.

    Основные функции приложения:

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

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

    Позже мы решили расширить оффлайн, добавив режим записи. Информация об изменениях, сделанных пользователем, сохранялась и при появлении интернет-соединения синхронизировалась. О реализации такого read-write оффлайн-режима и пойдет речь.
    Читать дальше →
    • +16
    • 2,8k
    • 2
  • Блокчейн-благотворительность — DataArt победил на хакатоне Malta Blockchain Summit



      Команда DataArt победила на крупнейшем блокчейн-хакатоне, недавно прошедшем на Мальте. За двое суток коллеги разработали платформу для проведения благотворительных онлайн-лотерей и завоевали приз в 25 тысяч долларов.

      Рассказы победителей и ссылки на проект под катом.
      Читать дальше →
    • iOS runtime mobile exploration with Objection, или Хакаем собственное приложение

      • Tutorial


      Автор: Андрей Батутин, Senior iOS Developer, DataArt.

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

      Иногда причиной были мои косяки. Иногда — моих коллег. А иногда — даже самого Apple Inc.

      Но самые убийственные сценарии были связаны с багами, которые воспроизводились только на аппсторовских/релизных сборках. Ничто так не ставит в тупик и не заставляет выть перед макбуком, как невозможность подключить дебагер к собственному приложению и посмотреть, что же там происходит.
      Читать дальше →
    • QA Fest 2018: обзор главной QA-конференции Украины



        21–22 сентября в Киеве собрались около тысячи тестировщиков и тех, кто в принципе интересуется Quality Assurance. В этом году QA Fest проходил в пятый раз, в третий раз его партнером выступал DataArt. О самых интересных докладах и организации ивента рассказала Эллина Азадова — Senior QA в DataArt Kherson.
        Читать дальше →
      • Обход SSL Pinning в iOS-приложении



          Привет, меня зовут Андрей Батутин, я Senior iOS Developer в DataArt. В предыдущей статье мы говорили, как можно сниффить трафик нашего мобильного приложения с помощью HTTPS-прокси. В этой обсудим, как обходить SSL Pinning. На всякий случай, рекомендую прочитать первую статью, если вы ее еще не читали: это понадобится для понимания приведенного ниже текста.

          Собственно, на практике SSL Pinning применяют, чтобы описанный способ инспекции и модификации трафика мобильного приложения не был доступен плохим парням или любопытному шефу.
          Читать дальше →
          • +12
          • 5,4k
          • 9
        • Как сниффить HTTPS-трафик iOS-устройства

          • Tutorial


          Привет, меня зовут Андрей Батутин, я Senior iOS Developer в DataArt, и сегодня мы будем сниффить HTTPS-трафик твоего «Айфона».
          Читать дальше →
        • JS-код, римские цифры, геометрические загадки: как мы шифруем свой возраст



            Каждый год ко дню рождения DataArt мы дарим коллегам фирменные футболки. В год нашего двадцатиления традиции исполнилось 10 лет. Мы отыскали и сфотографировали футболки, с которых все начиналось, и модели последних лет. В некоторых зашифрованы загадки, о которых успели забыть даже их авторы.
            Читать дальше →
            • +17
            • 4,8k
            • 9
          • Визуализация данных для вашего Web-проекта



              Автор: Александр Кашеверов, Senior JavaScript Developer

              Добро пожаловать и приятного чтения!

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

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

              Для лучшего понимания — необходимо знание JavaScript и общее представление о работе веб.

              Конечно, у визуализации данных есть своя история (в статье мы этого касаться не будем), если интересно — можно ознакомиться, например, здесь.

              Моя статья, вероятно, не всеобъемлющая, поэтому пишите комментарии и личные сообщения, я готов выслушать критику и дополнить материал.
              Читать дальше →
              • +5
              • 6,3k
              • 5
            • Java Eastern European Conference 2018: доклады и впечатления



                Автор: Игорь Мастерной, Senior Developer, лидер Java-сообщества DataArt

                18–19 мая в Киеве прошла JEEСonf — одно из самых ожидаемых событий для всего Java-сообщества Восточной Европы. DataArt выступил партнером конференции. На четырех сценах выступали докладчики со всего мира: Фолькер Симонис — представитель SAP в JCP и контрибьютор OpenJDK, Юрген Хёллер — главный инженер Pivotal, отец всеми любимого Spring Framework, Клаус Ибсен создатель Apache Camel, и Хью МакКи — евангелист в Lightbend.

                График был очень насыщенным: за два дня более 50 выступлений, по 45 минут на каждое. 10 минут перерыва — и бежим на новый доклад. На то, чтобы посмотреть все видео, когда они появятся в сети, потребуется много времени. Поэтому кратко опишу доклады, которые я счел наиболее интересным и на которых побывал лично.
                Читать дальше →
              • Много ли гиков среди программистов?



                  Фантастические фильмы и комиксы, игры и жесткая мультипликация — умение ориентироваться в них, способность узнавать цитаты и к месту цитировать любимых персонажей можно назвать признаком принадлежности к особой гик-культуре. Но правда ли, что программисты жить не могут без настольных стратегий или сериала «Рик и Морти»? Или все дело в том, что сторонний наблюдатель путает два значения слова «гик», не различая людей, увлеченных популярной кульутрой и высокими технологиями?

                  Ответ в нашем нерепрезентативном, но интересном исследовании. Чтобы разобраться, мы в феврале – апреле наблюдали за пользователями платформы самопроверки знаний IT-специалистов Skillotron из разных стран.
                  Читать дальше →
                  • +4
                  • 12,6k
                  • 9
                • DataArt готовится к 4 мая — дню «Звездных войн»



                    DataArt запустил специальный раздел Star Wars на игровой платформе самопроверки знаний IT-специалистов Skillotron. Параллельно мы провели опрос среди 2,5 тысяч своих коллег, выяснив предпочтения поклонников саги в разных городах и странах. Порядок просмотра эпизодов, лучшие космические корабли и самые ненавистные персонажи в нашей инфографике и комментариях экспертов.
                    Читать дальше →
                  • Как не сойти с ума от Scrum? Опыт растущего проекта

                    • Tutorial


                    Надежда Мецкер, Senior QA, DataArt

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

                    Первое, о чем я расскажу, это Feature Demo — процесс, в ходе которого мы демонстрируем новый функционал приложения внутри своей же команды. Мы рассматриваем, как именно он был сделан, что получилось особенно удачно, а где можно было сделать лучше. Уже после общего рассмотрения и окончательного одобрения функционал может уходить в продакшн.
                    Читать дальше →
                    • +15
                    • 13,2k
                    • 7
                  • Майкл Лазар: «Интернет, мобильные и проводные телефоны работают, потому что люди смогли согласовать стандарты»



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

                      — Кто определяет стандарты в телекоме?

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

                      В 1865 году был создан ITU — тогда эта аббревиатура расшифровывалась как «Международный телеграфный союз» — он должен был гарантировать работу телеграфов по всему миру. ITU до сих остается высшей инстанцией в индустрии связи, буква Т в его названии теперь обозначает «телекоммуникационный» [по-русски ITU традиционно называют Международным союзом электросвязи, — Прим. ред.]. Теперь он представляет собой ни много ни мало подразделение ООН, организации хоть и заметно более молодой, но, согласитесь, солидной. ITU распределяет радиочастоты, курирует запуск спутников и формулирует рекомендации для всех игроков рынка.
                      Читать дальше →
                    • Как я сделал свой «Яндекс.Транспорт» с расписанием и автобусами



                        Автор: Михаил Аксенов, .NET Developer, DataArt


                        С чего все началось


                        Осенью 2014 года появилась радостная новость о том, что в Воронеже заработал Яндекс.Транспорт, который показывает движение автобусов и троллейбусов. Было очень круто прямо на остановке открыть расписание и узнать, что ваш автобус подойдет через 5 минут.

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

                        Новый сервис водители использовали, чтобы следить друг за другом по карте, обгоняя и подрезая конкурентов на дороге. У некоторых начала падать выручка, они стали жаловаться владельцам маршрутов, а те пошли к людям, продающим оборудование с ГЛОНАСС и GPS и отправляющим данные о перемещениях машин в Яндекс. По просьбам хозяев автопарков они информацию отправлять перестали, и автобусы сразу начали исчезать с карты. Сейчас их стало чуть побольше, но это все равно гораздо меньше, чем на самом деле.
                        Читать дальше →
                      • Устройства с управлением через веб-интерфейс



                          Автор: Николай Хабаров, IoT Google Developer Expert, эксперт по встраиваемым системам, DataArt.

                          В этой статье я расскажу, как создать собственное устройство с веб-интерфейсом, которое будет доступно в локальной сети. Веб-интерфейс будет показывать текущие данные с датчика Si7021: температуру и влажность.

                          Устройство работает на основе микроконтроллера ESP8266Wi-Fi) и прошивки DeviceHive.
                          Читать дальше →
                          • +12
                          • 8,7k
                          • 6
                        • Классификация объектов в режиме реального времени



                            Автор: Игорь Пантелеев, Software Developer, DataArt

                            Распознавание изображений очень широко используется в машинном обучении. В этой области существует множество различных решений, однако потребностям нашего проекта ни оно из них не удовлетворяло. Нам понадобилось полностью локальное решение, которое способно работать на крошечном компьютере и передавать результаты распознавания на облачный сервис. В этой статье описывается наш подход к созданию решения для распознавания изображений с помощью TensorFlow.
                            Читать дальше →
                          • Предпочтения и навыки программистов разных стран: DataArt изучил статистику платформы Skillotron



                              В августе 2017 года DataArt запустил игровую платформу самопроверки знаний для IT-специалистов Skillotron. За полгода ее пользователями стали более 7 тысяч человек из 54 стран, а мы успели собрать интересные данные об особенностях поведения игроков. Исследование не претендует на универсальность — мы не утверждаем, что статистика Skillotron отражает положение дел в IT в целом. Но посмотреть на нее нам было интересно, тем более, что для DataArt Skillotron — необычный опыт разработки собственного продукта.
                              Читать дальше →
                            • Управление трафиком с использованием Fiddler

                              • Tutorial


                              Автор: Ольга Еременко, QA Engineer

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

                              В таких случаях можно использовать прокси-сервер Fiddler — промежуточное звено между клиентом (браузер, мобильное приложение и т. д.) и целевым сервером. Скорее всего, этот инструмент вам известен, но обычно говорят о нем вскользь. Мы по шагам разберем, как проверить с помощью Fiddler, что отобразится на UI при изменении запроса к серверу или возвращаемого ответа.
                              Читать дальше →
                              • +16
                              • 8,9k
                              • 5

                            Самое читаемое