-
EncryptableProperties и защита от дурака
Все знают, что не следует хранить в конфигурационных файлах (например properties) критически важную информацию в открытом виде. Например логины и пароли от базы данных, почты и т.д. Не стоит этого делать, т.к. “случайный” сисадмин или пользователь сможет открыть этот ваш файлик и увидеть пароль. С учетом того, что довольно часто пароли придумывают люди, то запомнить…
-
Java + Excel файлы (Apache POI)
С периодичностью раз в два-три года сталкиваюсь с проектами, в которых опять нужно работать с Excel файлами. Наверно это у меня что-то кармическое… Сейчас, в очередной раз приходиться реализовать полуавтоматический разбор сотен excel-файлов с прайсами. В прошлых своих проектах использовал JExcelApi. Ничего плохого про эту библиотеку сказать не могу, но хочется какого-то разнообразия в жизни…
-
Apache HTTPD, mod_jk, Apache Tomcat, Linux
1. Начало. Если Вы ставите Tomcat как-то так: (от рута) aptitude install tomcat6 tomcat6-admin tomcat6-examples, то прежде чем двигаться дальше, вам возможно стоит обратить внимание на настройки URIEncoding в server.xml. Здесь и далее: Томкат => Apache Tomcat, Апач => Apache HTTPD. 2. Вяжем. Классическая схема работы Томката (Apache Tomcat) в продакшене, это связка его с…
-
XMPP (Jabber) + Smack
Недавно с товарищем начал работу над одним проектом, в котором нужно было написать программу для отправки сообщений пользователям по протоколу XMPP (т.е. через jabber). Список библиотек для работы нашли на официальном сайте xmpp.org. После серии небольших испытаний решили для интеграции с серверной частью написанной на Java использовать библиотеку Smack. Не факт, что будем использовать ее…
-
Работа с видео и аудио в Java. Xuggle
Первый раз мне пришлось столкнуться с обработкой видео на Java лет 10-12 назад. Я еще был студентом и работал над проектом, в котором мы пытались сделать видео проигрыватель в виде апплета. В те времена, для перекодирования видео мы пробовали использовать JMF (Java Media Framework). Нам нужно было сделать хитрую предварительную обработку видео, т.к. показ видео…
-
oracle xe + ru. >_< Rrrr!
Нужно было поставить Oracle XE на Windows XP (RU). Все нормально качается с официального сайта. Установка супер-простая (по сравнению с обычной установкой оракла). Пользователь по-умолчанию: system SID по-умолчанию: XE Панель управления доступна через на порту 8080. Админка работает, SQLPlus подключается и уже казалось, что счастье так близко. Если вы попытаетесь подключиться через JDBC, напоритесь на…
-
Maven: Lifecycle, Phase, Goal
Для того, чтобы не запутаться в работе maven’а нужно разобраться с базовыми понятиями. 1. Жизненный цикл (lifecycle) : default, clean, site. 2. Фазы (phase). Жизненный цикл состоит из чередования различных фаз. Например жизненный цикл clean состоит из фаз : pre-clean, clean и post-clean. Порядок выполнения важен. Если мы запустим mvn package , то также будут…
-
Desktop wallpaper в качестве инструмента проверки браузера под различным разрешением
Используем обои для рабочего стола У моего монитора разрешение 1680×1050, а в работе иногда нужно время от времени смотреть как будет выглядеть содержимое браузер например под разрешением 1024×768 или 1280×800. Да, я знаю, есть множество способов решить эту задачу, но я сделал так – нарисовал три прямоугольника разных размеров и установил полученную картинку на рабочий…
-
Звездочка (*) в шестёрке и хитрые bat-файлы
Запуск java-программы из командной строки. Представим такую ситуацию… В результате вашей работы в качестве java программиста у вас получился один JAR-файл (для простоты назовем его mytools-1.0-SNAPSHOT.jar). Кроме него вы планируете использовать более десятка других jar-файлов. Ваша программа должна запускаться из командной строки, а не из супер-пупер IDE которую вы обычно используете в работе. Например Вашу программу…
-
Hibernate. Update. Популярные грабли
Сейчас многие любят реализовывать Data Access Object (DAO) на базе Hibernate. Хотелось уделить особое внимание работе с объектами в различных состояниях. Пример из документации : DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) ); cat.setName(“PK”); sess.flush(); // changes to cat are automatically detected and persisted Некоторые думают, что нужно делать так: DomesticCat cat = (DomesticCat)…