Pull to refresh
15
0
Виталий Самоловских @kefirfromperm

User

Send message

Проблемы распознавания ID-документов на мобильных устройствах на примере машинно-читаемых зон

Reading time 14 min
Views 27K

Рис. 1 — Загранпаспорт РФ с MRZ-зоной (Источник изображения: en.wikipedia.org/wiki/Russian_passport)

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

Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 2

Всё, о чём должен знать разработчик Телеграм-ботов

Reading time 15 min
Views 588K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

Читать далее
Total votes 127: ↑127 and ↓0 +127
Comments 73

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

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

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

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

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

Сама статья больше развлекательная, всё изложенное при желании легко гуглится, но может и побудить кого-то изучить тему глубже.
Читать дальше →
Total votes 39: ↑37 and ↓2 +35
Comments 8

Деловая переписка на английском языке: фразы и советы

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

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

Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
Читать дальше →
Total votes 104: ↑100 and ↓4 +96
Comments 80

Не Spring Boot’ом единым: обзор альтернатив

Reading time 13 min
Views 26K


В настоящее время нет недостатка во фреймворках для создания микросервисов на 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
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Comments 14

Роскомнадзор собирается заблокировать почти 15 миллионов IP-адресов Amazon

Reading time 2 min
Views 69K
IT-эксперт Михаил Климарев опубликовал документы, свидетельствующие о том, что Роскомнадзор приступает к эксперименту по блокировке доступа к двум подсетям облачных веб-сервисов компании Amazon (AWS).
Читать дальше →
Total votes 87: ↑85 and ↓2 +83
Comments 688

Яндекс открывает Алису для всех разработчиков. Платформа Яндекс.Диалоги (бета)

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



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

Читать дальше →
Total votes 110: ↑105 and ↓5 +100
Comments 157

Большая миграция

Reading time 29 min
Views 11K


Предисловие


Привет, %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, для всех остальных — прошу под кат:

Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 17

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

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

В этом материале мы поговорим о том, что необходимо знать разработчику перед тем, как он займётся упаковкой своих приложений, написанных на Java, в контейнеры Linux.
Читать дальше →
Total votes 41: ↑38 and ↓3 +35
Comments 18

Перетягивание «Верблюда» или интеграция средствами Camel. Часть 2

Reading time 14 min
Views 26K

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



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

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

Если вы знакомы с шаблонами, но решаете стоит ли связываться с «верблюдом», то наши примеры помогут разобраться. Если вам интересен путь от сценариев использования к реализации интеграции, то эта статья как раз об этом. Прошу под кат.
Читать дальше →
Total votes 17: ↑14 and ↓3 +11
Comments 9

Советские «Эльбрусы» — обзор архитектуры

Reading time 28 min
Views 22K
image

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

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

Так что автор из свойственной ему любознательности попытался разобраться с доступной документацией и составить более — менее цельную картину. Если читателю это интересно — добро пожаловать под кат.
Читать дальше →
Total votes 50: ↑50 and ↓0 +50
Comments 39

Все что вы хотели узнать о BPM, но боялись спросить

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

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

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

На самом ли деле все так безоблачно? Не пора ли всем выбросить старые инструменты, и полностью перейти на новую платформу?
Читать дальше →
Total votes 33: ↑25 and ↓8 +17
Comments 47

Российские и иностранные площадки для привлечения коллективного финансирования

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

В этой статье речь пойдет об основных инструментах, позволяющих любому технологическому стартапу привлечь финансирование с помощью краудфандинговых и краудинвесинговых инструментов.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 8

Тестирование в Java. Spock Framework

Reading time 15 min
Views 68K

В предыдущих статьях на примерах 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. Интересно? Тогда читаем дальше.
Читать дальше →
Total votes 42: ↑36 and ↓6 +30
Comments 9

Функциональное тестирование веб-приложений без боли

Reading time 5 min
Views 37K
Иногда в жизни бывает так — вот ждёшь, ждёшь чего-то, изучаешь теорию по данному вопросу, рассматриваешь разные подходы к решению, дискутируешь с такими же ищущими как ты, внимаешь гласу признанных гуру, но не продвигаешься дальше ни на дюйм. Потом бросаешь, забываешь вообще об этом вопросе, занимаешься другими делами, и вдруг — на тебе, всё встало на свои места, из разрозненных элементов сложилась чудесная мозаика, нагрянуло просветление, а волосы вдруг стали густыми и шелковистыми.
Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Comments 19

Тестирование с использованием BDD

Reading time 5 min
Views 159K

Введение


Современные проекты все чаще предъявляют высокие требования к покрытию автоматическими тестами. В наше время писать тесты не просто признак хорошего тона, но одно из требований, которое предъявляется к коду. Все чаще мы слышим такие аббревиатуры, как TDD (Test Driven Development) и BDD (Behaviour Driven Development) и многие строго следуют этим подходам в разработке.
BDD это одна из разновидностей TDD, и об этом я хотел бы написать в этой статье. Точнее не о самом BDD, а о frameworks, которые нам предоставляет индустрия на сегодняшний день. А если уж быть совсем точным, то о трех из них: spock, easyb и cucumber.
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 19

На пути к правильным SQL транзакциям (Часть 2)

Reading time 7 min
Views 53K


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

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

Режимы, основанные на создании копии данных, достаточно просты для понимания и думаю не требуют особого внимания. При желании углубиться в детали их реализации, я могу предложить обратиться к не плохому описанию на MSDN. Я же хочу рассмотреть, как реализован механизм, основанный на блокировках.
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 1

На пути к правильным SQL транзакциям (Часть 1)

Reading time 6 min
Views 141K


Мне часто приходилось сталкиваться с тем, что люди прекрасно понимают, что такое транзакции в базе данных и для чего они нужны, но при этом не всегда умеют ими правильно пользоваться. Безусловно, для достижения 80-го уровня сакрального знания нужно иметь не один год опыта и прочесть множество толстенных книг по SQL. Поэтому в этой статье я даже не буду пытаться описать всё, что может быть связано с транзакциями в MS SQL. Я хочу затронуть один простой, но очень важный вопрос, который разработчики часто упускают из вида – уровни изоляции транзакций.
Несмотря на то, что тема очень проста, во многих источниках она освящается плохо – информации либо очень мало, либо очень много. Т.е. прочитав 5-6 кратких теоретических определений невозможно их применить на практике. Для уверенного понимания предмета статьи нужно обращаться к специализированной литературе, но там информации на столько много, что далеко не каждый может уделить необходимое время для её усваивания.
Сегодня я хочу поделиться своим простым рецептом, который помог мне раз и на всегда запомнить особенности уровней изоляции транзакций и по сей день помогает без проблем принимать взвешенные решения о выборе необходимого уровня.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 6

Особенности распределения фонда оплаты труда в больших предприятиях РФ

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

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


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

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


Но эти выводы и советы слишком уж лежат на поверхности.
We need to go deeper.
Давайте посмотрим, насколько же глубока эта не кроличья нора…
Читать дальше →
Total votes 100: ↑89 and ↓11 +78
Comments 156

Что творится в разработке корпоративных мобильных приложений

Reading time 11 min
Views 39K


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

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

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

Ниже — более технический обзор ситуации и ряд грабель. Начиная с таких очевидных, как тот факт, что если ты занимаешься атомной энергетикой, наверное, не стоит делать хранилище документов через Google.Drive.
Читать дальше →
Total votes 46: ↑33 and ↓13 +20
Comments 11

Information

Rating
Does not participate
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity