Архив за 11 сентября 2017 - 3

Как на Java c помощью КриптоПро подписать документ PDF - 1

Привет! Я сотрудник Альфа-Банка и занимаюсь разработкой программного обеспечения со встроенными средствами криптографической защиты информации.

В данной статье хочу рассказать о следующих вещах:

  • преимуществах формата PDF в качестве документа с электронной подписью;
  • платформе Java, библиотеке itextpdf и СКЗИ КриптоПро CSP, как инструментах подписи;
  • о том, с какими трудностями пришлось столкнуться, о доработке itextpdf;
  • привести пример кода, выполняющего несколько подписей;
  • поговорить о целесообразности использования формата PDF в качестве документа с подписью.

Читать полностью »

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

Читать полностью »

Это раньше можно было на любой девайс отмахнуться, мол, подожду, через какое-то время Xiaomi сделает то же самое, но дешевле. Для тех же, кто по каким-то причинам хотел купить Bluetooth-ресивер, это правило не сработало: гаджет, хоть и стоит очень дешево, но не дешевле, чем у других производителей. И тем не менее свои пару слов он заслужил.

Xiaomi Bluetooth Audio Receiver — на этот раз не самый дешевый в своем классе - 1
Читать полностью »

В конце июля вышла версия Apache Ignite 2.1. Apache Ignite — распределенная свободная HTAP-платформа (HTAP — Hybrid Transactional and Analytical Processing, системы, которые могут обрабатывать как транзакционную, так и аналитическую нагрузку) для хранения данных в оперативной памяти и на диске, а также вычислений в реальном времени. Ignite написан на Java и может быть плотно интегрирован с .NET и C++.

Версия 2.1 очень богата на значимые, практически применимые функции, базирующиеся на фундаменте, заложенном в Apache Ignite 2.0.

С Apache Ignite 2.1 можно использовать распределенное дисковое хранилище Apache Ignite Persistent Data Store с поддержкой SQL, первые распределенные алгоритмы машинного обучения, новые функции DDL, и кроме того значительно улучшена поддержка платформ .NET и C++.

Persistent Data Store выводит Apache Ignite в новый сегмент — теперь это не просто in-memory data grid, но полноценная распределенная масштабируемая база данных HTAP с возможностью надежного хранения первичных данных, с поддержкой SQL и обработкой информации в реальном времени.
Читать полностью »

У .NET есть несколько вариантов создания SOAP клиента, одним из них является его генерация с помощью wsdl.exe. На выходе получаем файл (поскольку пишу я на C#, то генерировал cs, соответственно), основой которого является класс, унаследованный от SoapHttpClientProtocol. Подробнее тут.

С моей точки зрения, это достаточно удобный способ, к тому же сам клиент можно подразогнать с помощью sgen.exe (очень хороший пример). Тем не менее есть у него один очень серьезный недостаток — это отсутствие штатной возможности получения текста запроса/ответа. А это было бы крайне удобно при первичной отладке сервисов, разборе ошибок и, самое главное, при возможных разбирательствах со стороны, эти самые сервисы предоставляющей.

Впрочем, если очень хочется, то нужно сделать.

Основная идея

Читать полностью »

Установлено,что дети быстрее и легче взрослых осваивают новую информацию. Стремительно взрослея, они проявляют способность к быстрому самообучению. Доказано, что самостоятельное восприятие информации приносит больше пользы, если оно преподносится в игровой форме. Читать полностью »

КПДВ с примерами кода Шаблоны C++ — полный по Тьюрингу язык, на котором можно писать compile-time программы. Только вот синтаксис рассчитан на описание параметризованных типов и слабо приспособлен к ясному выражению чего-то более сложного. В этой статье рассмотрим, как типы и шаблоны становятся значениями и функциями, а также узнаем, к чему привела попытка автора создать свой функциональный язык, транслирующийся в шаблоны C++. Для прочтения текста знания в области функционального программирования почти не требуются.
Читать полностью »

Синхронный код на JavaScript, автор которого не стремился сбить с толку тех, кто этот код будет читать, обычно выглядит просто и понятно. Команды, из которых он состоит, выполняются в том порядке, в котором они следуют в тексте программы. Немного путаницы может внести поднятие объявлений переменных и функций, но чтобы превратить эту особенность JS в проблему, надо очень постараться. У синхронного кода на JavaScript есть лишь один серьёзный недостаток: на нём одном далеко не уехать.

JavaScript: методы асинхронного программирования - 1

Практически каждая полезная JS-программа написана с привлечением асинхронных методов разработки. Здесь в дело вступают функции обратного вызова, в просторечии — «коллбэки». Здесь в ходу «обещания», или Promise-объекты, называемые обычно промисами. Тут можно столкнуться с генераторами и с конструкциями async/await. Асинхронный код, в сравнении с синхронным, обычно сложнее писать, читать и поддерживать. Иногда он превращается в совершенно жуткие структуры вроде ада коллбэков. Однако, без него не обойтись.

Сегодня предлагаем поговорить об особенностях коллбэков, промисов, генераторов и конструкций async/await, и подумать о том, как писать простой, понятный и эффективный асинхронный код.
Читать полностью »

6 сентября на Дизайн-заводе Flacon прошел неформальный митап для back-end разработчиков.

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

Горячий глинтвейн и бургеры, теплая атмосфера. А еще горячие темы выступлений:

— Как с пользой провести время на собеседовании
— Почему Big Data бесполезна
— Как внедрить Kubernetes и не сойти с ума
— Почему архитектуру иногда нужно менять просто так
— Про Docker

Отчет с митапа для back-end разработчиков - 1

Читать полностью »

Метавычисления и глубокие свёрточные сети: интервью с профессором ИТМО - 1

После победы AlphaGo в марте 2016 года над одним из сильнейших игроков Go в мире Ли Седолем о методах глубокого обучения заговорили практически везде. И даже Google не упустил случая назвать себя компанией машинного обучения и искусственного интеллекта.

Что стоит за термином «глубокое обучение»? Какими бывают модели машинного обучения и на чём они пишутся? Ответить на эти и многие другие вопросы, связанные с МО и, в частности, с глубоким обучением (deep learning), мы попросили Алексея Потапова, профессора кафедры компьютерной фотоники и видеоинформатики ИТМО.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js