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

Записывайтесь на новые онлайн-курсы от Mail.Ru Group на Stepic - 1

В конце прошлого года мы в партнерстве со Stepic запустили бесплатные онлайн-курсы по дисциплинам из программ Технопарка, Техносферы и Технотрека. А сегодня мы спешим порадовать вас запуском ещё двух:

  • Разработка веб-сервиса на Java (часть 2) — запуск 12 февраля.
  • Веб-технологии — запуск 18 февраля.

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

Oracle выпустила внеплановое обновление для Java — Java 8 Update 73 (8u73, а также 6u113 и 7u97). В новой версии ПО исправлена уязвимость CVE-2016-0603 (Security Alert for CVE-2016-0603), которая позволяет злоумышленникам скомпрометировать систему при установке продукта с использованием дистрибутивов версий Java 6, 7 и 8. Уязвимость присутствует в компоненте установщика (Windows Installer) и заключается в том, что он может исполнить определенные файлы в директории загрузок пользователя (Downloads), заранее подготовленные злоумышленником.

Oracle исправила серьезную уязвимость в Java для Windows - 1

Уязвимость является относительно сложной для эксплуатации, поскольку атакующим нужно разместить необходимые файлы в директории загрузки еще до того как пользователь запустит на исполнение дистрибутив с ПО, поэтому ей присвоен не самый высокий уровень опасности CVSS (7.6). В то же время, при успешной реализации сценария атаки, злоумышленники смогут получить полный контроль над системой, поскольку DLL-библиотека злоумышленников будет исполнена в контексте процесса с высокими правами Администратора в системе.
Читать полностью »

На Хабре не так уж много статей, посвященных Vert.x, раз, два и обчёлся. Поэтому решил внести свой вклад и опубликовать небольшой урок, в котором рассказано, как написать простой чат с помощью Vert.x 3.

Пишем чат на Vert.x 3 - 1
Читать полностью »

Разрабатывая приложения используя IoC-контейнер Spring думаю каждый задумывался, а как же «правильнее и красивее» создать логгер. В данной публикации хочу привести несколько примеров решения данной задачи.

Решение 1

Получаем логгер напрямую через LoggerFactory:

@Component
public class MyBean {
    private static final Logger log = LoggerFactory.getLogger("application");
    ...
}

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

Построение стакана котировок (FullOrderBook) по историческим данным - 1

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

Про биржевую торговлю, инфраструктуру и тестирование алгоритмов на исторических данных много писал и пишет IT Invest, спасибо ему. От себя добавлю, что на данных OrderLogs мы анализируем глубину рынка, ликвидность, спреды и еще много чего. Результаты используем в наших торговых алгоритмах.

Специально выбрал Фондовый рынок, так как тут больше всего вопросов. Валютный и Срочный рынок имеют свои особенности, но там проще. Реализация алгоритма на Java, код на GitHub.

Цель: Получить стакан котировок на любой момент времени.
Читать полностью »

После написания статьи про анализ малвари с avito, несколько моих twitter-читателей откликнулись и прислали SMS, которые получили после публикации объявлений на avito.

Анализ Android малвари-матрешки - 1
Читать полностью »

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

Вид системного блока Эльбрус 401-PC спереди и сбокуРезультаты теста Pgbench (Postgresql) в упрощённом виде

Осторожно: много букв и картинок!

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

Продолжаем обзор нового отечественного компьютера. После краткого знакомства с особенностями архитектуры «Эльбрус», рассмотрим предлагаемые нам средства разработки программного обеспечения.

Вид системного блока Эльбрус 401-PC спереди и сбокуПример программы на машинном языке E2K

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

image

В декабре 2015 года я обнаружил критически опасную уязвимость в одном из сайтов PayPal для бизнеса, которая позволяла мне выполнять произвольные команды на веб-серверах внутри корпоративной сети. При отправке веб-формы на сайте manager.paypal.com в одном из скрытых параметров передавались закодированные данные в виде сериализованного объекта Java. Данный параметр можно было подделать, изменив название класса и значения его свойств, что и привело к выполнению произвольного кода на серверах. Я немедленно сообщил об этой проблеме в PayPal, и она была быстро исправлена.
Читать полностью »

Микросервисы, как ни крути, — наше всё. Можно сопротивляться SOAP 2.0 сколь угодно долго, но рано или поздно или они придут за тобой и обратят в свою веру, или ты придёшь к ним сам и попросишь крестить себя огнём и мечом. Как и у любого архитектурного решения, у микросервисов есть свои минусы. Одним из них является необходимость в каждый микросервис включать какую-то логику по авторизации запросов от внешних систем или других микросервисов. Эта логика может быть напрямую «зашита» внутри микросервиса (и не важно, что это отдельная библиотека), делегирована другому микросервису, а может быть объявлена декларативно. Что значит декларативно? Например, можно договориться, что в каждый микросервис приходит особый HTTP-заголовок, или какая-то структура данных, в которой есть информация о пользователе, делающем запрос. И данным в этой структуре необходимо однозначно доверять. У всех трёх вариантов есть свои недостатки, но в рамках статьи мы разберём последний. Для его реализации обычно используется шаблон проектирования API Gateway:
image

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


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