Особенности использования плагина jasperreports-maven-plugin в CentOS

Третьего дня понадобилось под CentOS мавеном собрать проект, в котором задействован плагин jasperreports-maven-plugin. Собирал как положено — мавен 3.3.3 и jdk 1.8.0.
Сборка начала валиться с ошибкой:

[ERROR] class file has wrong version 52.0, should be 50.0

Это навело на мысль, что плагин ищет джаву вовсе не в переменной окружения JAVA_HOME. Для начала выставил еще и переменную JDK_HOME, ошибка про версии пропала, но сборка все равно стопорилась:
Read more »

Уязвимость Venom опаснее, чем Heartbleed, и угрожает большинству датацентров

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

Источник: ссылка

Heartbleed, подвинься! На подходе новая катастрофическая уязвимость.

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

Уязвимость нулевого дня содержится в распространенном компоненте программного обеспечения для виртуализации, что в теории позволяет хакеру внедриться в любой компьютер сети датацентра.
Read more »

Самодельные пазлы на деревянной подложке

Некоторое время назад у меня возникла идея соединить возможности лазерной резки и ультрафиолетовой печати. Если с лазером я был знаком достаточно хорошо, то с УФ печатью имел дело в первый раз.

В качестве материала я выбрал неламинированную фанеру толщиной 6 мм и акриловое стекло такой же толщины.
Read more »

Продвинутые SCTP клиент и сервер

Протокол SCTP является очень перспективным и предоставляет множество интересных возможностей. В данной заметке я рассмотрю использование продвинутых SCTP клиента и сервера из примеров netty (простые клиент и сервер рассмотрены тут: Простые SCTP клиент и сервер ). Проект будет на maven.

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

Исключение вида java.lang.UnsupportedOperationException: libsctp.so.1: cannot open shared object file: No such file or directory лечится установкой библиотеки:
Read more »

Ошибки сборки от commons-math3 и commons-pool2

Намедни понадобилось собрать сэмплер для jmeter. Для сборки нужна зависимость org.apache.jmeter.ApacheJMeter_core версии 2.13, которая тянет за собой зависимости из org.apache.commons. Тянет она их опосредованно через ApacheJMeter_parent-2.13.pom.
Среди них как минимум две — org.apache.commons.commons-math3 и org.apache.commons.commons-pool2 (скорее всего список неполный) — указаны неверно и вызовут ошибки вида:

Multiple annotations found at this line:
— Missing artifact commons-pool2:commons-pool2:jar:2.3
— Missing artifact commons-math3:commons-math3:jar:3.4.1

(подсвечивается в первой строке pom.xml вашего проекта/бандла)
Read more »

Програмная имитация отжига для начинающих

Данная заметка является переводом этой статьи: источник

Поиск лучшего решения для определенных задач оптимизации может быть необычайно тяжелым, часто даже практически невозможным. Это происходит из-за того, что при усложнении задачи возрастает число возможных решений из которых нужно выбрать оптимальное. Даже при использовании возможностей современных компьютеров перебор всех вариантов представляется тяжелой задачей. В этом случае мы не можем надеяться на нахождение оптимального решения за приемлемое время, поэтому мы можем удовлетвориться решением, которое близко к оптимальному.

Примером задачи оптимизации с большим числом возможных решений является задача коммивояжера (ЗК). Для решения задач вроде ЗК нам нужно найти удовлетворительное решение за приемлемое время. В предыдущей заметке ссылка мы применили генетический алгоритм, и, хотя эти алгоритмы являются одним из методов нахождения достаточно хороших решений для ЗК, есть еще и более простые. В этой заметке мы рассмотрим метод имитации отжига.
Read more »

Разбор рекурсивной грамматики с помощью javacc

Продолжаем создавать парсеры на java с помощью javacc. В этот раз рассмотрим разбор грамматики, которую уже разбирали с помощью lex+yacc тут: ссылка. В той статье есть BNF для данного языка в понятном для yacc виде.

Для простоты я опять закомментировал название пакета — если надо, раскоментируйте и ставьте свой.

Я собирал с помощью make:
Read more »

Использование именованных каналов и замены процессов

Использование именованных каналов и замены процессов

Данная заметка является вольным переводом этой статьи
http://vincebuffalo.com/2013/08/08/the-mighty-named-pipe.html

Трудно не влюбиться в Unix, если вы биоинформатик. В прошлой заметке я упоминал о том, что каналы в Unix представляют собой элегантный способ взаимодействия биоинформационных программ (и вообще осуществляют взаимодействие между процессами). Исследуя другие способы сопряжения программ в Unix я открыл два из них, которым уделяют недостаточно внимания: именованные каналы и замена процессов.
Read more »

Использование javacc для разбора SQL

Пришло время затронуть тему создания парсеров на java. Для этого воспользуемся утилитой javacc.

Update. Плагин Вордпресса для подсвечивания кода стал безнадежно портить исходники — добавлять закрывающие теги там, где они не нужны, дефолтные значения у того, что он считает атрибутами тегов. Неискаженные исходники, адаптированные к javaCC версии 7.0.9 доступны тут: исходники

За основу взята эта статья с примерами: источник моего вдохновения. В коде примеров исправлены ошибки и теперь они даже собираются 😉
Код доработан и теперь, к примеру, правильно обрабатывает запятую в перечислении: она допустима тогда и только тогда, когда за текущим элементом перечисления есть еще один или несколько элементов. Если для типа данных в скобках указана длина (опциональный параметр), то она тоже будет сохранена в результирующей структуре для описания типа.
Read more »

Простые SCTP клиент и сервер на java

Как только вы начинаете искать работающий java код для этих классов, то получаете в выдаче устаревшие примеры (сомневаюсь, что они работали уже на момент публикации).
В этой заметке я разберу пример простых клиента и сервера для протокола SCTP и типовые ошибки при сборке и запуске.

Исключение вида java.lang.UnsupportedOperationException: libsctp.so.1: cannot open shared object file: No such file or directory лечится установкой библиотеки:
Read more »