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

threads

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

Привет!

Я хочу сыграть с тобой в игру.
Песочница для программистов - 1

Но если быть точным, то я хочу презентовать вам результат моей работы за последние пару месяцев. Кодовое название — песочница.

Что это?

Суть данной системы проста: это песочница для программистов. Здесь можно и нужно писать исскуственный интеллект для своих ботов и играть с ботами других участников. Во что играть? Все просто — в дурака. Да-да, в карточную игру.

Данная система выросла из небольшого проекта по изучению пермишенов в Java. Изначально мне было просто интересно как работают разграничения выполняемого кода, как строится плагинная архитектура и т.д. Но в итоге захотелось обернуть все это в законченный продукт — вот как все вышло.

Кому интересно, давайте взглянем поближе на саму систему.
Читать полностью »

В Москве и Петербурге большой Java-конференцией никого не удивить: JPoint и Joker регулярно собирают множество зрителей и зазывают известных спикеров. Но теперь JUG.ru замахнулся ещё и на Новосибирск, проведя там JBreak (или, стилизованно, jbreak;).

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

Все ответы — в подробном тексте под катом.

Java-конференция JBreak: Покорение Сибири - 1

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

Это вторая часть цикла «Масштабирование Wix до 100 миллионов пользователей». Вступление читайте тут.

Когда мы только запускали Wix, был использован стек Tomcat, Hibernate и Ehcache c базой данных MySQL и фронтендом на Flash. Почему мы выбрали этот стек? Да просто потому, что у нашего первого бэкенд-разработчика уже был опыт работы с ним. Частью этой архитектуры был Ehcache – отличная кэш-библиотека для Hibernate и JVM, которая создавала абстракцию в виде карты для кэша памяти и которая могла также быть сконфигурирована как распределенный кэш. Ehcache, в отличие от Memcached, запускается как процесс в JVM и в точности реплицирует состояние кэша для всех узлов кластера. Обратим внимание, что в то время (около 2006–2008 гг.) Encache все еще был независимым open source проектом и не был частью Terracotta (в рамках Terracotta модель репликации и дистрибуции может быть иной, но для данной статьи это не столь важно).

Аспекты использования кэша

Масштабирование до 100 миллионов пользователей. Кэшировать или не кэшировать? - 1

Поскольку у нас уже были реальные клиенты, мы установили два сервера Tomcat для обеспечения дополнительной надежности. Следуя правилам выстраивания архитектуры, мы установили распределенный Ehcache-кластер между серверами. Мы исходили из того, что MySQL работает медленно (как и любая другая SQL-система), а значит кэш оперативной памяти обеспечит гораздо более высокую скорость чтения и снизит нагрузку на базу данных.Читать полностью »

У нас отличные новости для разработчиков Татарстана: уже 7 апреля мы ждем всех на LoGeek Night в Казани! Это неформальная встреча Java-специалистов с возможностью пообщаться с единомышленниками, поделиться опытом и получить новые знания.

В этот раз мы приготовили для вас двух потрясающих спикеров с двумя интересными темами. Предлагаем познакомиться поближе с первым из них:

Владимир Сонькин Читать полностью »

QA: Conference. Множество новостей, новые доклады, прямой эфир - 1

Наша конференция по тестированию программных систем начнется совсем скоро и, как известно, пройдет в пяти городах России, а сетка докладов по всем городам практически готова. Самое главное из новостей:

  • Мы делаем онлайн-трансляции с Москвы и Санкт-Петербурга. Всех докладов. По одному билету. С записью мероприятий. Трансляцию могут смотреть посетители любых городов. Главное — наличие билета на свое мероприятие
  • Макс Шоничев . Центр Сетевых Технологий. Расскажет про автоматизацию тестирования серверной части и UI в ОС Linux в условиях жестких рамок настроек безопасности системы. Много хардкора.
  • Артур Орлов и Анастасия Леншмидт. АвтоТрансИнфо. Поговорят про проблемы взаимодействия между отделами QA и Dev и пути их решений
  • Мы с Яном Алексеенко проведем три мастер-класса
  • Алексей Виноградов — наш специальный гость из Германии (он — один из ведущих Radio QA и разработчиков Selenide). Алексей познакомит нас с тремя простыми и практичными видами PageObject архитектуры — Static, Void и Fluent и продемонстрирует использование кодом, сравнит плюсы и минусы подходов
  • Также из Германии — наш гость Slava Schmidt — консультант по Scala. Он нам поведует про Property-Based Testing with API-First Approach
  • Дарья Ефремова из Performance Lab расскажет про методологию Failure Modes & Effects Analysis — подход к тестированию с ретроспективой
  • И многие-многие другие доклады. Зачем мне переписывать их все? Заходите к нам на сайт конференции QAC

А пока мы покупаем рации для переговоров между залами, выбираем меню для кофе-брейков и выбираем дизайн и наполнение пакета участника, предлагаю собраться рабочим коллективом и погрузиться в изучение сетки докладов. Ведь мало того что можно посмотреть доклады в своем городе, так теперь можно еще и в режиме онлайн-трансляции побывать в Питере и Москве
По цене одного билета
Читать полностью »

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.
Подобные движки используются при сложном поиске по базе документов. Например, поиск с учетом морфологии языка или поиск по geo координатам.
В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.Читать полностью »

Пару недель назад, наша команда выпустила свежий релиз FlyElephant — платформа для ученых, которая предоставляет готовую вычислительную инфраструктуру для проведения расчетов, помогает находить партнеров и совместно работать над проектами, а также управлять всеми данными из одного места.

В качестве вычислительного ресурса сейчас используется облако Azure, а пользователи могут запускать вычислительные задачи, написанные с помощью С++ (с поддержкой OpenMP), R, Python, Octave, Scilab, Java, Julia, OpenFOAM, GROMACS, Blender на серверах с количеством ядер от 1 до 32 и оперативной памятью до 448 ГБ.

Сегодня мы хотим поделиться видео-туториалсами запуска задач во FlyElephant. Под катом вы найдете видео, как запускать вычислительные задачи, написанные с помощью С++, R, Python, Octave и рендерить изображения с помощью Blender, а также промо-код для получения бесплатных дополнительных часов работы ваших задач.
Читать полностью »

Каждый год на JPoint эксперты выступают с хардкорными докладами о производительности Java. И ни разу не было скучно — вопрос сохраняет актуальность на протяжении многих лет. О том, откуда растут ноги у мифов, что делает JVM, как измерять производительность, при чём тут бизнес-требования заказчика и как обойти часть граблей мы поговорили с экспертами, для которых Java performance — не проблема, а работа.
Диалоги о Java Performance - 1
Читать полностью »

От переводчика: автор этой заметки — Stephen Colebourne, автор библиотеки Joda Time и Java Time API.


Следует ли добавить вывод типов локальных переменных в Java? Как раз сейчас команда разработчиков языка Java задалась этим вопросом.

Вывод типов локальных переменных

JEP-286 предлагает добавить вывод типов локальных переменных, используя новое псевдоключевое слово (интерпретируемое как «зарезервированное наименование типа»):

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

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


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