Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Eugene Khrustalev

  • 49
    вклад
  • 4
    вопроса
  • 73
    ответа
  • 37%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Есть ли яык описания фильтров поиска?

    Eugene Khrustalev @eugenehr
    Когда-то давно делал это с помощью JavaCC: filterCondition.jj для поиска в таблицах Vaadin-а, но можно применить и обычным коллекциям.
    Пользователи фильтруют таблицы следующим образом:
    1. Value1,Value2,Value3 - фильтр по одному из трех значений
    2. Field1 = Value1 или (Field2 НЕ ПУСТО и Field3 > 5) - комплексный фильтр
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как работают real time приложения в Java?

    Eugene Khrustalev @eugenehr
    ActiveMQ - очереди
    Spring @Scheduled - выполнение задач по расписанию
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Максимальное количество повторяющихся элементов в массиве?

    Eugene Khrustalev @eugenehr
    Можно через Stream, но без промежуточного collect не обойтись
    Stream.of(1, 1, 1, 3, 4, 5, 6, 4, 3, 2, 1, 3, 4, 1, 2, 3, 1, 2)
        // Собрать в Map, где ключ - число из массива, значение - кол-во этих чисел в массиве
        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
        // Отсортировать EntrySet по убыванию значений
        .entrySet()
        .stream()
        .sorted((e1, e2) -> Long.compare(e2.getValue(), e1.getValue()))
        // Взять первую (если есть) и вывести в консоль 
        .findFirst().ifPresent(e -> System.out.println(e.getKey() + " - " + e.getValue()));
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать валидацию данных?

    Eugene Khrustalev @eugenehr
    1. Подключить hibernate-validator
    2. В DAO-объектах натыкать аннотаций '@Min', '@NotNull', '@Size',...
    3. В методах контроллеров, принимающих DAO-объекты в качестве параметров, добавить аннотации '@Valid'
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как правильно сделать свой сервер GIT?

    Eugene Khrustalev @eugenehr
    1. Создать на сервере bare-репозиторий;
    2. Добавить в рабочие копии разработчиков новый remote на этот сервер;
    3. В bare-репозитории добавить хук (я использую update), в котором сделать чекаут нужной ветки в нужный каталог;
    4. Запустить при необходимости тесты
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как реализовать скачивание файла через AJAX?

    Eugene Khrustalev @eugenehr
    Через AJAX файл не скачать. Недавно разбирался с этим.
    1. На сервере, при получении AJAX-запроса можно подготовить файл и сформировать уникальную ссылку на него, которую отдать в ответе на полученный AJAX-запрос.
    2. В браузере, получив ссылку на файл, открыть новое окно
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему Spring не видит jsp?

    Eugene Khrustalev @eugenehr
    Tomcat? Я обычно добавляю в web.xml следующее:
    <servlet-mapping>
            <servlet-name>jsp</servlet-name>
            <url-pattern>/WEB-INF/view/*</url-pattern>
        </servlet-mapping>
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно сделать exclude на файлы .ts в pom.xml?

    Eugene Khrustalev @eugenehr
    <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <packagingExcludes>
                            node_modules/,
                            bower_components/,
                            javascript/,
                            sass/,
                            package.json,
                            bower.json,
                            gulpfile.js,
                            index.src.html,
                            WEB-INF/classes/logback-test.xml,
                            typescript/
                        </packagingExcludes>
                    </configuration>
                </plugin>
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Много потоков: лучше в одном процессе или в нескольких?

    Eugene Khrustalev @eugenehr
    400 одновременно занятых потоков без 400 ядер ни к чему хорошему не приведет,
    а только сильно деградирует систему. Что за задача?
    Я бы подумал в сторону 4-12 работающих воркеров и очереди задач.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как правильно сделать авторизацию пользователя на servlet+jsp?

    Eugene Khrustalev @eugenehr
    1. Авторизация средствами контейнера - JAAS
    2. Spring - Spring Security
    3. Spring Security + Active Directory
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Есть ли кроме org.apache.poi другие free пакеты для работы с файлами MS Excel?

    Eugene Khrustalev @eugenehr
    JXLS и какой-то коммерческий (забыл название), непереносимый, т.к. работает через OLE Automation.
    А что не так с POI? Использую его постоянно, т.к. много чего приходится импортировать/экспортировать. Доволен.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Идеальная база данных для хранения большого числа уникальных строк?

    Eugene Khrustalev @eugenehr
    CouchDB
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как правильно протестировать сайт при его приёме от разработчика?

    Eugene Khrustalev @eugenehr
    - Прокликивать страницы сайта от лица "нормального человека" и от имени "мартышки" (в разнобой, в неправильном порядке).
    - Записывать действия с помощью какого-нибудь iMacros, чтобы хоть не много автоматизироваться
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как реализовать задуманное средствами SQL?

    Eugene Khrustalev @eugenehr
    WHERE `email` IN (SELECT DISTINCT `email` FROM `orders`)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как выполнить запрос к странице?

    Eugene Khrustalev @eugenehr
    NodeJS + Electron + Nightmare же
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Должен ли я обработать ошибки при использовании ResourceBundle?

    Eugene Khrustalev @eugenehr
    Properties-файлы - это внутренние настройки(переменные) приложения. Они не редактируются извне, а значит всегда должны содержать корректные данные. Если в properies-файле не окажется ключа, которое запрашивает приложение, то это либо неправильный файл, либо ошибки в программе. Такое лучше исключать на этапе разработки/тестирования, для чего лучше всего бросить exception.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что будет работать лучше и стабильней PyQt vs JavaFX?

    Eugene Khrustalev @eugenehr
    И то и другое достаточно стабильны.
    Некорректный вопрос - кодеры на python выберут pyqt, java - javafx. Людей с большим опытом pyqt и javafx тут не много.
    Имеет смысл рассмотреть еще SPA на JavaScript - React, Angular, Vue - запускать их из Electron
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Из-за чего может зависать работа с сетью в приложении на java?

    Eugene Khrustalev @eugenehr
    conn.getInputStream()
    блокирующий вызов и будет висеть пока от сервера не придут какие-либо данные. Если сервер не отвечает, то и поток висит. Можно разрулить установкой таймаутов на чтение/коннект, а лучше освоить наконец NIO
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Java Как из списка типа A сделать список типа В не используя циклы?

    Eugene Khrustalev @eugenehr
    List<A> aList = ...
    List<B> bList = aList.stream().map(B::new).collect(Collectors.toList());
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Что использовать для автоматической генерации диаграмм состояний UML?

    Eugene Khrustalev @eugenehr
    plantuml/. Можно даже онлайн
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • Drno
    • 6 ответов
    • 0 вопросов
  • felony13twelve
    felony13twelve
    • 5 ответов
    • 1 вопрос
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • OoU
    • 5 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 5 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации