Рубрика «java» - 144

Всем привет!
Мы — разработчики (гордо звучит, не правда ли?), и мы активно пилим новые фичи, правим баги и стараемся сделать наш продукт лучше. Но чтобы понять, а как именно пользователь использует наш продукт, какие фишки продукта ему по душе, а какие — не очень, мы используем аналитику. Есть много разных средств, но в этой статье я бы хотел поговорить именно об аналитике от Google, которая активно развивается и меняется. Старого часового по имени Google Analytics сменяет новый боец — Google Analytics for Firebase (в девичестве — Firebase Analytics).
Уже даже в названиях вы можете уловить этот ветер перемен. А ветер перемен всегда порождает некоторый информационный вакуум, в который попадают разного рода слухи, далеко не всегда достоверные при этом.
Поэтому давайте попробуем разобраться подробно, а что сейчас с этой аналитикой, чем пользоваться-то в итоге. И как вообще дальше жить.
Если про Google Analytics информации довольно много, и она систематизирована (чего только стоит этот ресурс, идеальная справка), то у Google Analytics for Firebase типичная болезнь молодого и активно развивающегося продукта — информации мало, она разрознена и иногда даже противоречива. И я в свое время потратил немало сил и времени, чтобы разобраться, что к чему.
Собственно главная цель данной статьи — это систематизация знаний и нынешнего состояния Google Analytics for Firebase. Некоторая «дорожная карта» Google Analytics for Firebase.
Уверен, данная «карта» сэкономит вам прилично времени и нервов =)

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

в 6:24, , рубрики: java, java 9, openjdk, oracle

От переводчика

Недавно в мире Java случилось пара важных событий: Марк Рейнхольд опубликовал письмо, в котором предложил перейти на полугодовой график релизов Java, а за этим последовало сообщение от Oracle, где они предлагают ряд серьезных измненеий в работе над OpenJDK:

  • Начиная с JDK 9 GA, Oracle будет выпускать OpenJDK билды под GPL лицензией
  • Java SE перейдет на постоянный график релизов (письмо Марка)
  • Oracle внесет ранее коммерческие фичи (как Java Flight Recorder) в OpenJDK
  • Oracle будет сотрудничать с другими разработчиками OpenJDK чтобы обеспечить современню, полную и доступную среду

Несмотря на то, что коммерческая версия Oracle JDK останется, целью компании станет сделать ее полностью совместимой и взаимозаменяемой с OpenJDK (до конца 2018).

Как мне кажется, это очень важный и нужный шаг для Java как платформы. Ниже я предлагаю перевод письма Марка, которые поясняет как будет работать новый график релизов.

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

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

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

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

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

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

В конце июля вышла версия 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 и обработкой информации в реальном времени.
Читать полностью »

Привет! Представляю вашему вниманию перевод статьи A Curious Java Language Feature and How it Produced a Subtle Bug автора Lukas Eder.

Правила видимости в Java иногда могут быть слегка запутанными и непонятными. Как вы думаете, что будет выведено на экран после запуска этого кода?

package p;
 
import static p.A.x;
 
class A {
    static String x = "A.x";
}
 
class B {
    String x = "B.x";
}
 
class C {
    String x = "C.x";
 
    class D extends B {
        void m() {
            System.out.println(x);
        }
    }
}
 
public class X {
    public static void main(String[] args) {
        new C().new D().m();
    }
}

Будет выведено:

B.x

Потому, что:

Члены суперкласса B скрывают все вложенные элементы класса C, которые, в свою    очередь, перекрывают статический импорт класса A.

Каким же образом все это может привести к ошибкам?

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

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

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

Недавно передо мной встала задача отказаться от statefull аутентификации с помощью сессий, в пользу stateless аутентификации и JWT. Так как это было мое первое знакомство с JSON Web Token, в первую очередь я начал искать полезную информацию на просторах интернета, но чем больше информации я находил, тем больше вопросов у меня появлялось.

Я не буду рассказывать, что это за «волшебные» токены, как они работают и зачем они нужны. Я хочу сосредоточиться на вопросах, которые встают перед многими, но не имеют однозначного правильного ответа. Мое решение не претендует на лучшее и эта статья не является пошаговым руководством, я просто хочу поделиться своим опытом и постараться обьяснить, почему я сделал именно так и никак иначе.
Читать полностью »

Возникла передо мной такая задача: автоматический выпуск сертификатов для Web приложения. И требования:

  • CA должны доверять все браузеры т.е. самоподписанные сертификаты не подходят;
  • желательно бесплатно;
  • Выпуск надо делать программно с помощью Java Embedded compact1 profile. Это всё по следам Java и без 16Gb памяти?.

Наверное многие уже слышали про бесплатные сертификаты от LetsEncrypt и certbot. А можно ли certbot заменить Java?

Управление сертификатами с помощью протокола ACME - 1

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

Добрый день, хабрачитатели!

Как работает ArrayList, вполне понятно. Есть много статей по этому поводу, часть из них иллюстрированы замечательными картинками, так что даже новичкам становится сразу все ясно. К лучшим статьям на эту тему я отношу «Структуры данных в картинках. ArrayList», написанную tarzan82.

Этот же автор описывает принципы работы LinkedList, однако часть данных устарела еще с выходом Java 7, поэтому попытка детально разобраться, что происходит внутри этой коллекции, по рисункам tarzan82 уже сложно. Да и в других источниках я не встретила понятных картинок, потому и возникла идея написать эту статью.
Читать полностью »

Привет! Представляю вашему вниманию перевод статьи Fixing 7 Common Java Exception Handling Mistakes автора Thorben Janssen.

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

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


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