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

Создание собственного приложения для обработки графов в Giraph - 1
Be my friend by oosDesign

Перед крупными интернет-компаниями часто встают такие сложные задачи, как обработка больших данных и анализ графов социальных сетей. Помогают в их решении фреймворки, но сперва необходимо проанализировать возможные варианты и выбрать подходящий. В лаборатории при Техносфере Mail.Ru мы изучаем эти вопросы на реальных примерах из проектов Mail.Ru Group (myTarget, Поиск Mail.Ru, Антиспам). Задачи могут быть как сугубо практические, так и с исследовательской составляющей. По мотивам одной из таких задач и появилась эта статья.

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

В этой статье мы расскажем, как создавать свои приложения под фреймворк Giraph, который является надстройкой над популярной системой обработки данных Hadoop.
Читать полностью »

image

В этом выпуске

— JUnit 5 к нам приходит
— Сборка окончена: CMS будет удален из Java
— Java EE: Oracle прервал молчание
— В дебри JIT вместе с Azul
… и многое другое
Читать полностью »

Недавно Лукас Эдер заинтересовался в своём блоге, способен ли JIT-компилятор Java оптимизировать такой код, чтобы убрать ненужный обход списка из одного элемента:

// ... а тут мы "знаем", что список содержит только одно значение
for (Object object : Collections.singletonList("abc")) {
    doSomethingWith(object);
}

Вот мой ответ: JIT может даже больше. Мы будем говорить про HotSpot JVM 64 bit восьмой версии. Давайте рассмотрим вот такой простой метод, который считает суммарную длину строк из переданного списка:

static int testIterator(List<String> list) {
    int sum = 0;
    for (String s : list) {
        sum += s.length();
    }
    return sum;
}

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

Не так давно посчастливилось сменить место работы. Попал в компанию, которая, в принципе, заслуживает отдельной статьи по ряду причин и, возможно, появится здесь позже. Если совсем вкратце о структуре нашего отдела: заниматься чем-то, кроме своей основной деятельности, не возбраняется, так что взор мой упал на наш почтовый сервер, доставляющий много хлопот.

У компании имеются удаленные партнерские филиалы, равномерно распределенные по всей Западной Европе, использующие один почтовый сервер. К сожалению, бюджет IT-отдела не очень большой, а пользователей достаточно много (около 700 почтовых аккаунтов). Использовался, да и сейчас используется для почты Exchange 2010 с последними обновлениями и более-менее настроенными правилами фильтрации спама, а вот с антивирусом как-то не заладилось. Купленное решение отказывалось нормально работать, раздувая очередь входящей корреспонденции до неприличных размеров и вешая намертво всю почту. (Да, я знаю, что все best practice говорят о необходимости и edge-сервера, и отдельно сервера архивации, но что было на тот момент, то и было.)

Берем инициативу в свои руки. К большому своему удивлению, найти развернутый мануал по решению такой проблемы сходу не удалось, так что возникла идея поделиться своими пробами и ошибками в рунете.
Читать полностью »

Maven
Что делать, если сборка (build) с Maven проходит слишком медленно? Ведь когда сборка длится слишком долго, любой, даже самый терпеливый разработчик, может заскучать и отвлечься.

Для быстрого поиска в Google или для закладок, сразу предлагаю итоговое решение:

mvn package -am -o -Dmaven.test.skip -T 1C

— для сборки проекта без тестов.
Читать полностью »

Как написать SQL-запрос на Slick и не открыть портал в ад - 1

Slick — это не только фамилия одной из величайших солисток всех времён, но и название популярного Scala-фреймворка для работы с базами данных. Этот фреймворк исповедует «функционально-реляционный маппинг», реализует реактивные паттерны и обладает официальной поддержкой Lightbend. Однако отзывы разработчиков о нём, прямо скажем, смешанные — многие считают его неоправданно сложным, и это отчасти обоснованно. В этой статье я поделюсь своими впечатлениями о том, на что стоит обратить внимание при его использовании начинающему Scala-разработчику, чтобы в процессе написания запросов случайно не открыть портал в ад.
Читать полностью »

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

Суть задачи такова. Необходимо написать метод, который принимает в качестве аргументов две коллекции ArrayList одинакового размера, например, одна a = [a1, a2, a3, ....], а вторая b = [b1, b2, b3 ...]. Метод должен превратить коллекцию а в следующий вид: a = [a1, b1, a2, b2, a3, b3....]. При этом решение должно быть экономным к ресурсам и процессорному времени.
Читать полностью »

Решил я однажды таки попробовать дико популярный нынче Rx. А заодно и Retrofit. И посмотреть, как с их помощью реализовать стандартную задачу: получить с сервера набор данных, отобразить их и при этом ничего не терять при поворотах экрана и не делать лишних запросов. Первый вариант у меня получился сразу почти — просто взял и вызвал cache() на Observable, получаемый из синглтона, но он меня не устраивал — для принудительного обновления приходилось, по какой-то причине, пересоздавать экземпляры классов Retrofit и его же реализации моего интерфейса для API. Пересоздание же самого Observable эффекта не давало — всегда возвращались старые данные вместо запуска нового сетевого запроса и получения новых данных.

После долгих мучений с новой для себя технологией выяснил, что во всём был виновен cache() (точнее, наверное, моё неправильное оного понимание). В итоге сделал так: фрагмент запускает метод, подписывающий Subscriber синглтона на Observable retrofit-a, коий запускает onNext и onError BehaviorSubject-a, на который подписывается уже Subscriber фрагмента. Код на GitHub тут, подробности — под катом.

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

Доброго времени суток. В этой статье я расскажу основы работы с классами пакета javafx.scene.layout.* (BorderPane, AnchorPane, StackPane, GridPane, FlowPane, TilePane, HBox, VBox) и их особенностями в пошаговых примера и иллюстрациях. Также в кратце пробежимся по иерархии классов JavaFx.

Введение в JavaFx и работа с layout в примерах - 1
Читать полностью »

Сегодня я вам расскажу, как поэтапно с нуля создать простое приложение на JavaFX, что для этого потребуется, покажу как сделать установщик Windows (msi) для вашего приложения. Это мой первый пост на Хабре, так что не судите строго.

JavaFX наглядное создание простого приложения и нативная упаковка в Eclipse - 1
Читать полностью »


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