Обновить
512K+

Java *

Объектно-ориентированный язык программирования

215,48
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Пишем паническую кнопку под андроид (Часть 2)

Время на прочтение4 мин
Охват и читатели5.8K

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

Читать далее

Пишем паническую кнопку под Android (Часть 1)

Время на прочтение2 мин
Охват и читатели12K
В этой части я коротко расскажу о мотивах и с чего начиналась разработка. Меня зовут Алексей и я желаю вам приятного чтения!

Идея


Тут все произошло более чем спонтанно зимнем вечером — я на тот момент ещё junior java developer с опытом не более двух месяцев листал новости. И без упоминания ужасных событий того времени — меня просто взбудоражила новость говорящая подобное: «У молодого человека задержали телефон и посадили за подписку на канал». Это дало мне пинок для размышлений, а как вообще защищены данные на android. И тут скорее вопрос не к шифрованию хранилища, не в бэкдорах от «компании добра», а просто в экстренных ситуациях. Ведь любой пароль в принципе можно достать из владельца, и причем многими способами. И сделать так может любой человек просто даже подсмотрев его или подобрав. В поисках решение подобной проблемы я нашел только одно приложение (Ripple) — но его функционал оставлял желать лучшего учитывая что проект официально не обновлялся 2 года.

Поняв что подобного нет, я загорелся идеей создать такое приложение хотя бы для себя

Первые версии


Спустя всего-то 2-3 дня — я получил самую сырую версию которая могла только удалять приложения имена пакетов которых я вводил в ручную — быстро и тихо. А запускалось все отдельной иконкой или внутри приложения.

Скриншоты
image
image

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

Да, опять онлайн: анонс восьми осенних конференций от JUG Ru Group

Время на прочтение4 мин
Охват и читатели1.8K


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


  • Heisenbug (тестирование): 5-7 октября
  • SmartData (data engineering): 11-14 октября
  • DotNext (.NET): 18-21 октября
  • Joker (Java): 25-28 октября
  • HolyJS (JavaScript): 2-5 ноября
  • DevOops (девопс): 8-11 ноября
  • C++ Russia (C++): 15-18 ноября
  • Mobius (мобильная разработка): 22-25 ноября

Под катом — ответы на главные вопросы. Почему снова онлайн? Что там будет? Есть ли абонемент на весь сезон? Можно ли выступить с докладом? Что известно о программе и как меняется цена билетов?

Читать дальше →

Как мы запустили программу на Java без JavaVM

Время на прочтение19 мин
Охват и читатели13K
Всем привет! В этой статье мы расскажем о том, как технология GraalVM Native Image помогла нам решить ряд задач в одном из наших новых продуктов, написанном на Java, расскажем о проблемах, с которыми столкнулись в ходе применения этой технологии, и о том, как эти проблемы решали.
image
Читать дальше →

DINS JAVA EVENING: подходы к разработке API и JavaFX-приложение на Kotlin

Время на прочтение2 мин
Охват и читатели2.2K

Георгий Клюковкин из DINS сравнит стандарты разработки API и расскажет, как выбрать подходящий для вашего проекта. Иван Белозор из КРОК покажет несколько инструментов, которые стоит использовать при разработке JavaFX-приложений на Kotlin. Участие бесплатное, но нужно зарегистрироваться

Подробная программа и информация о спикерах — под катом.

Читать далее

Незаслуженно забытый ZooKeeper

Время на прочтение7 мин
Охват и читатели46K

В наш век распределенных микросервисов постоянно возникают распределенные проблемы. Это самые обычные computer science проблемы, но они распределены по разным серверам или даже разным датацентрам. Для их решения часто выдумывают много разного. Не делайте так, просто возьмите ZooKeeper. Он, несмотря на то что придуман бумерами, просто работает. Он решит немалую часть ваших проблем с распределенными системами.

Читать далее

gRPC сервер с нуля

Время на прочтение5 мин
Охват и читатели35K

  Всем приветы. В прошлом посте https://habr.com/en/post/565020/ мы сравнили gRPC и REST. И собственно, прежде чем писать новый сервер на gRPC, давайте попробуем понять нужен ли он нам действительно. Нашей команде была необходима кодогенерация на разные языки программирования. На эту роль не плохо подходил Swagger, Thrift и gRPC со встроенным кодогенератором. От Thrift, спустя какое-то время, пришлось отказаться, из-за его особенностей и сложностей поддержи на c# (по-моему это была основная причина отказа). Дальше был выбор между Swagger + REST и gRPC. В целом оба варианта хороши, но если мы думаем гонять много и часто данные между клиентом и сервером, то почему бы не протестировать gRPC?  

Структура проекта будет выглядеть следующим образом.

Read more about gRPC server creation.

Программа в 50 строк на Java/Scala, которая сэкономит вам 50 тыс. р. при подаче декларации 3-НДФЛ

Время на прочтение5 мин
Охват и читатели9.1K

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

Но если брокер такой как у меня - Interactive Brokers (организация, третьего дня запрещенная на территории РФ), декларацию вам придется делать и подавать самому. Делать это всем, конечно же лень, и неплохо бы отдать подготовку на аутсорс...

Читать далее

Вилкой в глаз, или ForkJoinPool в Java

Время на прочтение8 мин
Охват и читатели93K

Всем привет. Сегодня я хотел бы поговорить о многопоточности. Вернее, не о многопоточности вообще, а о таком её механизме как ForkJoinPool. Нельзя сказать, что данная технология является новой (она появилась ещё в Java 7), или что в сети нельзя найти материалы по данной теме. Информации хватает. Например, для глубокого погружения могу порекомендовать лекцию блистательного Алексея Шипилёва, которую можно без труда найти на YouTube. Но лично мне большинство этих материалов показались либо слишком сложными, либо наоборот – поверхностными. Так же некоторые из них содержат явные ошибки, что вносит ещё большую неразбериху в данную тему. Судя по тому, что в комментариях под одной из этих статей я нашёл вот такую картинку, подобные проблемы были не только у меня.

Читать далее

Spring WebFlux: Реактивное программирование веб-сервисов

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели101K

Модуль WebFlux появился в 5й версии фреймворка Spring. Этот микрофреймворк является альтернативой Spring MVC и отражает собой реактивный подход для написания веб-сервисов. В основе WebFlux лежит библиотека Project Reactor, позволяющая легко запрограммировать неблокирующие (асинхронные) потоки (streams), работающие с вводом/выводом данных.

Следует учесть, что WebFlux для работы требуется встроенный в Spring сервер Netty. Со встроенными Tomcat и Jetty настроить реактивность сложнее и они, как минимум, должны поддерживать Servlet 3.1. Следующая диаграмма иллюстрирует особенности окружения, в котором работает WebFlux [1].

Читать далее

Spring MVC vs Spring WebFlux. Что лучше? Объясняем на пингвинах

Время на прочтение8 мин
Охват и читатели44K

Существует множество способов реализации REST-API. Большой популярностью пользуется Spring MVC на основе блокирующих вызовов, но все чаще попадаются проекты, использующие WebFlux на неблокирующих вызовах. В этой статье разберемся, какой из этих двух фреймворков работает лучше. 

Читать далее

Современный JSON процессор

Время на прочтение3 мин
Охват и читатели9.4K

Вместо тысячи слов... Хотели бы вы обрабатывать json в терминале таким образом?

Если да, то вам под кат.

Реактивное программирование со Spring

Время на прочтение1 мин
Охват и читатели58K

Эта серия заметок служит введением в разработку реактивных веб-приложений с использованием Spring Boot, Project Reactor, WebFlux и R2DBC. Это руководство по реактивному миру для новичков, но предполагается, что читатель уже знаком с Java и Spring Boot.

В первой части представлен обзор различных концепций реактивного программирования и их истории. Вторая часть представляет собой введение в Project Reactor с большим количеством коротких примеров кода. В третьей части рассматривается WebFlux - реактивный веб-фреймворк Spring. И, наконец, четвертая часть посвящена R2DBC - Reactive Relational Database Connectivity.

Читать далее

Ближайшие события

Реактивное программирование со Spring, часть 4 R2DBC

Время на прочтение8 мин
Охват и читатели54K

Это четвертая часть серии заметок о реактивном программировании, в которой будет представлено введение в R2DBC и описано, как мы можем использовать Spring Data R2DBC для создания полностью реактивного приложения.

Читать далее

Реактивное программирование со Spring, часть 3 WebFlux

Время на прочтение10 мин
Охват и читатели76K

Это третья часть серии заметок о реактивном программировании, в которой будет представлено введение в WebFlux - реактивной веб-фреймворк Spring.

Читать далее

Реактивное программирование со Spring, часть 2 Project Reactor

Время на прочтение15 мин
Охват и читатели120K

Это вторая часть серии заметок о реактивном программировании, в которой представлен обзор Project Reactor, реактивной библиотеки, основанной на спецификации Reactive Streams.

Читать далее

Реактивное программирование со Spring, часть 1 Введение

Время на прочтение7 мин
Охват и читатели69K

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

Читать далее

Сравнение библиотек логирования Log4j и Gflog. Управление памятью

Время на прочтение8 мин
Охват и читатели3.5K

Сложные системы логируют большой объем информации. Хорошо продуманные и детализированные записи могут помочь в поиске и устранении серьёзных проблем. У большинства систем нет ограничений, какое логирование использовать ― синхронное или асинхронное. И всё же многие высокопроизводительные системы обычно предпочитают использовать асинхронное логирование без мусора (garbage-free), чтобы избежать задержек при сборке мусора (GC events) и операциях ввода-вывода (IO operations). В этой статье мы заглянем под капот библиотек логирования Java Log4j и Gflog и посмотрим, чем они отличаются с точки зрения управления памятью. Мы узнаем, как они реализованы, чтобы максимально сократить создание короткоживущих объектов.

Читать далее

Spring boot: маленькое приложение для самых маленьких

Время на прочтение13 мин
Охват и читатели50K

Всем привет! Меня зовут Варвара и я Java Developer в компании “Цифровые привычки”. Я прошла их курс по Java-разработке и по окончании получила  оффер от компании. Сейчас я хочу поделиться материалом с одного из воркшопов, который нам проводил один из лекторов - Алексей Романов, Software Architect и преподаватель Бауманки.

В этой статье мы научимся создавать простые REST приложения. Напишем свое приложение с использованием SpringBoot, создадим свои контроллеры, воспользуемся JPA, подключим PostgreSQL.

Мы будем разрабатывать приложение в 3 этапа.

Читать далее

Lombok + JPA: Что может пойти не так?

Время на прочтение4 мин
Охват и читатели52K

Lombok — это отличный инструмент, с которым Java-код становится чище и лаконичнее. Однако есть несколько нюансов, которые надо учитывать при его использовании с JPA. В этой статье мы выясним, как неправильное применение Lombok может повлиять на производительность приложений или даже привести к ошибкам. Разберемся, как этого избежать не теряя преимуществ Lombok.

Читать далее