• Малоизвестные факты о штрихкодах — загадочные цифры под штрихкодом

      Число зверя, штрихи смерти — насколько все это реально? Можно ли зашить в штрихкод видеоролик или фото голой Эммы Уотсон? Бывают ли “неправильные штрихкоды”, и что вообще значит “неправильный штрихкод”?

      В “Клеверенсе” мы разрабатываем платформу Mobile SMARTS для создания мобильных решений по учету маркированного товара и постоянно сталкиваемся с детскими ошибками в маркировке. Обычно они вызваны простым нежеланием людей хоть немного разбираться в теме.

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

      Сначала для затравки расскажем про кассовый штрихкод, а затем про загадочный GS1 DataMatrix, который используется в проекте тотальной маркировки товаров.

      Сама статья больше развлекательная, всё изложенное при желании легко гуглится, но может и побудить кого-то изучить тему глубже.
      Читать дальше →
      • +35
      • 11.3k
      • 8
    • Деловая переписка на английском языке: фразы и советы

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

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

        Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
        Читать дальше →
      • Не Spring Boot’ом единым: обзор альтернатив



          В настоящее время нет недостатка во фреймворках для создания микросервисов на Java и Kotlin. В статье рассматриваются следующие:
          Название Версия Год первого релиза Разработчик
          Helidon SE 1.1.1 2019 Oracle
          Ktor 1.2.1 2018 JetBrains
          Micronaut 1.1.3 2018 Object Computing
          Spring Boot 2.1.5 2014 Pivotal
          Читать дальше →
        • Роскомнадзор собирается заблокировать почти 15 миллионов IP-адресов Amazon

            IT-эксперт Михаил Климарев опубликовал документы, свидетельствующие о том, что Роскомнадзор приступает к эксперименту по блокировке доступа к двум подсетям облачных веб-сервисов компании Amazon (AWS).
            Читать дальше →
          • Яндекс открывает Алису для всех разработчиков. Платформа Яндекс.Диалоги (бета)

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



              Голосовой помощник Алиса, о котором мы впервые рассказывали на Хабре осенью прошлого года, уже работает в приложении Яндекс, Яндекс.Браузере, а также в бета-версии для Windows. Каждый день миллионы пользователей этих продуктов решают с помощью голосового помощника определённые задачи – например, узнают прогноз погоды. Мы регулярно добавляем новые возможности, но охватить все интересы пользователей самостоятельно невозможно. Заполнить этот пробел призваны навыки Алисы, об особенностях создания которых мы и расскажем под катом.

              Читать дальше →
            • Большая миграция


                Предисловие


                Привет, %username%! Этот год принес много интересных новинок и приятных новостей. Вышел долгожданный релиз Spring 5, с реактивным ядром и встроенной поддержкой Kotlin, для которой еще появится много всего интересного. Sébastien представил новый функциональный подход конфигурации Spring на Kotlin. Зарелизился JUnit 5. Близится релиз Kotlin 1.2 c улучшенной поддержкой мульти-платформенных приложений. И в этом году произошло знаменательное событие! Теперь Kotlin перешел от сборки на Groovy Dsl в Gradle на сборку с помощью Kotlin Dsl.


                Как правило, начать сразу с нового стека проще, но всегда возникают вопросы насчет того, как реализовать старые подходы. Поэтому рассмотрим как на примере приложения написанного на Java, Spring Boot 1.5 (Spring 4+) с использованием Lombok и Groovy Dsl в Gradle, поэтапно перейти на Spring boot 2 (Spring 5), JUnit 5, Kotlin, и попробовать реализовать проект в функциональном стиле на spring-webflux без spring-boot. А также как перейти с Groovy Dsl на Kotlin Dsl. В посте основное внимание будет уделяться именно переходу, поэтому будет неплохо, если уже знакомы со Spring, Spring Boot и Gradle.


                Для тех, кому лень читать, можно посмотреть пример кода на github, для всех остальных — прошу под кат:

                Читать дальше →
              • Java и Docker: это должен знать каждый

                • Translation
                Многие разработчики знают, или должны знать, что Java-процессы, исполняемые внутри контейнеров Linux (среди них — docker, rkt, runC, lxcfs, и другие), ведут себя не так, как ожидается. Происходит это тогда, когда механизму JVM ergonomics позволяют самостоятельно задавать параметры сборщика мусора и компилятора, управлять размером кучи. Когда Java-приложение запускают без ключа, указывающего на необходимость настройки параметров, скажем, командой java -jar myapplication-fat.jar, JVM самостоятельно настроит некоторые параметры, стремясь обеспечить наилучшую производительность приложения.

                В этом материале мы поговорим о том, что необходимо знать разработчику перед тем, как он займётся упаковкой своих приложений, написанных на Java, в контейнеры Linux.
                Читать дальше →
              • Перетягивание «Верблюда» или интеграция средствами Camel. Часть 2

                  Сценарии интеграции с Apache Camel



                  Сколько вы знаете шаблонов интеграции приложений(EIP)? Сколько из них вы можете использовать?

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

                  Если вы знакомы с шаблонами, но решаете стоит ли связываться с «верблюдом», то наши примеры помогут разобраться. Если вам интересен путь от сценариев использования к реализации интеграции, то эта статья как раз об этом. Прошу под кат.
                  Читать дальше →
                  • +11
                  • 23.9k
                  • 9
                • Советские «Эльбрусы» — обзор архитектуры

                    image

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

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

                    Так что автор из свойственной ему любознательности попытался разобраться с доступной документацией и составить более — менее цельную картину. Если читателю это интересно — добро пожаловать под кат.
                    Читать дальше →
                  • Все что вы хотели узнать о BPM, но боялись спросить

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

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

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

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

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

                        В этой статье речь пойдет об основных инструментах, позволяющих любому технологическому стартапу привлечь финансирование с помощью краудфандинговых и краудинвесинговых инструментов.
                        Читать дальше →
                        • +15
                        • 15.7k
                        • 8
                      • Тестирование в Java. Spock Framework

                        • Tutorial

                        В предыдущих статьях на примерах JUnit и TestNG я упоминал о test-driven development(TDD) и data-driven testing(DDT). Но есть еще один активно набирающий популярность подход, behaviour-driven development(BDD). Это такое развитие TDD техники, при котором на тест смотрят не как на тестирование каких-то компонентов системы, а как на требования к функционалу. Если TDD оперирует такими понятиями, как тест или метод, то для BDD это спецификация и требования. Про эту технику уже говорили на хабре ранее:

                        Этот подход применим используя и JUnit, и TestNG. Но есть и другие инструменты заточенные именно под BDD. В этой статье я расскажу про такой фреймворк. Называется он Spock Framework и сочетает в себе не только принципы BDD, но и достоинства Groovy. Да-да, именно Groovy. И хотя используется Groovy, используется он и для тестирования Java кода. Примерами использования могут служить Spring, Grails, Tapestry5. Интересно? Тогда читаем дальше.
                        Читать дальше →
                        • +30
                        • 54.7k
                        • 9
                      • Функциональное тестирование веб-приложений без боли

                        Иногда в жизни бывает так — вот ждёшь, ждёшь чего-то, изучаешь теорию по данному вопросу, рассматриваешь разные подходы к решению, дискутируешь с такими же ищущими как ты, внимаешь гласу признанных гуру, но не продвигаешься дальше ни на дюйм. Потом бросаешь, забываешь вообще об этом вопросе, занимаешься другими делами, и вдруг — на тебе, всё встало на свои места, из разрозненных элементов сложилась чудесная мозаика, нагрянуло просветление, а волосы вдруг стали густыми и шелковистыми.
                        Читать дальше →
                      • Тестирование с использованием BDD

                          Введение


                          Современные проекты все чаще предъявляют высокие требования к покрытию автоматическими тестами. В наше время писать тесты не просто признак хорошего тона, но одно из требований, которое предъявляется к коду. Все чаще мы слышим такие аббревиатуры, как TDD (Test Driven Development) и BDD (Behaviour Driven Development) и многие строго следуют этим подходам в разработке.
                          BDD это одна из разновидностей TDD, и об этом я хотел бы написать в этой статье. Точнее не о самом BDD, а о frameworks, которые нам предоставляет индустрия на сегодняшний день. А если уж быть совсем точным, то о трех из них: spock, easyb и cucumber.
                          Читать дальше →
                        • На пути к правильным SQL транзакциям (Часть 2)



                            В предыдущей части были рассмотрены основы уровней изоляции транзакций. Здесь я постараюсь копнуть чуть глубже и рассказать при помощи каких инструментов MS SQL Server реализует уровни изоляции.

                            Как вы могли видеть в предыдущем разделе, существует два способа поддержания изоляции:
                            • Основанный на блокировке ресурсов
                            • Основанный на создании версионной копии ресурсов.

                            Режимы, основанные на создании копии данных, достаточно просты для понимания и думаю не требуют особого внимания. При желании углубиться в детали их реализации, я могу предложить обратиться к не плохому описанию на MSDN. Я же хочу рассмотреть, как реализован механизм, основанный на блокировках.
                            Читать дальше →
                            • +20
                            • 42.2k
                            • 1
                          • На пути к правильным SQL транзакциям (Часть 1)

                            • Tutorial


                            Мне часто приходилось сталкиваться с тем, что люди прекрасно понимают, что такое транзакции в базе данных и для чего они нужны, но при этом не всегда умеют ими правильно пользоваться. Безусловно, для достижения 80-го уровня сакрального знания нужно иметь не один год опыта и прочесть множество толстенных книг по SQL. Поэтому в этой статье я даже не буду пытаться описать всё, что может быть связано с транзакциями в MS SQL. Я хочу затронуть один простой, но очень важный вопрос, который разработчики часто упускают из вида – уровни изоляции транзакций.
                            Несмотря на то, что тема очень проста, во многих источниках она освящается плохо – информации либо очень мало, либо очень много. Т.е. прочитав 5-6 кратких теоретических определений невозможно их применить на практике. Для уверенного понимания предмета статьи нужно обращаться к специализированной литературе, но там информации на столько много, что далеко не каждый может уделить необходимое время для её усваивания.
                            Сегодня я хочу поделиться своим простым рецептом, который помог мне раз и на всегда запомнить особенности уровней изоляции транзакций и по сей день помогает без проблем принимать взвешенные решения о выборе необходимого уровня.
                            Читать дальше →
                            • +22
                            • 102k
                            • 6
                          • В Эстонии уже 10000 электронных резидентов

                              Цифровое будущее все ближе. Правда, пока только для Эстонии


                              Фото: TausP/Flickr

                              В октябре 2014 года Эстония объявила о новой инициативе — введении статуса «электронного резидента» для иностранцев. E-residence не дает реального гражданства, но при этом иностранец получает много других возможностей, включая открытие счета в эстонском банке, регистрацию компании плюс электронную подпись для верификации своих документов в любой точке мира.

                              После прохождения процедуры идентификации (с предоставлением биометрических данных) заявитель получает официальный документ: эстонскую ID-карту с электронным чипом, заменяющим обычную подпись. Инициатива оказалась востребованной, и сейчас в небольшом государстве с населением чуть больше миллиона человек насчитывается более 10000 «электронных резидентов». К 2025 году Эстония надеется увеличить это число до 10 миллионов.
                              Читать дальше →
                            • Особенности распределения фонда оплаты труда в больших предприятиях РФ

                                Оказывается, в свободном доступе есть интересная информация от HeadHunter о повышении фонда оплаты труда (ФОТ) в 2015 году. Со страницы проекта "Банк данных заработных плат" идет ссылка "Сравнивайте зарплаты вашей компании с рынком".

                                Прямая ссылка на pdf: Зарплаты в России. Итоги 2015 года.


                                Как видите, между топ-менеджментом, который смог повысить себе зарплату на уровень выше официальной инфляции, и остальными сотрудниками, существует четкая граница.
                                Вы скажете – что же удивительного в том, что топ-менеджмент имеет возможность управлять своей зарплатой, а остальные нет.

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


                                Но эти выводы и советы слишком уж лежат на поверхности.
                                We need to go deeper.
                                Давайте посмотрим, насколько же глубока эта не кроличья нора…
                                Читать дальше →
                              • Что творится в разработке корпоративных мобильных приложений



                                  В 2013 году рынок мобильной разработки для бизнеса оценивался в 245 миллионов долларов. В 2016 году наш рынок должен был составить $1 млрд, но, скорее всего, будет чуть ниже из-за ситуации с экономикой и из-за санкций. По некоторым оценкам, это примерно половина от общего рынка мобильной разработки.

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

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

                                  Ниже — более технический обзор ситуации и ряд грабель. Начиная с таких очевидных, как тот факт, что если ты занимаешься атомной энергетикой, наверное, не стоит делать хранилище документов через Google.Drive.
                                  Читать дальше →
                                • Пиринговая сеть base.network

                                    base.network
                                    «Свобода — это возможность сказать, что дважды два – четыре. Если дозволено это, всё остальное отсюда следует.»
                                    Джордж Оруэлл — «1984»

                                    В современном мире активно развиваются различные распределенные технологии. Уже не первый год успешно функционируеют такие проекты как пиринговая платежная система Bitcoin, распределенные микроблоги (Twister), распределенные мессенджеры (например, Tox). Дошло дело и до полноценных распределенных сайтов.

                                    Частично функционал распределённых сайтов уже реализован в таких проектах как Freenet и I2P. Однако подобные проекты имеют ряд недостатков. Например, в настоящее время Freenet не может быть использован для создания или распространения динамического контента, такого, который использует базы данных или скрипты. Для доступа к подобным сетям часто необходимо устанавливать специальное программное обеспечение или скачивать базы данных огромных размеров. Многие пиринговые сети имеют большое время отклика. Между публикацией информации и тем когда ее увидят остальные пользователи проходит немало времени.

                                    Предлагаемая система base.network призвана устранить подобные недостатки пиринговых сетей и объединить в себе все технические преимущества централизованных систем со свободой обмена информации в распределенных сетях.
                                    Это своего рода попытка создать защищённую децентрализованную сеть с малым временем отклика и свойствами автономности, отказоустойчивости и масштабируемости. Ключевой целью проекта является способность функционировать даже под давлением организаций, осуществляющих контроль, пресечение публикации, а также ограничение доступа к информации в Интернете. Все аспекты проекта доступны в виде открытого исходного кода и бесплатны. Это позволяет убедиться, что программное обеспечение делает именно то, что заявлено, и дает возможность всем разработчикам совершенствовать защиту сети от попыток ограничить свободное распространение информации.
                                    Читать дальше →