Месяц: Февраль 2012

  • Java EE Architect

    “Архитектор знает немного обо всем. Инженер знает все об одном.”
    Мэтью Фредерик, из книги “101 полезная идея для архитекторов”.

    Сейчас получить сертификат Java EE Architect (в прошлом SCEA) немного сложнее, чем до покупки Oracle компании Sun Microsystems.
    Необходимо пройти курс обучения от Oracle. Это дополнительное время и самое главное дополнительные немалые деньги.

    Я сдавал когда еще можно было пройти без этой процедуры.

    По моим личным наблюдениям реакция людей на наличие SCEA сертификата (Sun Certified Enterprise Architect for Java EE) может сильно отличаться. (далее…)

  • Встречи Scala программистов в Москве

    Для меня Scala не “абстрактный сферический конь в вакууме”, а язык, который я использовал в нескольких реальных проектах в течение последних трех лет. Хочу сразу отметить, что мы не использовали никаких скала-фреймворков – лифт, скалаторы и прочее. Во-первых не было необходимости, во-вторых можно без особых усилий писать на scala и использовать только обычные java-фреймворки.

    Кроме программирования на Scala в 2010-2011 я вел курс по выбору в МФТИ “Практикум по программированию на Java и Scala”. В результате у меня наработался некоторый объём дидактического материала.

    В итоге летом 2011 года мы с друзьями решили организовать в Москве независимые регулярные встречи Scala программистов.
    Под “независимыми” имеется в виду – без патронажа каких либо коммерческих организаций жадных до денег или мозгов программистов.
    Регулярные – старались встречаться каждую неделю, но естественно были перерывы.
    Формат встреч самый простой – собираемся и решаем небольшие задачки на Scala.

    Место встречи – различные кофейни и другие либеральные заведения общественного питания, в которых есть wi-fi.
    Как правило встречи проводились после рабочего дня, поэтому кто-то в процессе обучения пил кофе и ел пирожные, кому-то было интересней пиво или сытный ужин.

    Один человек притаскивал ноутбук (как правило это был я со своим 17” HP).
    Выбирали одну задачку на всех, она разбивалась на несколько кусочков.
    Главное условие – каждый должен был написать хотя бы несколько строк кода.
    Если не успеваем решить – переносим на следующую встречу.

    Также кто-то на встречах рассказывал про свой опыт использования Scala у себя на работе или какие-то интересные аспекты языка.
    В качестве источника информации использовали в основном стандартную документацию по API, мои презентации к физтеховским семинарам,
    и книжку Мартина Одерского “Programming in Scala”, которую мне подарил Коля Матюшев (книжка на английском, он ее купил когда работал в Лондоне).

    Некоторые задачки которые мы решали на наших “семинарах”:

    • Рисовалка Мандельброта
    • Разные фракталы на L-System-е
    • Игра жизнь
    • Решалка судоку

    Места в которых проводил занятия (в хронологическом порядке):

    • КофеИн
    • Шоколадница
    • Кофе-Хаус
    • Му-Му

    Думаю станет чуть потеплее и мы продолжим (а может и раньше).
    Кто был на встречах: Валерия Ива Виннер, Серж, Артур, Ник, Миха, Вит.
    Прошу прощения если кого-то забыл. Буду рад новым встречам!

  • Другой способ защиты

    На этой неделе друг со старой работы написал про свой способ защиты java проектов.
    Около полугода назад я писал про то, как прятать строки в properties-файлах с помощью jasypt (EncryptableProperties и защита от дурака).
    На самом деле, все понимают, что это всего-лишь защита от самого простого случая. Например, чтобы любопытный админ заглянув в файлик, не увидел там то, что не должен знать.
    Тем не менее, если есть доступ к классам, то можно jad-ом отдекомпилировать исходники и получить доступ к “запретной” информации (например оригинальный пароль, которым шифруются properties разработчиком-оптимистом).

    Для более серьезной защиты используют обфускаторы. Он усложняет работу по реверсу, но по большому счету распутывание логики это вопрос времени.

    Так вот, российскими программистами сделан специальный продукт для защиты java-проектов.
    Ключевое в нем – AES-шифровка строк. Кроме этого он делает динамические инъекции и использует специальные механизмы, которые мешают поломать приложение через рефлекшн.
    Данное решение является коммерческим продуктом.

    Подробнее здесь.

  • Tomcat и jdbc connection pool

    Чтобы каждый раз не искать в интернете различные настройки пулов для томката, решил вынести для себя примеры различных конфигураций.

    В общих чертах что такое пул.
    Пул (pool) – это такой “бассейн” или “резервуар” из которого можно брать “живые” объекты для дальнейшего их использования.
    В данной статье будут рассматриваться только пулы подключений к БД, но в жизни программиста могут повстречаться пулы разных объектов, например многим знаком Thread Pool.
    В общем случае, пул “каких-то объектов” – это шаблонный способ решения проблемы хранения и раздачи объектов (и самое главное поддержания их в нормально рабочем состоянии).

    По аналогии с бассейном, в нормальных пулах постоянно протекают некоторые процессы. Например осуществляется проверка не “протухли” ли объекты. Нужно ли создать новые? Сколько времени объекты находятся в пуле? Во многих пулах есть своя “ватерлиния” (high water mark), которая указывает на максимальный “объем” пула.

    В этой статье будет кратко описан JDBC Connection Pool.
    (далее…)