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

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

Нет, динамические системы типов по своей сути не более открыты - 1

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

В данной статье речь пойдет об использовании открытой платформы Apache Flink для обнаружения цепочки последовательности событий. Статья подойдет как для начинающих разработчиков в области обработки потоковых данных, так и для тех, кто желает познакомиться с Apache Flink.

Ни для кого не секрет, что на данный момент существуют различные подходы к обработке, хранению, фильтрации и анализу больших данных. В отдельный класс можно выделить системы, построенные на событийной архитектуре (Event-Driven Architecture). Данные системы призваны решать различные задачи, в том числе в режимах близких к реальному времени. Одной из таких задач является обнаружение (детектирование, идентификация) сложных цепочек связанных событий на больших входных потоках данных (FlinkCEP — Pattern Detection). Обычно, данная задача, решается системами комплексной обработки событий (CEP), которые должны обрабатывать сотни, а порой и тысячи определенных пользователем шаблонов на входном потоке данных в поисках определенного события, аномалий, системах мошенничества и даже предсказании будущего на основе текущих событий. В статье речь пойдет о библиотеке FlinkCep Apache Flink, которая позволяет решать подобные проблемы.
Читать полностью »

Тагир и Егор: интервью с Тагиром Валеевым - 1

В 2019-м зрители JPoint крайне впечатлились докладом «Атомарный рефакторинг» Тагира Валеева (lany). Демонстрация того, как можно нестандартно использовать средства IDE для рефакторинга, взорвала многим мозг и при этом была практически полезна — а в итоге по зрительским оценкам доклад стал лучшим на конференции. Можете сами посмотреть видеозапись.

А в онлайн-трансляции JPoint 2019 у Тагира взял интервью другой спикер Егор Бугаенко (yegor256), и благодаря этому зрители трансляции узнали другие интересные вещи. Например, какой «ход конём» помог Тагиру при собеседовании в JetBrains или как он использовал Stack Overflow для популяризации своей библиотеки.

Сейчас готовится новый JPoint (Москва, 15-16 мая), и стала известна новая тема, с которой приедет Тагир: в этот раз он закроет конференцию выступлением «Заменят ли роботы программистов». А мы тем временем подумали, что прошлогоднее интервью слишком интересное, чтобы оставлять его только зрителям трансляции — и для Хабра сделали текстовую расшифровку.
Читать полностью »

Однажды в 2016 году мне потребовалось настроить удаленный сбор показаний счетчиков в квартире. К текущему моменту (январь 2020 года) там внедрена комплексная домашняя автоматизация с возможностью перекрытия воды и полного удаленного обесточивания (и обратного включения) электроэнергии.

Как я 1000 дней пользовался OpenHAB, а затем перешел на Home Assistant - 1

В статье расскажу об опыте управления OpenHAB 1.х и 2.х и Home Assistant, а также приведу свои конфигурации.

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

image

Весь прошлый год я отработал преподавателем в одном из провинциальных учебных центров (далее — УЦ), специализирующихся на обучении программированию. Я не буду называть этот учебный центр, так же вообще попытаюсь обойтись без названий фирм, фамилий авторов и т.д.
Читать полностью »

Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin.

Любая библиотека должна по возможности соблюдать бинарную совместимость. Если разные версии библиотеки в зависимостях несовместимы, то результатом будут краши в рантайме. С такой проблемой мы можем столкнуться, например, при добавлении поддержки Reaktive в MVICore.

Бинарная совместимость Reaktive: как мы её обеспечиваем - 1

В этой статье я вкратце расскажу, что такое бинарная совместимость и каковы её особенности для Kotlin, а также о том, как её поддерживают в JetBrains, а теперь и в Badoo.

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

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

На новогодних праздниках ваша дорогая редакция совмещала приятное с полезным и читала интервью, которые выходили на Хабре за последние годы. Отобрали 30 штук, а теперь делимся с вами — это прям самый сок и вообще крутота! Разговоры на любой вкус: об игровой разработке, редких языках программирования и популярном Python, электротачках и устройстве мозга. О том, зачем Левелорд переехал в Москву, как ослепший студент научился программировать и что изменилось за 25 лет с тех пор, как Торвальдс начал работать над Linux. И еще о многом другом.Читать полностью »

Java-дайджест за 28 января - 1

  • Вышел JUnit 5.6. Добавлены any() и none(), чтобы запускать тесты без каких-то дополнительных тэгов, ReflectionSupport.findNestedClasses() может находить циклы в иерархии внутренних классов, TestExecutionSummary.Failure можно сериализовывать, и все в таком духе. Интересно, что если раньше ошибки логировали и прятали, то теперь в явном виде выбрасывают в ходе сканирования тестов (но можно вернуть старое поведение, установив параметр junit.platform.discovery.listener.default).

  • В Maven Central Читать полностью »

image

Недавно я читал книгу о математике и о красоте людей и задумался о том, что еще десятилетие назад представление о том, как понять, что такое красота человека были достаточно примитивными. Рассуждения о том, какое лицо считается красивым с точки зрения математики сводились к тому, что оно должно быть симметричным. Также со времен эпохи возрождения были попытки описать красивые лица при помощи соотношений между расстояниями в каких-то точках на лице и показать, например, что у красивых лиц какое-то отношение близко к золотому сечению. Подобные идеи о расположении точек сейчас используются как один из способов идентификации лиц (face landmarks search). Однако как показывает опыт, если не ограничивать набор признаков положением специфичных точек на лице, можно допиться лучших результатов в целом ряде задач, включая определение возраста, пола или даже сексуальной ориентации. Уже тут видно, что острым может стоять вопрос этики публикации результатов таких исследований.
Читать полностью »

На сегодняшний день Java 8 является самой популярной версией Java и ещё довольно долго будет ей оставаться. Однако с тех пор уже выпущено пять новых версий Java (9, 10, 11, 12, 13), и совсем скоро выйдет ещё одна, Java 14. В этих новых версиях появилось гигантское количество новых возможностей. Например, если считать в JEP'ах, то в сумме их было реализовано 141:

Однако в этом цикле статей не будет никакого сухого перечисления JEP'ов. Вместо этого я хочу просто рассказать об интересных API, которые появились в новых версиях. Каждая статья будет содержать по 10 API. В выборе и порядке этих API не будет какой-то определённой логики и закономерности. Это будет просто 10 случайных API, не ТОП 10 и без сортировки от наиболее важного API к наименее важному. Давайте начнём.

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


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