Обновить
128K+

Java *

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

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

«Меньшими силами делать больше» — Кирилл Толкачёв об Альфа-Лаборатории

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


Кирилл tolkkv Толкачёв — вероятно, самый известный в Java-мире сотрудник Альфа-Лаборатории: он активно выступает на Java-конференциях, давно участвует в подкасте «Разбор Полётов», а осенью стал сооснователем нового подкаста «Two Devs One Ops». Но как выглядит его работа в самой Альфа-Лаборатории, и насколько активно в компании используют все те инструменты, которые он упоминает в докладах и подкастах?

Кирилл выступил на прошедшей JPoint 2017, рассказав там совместно с Евгением Борисовым о «граблях» Spring Test/Spring Boot Test, а Альфа-Лаборатория стала спонсором JPoint — и мы решили, что на конференции удобно поймать его и расспросить обо всём этом.
Читать дальше →

Про технику безопасности, ядерную физику и любовь: о противоречиях современной ИТ-архитектуры фронтальных решений

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

Больше изоленты!


У меня есть друг, его профессия связана с электромонтажом. Когда он был моложе и циничнее, он любил травить байки про электриков, которые работали на необесточенных сетях. Конец всегда был занимательный, но печальный для главного героя. С компонентной архитектурой так же: где-нибудь не изолируешь один функционал от другого, «ударит током» и тебя, и того, кто будет после тебя. Разница в том, что изоляция в IT пока более затратное удовольствие, чем в электрике.

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

[Питер, 19 апреля] Встреча JUG.ru c Глебом Смирновым — Как всё испортить своим Java-агентом

Время на прочтение1 мин
Охват и читатели3.9K
image Верификатор, JVM твою, а ну иди сюда, крешдамп нативный, решил ко мне лезть? Ты, класслоадер текущий, JVM твою, а? Ну иди сюда, попробуй меня инструментировать, я тебя сам инструментирую, верификатор, оом киллер, иди шедулер, сакрифайсить тебя и весь процесс груп, JVMTI нативный, жлоб ulimit, логов файлы, чмод рекурсивный, иди сюда, джар инфлэйтэд, ты — java-агент!
Читать дальше →

Заклиная техническое интервью

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

Предлагаю читателям "Хабрахабра" перевод (возможно лучшей) статьи Kyle Kingsbury, a.k.a "Aphyr".


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


Видрун, зачатая от морских ветров в верхушках елей,
Видрун, зелень моих ветвей, радость и ноша моих дней,
Видрун, всех вдохновенней и умней, да станет мудрость нашего клана твоей:
Никогда не читай Hacker News
Читать дальше →

JPoint 2017: вспомнить всё

Время на прочтение7 мин
Охват и читатели9.2K
Продолжение начатой в статье с подведением итогов JBreak и JPoint темы Java-конференции JPoint 2017, проводившейся 7-8 апреля 2017 года в Москве стараниями JUG.ru Group.

Ещё больше фотографий, подробностей о докладах и больше впечатлений.


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

Простой пример JDBC для начинающих

Время на прочтение2 мин
Охват и читатели115K
Здравствуйте! В этой статье я напишу простой пример соединения с базами данных на Java.Эта статья предназначена новичкам.Здесь я опишу каждую строчку объясню что зачем.

Но для начала немного теории.

JDBC (Java DataBase Connectivity — соединение с базами данных на Java) предназначен для взаимодействия Java-приложения с различными системами управления базами данных (СУБД). Всё движение в JDBC основано на драйверах которые указываются специально описанным URL.

А теперь практика.
Читать дальше →

Два сапога Java: как прошли JBreak и JPoint 2017

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


Новосибирская конференция JBreak и московская JPoint — два сапога пара: обе проходят весной, обе проводятся JUG.ru, обе — главные Java-конференции своего региона. А в этом году мы и вовсе устроили их на одной неделе (и даже выжили после такого). Поэтому рассказы «как всё прошло» для JBreak и JPoint решили объединить в один, скажем так, «breakpoint». Под катом — подробности и о Новосибирске, и о Москве.
Читать дальше →

Статический анализ → уязвимость → профит

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

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

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

Пишем 2-d игру на Java #2

Время на прочтение6 мин
Охват и читатели42K
Доброго времени суток всем! Продолжение 1-ого урока (ссылка на первый).

Задачи


Сегодня мы должны создать игрока, и реализовать в нем метод движения
Читать дальше →

Как это работает в мире java. Пул потоков

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

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


Представим, что у вас которая вызывает большую загрузку процессора:


public class Counter {

    public Double count(double a) {
        for (int i = 0; i < 1000000; i++) {
            a = a + Math.tan(a);
        }

        return a;
    }
}
Читать дальше →

Performance это праздник

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

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


https://xkcd.com/1781/


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

IntelliJ против Eclipse: JetBrains Toolbox или Yatta Launcher?

Время на прочтение4 мин
Охват и читатели9.8K
От переводчика:
Ниже приводится перевод с немецкого презабавного интервью с Фредериком Эбельсхойзером, где он раскрывает отношение компании Yatta к недавно вышедшему JetBrains Toolbox.

image


Создатели IntelliJ IDEA опубликовали приложение JetBrains Toolbox для сборки и настройки продуктов JetBrains. Аналогом для Eclipse является Yatta Launcher. Мы (автор текста, JAXenter — прим.пер.) побеседовали с Фредериком Эбельсхойзером (Yatta) о сходстве этих двух инструментов и о давнем соперничестве между Eclipse и IntelliJ.


JAXenter: JetBrains недавно выпустила свой «Toolbox». Вы, в свою очередь, стартовали с Yatta Launcher — аналогичным проектом для Eclipse. Можно ли, на ваш взгляд, провести параллель между этими двумя инструментами?

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

Как подружиться с Realm

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

В этой статье мы хотели бы поделиться опытом использования набирающей популярность библиотеки для хранения данных — Realm. Перед любым проектом вначале разработки встает вопрос что использовать для хранения данных — что-то проверенное или попробовать инструменты из разряда для хипстеров.


image


Мы — небольшой стартап, разрабатывающий детский лаунчер. Хотя мы стартап и у нас небольшая команда, но большое внимание мы уделяем качеству кода. За два года разработки довольно сильно менялись требования, функционал и выбранные нами технологии. Вплоть до того, что мы перешли с полностью нативного приложения на гибридное, на основе Cordova. Также, одним из этих изменений стал переход с BaaS от Facebook'а Parse на Realm. В этой статье мы хотим рассказать о проблемах, с которыми мы столкнулись при переходе на Realm и стоит ли пробовать новые библиотеки, если со старыми уже "подружились".

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

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

Пишем 2d-игру на Java

Время на прочтение5 мин
Охват и читатели164K
Доброго времени суток всем!

В этой статье будет описываться создание 2D игры на Java. Сразу предупреждаю, вы должны хотя бы базово знать язык Java, поскольку на подробное объяснение каждой строки у меня нету времени. И очень прошу вас, не списывать просто код, а пытаться понять что означает каждая строка, и писать со смыслом. И еще, я использую Eclipse, но вы можете использовать любой IDE.

Задача:


Я планирую создать игру, напоминающую шутер с видом от 3 лица.

Начало:


Ну что, приступим!

Для начала создадим проект. Назовем его «Just game». И сразу создаем класс Display.java. В него пишем:

public static void main(String[] args) {
		JFrame frame = new JFrame(/* название нашей игры */);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		frame.setUndecorated(true);
		frame.setVisible(true);
	}

Теперь разберемся, что мы сделали.
Читать дальше →

Проблема использования CompletableFuture в нескольких потоках и её решение

Время на прочтение4 мин
Охват и читатели23K
imageВ Java 8 появился новый класс CompletableFuture, который позволяет удобно писать асинхронный код.
При использовании CompletableFuture из нескольких потоков я столкнулся с его неочевидным поведением, а именно с тем, что callbacks на нём могут выполнятся совсем не в тех потоках, как ожидалось. Об этом и о том, как мне удалось решить проблему — я и расскажу в этой статье.

Мною разрабатывался асинхронный, неблокирующийся однопоточный клиент к серверу, который использовал потоконебезопасные структуры данных. Тесты проходили без проблем, но benchmarks иногда падали c ConcurrentModificationException на внутренних структурах однопоточного клиента.
Читать дальше →

Kotlin для Android: упрощаем работу со слабыми ссылками в асинхронных вызовах

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

Пишите на Java и ждёте асинхронные вызовы API прямо во фрагменте или Activity? Используя анонимные классы? В этой статье я расскажу, как Kotlin позволяет это сделать без вреда для GC и возможных IllegalStateException.


image


В данной статье приведёна работа со слабыми ссылками на примере ожидания асинхронных вызовов из компонентов Android приложения. Однако данный опыт применим и для других ситуаций, когда требуется использовать слабые ссылки.

Интересно? Тогда добро пожаловать под кат

Практический опыт использования настоящего HotSwap

Время на прочтение2 мин
Охват и читатели31K
Когда мы программируем, отлаживаем код, ищем пресловутый «баг», зачастую возникает ситуация, когда приходится перезапускать сервер приложений, чтобы увидеть наши изменения. Это приводит к тому, что нам приходится выходить из «потока», разрушать наш хрупкий песочный замок нейронных связей. Отвлекаться от текущей задачи и ждать-ждать-ждать, когда на сервере приложений будут доступны наши изменения. Порой это так утомительно… Как было бы здорово, сделать «горячую» замену измененных классов и сразу увидеть результат.

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

«Apache Ignite — наукоёмкий продукт»: GridGain Systems о in-memory computing, open source, российском рынке и не только

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


О проекте Apache Ignite слышно всё чаще. Но, как ранее заметил на Хабре один из его разработчиков Владимир Озеров, в двух словах описать проект сложно — а в результате у многих остаются вопросы, начиная с самых базовых. Что проект вообще представляет собой? Как соотносятся Apache Ignite и компания GridGain? Как соотносятся понятия «in-memory data grid» и «in-memory data fabric»?

В программу JBreak и JPoint 2017 вошли доклады спикеров из GridGain, а сама компания стала спонсором обеих конференций — и прямо перед JBreak мы задали накопившиеся у многих вопросы. А ответили на них:

  • Владимир devozerov Озеров (архитектор)
  • Алексей Дмитриев (генеральный директор российского отделения / VP of Engineering)
  • Ирина Тищенко (HR-директор)

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

Kademlia (DHT) — практическое руководство

Время на прочтение8 мин
Охват и читатели17K
Речь пойдет о DHT на примере ее реализации известной под названием Kademlia. DHT переводится как распределенная хеш таблица и предназначена для построения децентрализованной сети обмена информацией. Все ниже изложенное работает в клиенте для ED2K сетей для платформы Android и в виде демона на линуксе. Детали реализации ниже.
Читать дальше →

Нужны ли нам нейронные сети?

Время на прочтение13 мин
Охват и читатели19K
Или повесть о том, как я сделал распознавания изображений с помощью свёрточной нейронной сети без нейронной сети. Интересно? Тогда прошу под кат.
Читать дальше →