Thursday, October 17, 2013

JavaScript Calendar

Всем привет. Не так давно в школу HeadHunter проходил конкурсный набор по направление JavaScript developer на нагруженные сервера. Так вот, я тоже туда пробовал попасть с учетом того, что JS знаю исключительно по библиотеке JQuery. 

Tuesday, October 15, 2013

Protocol Buffers

Так выпали карты, и мы стали использовать технологию Protocol Buffers или просто protobuf, предложенной Google для решения проблем сериализации между платформами и существующими языками.

В этой статье моя цель раскрыть основы использования данной технологии в контексте платформы Java.

Friday, September 27, 2013

Фильтр для web-приложения

Добрый день. Давно ничего не писал в сюда. И вот пришла идея описать процесс подключения и использования собственного фильтра. Такую же идея мы используем в своем продукте документооборота DocPrEx (Document Project Expression) для авторизации и аутентификации пользователя. Возможно что-то в дальнейшем будет меняться. Но сейчас это все выглядит более, чем удачно. Поскольку можно отказаться от SpringSecurity. Итак, добро пожаловать под кат

Friday, July 12, 2013

AOP with annotation


Сегодня поговорим о той проблеме, с которой пришлось столкнуться намедни. Нужно было логировать только определенные методы и классы в спринговом приложении. В интеренетах полно решений для всех методов, но мало для конкретных. Поэтому восполним этот пробел нижеследующим решение.

Thursday, July 11, 2013

GWT Cookies

Понадобилось недавно сохранять настройки пользователя на javascript, генерируемом с помощью Google Web Toolkit. Пробежавшись по API нашел очень неплохой класс Cookies. В результате написал небольшую обертку для своих настроек. Чем и делюсь ниже. Сам класс очень простой и я думаю, что нет необходимости что-либо писать еще. Поэтому смотрим ниже выкладку. На все вопросы готов ответить

Monday, July 1, 2013

Новое в JDK 7

Вот какие новшества можно использовать в Java 1.7

Friday, June 28, 2013

ApplicationEventMulticaster not initialized

Чтобы подавить это сообщение, необходимо в pom добавить следующее

LifecycleProcessor not initialized

Это сообщение возникает, если вдруг вы забыли подключить AspectJ

Wednesday, June 26, 2013

Подборка генераторов шаблонов на JavaScript

Я подобрал несколько JS-движков для шаблонов. Описывать не буду, что каждый движок значит, просто приведу ссылки на соответствующие сайты

Create simple project

Как установить maven можно прочитать у меня в блоге. А сейчас попробуем создать наш первый проект. Для этого зайдем в консоль и напишем такую команду (в фигурных скобках написан вспомогательный текст, что необходимо вписывать)

Simple Web Server

Иногда появляется такая необходимость, что нужно запустить "по-быстрому" простенький веб-сервер и проверить работу html/css/js-скриптов. Ставить Apache, nginx, lighttpd нет возможности, да и просто лень. Тогда я беру на вооружение себе... язык python. И запускаю встроенные легковесный веб-сервер. Для любителей Windows тоже не составит труда скачать себе ActivePython и не придется ничего настраивать, за вас все сделает инсталлятор.

Tuesday, June 25, 2013

Interface vs Abstract Class

Всем привет! Сегодня поговорим о больной теме всех Junior-разработчиков на языке Java. Когда стоит использовать interface, а когда abstract class. Весь нижеизложенный текст является переосмыслением всех грабель, которые встречались мне за всю мою карьеру. Итак, начнем.

Monday, June 24, 2013

Несколько удобных фишек в maven

Не будем вдаваться в подробности. Более детальную информацию можно найти на сайте http://maven.apache.org. Итак, начнем

Friday, June 21, 2013

MySQL and check settings

Я не буду объяснять вдаваться в подробности, что значат две ниже перечисленные команды. Просто скажу два слова, что это нужно для проверки настроек кодировок вашей СУБД
Выведем на экран результаты как будет происходить сравнение (collation) Выведем на экран собственно все настройки кодировки

@Inject или @Autowired?

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

@Inject является частью JSR-303, которая определяет базовые аннотации для DI-фреймворков. Как вы уже догадались, это ведет к тому, что у вас улучшается переносимость между этими DI-фреймворками. Я не советую и не агитирую переходить на @Inject. Это личное дело каждого, просто данная аннотация является специфицированной :-)

Ну и теперь самое интересное - это настрока аннотации в pom'e и в Java-коде
Помните, что @Inject можно также вставлять в setter'ы

Convert types in mysql fields

For example, I show how you can convert varchar field to double field. We will use alter table statement. Ok, let's go!
ALTER TABLE products MODIFY COLUMN product_price DOUBLE

P.S. I'd be very tempted to make a backup of the data. It'll take a second. It's better to be safe rather than sorry.

Thursday, May 30, 2013

JetSpeed 2

В интернете много сообщений об ошибке при сборке и деплое JetSpeed 2 в Tomcat. Я данную ошибку обошел. И теперь делюсь советом

1. Удаляем все ранее установленные пакеты
mvn -U clean install

2. Лучше установить заново конечно проект с моими настроками. Было выведено экспериментальным путем
mvn org.apache.maven.plugins:maven-archetype-plugin:2.2:generate -DarchetypeGroupId=org.apache.portals.jetspeed-2 -DarchetypeArtifactId=jetspeed-archetype -DarchetypeVersion=2.2.2 -DartifactId=jetexpress -Dpackage=org.apache.portals.tutorials -DgroupId=org.apache.portals.tutorials -Dversion=1.0-SNAPSHOT
Это поможет сэкономить вам пару часов своего драгоценного времени

3. Устанавливаем, как нам велит документация (не забываем править конфиги под вашу систему)
mvn jetspeed:mvn -Dtarget=all

Thursday, January 10, 2013

Install ant from source

1. Download apache-ant
wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/ant/binaries/apache-ant-1.8.4-bin.tar.gz
2. Unpack and move to work directory
$ tar -zxf apache-ant-1.8.4-bin.tar.gz
$ sudo mv apache-ant-1.8.4 /usr/local
3. Link to binary directory. That's all
$ sudo ln -s /usr/local/apache-ant-1.8.4/bin/ant /usr/bin/ant

Install maven from source



  1. Download apache-maven2-*-.tar.gz
  2. Unpack to directory your_directory
  3. Set variable to environments
    #sudo gedit /etc/environment
  4. M2_HOME=your_directory
    PATH=$PATH:$M2_HOME/bin 
  5. Reboot your machine. And welcome! 
[Update]
But i created link to /usr/bin/mvn from my_dir/bin/mvn