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

Домашняя автоматизация с openHAB: освещение и удаленное управление обогревателями. Часть 1 - 1

Моя прошлая статья была о выборе лапм освещения для жилой мастерской. В этот раз расскажу про реализацию домашней автоматизации в том же помещении. Мастерская отапливается двумя электрическими обогревателями. Хотелось удаленно их включать, чтобы не приезжать в холодное помещение. И еще хотелось поддерживать заданную температуру, до этого при изменении температуры на улице приходилось каждый раз крутить «термостаты» обогревателей. Ну и управление освещением, датчик открытия двери и т.д.
Читать полностью »

29 января в 19:00 состоится очередной вебинар серии LTS, на котором выступит ИТ-эксперт Николас Френкел.

Luxoft Technology Series (LTS) — это современный интерактивный проект, состоящий из серии бесплатных вебинаров с участием ведущих представителей сферы IT со всего мира. Luxoft надеется, что в рамках этого глобального образовательного проекта будет создана платформа, благодаря которой IT-профессионалы со всего мира смогут делиться своим опытом.

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

Берём данные, JasperReports и заполняем шаблон в iReport

Отчёты для NORD POS. Часть 1 - 1

Эта статья посвящена не столько, как это сделать красиво с точки зрения дизайна, а как с помощью имеющихся средств JasperReports сделать отчёты чёткими для восприятия пользователем и удобными для дальнейшего использования интегратором. Так как JasperReports, это в первую очередь не самостоятельное приложение, а библиотека расширения для программ написанных на Java, то в качестве источника информации для построения отчётов будем использовать базу данных от NORD POS(подробнее об этом моём проекте в отдельной статье). При этом изложенный «под катом» материал, я надеюсь, будет интересен не только пользователям моей POS, но и всем тем, кто хочет больше узнать о мощном инструменте формирования отчётов для своего приложения, а на русском языке материалов посвящённых JasperReports не так и много.
Читать полностью »

Статей про double-checked locking на Хабре было столько, что казалось бы ещё одна — и Хабр лопнет. Вот только по Java неплохие публикации: Реализация Singleton в JAVA, Правильный Singleton в Java, А как же всё-таки работает многопоточность? Часть II: memory ordering или вот замечательный пост от TheShade (слава web-archive!). В наши дни, наверно, каждый Java-разработчик слышал, что если используешь DCL, будь добр объявить переменную volatile. Найти сегодня в коде известных опенсорсных проектов DCL без volatile довольно трудно, но оказалось, что проблемы ещё не полностью решены. Поэтому я добавлю небольшую заметку по теме с примерами из реальных проектов.

Иногда складывается ощущение, что программисты не включают мозги и не пытаются понять, как что работает, а просто следуют простым и понятным правилам вроде «объяви переменную volatile, используй DCL, и всё будет хорошо». К сожалению, такой подход в программировании не всегда работает.
Читать полностью »

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

Получив однажды ссылку от заказчика на Vagrant с вопросом «а почему мы это сих пор это не используем?» принялся осваивать это чудо.
Читать полностью »

Conditional indexing. Оптимизируем процесс полнотекстового поиска - 1

В этой статье я хочу поговорить про интеграцию Apache Lucene и Hibernate Search. Если быть более точным, то про один из механизмов Hibernate Search, который может здорово увеличить производительность на проекте с полнотекстовым поиском.
Читать полностью »

В Java сообществе Hibernate framework де-факто считается стандартом для удобной работы с базой данных. Разработчику трудно выбрать другой фреймфорк, потому что порой он не знает о существовании альтернатив. В этой статье я проведу курс молодого бойца по работе с MyBatis framework. Полностью охватить весь framework не получится, но информации будет достаточно, что бы увидеть преимущества и слабые стороны данного framework'а и начать работать с MyBatis.
Читать полностью »

Идеей написать игру я загорелся еще в 2011 году. В августе 2011 года, не имея опыта разработки на PHP, обложившись книгами и этими вашими интернетами, по ночам писал небольшую браузерную космическую стратегию в реальном времени. Этакий клон OGame. Разумеется, со своими дамами и преферансом. Но проекту этому не суждено было родиться, в декабре 2011-го Родина-мать вдруг попросила отдать долг.

Вернувшись в декабре 2012 года, первым делом устроился в местную крупную IT-компанию. Нужно было максимально быстро вновь войти в рабочий ритм. К весне я уже не мог спокойно спать — мечтал писать игры. Второй попыткой было написать простенькую TD на Unity. Что-то даже получилось — пушки стреляли, мобы двигались. Но постоянно мучил страх, что не смогу довести дело до конца. Так оно и получилось. Семья, работа — свободного времени не было совсем. И только осенью 2014 года твердо решил — я сделаю игру и точка. Не буду спать, не буду есть, но сделаю. Этакий вызов на «слабо». Что из этого получилось читайте дальше.
Читать полностью »

в 8:47, , рубрики: java, java8, JCL, log4j2, logback

Вступление

Думаю, ни для кого не секрет, что такое логгеры и для чего они нужны. За время существования java было создано немало фреймворков логгирования. Среди самых известных можно выделить:

  • JUL — java.util.logging
  • log4j
  • JCL — jakarta commons logging
  • Logback
  • SLF4J — simple logging facade for java

В данной статье будет рассмотрен каждый из указанных выше фреймворков на уровне «hello world». Будут приведены простые примеры использования основного функционала и конфигурирования. Статья не преследует цель сравнения логгеров между собой и выявление лучшего из них, эту возможность автор оставляет за вами, уважаемые читатели. В конце статьи будут приведены источники, где можно получить более детальную информацию по каждому фреймворку. Также перед прочтением данной статьи рекомендую ознакомиться с публикацией «Java Logging: история кошмара», где описана история развития систем логгирования в Java.
Читать полностью »

Java разработчикам привет.

Делюсь легковесной (3kb) библиотекой, единственная и основная задача которой — кидать ворнинги от Java компилятора.

Использование очень простое: пишите аннотацию @Warning(«Reason text here») и при компиляции будет выдан ворнинг (сборка при этом не останавливается).

// some code...

@Warning("Refactor as soon as possible please")
public void someCodeWhichYouNeedAtTheMomentButYouWantToRefactorItLater() {
    // bad stuff going on here...
}

Использован Annotation Processor API.

Гитхаб: https://github.com/pushtorefresh/javac-warning-annotation (опубликовано в mavenCentral)

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


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