Простой Java бот-кликкер на примере игры World of Warcraft 3.3.5a

Данный механизм тестировался исключительно на пиратском сервере, потому его работоспособность на официальных серверах не гарантирована. Все попытки применения — исключительно на свой страх и риск. Реализация приведена для Windows десктопов. Итак, создадим простой бот, целью которого будет: 1) Зайти в игру; 2) Зайти в аккаунт; 3) Зайти в игровой мир; …

[Перевод] Динамический прокси Java: что это и как им пользоваться?

Всем привет! Ну что ж до Нового года и старта десятого потока «Разработчик Java» осталось совсем шуть-шуть. Так что у нас остался один открытый урок, который мы подготавливаем для публикации и сегодняшняя заметка, из которой вы узнаете о динамическом прокси Java: что это такое, когда и как его использовать в …

TDD приложений на Spring Boot: работа с базой данных

Вторая статья из цикла “Test-Driven Development приложений на Spring Boot” и в этот раз я буду говорить про тестирование доступа к базе данных, важного аспекта интеграционного тестирования. Я расскажу как через тесты определять интерфейс будущего сервиса для доступа к данным, как использовать встраиваемые in-memory базы для тестирования, работать с транзакциями …

SpEL injection

Intro В процессе работы и исследований различных сервисов мы всё чаще можем встретить Spring Framework. И логичным шагом является знакомство с его структурой и возможными уязвимостями. Самыми интересными для любого пентестера являются уязвимости, которые приводят к исполнению кода. Одним из способов получить RCE в Spring является инъекция SpEL-выражений. В этой …

[Из песочницы] Воспроизведение медиафайлов с помощью библиотеки VLCj

Предыстория (можно сразу пропустить и перейти к следующему пункту) При изучении Java, сразу после того как освоил Swing стало интересно, «А как же воспроизвести аудио, или видео?». Долго рылся на просторах Гугла, откопал там несколько библиотек которые в теории должны были дать мне именно то, что я хочу. Но как …

[Из песочницы] Java Enterprise vs Android в 2019 — что выбрать новичку?

Решил поделиться своими мыслями на тему того, в какую отрасль разработки стоит пойти человеку, освоившему Java core и основы computer science. А дороги как известно две: Java Enterprise или Android-разработка. Под Java Enterprise программированием я понимаю разработку, вакансии которой на hh имеют заголовок «Java-разработчик». Вакансии, связанные с android-разработкой можно найти …

[Из песочницы] Лошадинная сила в Android или еще раз о RecyclerView.LayoutManager

По мнению автора, статья может быть полезна таким же как он начинающим Android-разработчикам, совершающим свои первые шаги в такой увлекательной области. История предмета этой заметки началась с идеи оснастить учебный проект так называемым “вау-эффектом”. Насколько это удалось, судить вам. Всех любопытствующих прошу под кат. Читать дальше → from Хабр / …

Сам себе devops или настраиваем Nginx прокси для Apache Tomcat на Ubuntu за 5 минут c https и firewall’ом

Я не админ, но иногда возникают задачи, которые проще (и интереснее) решать самому чем кому-то делегировать. Изредка у нас появляется необходимость «поднять» servlet контейнер (чаще всего Apache Tomcat) и настроить для него проксирование, ssl termination (а проще говоря https) и все это прикрыть firewall’ом (оставив наружу только ssh и http/https). …

Получаем сертификат Google Associate Android Developer

Сам по себе экзамен на получение сертификата Associate Android Developer давно уже не новость, статья про эту сертификацию была и на хабре. Однако, пока я размышлял на тему «А не получить ли мне такой сертификат?», оказалось, что программу сертификации прикрыли в мае 2018. Впрочем, прикрыли ненадолго. В октябре я получил …

[Видео] Почему взрываются ракеты, что скоро появится в Kotlin и как спасти код ревью

6 декабря мы провели очередной Java-митап. Там говорили вот о чём: о разработке Moira — системы экстренного реагирования на инциденты (про ракеты — здесь); о контрактах в Kotlin, задачах, проблемах и улучшениях для DSL; о том, как роботом выбирать ревьюеров в большой команде разработчиков; о том, как научить все компоненты генерировать графики и метрики на боевой среде; о правильной обратной связи для обнаружения проблемных …

Лучшие доклады JPoint 2018: Java/JVM и её перформанс, Kotlin, Spring, Docker

Мы уже выложили на YouTube видеозаписи докладов JPoint 2018 и специально для хаба Java на Хабре сделали традиционную подборку самых лучших из них по мнению посетителей конференции. Как обычно, наверху «младшие» доклады, в конце — с самым высоким рейтингом. Конечно, это не значит, что один доклад намного хуже другого: если …

HeisenBug глазами сотрудника СберТеха

В этом посте я хочу поделиться обзором 15 докладов с конференции Heisenbug, рассказать, что интересного было на стендах у компаний, а также поделиться видеоматериалом из доклада Артема Ерошенко о создании actions плагинов для IntelliJ IDEA, которые помогут быстро изменять код тестового проекта. Читать дальше → from Хабр / Java – …

Как учиться Java-разработке? Опыт студента GeekUniversity Никиты Чернецова

Высшее образование я получал в МГТУ, изучал ядерные реакторы и энергетические установки. Однако несмотря на позитивное впечатление от учёбы и в целом неплохие перспективы, после вуза я решил стать разработчиком. И получилось! Вот уже три года я работаю в Java-разработчиком, ни на секунду не прерывая своё обучение профессии. Я расскажу …

[Перевод] Фильтр Блума в Java с помощью Guava

Всем доброго дня. Мы запустили новый курс — «Алгоритмы для разработчиков», предназначенных для тех подтянуть знания по разнообразным структурам и алгоритмам обработки данных, решению алгебраических задач и задач динамического программирования для различных языков. Так что сегодня мы делимся небольшой заметкой о работе фильтра Блума в Java. Введение В этой статье …

[Из песочницы] Перевод книги Java concurrency in practice на русский язык

Примерно начиная с июня по декабрь 18-го года я был занят переводом книги Java concurrency in practice на русский язык. Я не являюсь профессиональным переводчиком, инструменты, используемые для выполнения перевода, мне известны небыли да и не сильно интересовался, проект не коммерческий, а для души. Думаю, мой опыт будет интересен. Читать …

Fault Injection: твоя система ненадежна, если ее не пробовали сломать

Привет, Хабр! Меня зовут Павел Липский. Я инженер, работаю в компании Сбербанк-Технологии. Моя специализация — тестирование отказоустойчивости и производительности бэкендов крупных распределенных систем. Попросту говоря, я ломаю чужие программы. В этом посте я расскажу о fault injection — методе тестирования, который позволяет находить проблемы в системе путем создания искусственных сбоев. Начну …

Ускоряем создание ConcurrentReferenceHashMap

Приветствую, в этой заметке я рассажу, как можно с незначительными усилиями ускорить создание org.springframework.util.ConcurrentReferenceHashMap. Интересуетесь прокачиванием производительности? Добро пожаловать! Читать дальше → from Хабр / Java – объектно-ориентированный язык программирования https://ift.tt/2EzQgcH

Олег Докука о реактивной разработке на jug.msk.ru

13 декабря 2018 года на встрече сообщества московских Java-разработчиков jug.msk.ru Олег Докука рассказал об особенностях реактивной разработки на языке программирования Java. Читать дальше → from Хабр / Java – объектно-ориентированный язык программирования https://ift.tt/2QzjRco

[Перевод] Десять вещей, которые можно делать с GraalVM

От переводчика: GraalVM — новая, интересная технология, но на Хабре по ней не так много статей, которые бы могли показать примеры возможностей Graal. Статья ниже — это не просто перечисление того, что GraaVM умеет, но ещё и небольшой мастер-класс, аналогичный тому, который Chris Seaton и Олег Шелаев проводили на Oracle …

MapStruct решение задачи с ManyToMany

Здравствуйте, уважаемые читатели! Те, кто разрабатывает Web приложения на Java с использованием фреймворка Spring, те кто комментирует эти приложения и просто интересующиеся. В предыдущей статье «Spring Boot решение задачи с ManyToMany» я приводил пример выполненного тестового приложения, в котором между двумя классами имеется bidirectional отношение ManyToMany. В статье приводился пример …