Сторінки

субота, 11 серпня 2012 р.

End of the road

Друзья, этот блог закрыт и активным будет этот. Ну насколько у меня вообще бывает активный блог :) Спасибо, что смотрели наш канал

неділя, 1 квітня 2012 р.

JPA 2.0: Entities design

При проектировании модели данных с использованием JPA, особенных правил, которые были бы определены стандартом, фактически нет. Очевидно, что класс должен

  1. Быть сериализуемым
  2. Cодержать реализацию equals и hashCode
  3. Некоторые рекомендуют перегружать toString
  4. Иметь публичные getters & setters для своих полей

Но это фактически требования к стандартным JavaBean's, чем конкретно к JPA entity beans. А между тем, именно JPA entity имеют свои особенности, о которых было очень полезно знать непостредственно при проектировании. И снова источником вдохновения стала статья Stijn Geukens на StackOwerflow

JPA 2.0: Persist vs Merge

Интересная вещь мне открылась, когда я решал проблему, традиционную для JPA, есть классическая ORM модель, в которой необходимо создать новый объект, но связать его с уже существующими данными. Довольно часто здесь возникает javax.persistence.PersistenceException, связанный с тем, что мы пытаемся вставить в базу данных объект, находящийся в состоянии DETACHED. Мой метод saveOrUpdate выглядел традицоинным образом
public T saveOrUpdate(final T entity) { 
    if (entity.getId() == null) { 
        entityManager.persist(entity); 
        entityManger.refresh(entity); 
    } else { 
        entityManger.merge(entity); 
    } 
    return entity; 
}
Так я использовал его множество раз и множество подобных примеров встречал в интернете. Моя наибольшая проблема заключалась в том, что модель приложения весьма обширна и вручную обрабатывать все связные классы на предмет их наличия в базе данных заняло бы очень много времени. Поэтому я стал искать более элегатное решение. И нашел его, но не совсем там, где расчитывал. А именно в документации по JPA. Подробное описание различия между методами persist и merge, я нашел в статье Zbyněk Šlajchrt. А я хотел бы поделится выводы, которые из этой статьи сделал:

середа, 15 червня 2011 р.

CAJD::Technologies

Вопрос второй

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


Простой ответ - изучать "новые технологии" самостоятельно. И это, вобщем-то очень хороший совет, но по-моему это только часть ответа на вопрос. Снова поднимемся над ситуацией и попробуем найти корень проблемы.

четвер, 9 червня 2011 р.

CAJD::Interesting tasks

Открываю обещанный цикл статей по следам заседания "Клуба анонимных Java-девелоперов" на jeeconf.  Пока мне видится такой себе FAQ, по темам, которые всплыли уже надцатый раз и получили конкретные законченные ответы.
Итак, вопрос первый

Скучный проект не позволяет применять и развивать навыки программирования. А хочется роста, как быть?

вівторок, 24 травня 2011 р.

JEEconf resume

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

Организация
Второй раз XPinjection делает конференцию на 5+. Устойчивое интернет-соеденение (в этот раз 8 точек), качественное питание, качественное и равномерное распределение участников, докладчики с реально интересным людям материалом. Все это уже становится визитной карточкой конференций. В двойне радует, что это Киев и наконец-то есть какое-то событие, которое украинцы могут организовать хорошо. Спасибо ребята, спасибо Коле за идею и драйв комьюнити, спасибо Ане за совершенно титанический труд в организации мероприятия на месте, спасибо волонтерам за волонтерство, организаторам за организацию, участникам за участие

Мой псевдо-доклад
Почему псевдо-? Потому что планировалась живая разработка проекта. Как по мне идея стоящая, но рисковая. Так и получилось. Я был бы не честен, если бы продолжил говорить "мой доклад", потому что делали мы его вдвоем с мои другом Юрой Литвиненко. Идея изначально была запрограммировать нечто прямо на конференции. И пришло как минимум 4 человека, которые очень хотели кодить  и имели ноуты. Но подавляющее большинство нашей аудитории были "интересующиеся". А так как вшестером довольно сложно получить результат работы за 4 часа, мы с Юрой переформатировали мероприятие в открытые дискуссии. И переименовали в "Клуб анонимных Java-разработчиков". Довольно сложная штука эти открытые дискуссии, их очень не просто вести. Но оказываться можно делать это эффективно. Даже появилась идея продолжить "Клуб..." на харьковской стороне. Посмотрим. В процессе обсуждения всплыли темы, которые стоят отдельных постов. О них я расскажу дальше.

субота, 23 квітня 2011 р.

UA Web Challenge 2011

В один из дней марта, не помню точно в какой именно, мне в телефон позвонил некто Игорь и предложил поучаствовать в жюри всеукраинского конкурса разработчиков UA Web Challenge 2011. А я возьми и согласись. Идея конкурса довольно проста и, как по мне, очень своевременна, она полностью отвечает тенденциям рынка труда - нужно дать возможность прежде всего юношам и девушкам, без опыта или с минимальным опытом работы, как проявить себя, так и найти/сменить работу буде у них такое желание есть/появится. Обе цели были достигнуты, участники разделились на две не равные части - большинство получило удовольствие от соревнования, результатов, новых знаний и знакомств; отдельные личности стали брюзжать на форуме DOU.
Соревнование проходило в три этапа - отборочный тур, полуфинал и финал. Изначально предполагалось, что судить жюри будет все этапы, но предварительные обошелся без нас. Чему лично я был очень сильно рад - поездка на JavaOne Moscow, работа и подготовка JEEconf все-таки отнимают много времени и сил.

субота, 16 квітня 2011 р.

JavaOne Moscow 2011

Откровенно говоря после Sun Tech Days St. Petersburg 2009 не думал, что поеду еще раз на мероприятие Oracle в России. Но, как говорят, строить планы - смешить Бога. В этот раз ее назвали JavaOne и ехали мы вчетвером, я подумал - а почему бы и нет. Тем более, что контора помогла с дорогой и регистрация была платной. Поездкой я доволен, несмотря на некоторые огрехи организации и (привет Бек) отсутствие технической конкретики в большинстве технических докладов.
Два, нет, три основных вывода
  1. С пришествием Oracle и отсечением откровенно "наколенных" поделок язык стал более агрессивным, разработка пошла не в количество фич или новых плюшек, а в качество, производительность и упорядочивание уже созданного. Что есть безусловно хорошим развитием. Потому что создано уже очень много всего, а вот стандартизировать и затюнить - это не к Sun
  2. У меня осталось стойкое ощущение, что Java уходит с front end уже окончательно. Конечно еще трепыхается JavaFX, еще пытаются его прооптимизровать, переписать заново, интегрировать на разных уровнях от JavaPlugin до JavaWebToolkit (GoogleWebToolkit в профиль). Но это скорее похоже на сохранение лица, чем на качественный рывок. Вместо этого мощное и стремительное развитие RESTfull, Servlets, EJB/EJB-light, JMS говорят о том, что основной упор делается и будет делаться на middle tier. Что логично и правильно ИМХО. Последний jersey невероятно прекрасен.
  3. Основные тенденции, основные направления деятельности Oracle достаточно ясны - Project Coins или допилить кривые конструкции языка; Java Memory Model уже сделана и верифицированна правильно, как следствие - работа в multithreading стала более однообразной и предсказуемой на всех платформах; MiddleTier и Enterprice; JVM как платформа динамических языков; тюнинг быстродействия - в первую очередь Garbage Collector и использование сверхбыстрой памяти.
Под катом больше подробностей и нравится/не нравится

вівторок, 5 квітня 2011 р.

Expert vs. Multipurpose

Не могу молчать, как говориться. Невинный вопрос "Если админ не смог настроить принтер на Ubuntu, потому что знает только Windows, значит ли это, что он плохой админ?" Получил совершенно невероятный ответ "Да - значит". Безаппеляционность? Ответчик не подумал? Возможно, но мне кажется, что это своего рода (не люблю слово трэнд) тенденция в обществе. Давайте попытаемся (ибо автор не является специалистом в системном администрировании), разобраться подробнее.

вівторок, 29 березня 2011 р.

jeeconf announcement

285x160

В конце весны 21 мая XP Injection приглашает вас в Киев на специализированную конференцию, посвященную разработке на Java. JEEConf -- это крупная конференция, целью которой является собрать вместе всех, кто использует Java технологии для разработки.

четвер, 17 березня 2011 р.

Саранча

Сегодня утром читал о впечатлениях российского журналиста в Токио, сегодня утром он процитировал своих друзей "собираюсь ли я валить из Японии". Сегодня утром я в очередной раз сморщил физию от набившей оскомину "надо валить". И тут я наконец-то понял, кого именно мне напоминают люди, девизом которых на форумах стал "надо валить". Саранча. Они не собираются строить, восстанавливать, бороться, создавать - они готовы только перелететь туда, где уже построено, восстановлено, создано. И пользоваться. Некоторые так и говорят - "Я понимаю, что можно чего-то добиться там, где я есть, но я не хочу. Я лучше поеду туда, где это уже построено и буду пользоваться. Потому что живем один раз". Чтож, по крайней мере честно.

неділя, 27 лютого 2011 р.

SeleniumCamp 2011::Общие впечатления

или по горячим следам первой Selenium конференции


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

Организация, на удивление для отечественных ивентов оказалась на редкость организованной. Помещения и залы были выбраны удивительно разумно и рассчитаны на то, чтобы вместить всех желающих. В зале А (самой большой аудитории) сидели почти все даже на наиболее массовых мероприятиях как то открытие и закрытие конференции. Учитывая, что народ занимал исключительно левую половину зала - то можно сказать, что сидячих мест в зале было в два раза больше, чем участников. Что является безусловной победой организаторов. Порадовал пакет участника, попытка организовать регистрацию в несколько потоков, возможность попить кофе прямо на баре гостиницы и т.д. Наиболее важные для меня плюсы, ну и конечно минусы организации

середа, 2 лютого 2011 р.

Outsourcing as service

С неприлично огромным опозданием исполняю обещание дать ссылку на статью Сергея Бережного "Как определить, хороший ли сервис мы предоставляем заказчику?". Чем интересна тема для меня лично? Мне всегда импонировали смелые и безрассудные идеи. А данная идея изначально кроме улыбки ничего не вызывает - ну что тут рассуждать? Платят? Значит все устраивает!
И только подумав несколько больше, начинаешь понимать, что не факт - может быть устраивает, да не все; может быть не устраивает, но кроме нас никто не сможет; может быть все что угодно. И если мы не спросим (это вообще классическая формула - спрашивать, уточнять, выяснять, обосновывать. Очень многое в мире становится проще и доступнее), то никогда не узнаем.
Вот такой вот анонс, за подробностями - к Сергею.

пʼятниця, 12 листопада 2010 р.

Игра в революцию

Я почти не писал здесь про политику. И я не собираюсь превращать этот блог в общественно-политическую площадку. Просто мысли требуют выхода, тем более когда котел кипит в моем любимом городе. Я понимаю, что фразу "это всего-лишь мое мнение" можно не писать - у нас политика всегда очень личное. Как и все более-менее важное у подростка. Кому не интересно про политику - можно подкат не читать. Комментарии можно присылать мне в почту, базар здесь устраивать не дам.

Кадровая проблема::Общие наброски

Этой статьей я бы хотел открыть цикл заметок, посвященной кадровой проблеме на рынке труда в ИТ-секторе Украины. И после 11 ноября 2010 года  в том, что проблема есть, не может быть никаких сомнений. Если кто-то еще не в курсе, сегодня киевский филиал компании LuxSoft давал 2к долларов за успешную рекомендацию Java Developer'а и 2к долларов при выходе на работу. Будущее опять наступило раньше, чем можно было предположить

понеділок, 20 вересня 2010 р.

ITшники и налоги

пьеса в пяти действиях

действующие лица:
- не самое лучшее правительство не самой богатой страны (П)
- самые умные ITшники (СУ)
- самые громкие ITшники (СГ)
- народ (Н)
место действия - где-то в восточной Европе
время действия - не определено

Действие 1

П: у нас дефицит бюджета и вообще полная фигня. надо что-то делать. давайте наведем порядок с налогами (под порядком понимается такое расределение, чтобы не ущемить клановых интересов и показать заботу о народе)
П (с трибуны): у нас будут самые лучшие налоги!
Н: опа! опять нас пацаны кинуть хотят, да? вот уроды!
П (с трибуны): вот мы тут подумали и решили, налоги будут вот такие
Н: нифига не понятно. но нам-то пофигу. главное, чтобы взятки были фиксированными и платить было понятно кому. а там по пцански разберемся
IT crowd: че? ПРОЦЕНТЫ? сколько?! нифига себе! не-не-не, так не пойдет!
П: все! мы решили! новым налогам быть!
IT crowd: нас 2% от населения страны. мы сила! вместе нас много и нас не победить! да мы, да мы! (пытаются встать с кресла и выйти на улицы. солнце слепит, ходить тяжело, вокруг ходят каки-то люди, которые не поинмают слов компиляция и упячка. в ужасе прячутся под клавиатуры)
СГ: все! уезжаем нах! не ту страну назвали Гондурасом! (последние 20 лет, на любое внешнее раздражение следовала именно такая реакция)

пʼятниця, 17 вересня 2010 р.

про собеседования 2

или мой метод

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

середа, 15 вересня 2010 р.

Java talks

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

четвер, 15 липня 2010 р.

я вернувся домів

или никто никуда не бежит

я нюхав коку в Амстердамі,
у Мюнхені пиво пив,
пальці рвав у Монте-Карло,
в Парижі все на баб спустив.
бився з негром у Нью-Йорку,
в Варшаві трипером хорів,
мні це все осторчортіло -
я вернувся домів
(с) Брати Гадюкіни
как на небе только и разговоров, что о море и о закате, так в Украине только и разговоров, что о Европе и Америке. и небо тут голубее, и трава зеленее, и почему-то все дешевле. особенно остро это воспринимается сидя в отеле за 20 часов пути от дома. в той самой стране, где говорящие мечтают оказаться.
против обыкновения, я не стану растекаться мыслею по древу и опровергать каждое утверждение. небо и трава здесь такие же, цены... техника дешевле и дешевле в несколько раз, мировые бренды одежды тоже можно взять по бросовым ценам (а можно и не взять, это как повезет). все остальное дороже. и крепко дороже. а то, что дешевле, то по качеству сравнить нельзя даже с гинлым луком в харьковских супермаркетах. и считать деньги в чужих карманах мы тоже не станем. у нас от налогового кодекса всех в дрожь бросает, а что будет если все налоги платить прийдется? а тут платят. дело не этом. и даже не в не привычном вкусе продуктов, дело наживное.
дело в другом. я искренне скучаю по друзьям, у меня много друзей и я очень их люблю. и жить в часовом поясе, когда бОльшую часть времени спишь либо ты, либо твои друзья очень сложно. я скучаю по родным, пусть мы видимся не часто, но мы видимся. а здесь -- нет. и есть еще три вещи, по которым я невыносимо скучаю -- 1) возможности завалиться в гости с фразой "привет. ты дома? гостей принимаешь? мы тут случайно шли мимо...", 2) возможности пройти от одной кофейни до другой менее чем за 1,5 часа и 3) траве и древьям, которые растут так, как выросли; людям, которые улыбаются тебе, потому что тебе рады; рукопожатиям и объятьям просто от избытка чувств. а в остальном тут удобно, утилитарно, культурно и вежливо. тут все так боятся наступить друг другу на ауру, что расходятся минимум в метре друг от друга. если вы космополитичны, если вас не напрягают разорванные личные связи, если вы хотите жить в коконе, если вам подходит жизнь по Великому Американскому Стандарту -- США ждет вас, уехать сюда не так уж и сложно.
мне не нравиться здесь жить, я не привык и даже уже успел устать от ощущения статиста в большом кукольном театре, среди декораций, марионеток и нарисованных цветов. я домой хочу. и жить я хочу дома, в Харькове, в Украине. я неверное один такой сентиментальный дурак

пʼятниця, 18 червня 2010 р.

Liferay::Plugins

Plugins SDK

кроме Extension Environment Liferay предоставляет готовую для работы среду для разработки плаигнов - Liferay Plugins SDK. среда представляет собой ZIP архив, который содержит структуру каталогов и файлов сборки Ant. после распаковки архива можно сразу начинать работу. с другой стороны, в отличие от Extension Environment, ни один из плагинов не является плотно интегрированным с Liferay и может быть разработан как с помощью Liferay Plugins SDK, так и без нее.
итак, какие же бывают плагины, с точки зрения Liferay?