Size: a a a

2019 March 12
middlejava
#nginx

Note for architects:
F5 acquires NGINX for $670M.

Архитекторам на заметку:
F5 покупает NGINX за $670M.

https://techcrunch.com/2019/03/11/f5-acquires-nginx-for-670m-to-move-into-open-source-multi-cloud-services

Есть опасение, что в целом бесплатный инструмент, перестанет быть таковым.

Как вы считаете?

https://t.me/middle_java
источник
middlejava
#job

21 вакансия для Java разработчиков от Luxoft.
Если что-то заинтересовало, то прошу присылать ваше резюме на email middle.java@mail.ru и я перешлю его HR

https://t.me/middle_java
источник
middlejava
#devops #meetup

21 марта в 19:00 МСК состоится первая оффлайн встреча серии @DevOps Meetup, которая проводится Mail.Ru Cloud Solutions совместно с сообществом DevOps Moscow.
Участие в мероприятии бесплатное, регистрация обязательна. 

https://corp.mail.ru/ru/press/events/571/

https://t.me/middle_java
источник
2019 March 13
middlejava
источник
middlejava
#java #jvm #heap #docker

Faced with problem: the memory used by the Java process is much more than the heap size.
The system where the containers are running starts to have memory problem because the container is taking much more memory than the heap size.
Here is discussion from SO, which explains why it happens.

При деплое приложения в контейнере столкнулись с проблемой: объем памяти, потребляемой Java процессом, намного превышал заданный размер heap-памяти.
По ссылке обсуждение на SO, где подробно объясняется почему это происходит.

https://stackoverflow.com/questions/53451103/java-using-much-more-memory-than-heap-size-or-size-correctly-docker-memory-limi/53624438#53624438

Summary:
Total memory =
Heap +
Code Cache +
Metaspace +
Symbol tables +
Other JVM structures +
Thread stacks +
Direct buffers +
Mapped files +
Native Libraries +
Malloc overhead + ...

https://t.me/middle_java
источник
middlejava
#protobuf #serializing

Protocol Buffers (Protobuf): basic stuff you need to know.

Protocol Buffers is binary protocol developed in Google.
Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data. Protocol buffers currently support generated code in Java, Python, Objective-C, C++, C#, JS and more. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.


Protocol Buffers (Protobuf): базовые вещи, которые нужно знать.

Protocol Buffers - это двоичный протокол, разработанный в Google.
Protocol Buffers - это независимый от языка и платформы, расширяемый механизм для сериализации структурированных данных. Protocol Buffers в настоящее время поддерживает сгенерированный код в Java, Python, Objective-C, C ++, C#, JS и др. Вы один раз определяете, как хотите структурировать ваши данные, а затем используете специальный сгенерированный исходный код, для записи и чтения ваших структурированных данных в/из различных потоков данных, используя различные языки.
Есть мнение, что Protocol Buffers проще, компактнее и быстрее, чем XML, поскольку осуществляется передача бинарных данных, оптимизированных под минимальный размер сообщения.

https://www.javacodegeeks.com/2019/02/protocol-buffers-basic-stuff-need-know.html

https://codeclimate.com/blog/choose-protocol-buffers/

https://t.me/middle_java/
источник
middlejava
#news #cryptography #security

Mozilla довела до финальной версии один из своих экспериментальных проектов Firefox Send: простой и безопасный сервис обмена зашифрованными файлами. Поддерживаются файлы до 1 ГБ (до 2,5 ГБ после авторизации в Firefox Account).

Сервис выглядит просто, но под ним работает движок, который обеспечивает настоящее end-to-end шифрование, то есть вы никуда не передаёте файлы в открытом виде — они шифруются конкретно на вашем ПК, а расшифровываются на компьютере получателя (JS в браузере). 

https://itnan.ru/post.php?c=1&p=443566

https://t.me/middle_java
источник
2019 March 14
middlejava
#react #node #mongodb #docker

How to create a full stack React/Express/MongoDB app using Docker.

In this tutorial, you'll be guided through the process of containerizing a React FrontEnd, a Node/Express API, and a MongoDB database using Docker containers.

Как создать full stack React/Express/MongoDB приложение с применением Docker.

В этом тьюториале вас проведут через процесс контейнеризации React FrontEnd, Node/Express API и MongoDB с применением контейнеров Docker.  

https://medium.freecodecamp.org/create-a-fullstack-react-express-mongodb-app-using-docker-c3e3e21c4074

https://t.me/middle_java
источник
middlejava
#go #java #jmv #concurrency #routine

Go vs Java in terms of memory efficiency. Beauty of go routines and their variable stack size limit.
Java achieves concurrency by creating OS threads. Thread stack size is configurable in Java.
Coming to Go, it achieves concurrency in a different way. It does not create OS threads. Instead, it creates a much lighter go routines. Go has its own scheduler to have multiple routines run time efficiently. Go routines can have stack size of as small as 4 kB which can be extended till 1000000000 bytes.That’s cool.
Here's small experiment to understand this difference.

\\\\\

Go в сравнении с Java с точки зрения эффективности утилизации памяти. Красота рутин Go и ограничение изменяющегося размера стека.
Java достигает параллелизма, создавая потоки ОС. Размер стека потока настраивается в Java.
Go достигает параллелизма другим способом. Он не создает потоки ОС. Вместо этого он создает гораздо более легкие рутины Go. У Go есть свой собственный планировщик для эффективного выполнения нескольких рутин. Размер стека рутин Go может быть 4 КБ, который может быть увеличен до 1000000000 байт. Это круто.
По ссылке небольшой эксперимент для понимания этой разницы.

https://hashnode.com/post/amp/go-vs-java-in-terms-of-memory-efficiencybeauty-of-go-routines-and-their-variable-stack-size-limit-cjt5hjvl80005jps1y7g17pkk

https://t.me/middle_java
источник
middlejava
#spring #integration #java #tutorial

Message Processing with Spring Integration.

Spring Integration provides an extension of the Spring framework to support the well-known Enterprise Integration Patterns. It enables lightweight messaging within Spring-based applications and supports integration with external systems. One of the most important goals of Spring Integration is to provide a simple model for building maintainable and testable enterprise integration solutions.

Let's have a look at sample cargo messaging implementation.

\\\\\\

Обработка сообщений с помощью Spring Integration.

Spring Integration расширяет Spring framework в части поддержки хорошо известных Enterprise Integration Patterns (Корпоративных интеграционных паттернов). Он позволяет организовать легковесный обмен сообщениями внутри Spring-приложений и поддерживает интеграцию с внешними системами.
Одна из самых важных целей Spring Integration - предоставление простой модели для создания обслуживаемых и тестируемых корпоративных интеграционных решений.

Давайте посмотрим на пример реализации системы обмена сообщениями грузовой компании.


https://www.javacodegeeks.com/2014/12/message-processing-with-spring-integration.html

https://t.me/middle_java
источник
middlejava
#meetup #angular #moscow

ANGULAR MEETUP #13

Будут рассмотрены Angular Elements, i18n, микро-сервисная архитектура в Angular и ngxf.

28 марта 2019
19:00 - 21:30
Москва, Головинское ш., д.5, БЦ Водный

Регистрация:
https://meetup.tinkoff.ru/events/angular-meetup-13

https://t.me/middle_java
источник
2019 March 15
middlejava
#spring #profile #java

In the articles below, we’ll focus on Profiles in Spring.

Profiles are a core feature of the framework – allowing us to map our beans to different profiles – for example, dev, test, prod.
Spring Profiles provide a way to segregate parts of your application configuration and make it be available only in certain environments. Any @Component or @Configuration can be marked with @Profile to limit when it is loaded.

We can then activate different profiles in different environments to bootstrap just the beans we need:

- https://www.mkyong.com/spring/spring-profiles-example/
- https://www.baeldung.com/spring-profiles
- https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

https://t.me/middle_java
источник
middlejava
#springboot #java #news

In Spring Boot 2.2 M1 it's added support for lazy initialization. If you'd like to know more about it, what it can do, and how and when to enable it, hopefully this blog post will help.

В Spring Boot 2.2 M1 добавлена ленивая инициализация бинов. Если вы хотите узнать о ней больше, что она может делать, как и когда её использовать, вам поможет разобраться статья по ссылке.

https://spring.io/blog/2019/03/14/lazy-initialization-in-spring-boot-2-2

https://t.me/middle_java
источник
middlejava
#job #angular

Свежие вакансии для разработчиков:

У Сбербанка открыты вакансии:
- Разработчик Angular
- Разработчик Angular (начальный уровень)

Подробное описание в приложенном файле.

Если интересно, то прошу присылать резюме на ящик middle.java@mail.ru

https://t.me/middle_java
источник
middlejava
#springdata #tutorial

Spring Data’s mission is to provide a familiar and consistent, Spring-based programming model for data access while still retaining the special traits of the underlying data store.

In this ebook, we provide a compilation of Spring Data examples that will help you kick-start your own projects. We cover a wide range of topics, from setting up the environment and creating a basic project, to handling the various modules (e.g. JPA, MongoDB, Redis etc.).

Spring Data Programming Cookbook includes:

- Beginners Tutorial
- Gemfire Example
- Cassandra Example
- Redis Example
- MongoDB REST Example
- Solr Example
- MongoDB Example
- REST Example
- Neo4j Example
- Elasticsearch Example
- JPA Example
- Couchbase Example

https://t.me/middle_java
источник
middlejava
#java #programming #spring #jvm #hibernate

Weekly Java news by Eugene.

Еженедельная подборка новостей по Java от Евгения.

https://www.baeldung.com/java-weekly-272

https://t.me/middle_java
источник
2019 March 16
middlejava
#hibernate #merge

How to optimize the merge operation using update while batching with JPA and Hibernate.

In this article, you are going to see a shortcoming of the merge entity state transition and how you can deal with it using Hibernate.

\\\\\\\

Как оптимизировать операцию merge, используя update при пакетных операциях с JPA и Hibernate.

В этой статье вы познакомитесь с недостатками перевода состояния сущности при выполнении merge и как с ними справиться, используя Hibernate.

https://vladmihalcea.com/how-to-optimize-the-merge-operation-using-update-while-batching-with-jpa-and-hibernate/

https://t.me/middle_java
источник
middlejava
#microservices #micronaut #grails

Micronaut: interesting possible replacement for Spring Boot.

Micronaut is a JVM based modern full-stack Microservice framework. This new framework has been developed by Grails team with an intention to solve problems which have been identified over the years while building the real world Microservices applications.

Key highlights of Micronaut:

Micronaut by default provides all the required tools to build the fully featured Microservices applications, which includes:

- Dependency Injection and Inversion of Control (IoC)
- Sensible Defaults and Auto-Configuration
- Configuration and Configuration Sharing
- Service Discovery
- HTTP Routing
- HTTP Client with client-side load-balancing

In Parallel, Micronaut also aims to avoid the downsides of Spring framework, Spring Boot and Grails frameworks by providing:

- Fast startup time
- Reduced memory footprint
- Minimal use of reflection
- Minimal use of proxies
- Easy unit testing

\\\\\\\\

Micronaut: интересная возможная альтернатива для Spring Boot.

Micronaut - это современный полностековый JVM-фреймфорк для разработки микросервисов. Эта новый фреймфорк был разработан командой Grails с целью решения проблем, которые были выявлены за годы создания реальных микросервисных приложений.

Ключевые особенности Micronaut:

По умолчанию Micronaut предоставляет все необходимые инструменты для создания полнофункциональных микросервисных приложений, включающих:

- Внедрение зависимостей и инверсию контроля (IoC)
- Адекватные настройки по умолчанию и автоконфиги
- Конфигурирование и шаринг конфигураций
- Service Discovery
- HTTP-маршрутизацию
- HTTP-клиент с балансировкой нагрузки на стороне клиента

Параллельно Micronaut также пытается избежать недостатков платформ Spring, Spring Boot и Grails, обеспечивая:

- Быстрое время запуска
- Снижения потребления памяти
- Минимальное использование рефлексии
- Минимальное использование объекто-прокси
- Простое юнит-тестирование

https://walkingtree.tech/micronaut-potential-poster-boy-microservices/

https://t.me/middle_java
источник
2019 March 17
middlejava
#sql #postgresql #perfomance

Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз.

https://m.habr.com/ru/post/444018

https://t.me/middle_java
источник
middlejava
#java #fail #openjdk

Public updates for Oracle Java SE 8 released after January 2019 will not be available for business, commercial or production use without a commercial license.

Публичные обновления Oracle Java SE 8, выпущенные после января 2019 года, не будут доступны для коммерческого использования без платной лицензии.

https://www.java.com/en/download/release_notice.jsp

https://t.me/middle_java
источник