» Материалы за Март 2017 года » Страница 8

 

Печать в компании: копейки, которые берегут миллионы

Автор: admin от 29-03-2017, 15:15, посмотрело: 351

Один из клиентов обратился к нам в «Онланту» за услугой сервиса печати, получил прайс и на некоторое время удалился. Чуть позже он вернулся и заявил, что посчитал потенциальные затраты, и у него получилось дешевле. То есть он зашел на Яндекс.Маркет, взял цены на офисные принтеры, выбрал тот, который ему понравился. Потом нашел срок службы принтера — 5 лет, или 60 месяцев. Разделил цену на месяцы — получил затраты на печать в месяц. Затраты, разумеется, его устроили, а наш прайс — не очень. Бывало с вами такое?

Печать в компании: копейки, которые берегут миллионы


При этом клиент не учел ни затраты на обслуживание принтера, ни расходы на картриджи, ни даже стоимость бумаги. То есть у клиента максимально поверхностное представление о том, из чего состоит цена печати одной страницы в его компании. Ожидания по цене крайне заниженные. Да и вообще — разве печать может чего-то стоить компании в век победившего электронного документооборота?!

Ну, во-первых, не победившего — и вы в этом убедитесь. Во-вторых, может. Еще как может. Давайте посчитаем.

Категория: Админитстрирование » Системное администрирование

 

Запрещенные изменения в коде или продолжение истории ремонта одного крана

Автор: admin от 29-03-2017, 15:15, посмотрело: 224

Запрещенные изменения в коде или продолжение истории ремонта одного крана

Данная статья является продолжением ранее опубликованной статьи, которую можно найти здесь.

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

Откладывание рефакторинга на потом ведет к увеличению технического долга и созданию задач (user story) на рефакторинг, которые не имеют business value для product owner-a, а соответственно такие задачи не будут попадать в топ продуктового беклога.

Категория: Программирование, Веб-разработка

 

«Предъявите документы» или что поможет распознать паспорт

Автор: admin от 29-03-2017, 15:05, посмотрело: 372

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

Сегодня мы запускаем ABBYY Real-Time Recognition SDK для мобильных платформ Android и iOS. Поэтому хотим поговорить об особенностях распознавания данных на мобильном устройстве, а именно, об извлечении информации в видеопотоке на примере одного из самых сложных документов – гражданского паспорта.

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

Категория: Программирование » Веб-разработка

 

Шишки, набитые за 15 лет использования акторов в C++. Часть II

Автор: admin от 29-03-2017, 14:55, посмотрело: 269

Завершаем рассказ, начатый в первой части. Сегодня рассмотрим еще несколько граблей, на которые довелось наступить за годы использования SObjectizer-а в повседневной работе.


Продолжаем перечислять грабли


Народ хочет синхронности...


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


Ан нет. На практике быстро начались просьбы сделать в SObjectizer возможность синхронного взаимодействия агентов. Очень долго я этим просьбам сопротивлялся. Но в конце-концов сдался. Пришлось добавить в SObjectizer возможность выполнить синхронный запрос от одного агента к другому.


Выглядит в коде это вот так:

Категория: Программирование

 

Проверяем проект PascalABC.NET с помощью плагинов для SonarQube: SonarC# и PVS-Studio

Автор: admin от 29-03-2017, 14:50, посмотрело: 285

Проверяем проект PascalABC.NET с помощью плагинов для SonarQube: SonarC# и PVS-Studio

В ноябре прошлого года в нашем блоге была опубликована статья о разработке и использовании плагина PVS-Studio для SonarQube. Мы получили много откликов от клиентов и просто заинтересованных пользователей с просьбами провести тестирование плагина на реальном проекте. Так как интерес к этому вопросу не ослабевает, было решено провести тестирование на C# проекте PascalABC.NET. Также не будем забывать, что SonarQube содержит собственный статический анализатор C# кода — SonarC#. Для полноты картины проведем исследование и SonarC#. Целью данной работы является не сравнение анализаторов, а показ основных особенностей их взаимодействия с сервисом SonarQube. Прямое сравнение анализаторов было бы не вполне корректным по той причине, что PVS-Studio является специализированным инструментом поиска ошибок и потенциальных уязвимостей, в то время как SonarQube — это сервис оценки качества кода по большому числу параметров: дублирование кода, соблюдение стандартов кодирования, покрытие кода модульными тестами, возможные ошибки в коде, плотность комментариев в коде, технический долг и т.д.

Категория: Программирование, Веб-разработка, Windows

 

Основные концепции библиотеки chrono (C++)

Автор: admin от 29-03-2017, 14:50, посмотрело: 342

Работа со временем как с безразмерной величиной может приводить к недоразумениям и ошибкам конвертации временных единиц измерения:


– Слушай, ты не помнишь, мы в sleep передаем секунды или миллисекунды?

– Блин, оказывается у меня в часе 360 секунд, ноль пропустил.

Для избежания таких ошибок предусмотрена библиотека chrono (namespace std::chrono). Она была добавлена в C++11 и дорабатывалась в поздних стандартах. Теперь все логично:


using namespace std::chrono;

int find_answer_to_the_ultimate_question_of_life()
{
    //Поиск ответа
    std::this_thread::sleep_for(5s); //5 секунд
    return 42;
}

std::future<int> f = std::async(find_answer_to_the_ultimate_question_of_life);

//Ждем максимум 2.5 секунд
if (f.wait_for(2500ms) == std::future_status::ready)
    std::cout << "Answer is: " << f.get() << "n";
else
    std::cout << "Can't wait anymoren";

Библиотека реализует следующие концепции:



  • интервалы времени – duration;

  • моменты времени – time_point;

  • таймеры – clock.

Категория: Программирование

 

Колокейшн: как, зачем и почему

Автор: admin от 29-03-2017, 14:50, посмотрело: 270

Колокейшн (colocation) определяется в Википедии как услуга, состоящая в том, что провайдер размещает оборудование клиента на своей территории (обычно в дата-центре), подключает его к электричеству, обеспечивает обслуживание и доступ к каналам связи с высокой пропускной способностью. Иногда указанное оборудование не принадлежит клиенту, а арендуется им у того же провайдера, в этом случае услуга называется «аренда выделенного сервера».

Колокейшн: как, зачем и почему

Категория: Админитстрирование » Системное администрирование

 

Как создать продукт за 11 дней

Автор: admin от 29-03-2017, 14:50, посмотрело: 296

Как создать продукт за 11 дней

Наша школа запустила международную онлайн-олимпиаду по английскому языку Skyeng Super Cup, она проходит с 6 марта по 14 апреля. Школьники 5-11 классов смогут бесплатно проверить свои знания и посоревноваться за интересные призы. Они вряд ли узнают, что этот продукт был разработан нашим «спецназом» всего за 11 дней – сегодня мы расскажем читателям «Хабры», как у нас это получилось.

Категория: Программирование » Веб-разработка

 

Как создать интернет вещей из «кирпичиков» LEGO на базе платформы AWS IoT

Автор: admin от 29-03-2017, 14:50, посмотрело: 342

Как создать интернет вещей из «кирпичиков» LEGO на базе платформы AWS IoT
В одном из проектов мы проверили возможности облачной платформы AWS IoT, подключив к ней несколько устройств из набора Lego для программируемых роботов Mindstorms EV3.

На старте мы исследовали несколько крупных облачных сервисов для IoT, которые дали хороший толчок развитию всей концепции интернета вещей (IoT) — Microsoft Azure IoT Suite, AWS IoT и IBM Watson IoT — но в результате остановились именно на Amazon Web Services (AWS).

Категория: Программирование, Веб-разработка

 

Как собрать статистику с веб-сайта и не набить себе шишек

Автор: admin от 29-03-2017, 14:45, посмотрело: 270

Как собрать статистику с веб-сайта и не набить себе шишек


Привет, Хабр! Меня зовут Слава Волков, и я фронтенд-разработчик в Badoo. Сегодня я хотел бы немного рассказать про сбор статистики с фронтенда.


Мы знаем, что аналитика позволяет оценить эффективность работы любого веб-сайта, улучшить его работу, а значит, повысить уровень продаж и усовершенствовать взаимодействие пользователей с сайтом. Проще говоря, аналитика – это способ контроля над процессами, происходящими на веб-сайте. В большинстве случаев для обычных сайтов достаточно установить Google Analytics или «Яндекс.Метрику» – их возможностей вполне достаточно.


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

Категория: Программирование, Веб-разработка