Методы java.util.concurrent.CompletableFuture

Начиная с Java8 в библиотеке появился класс CompletableFuture — это средство для передачи информации между параллельными потоками исполнения. Говоря проще это блокирующая очередь, способная передать только одно ссылочное значение. В отличие от обычной очереди, передает также исключение, если оно возникло при вычислении передаваемого значения.

Класс содержит несколько десятков методов, в которых легко потеряться. Данная статья классифицирует эти методы по нескольким признакам, чтобы в них было легко ориентироваться.

Для разминки познакомимся с новыми интерфейсами из пакета java.util.Function, которые используются как типы параметров во многих методах. Читать далее «Методы java.util.concurrent.CompletableFuture»

Стадии стартапов

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

Spring Security проблемы кодировки логин формы, кривая кирилица

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

Не смотря на то что весь проект в UTF-8 начиная от maven компилятора и заканчивая принудительно установленной кодировкой файлов в реализацию интерфейса UserDetailsService все равно приезжали данные в windows-1252.

spring UserDetailsService

Читать далее «Spring Security проблемы кодировки логин формы, кривая кирилица»

Установка Git на разные операционные системы

Git (произн. «гит») — распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. На сегодняшний день его поддерживает Джунио Хамано.

Установка из исходников

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

Для установки Git’а вам понадобятся библиотеки, от которых он зависит: curl, zlib, openssl, expat и libiconv. Например, если в вашей системе менеджер пакетов — yum (Fedora), или apt-get (Debian, Ubuntu), можно воспользоваться следующими командами, чтобы разрешить все зависимости: Читать далее «Установка Git на разные операционные системы»

Maven. Плагины для сборки проектов

Сборка проектов давно уже автоматизированный процесс. на сегодняшний день самые известные сборщики это Gradle, Ant и Maven, о последнем речь и пойдет. Рассмотрим ниже основные плагины maven, такие как Maven Compiler plugin, Maven JAR Plugin, Maven Dependency Plugin, Maven Resources Plugin и способы их конфигурации. Читать далее «Maven. Плагины для сборки проектов»