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

Прелюдия

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

Дерево — структура данных, состоящая из узлов, соединенных ребрами. Можно сказать, что дерево — частный случай графа. Вот пример дерева:

Бинарные деревья поиска - 1

Это не бинарное дерево поиска! Все под кат!
Читать полностью »

Micrometer используется для сбора метрик приложения JVM и позволяет экспортировать данные в различные системы мониторинга. В этой статье я расскажу, как подключить Micrometer для spring web приложения и экспортировать данные в Prometheus (хороший пост о нем). Так как мое приложение написано на Spring 3, то возможности использовать Spring boot без апгрейда в нем нет. Поэтому придется поработать руками.
Читать полностью »

Сегодня в нашей виртуальной студии Себастиан Дашнер. Вкратце, кто это такой:

В этом интервью мы поговорим на следующие темы:

Скрытый текст

  • Обычное приветствие: как ему понравилось в России и Сибири, JUG-путешествие на байках;
  • Чем занимаются Developer Advocates и не бездельники ли они;
  • Каким боком IBM относится к опенсорсу;
  • Поддержание продуктивности разработчика (со ссылкой на YouTube Себастиана);
  • Текущая ситуация вокруг Java EE и Jakarta EE;
  • Нужно ли мерджить Java EE и Jakarta EE;
  • Мнение по поводу Eclipse Specification Process;
  • Рассказ о IBM WebSphere Liberty Profile, отличиях от Full Profile и связи с реальным продом;
  • Отношение к проекту Helidon и что насчёт «выбросить Java EE и переписать заново»;
  • Поддержка облачных технологий в Java: Kubernetes, Istio;
  • Последний вопрос: Linux на десктопе.

Ударим Java EE автопробегом по бездорожью и разгильдяйству! Интервью с Себастианом Дашнером, коммитером Jakarta EE - 1

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

Доброго времени суток!

Хочу поделиться с Вами историей о внедрении cache на БД Tarantool и своих особенностях работы.
Я работаю Java разработчиком в телекоммуникационной компании. Основная задача: реализация бизнес логики для платформы, которую компания купила у вендора. Из первых особенностей это работа по soap и практически полное отсутствие кэширования, кроме как в памяти JVM. Все это конечно хорошо до тех пор, пока количество экземпляров приложения не переваливает за два десятка…

В ходе работы и появления понимания особенностей работы платформы была предпринята попытка сделать кэширование. На тот момент была уже запущена MongoDB и как следствие особых положительных результатов как в тесте мы не получили.

При дальнейшем поиске альтернатив и совета моего хорошего друга mr_elzor было принято решение попробовать БД Tarantool.
Читать полностью »

Пользуетесь ли вы Jenkins? Скорей всего да, потому что это самый популярный на сегодняшний день проект этого класса. Мне всегда интересно было пообщаться с кем-нибудь из разработчиков и задать пару жестких вопросов. Здесь же у нас не просто разработчик, а сам создатель Jenkins — Коске Кавагучи (Kohsuke Kawaguchi).

Как известно, Jenkins — это открытый проект с лицензией MIT. Совсем недавно прошла конференция FOSDEM — самая большая в мире конференция, посвященная свободному программному обеспечению. Бесплатная, открытая, с десятками спикеров со всех уголков мира. Это значит, что там можно встретить кого угодно — даже создателя Jenkins. Небольшим составом друзей и коллег по JUG.ru Group мы устроили туда внезапный десант и смогли записать с создателем Дженкинса хорошее интервью.

Итак, в нашей виртуальной студии Коске Кавагучи (который представится и всё подробно расскажет чуть ниже), Руслан Ахметзянов ARG89 из JUG.ru Group и Кирилл Толкачёв tolkkv из ЦИАН, наш неизменный докладчик, гуру Groovy, Gradle, Spring и стека технологий Netflix, которого вы можете знать по подкасту «Разбор Полётов».

Большое интервью с создателем Jenkins, Kohsuke Kawaguchi - 1

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

Что делать, если надо работать с данными, которые по объему еще не Big data, но уже больше того, что умещается в памяти компьютера и для которых достаточно возможностей Excel? Для любителей велосипедостроения ответ очевиден – нужно писать что-то свое (да, мы не ищем легких путей).

Но как быть, если код, написанный тобой в прошлом, ужасен и не дает тебе возможности развивать проект? Отставить в сторонку старые наработки, дать дорогу новому, вечному и светлому (да-да, и тут тоже без вариантов).

ASH Viewer: перезагрузка - 1

Цитата из кф Матрица: “Достаточно одной таблетки, Нео”. Режиссер: братья и сестры Вачовски. 1999. США
Читать полностью »

Kotlin puzzlers, Vol. 2: новая порция головоломок - 1

Можете предсказать, как поведёт себя такой Kotlin-код? Скомпилируется ли он, что выведет и почему?

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

Ещё в 2017-м мы публиковали на Хабре подборку таких паззлеров от Антона Кекса antonkeks. А позже он выступил у нас на Mobius со второй подборкой, и её мы теперь тоже перевели для Хабра в текстовый вид, спрятав правильные ответы под спойлеры.

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

Последний месяц зимы подходит к концу, и просыпается здоровое желание сходить на какую-нибудь большую Java-конференцию. Благо, всего месяц остался до JPoint 2019 — международной Java-конференции, которая пройдёт в начале апреля в Москве. Программа почти стабилизировалась, и настало время раскрыть все карты.

Программа нового JPoint огромная: два дня, каждый день по двадцатке докладов. На какие из них идти? Можно упростить себе задачу, разбив доклады на несколько категорий:

  • VM & Runtime — 8 хардкорных докладов от лидеров индустрии: Oracle, BellSoft, IBM, Azul, Excelsior, Одноклассники и GridGain;
  • Enterprise — 5 докладов от российских и международных энтерпрайзов: Spring, JavaEE, Liferay, Vaadin, Kafka, Netflix OSS vs Kubernetes, архитектура больших систем;
  • Reactive — 10 докладов про страшный и волшебный реактивный мир: Spring Web Reactive Framework, Spring Project Reactor, RSocket, Reactive Streams, реактивная архитектура;
  • Languages — 7 докладов по языкам: Java 9-12 (deputy CTO Azul), Kotlin и Kotlin/Native (JetBrains), Scala, функциональное программирование;
  • Tooling — 5 докладов про тулинг: создатель Jenkins (CEO CloudBees), разработчики Gradle и IntelliJ IDEA;
  • Несколько докладов вне категорий.

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

Путеводитель по программе JPoint 2019 - 1

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

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

Адреса для определенности российские, и главное — зачастую написаны криво, то есть с ошибками, неоднозначностями и прочими прелестями. И находятся эти адреса в базе данных Hive, на кластере Hadoop.

Как загрузить OpenStreetMap в Hive? - 1

Ну казалось бы — берем Google Maps Geocoding API (или, если вы сторонник импортозамещения, то Yandex Maps API), и работаем. Но тут нас, как впрочем и c обратным геокодированием, ждет небольшая засада.
Читать полностью »

На Хабре есть великолепная статья "Побег из Крипто Про. Режиссерская версия, СМЭВ-edition", но наступил 2019 год и все УЦ стали выдавать ЭЦП по ГОСТ 34.10-2012 вместо ГОСТ 34.10-2001.

Под катом рассказ как можно модифицировать свой софт на Bouncy Castle для поддержки работы с ключами по новым гостам.

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


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