Как стать автором
Обновить
99.84
Рейтинг

Java *

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

Сначала показывать
Порог рейтинга

Передача цифровых данных по рации с помощью мобильного приложения. Часть 1

Java *Разработка мобильных приложений *Разработка под Android *
Из песочницы

Функционал раций покрывает все нужды в своей нише, но, учитывая, что мобильный телефон всегда под рукой, хотелось бы попробовать сочетать утилитарность раций и удобство смартфона. Даже возможность передать просто координаты по радиоканалу в рамках своей туристической группы – это уже интересно, но что, если передавать зашифрованные сообщения или даже графические данные? Для меня, как для туриста со стажем, это представляется по меньшей мере любопытным.

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 4.6K
Комментарии 32

Новости

Ускоряем Groovy скрипты

Java *Groovy & Grails *
Tutorial

AST (Abstract Syntax Tree) преобразование для исполнения Groovy скриптов с @CompileStatic


Введение


Предположим у Вас есть некоторый скрипт который работает с некоторым бизнес объектом, скажем Person.


Groovy script


    person.name = 'Peter'

У Groovy есть замечательная фича @CompileStatic, которая заставляет компилятор Groovy компилировать скриптовый код статически (как это делает компилятор Java), что значительно ускоряет исполнение скрипта, но к сожалению в нашем случае простого (plain) скрипта у нас просто нет места где мы можем применить эту аннотацию. Вы знаете что @CompileStatic применяется либо к методу или классу. Давай сначала попробуем решить эту проблему вручную.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.2K
Комментарии 0

Внутренний мир: Project Reactor

Java *

У многих из нас, при использовании какого-либо инструмента программирования, возникал вопрос: “Как? Как это работает?”. Часто при возникновении подобных вопросов я обращаюсь к гуглу, который популярным образом рассказывает общие принципы работы того или иного механизма. Но наверняка среди читателей есть те, которые, прочитав несколько статей, подумали: "Да, это интересно и, вроде, понятно. Но все таки, как оно работает?".

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2K
Комментарии 9

Оптимизация и кастомизация запросов с использованием Spring Cache и Scope Bean

Блог компании Росбанк Java *ECM/СЭД *

Привет! Меня зовут Алексей Салаев, я Java-разработчик команды Corp Digital в Росбанке. В этом посте я расскажу, как можно оптимизировать и кастомизировать запросы в Spring: опишу потенциальные проблемы, оценю возможные пути решения и проиллюстрирую всё примерами.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 909
Комментарии 1

Декомпозируем регулярные выражения

PHP *JavaScript *Программирование *Java *Регулярные выражения *
Tutorial

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

Но почему-то, в случае с регэкспами у программистов как будто появляется слепое пятно на чувстве стиля. Вот такая регулярка – совершенно обычное дело:

/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((19|20)\d\d)$/

А чо не так-то?
Всего голосов 24: ↑17 и ↓7 +10
Просмотры 4.2K
Комментарии 47

Синхронный «запрос-ответ» с использованием REST и Apache Kafka

Блог компании Иннотех Высокая производительность *Программирование *Java *Apache *

Подружить REST и Apache Kafka кажется нетривиальной задачей. Однако с ней удалось справиться экспертам Группы «Иннотех». Ведущий разработчик Кирилл Воронин рассказал подробности решения задачи перевода асинхронных запросов в синхронные.

Читать далее
Всего голосов 22: ↑12 и ↓10 +2
Просмотры 6.6K
Комментарии 11

Первые шаги в анализе безопасности мобильных приложений: разбираемся на примере Allsafe

Блог компании Ростелеком-Солар Информационная безопасность *Java *DevOps *

Allsafe — это приложение, намеренно спроектированное небезопасным. Для чего это нужно? Оно предназначено для обучения и поиска различных уязвимостей. В отличие от других подобных приложений для Android, оно использует современные библиотеки и технологии. Меньше похоже на CTF и больше похоже на реальное приложение. В этом посте мы разберем его уязвимости с точки зрения двух подходов: статического и динамического тестирования безопасности.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 1.8K
Комментарии 0

Как программист настроил автоматическое развертывание бекенда с базой данных

Java *DevOps *
Tutorial

Всем привет, хабровчане и гости сайта

Сегодня решил рассказать о своем опыте, как я при помощи docker-compose и bash скрипта настроил развертывание бекенд приложения с базой данных.

Какая была идея? Хотелось при помощи одной команды в терминале разворачивать Java приложение с базой данных так, чтобы можно было передать все необходимые переменные в момент запуска и нигде не хранить их.
Так, чтобы можно было развернуть новую версию приложения даже с телефона, просто заранее заготовив необходимую команду.

Как получилось в итоге:
в корне проекта лежит баш скрипт, который принимает переменные окружения, которые нужны для запуска бекенда и базы данных. Там внутри никаких захардкодженных данных нет, что позволяет нам запускать где угодно и с какими угодно настройками.

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

Дело было так...
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 6.9K
Комментарии 21

Выкуси, Telegram Premium — бот-конвертер голосовых сообщений для обхода ограничений (Java, Spring, вебхуки, ffmpeg)

Мессенджеры *Java *

Это третья статья в моей серии "для самых маленьких" - первая была посвящена "классическому" Telegram-боту, наследуемому от TelegramLongPollingBot, вторая - боту на вебхуках на Spring с блекджеком и ш БД Redis и клавиатурами.

Для кого написано

Если вы ни разу не писали Telegram-ботов на Java с использованием вебхуков и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну очень простую функцию. Можно использовать статью как мануал для создания скелета своего бота, а потом подключить его к своей бизнес-логике.

Я пытаюсь писать как для себя, а не сразу для умных — надеюсь, кому-нибудь это поможет быстрее въехать в тему.

Предыстория

Давать доступ к возможностям продукта только покупателям подписки - нормально, это бизнес. Выводить раздражающую значительную часть пользователей фичу, а потом разрешать отказаться от неё только за деньги - поедание экскрементов.

Большинство преимуществ Telegram Premium не вызывают никаких вопросов, но запрет на отправку себе голосовых сообщений - это низко, Telegram.

К счастью, наш любимый мессенджер настолько хорош, что обойти эту несправедливость можно с помощью очень простого Voice4PremiumBot.

На дно!
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 5.5K
Комментарии 18

Java и низкая задержка

Блог компании RUVDS.com Высокая производительность *Java *Разработка под Linux *
Перевод
Источник

Я уже сбился со счёта, сколько раз мне говорили, что Java — неподходящий язык для разработки приложений, основным требованием к которым является высокая производительность. Обычно первым делом я прошу уточнить, что подразумевается под словом «производительность», поскольку две самые популярные метрики — пропускная способность и задержка — иногда конфликтуют друг с другом, а способы оптимизации одной из них существенно ухудшают вторую.

Существуют методики разработки Java-приложений, которые соответствуют требованиям к производительности (или даже превосходят их) приложений, созданных на языках, традиционно применяемых для этой цели. Однако даже этого может быть недостаточно, чтобы обеспечить наилучшую производительность с точки зрения задержек. Java-приложениям по-прежнему приходится полагаться на операционную систему в вопросе предоставления доступа к оборудованию. Обычно чувствительные к задержке приложения (часто называемые «приложениями реального времени») лучше всего работают, когда имеют практически прямой доступ к оборудованию, то же самое относится и к Java. В этой статье я познакомлю вас с методиками, которые можно применять, когда мы хотим, чтобы приложения максимально эффективно задействовали системные ресурсы.
Читать дальше →
Всего голосов 45: ↑41 и ↓4 +37
Просмотры 5.5K
Комментарии 29

Конструктор триггеров в Telegram. Или как мы сделали простейшего, но полезного бота

Java *API *
Из песочницы

Привет! Меня зовут Боровков Евгений и я предприниматель. В этой статье я расскажу про свой pet-проект. Или как я решил проблему вечного поиска информации прямо в уютном Телеграммчике.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 8.4K
Комментарии 30

Как я делал serverless поиск для мейлинг листов OpenJDK

Ненормальное программирование *Java *SQLite *WebAssembly *Serverless *
Совсем недавно мне захотелось поискать какую-то информацию в amber-dev мейлинг листе. Оказывается, что никакого встроенного поиска тут нет. Нужно либо пользоваться гуглом и использовать site: оператор, либо использовать поиск почтового клиента. В целом, оба варианта — рабочие, но мне захотелось сделать еще одну опцию, попутно немного поиграв с WebAssembly.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 609
Комментарии 0

Динамический компаратор для объектов с помощью ComparatorChain

Java *
Из песочницы

И еще немного о сортировке! Рассмотрен вариант генерации компаратора для некоторой несложной сущности на основе самого класса и параметров многоступенчатой сортировки. Плюс данного подхода заключается в получении компаратора в runtime, при отсутствии необходимости менять код при изменении сортируемой сущности и параметров сортировки.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.9K
Комментарии 2

Настраиваем память JVM-приложения в Kubernetes

Блог компании Домклик Программирование *Java *Kotlin *Kubernetes *

Друзья, всем привет! Как известно, в Kubernetes у каждого pod’а есть ограничение на  использование памяти (limits.memory), и, как показывает опыт, далеко не всегда очевидно, как JVM-приложение интерпретирует эту настройку, что порой может приводить к OOMKill.

 

Читать далее
Всего голосов 42: ↑40 и ↓2 +38
Просмотры 6.9K
Комментарии 8

Онлайн-фестиваль TechTrain — для тех, кто уехал, и тех, кто остался

Блог компании JUG Ru Group Тестирование IT-систем *Java *Разработка мобильных приложений *Конференции

В эти турбулентные времена многие читатели Хабра меняют местоположение. И части из них сейчас не до докладов про технологии, даже если речь о бесплатном онлайн-мероприятии в субботу.

Однако мы считаем, что мероприятия полезны и в такое время. Они помогают отвлечься от бесконечного думскроллинга. И они помогают людям, оказавшимся в разных географических точках, по-прежнему ощущать себя участниками русскоговорящего сообщества. Поэтому 8 октября мы, как и собирались, проведём TechTrain.

Он предшествует нашей осенней серии конференций по разным направлениям (Java, JS, DevOps и так далее). И в его программе по одному докладу от этих конференций: один о видеотехнологиях, другой о мобильной разработке, третий вообще про генерацию картинок нейросетями.

Для участия достаточно зарегистрироваться на сайте. А в этом посте мы расскажем, какие доклады (и не только) там будут.

К программе
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 748
Комментарии 0

Агрегаторы

Java *
Tutorial

В первой части статьи обсуждаются проблемы агрегации данных, подходы и требования к имплементации. Во второй рассматриваются некоторые решения на основе RACE Framework.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 3.8K
Комментарии 0

Вклад авторов

Работа

Java разработчик
360 вакансий