Бизнес-правила, которые нам сообщают, следует принимать такими, какие они есть, поскольку без серьезного политического вмешательства их не преодолеть. Мы вынуждены иметь дело со случайными наборами странных условий, которые сочетаются между собой самым непредсказуемым образом. Определенно известно только одно: вся эта мешанина ещё и изменяется во времени. Разумеется, тому есть какие-то причины. Так, например, выгодный клиент может выговорить для себя особые условия оплаты кредита, отвечающие срокам поступления средств на его расчетный счет. И пару тысяч таких вот частных случаев способны сделать бизнес-логику совершенно нелогичной, а соответствующее программное приложение — запутанным и не поддающимся восприятию с позиций здравого смысла.

Мартин Фаулер. Архитектура корпоративных программных приложений

Удалить, перезагрузиться, повторить

На сайте КриптоПро есть страница “Центр загрузки”: https://www.cryptopro.ru/downloads. Нашел там интересную утилиту cspclean.exe:

То есть, я сначала удаляю КриптоПро, перезагружаюсь, запускаю утилиту по очистке того, что не смогло удалиться первый раз и опять перезагружаюсь. Вроде верно запомнил…

Электронный документооборот?

Недавно получил квалифицированную электронную подпись и начал настраивать электронный документооборот через систему Диадок. После оплаты пакета документов представитель этой системы выслал мне по почте Акт о выполненных работах (в формате pdf) и попросил распечатать на цветном принтере, подписать, отсканировать и отправить обратно.

Я воспринял эту ситуацию с юмором и сделал ход конём: подписал этот pdf с помощью электронной подписи. Ответа не было довольно долго, после чего мне предложили сделать это через Диадок. Победа! 🙂

Metro и log4j2 в веб-приложении: боремся с утечками памяти

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

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

Если ты в курсе о чём речь и тебе знакома эта тема, то устраивайся поудобнее и читай дальше. Если же нет, то советую сначала прочитать первую статью: она введёт тебя в курс дела. Далее я буду исходить из того, что ты так и поступил.

Читать далее

Реальность вашей ситуации, всех наших ситуаций, заключается в том, что ничто не даётся легко. Если вы действительно хотите преуспеть, придётся упорно работать. Вы можете потратить несколько лет, работая по 60-70 часов в неделю. Вы можете забыть о том, чтобы смотреть телевизор или проводить время с друзьями, на несколько лет, чтобы вырваться вперёд. Вы не можете обмануть систему. Вы получаете ровно столько, сколько вкладываете.

Джон Сонмез. Путь программиста

Гонка даётся одержимым, а не быстрым.

Джон Джейкс. Север и юг

Spring и log4j2 в веб-приложении: боремся с утечками памяти

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

Даже если ты никогда не пользовался ни Spring, ни log4j2, то всё равно получишь довольно чёткое представление о том, почему такого рода утечки могут возникать и как с ними бороться.

Хотя эта статья и создана для разработчиков, в ней почти отсутствует программный код: всё, что нас будет интересовать – это конфигурационные файлы. Мы будем наблюдать, как простое подключение новой библиотеки в нашу программу будет приводить к утечкам памяти, а небольшие правки в конфигурации – исправлять их. Впрочем, давай всё по порядку.

Читать далее