• Внедряем OSGI на платформе Karaf

      OSGI это не сложно


      Я много раз встречал мнение, что OSGI это сложно. И более того, у самого когда-то такое мнение было. Году в 2009, если быть точным. На тот момент мы собирали проекты при помощи Maven Tycho, и деплоили их в Equinox. И это действительно было сложнее, чем разрабатывать и собирать проекты под JavaEE (в тот момент как раз появилась версия EJB 3, на которую мы и переходили). Equinox был намного менее удобен по сравнению с Weblogic, например, а преимущества OSGI тогда мне были не очевидны.

      Зато потом, через много лет, мне пришлось на новой работе взяться за проект, который был задуман на основе Apache Camel и Apache Karaf. Это была не моя идея, я давно знал к тому моменту про Camel, и решил почитать про Karaf, даже еще не имея оффера. Почитал один вечер, и понял — вот же оно, простое и готовое, практически то же самое решение некоторых проблем типового JavaEE, аналогичное которому я когда-то делал на коленке при помощи Weblogic WLST, Jython, и Maven Aether.

      Итак, допустим вы решили попробовать OSGI на платформе Karaf. С чего начнем?
      Читать дальше →
    • Как загрузить OpenStreetMap в Hive?

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

        Адреса для определенности российские, и главное — зачастую написаны криво, то есть с ошибками, неоднозначностями и прочими прелестями. И находятся эти адреса в базе данных Hive, на кластере Hadoop.


        Ну казалось бы — берем Google Maps Geocoding API (или, если вы сторонник импортозамещения, то Yandex Maps API), и работаем. Но тут нас, как впрочем и c обратным геокодированием, ждет небольшая засада.
        Читать дальше →
      • Как геокодировать миллион точек на Spark по-быстрому?

          В моем предыдущем проекте перед нами встала задача провести обратное геокодирование для множества пар географических координат. Обратное геокодирование — это процедура, которая паре широта-долгота ставит в соответствие адрес или название объекта на карте, к которому принадлежит или близка заданная координатами точка. То есть, берем координаты, скажем такие: @55.7602485,37.6170409, и получаем результат либо «Россия, Центральный федеральный округ, Москва, Театральная площадь, дом такой-то», либо например «Большой театр».

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

          В качестве исходных данных у нас на входе было примерно 100 или 200 тысяч точек, которые лежали в кластере Hadoop в виде таблицы Hive. Это чтобы был понятен масштаб задачи.

          В качестве инструмента обработки в конце концов был выбран Spark, хотя в процессе мы попробовали как MapReduce, так и Apache Crunch. Но это отдельная история, возможно заслуживающая своего поста.
          Читать дальше →
        • Моя подборка с Youtube на тему DIY

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

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

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

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


            Читать дальше →
          • Apache Spark — достоинства, недостатки, пожелания

              Мне давно хотелось изложить свои впечатления об Apache Spark, и тут как раз попалась на глаза вот эта статья от сотрудника Pivotal Robert Bennett, опубликованная совсем недавно, 26 июня 2018.

              Это не будет перевод, а скорее все-таки мои впечатления и комментарии на тему.
              Читать дальше →
              • +12
              • 6,8k
              • 2
            • Может ли компьютерная книга оставаться актуальной через 30 лет после написания?

              Недавний очередной пост на тему «Как прочитать 100 книг за год, и достичь успеха в жизни» заставил меня вспомнить, какие же книги на самом деле изменили мой взгляд на жизнь. Ну ладно, пусть не на жизнь, а хотя бы на программирование, для начала.

              И припомнилась мне при этом старая-престарая по меркам программирования книга под завлекающим названием «Что мама никогда не рассказывала вам о сопровождении VM». В оригинале она называется «What Mother Never Told You about VM Service», автор Melinda W. Varian.

              Итак, на минутку, это 1983 год. Только что появилась первая версия MS DOS. Появления CVS еще ждать примерно 8 лет. Unix уже существует, но пока не получил распространения (у нас в Москве он появится в виде Демос примерно в 1986 на машинах СМ-4). Большинство компьютерных книг того времени сегодня безнадежно устарели.
              Читать дальше →
            • Все что вы хотели узнать о BPM, но боялись спросить

                В сети имеется множество публикаций о том, ради чего стоит внедрить BPM (Business Process Management) в вашей компании. Как обычно формулируются преимущества, которые дает бизнесу внедрение BPM:

                1. Визуальное моделирование и выполнение бизнес-процессов.
                2. Набор готовых компонент для построения гибких бизнес-процессов.
                3. Взаимодействие с пользователем для выполнения ручных действий.
                4. Гибкость конфигурирования бизнес-процессов.
                5. Поддержка версионности бизнес-процессов.

                Это не все, что можно упомянуть, но достаточно типичный набор преимуществ платформы.

                На самом ли деле все так безоблачно? Не пора ли всем выбросить старые инструменты, и полностью перейти на новую платформу?
                Читать дальше →
              • Maven vs Gradle? Это неправильная постановка вопроса

                Написать, наконец, этот пост меня заставила уже давняя дискуссия вот к этому посту на тему, которая время от времени всплывает то там, то тут.

                Я много раз имел возможность убедиться, что далеко не все одинаково понимают, в чем же состоит декларативность vs процедурность той или иной системы сборки. Основным достоинством инструмента сборки зачастую считается возможность писать алгоритмы сборки на удобном языке. Нужен DSL, никуда без него.
                Читать дальше →
                • +5
                • 31,3k
                • 5