Обновить
207.95

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

TeamCity 4.0 released

Время на прочтение2 мин
Охват и читатели11K
Что такое TeamCity? TeamCity — это, говоря научно-занудным языком, интегрированная среда, которая повышает эффективность групповой разработки, беря на себя такие рутинные действия как сборка билдов, запуск и анализ тестов, а так же анализ исходного кода (инспекции, поиск дубликатов и т.д.) Посмотрев на картинку многое станет понятным:
image
Читать дальше →

Работа с get-запросами в JSF

Время на прочтение4 мин
Охват и читатели3.8K
Как известно JSF умеет работать только с post-запросами, однако существет метод, который позволяет разбирать и get.

Делается это примерно так:

В обход J2EE или обзор Tapestry 5 фреймворка на примере блога

Время на прочтение2 мин
Охват и читатели5.6K
Здесь публикую только вступление к статье (скорее мини-книги). Остальная часть доступна здесь.

Два года назад (2006 год) искал альтернативу PHP и своим MVC велосипедам. В то время на PHP только-только начинали появляться профессиональные фреймворки (например, релиза Zend Framework так и не дождался), пришла мода на RubyOnRails, что-то слышал о Django. Подавшись моде изучил пару книжек по RoR, но в итоге не стал связываться с Ruby, видимо остановило отличие синтаксиса от С подобных языков. Как вариант, рассматривал создание веба на С++, но посмотрев имеющиеся фреймворки — передумал. Выбирать было нечего, поэтому выбор пал на Java — технологией где-то между PHP и С++.

J2EE оказалась слишком запутанной для новичка. PHP программисту в новинку было столкнуться с десятком фреймворков, которые навязывают для создания веба на J2EE. Сервлеты, портлеты, JMS, RMI, EJB, JSP, JSF — чего там только не было! Но затем узнал об альтернативах J2EE типа Spring.

До Spring так и не дошел, почему-то показалось, что по сложности он был на уровне J2EE. Остановился на Tapestry4. Этот фреймворк сравнивали с JSF — одной из технологий J2EE для представления веба. Через Tapestry4 впервые узнал об IoC движках (в моём случае был HiveMind). Попозже узнал о Wicket позволяющий делать представление веба не хуже, чем в Tapestry4. Но затем вышла альфа версия Tapestry5, на которой окончательно остановился.

В Tapestry5 понравилось множество вещей. Во-первых, конфигурация фреймворка выполняется через аннотации — XML конфигурация сведена к минимуму. Во-вторых, динамически подхватываются изменения в шаблонах и коде, без перезагрузки контейнера сервлетов — основная проблема J2EE и других Java фреймворков. Правда работает это только для кода, про который знает Tapestry5 (компонеты, страницы и еще кое-что), но и это не плохо. И в-третьих, грамотный ООП подход, простота и наличие собственного IoC движка.

Для работы с базой данных решил использовать ORM Hibernate. Думаю это самая мощная opensource ORM из существующих в настоящее время, поэтому выбор был очевиден. А появление HibernateSearch, HibernateValidator, HibernateAnnotations — окончательно укрепили решение продолжать работать с Java без оглядки в сторону Python с Django.

За 2007-2008 года Tapestry5 была в альфе и API разработчика постоянно менялось, поэтому приходилось изучать код. С одной стороны потерял время, но с другой изучил лучше фреймворк. Накопился опыт, которым есть желание поделиться на примере разработки небольшого блога.

Исходники проекта доступны здесь. В работе можно посмотреть здесь. Для входа в панель управления логин admin и пароль admin.

Технология JavaFX RIA почти готова к выпуску

Время на прочтение2 мин
Охват и читатели1.6K
Технология компании Sun Microsystems JavaFX RIA (rich Internet application) почти готова к выходу.
Демонстрируя платформу для приложений, основанной на Java (компоненты на основе скриптов и runtime-система для десктопов и мобильных устройств) – JavaFX, Sun официально заявила что это дает компании возможность входа на рынок, представленный Adobe Systems с Flash и Microsoft с Silverlight. Поставки базовой JavaFX-платформы для десктопов запланированы на конец этого года.

«Мы можем показать JavaFX в действии уже сегодня и мы весьма близки к поставкам конечного продукта», сказал Eric Klein, Sun vice president for Java marketing.

Sun официально продемонстрировала запуск JavaFX на примере работы с видео, где была показана возможность осуществления drag'n'drop видео за пределы браузера, на десктоп. С JavaFX пользовали получат единую платформу, связывая возможности браузеров и десктопов воедино, в отличие от Adobe, которая предоставляет Flash для браузеров и AIR (Adobe Integrated Runtime) для десктопов.

«Здесь, в одном environment мы сохраним время, усилия и деньги разработчиков, потому что им не нужно будет учить допольнительный environment в процессе девелопмента», отметил Param Singh, Sun director of Java marketing.

К концу года будет представлены первые версии JavaFX Desktop и JavaFX Script. Также должны быть выпущены SDK и JavaFX Production Suite, которые позволят разработчикам и дизайнерам работать вместе. Планируется выпуск и эмулятора для мобильных устройств. Официальный релиз JavaFX Mobile последует немного позже. В планах и JavaFX runtime для телевидения.

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

SpringSource покупает G2One (the Groovy/Grails company)

Время на прочтение1 мин
Охват и читатели1.2K
GL пишет, что
1) улучшат плагин для эклипса
2) у SS большой опыт в развитии community-led проектов
3) лицензию никто менять не будет (ASL2)
4) «энтерпрайзность» повысится

Подробности на сайте SpringSource: www.springsource.com/g2one
Официальный пресс-релиз: www.springsource.com/node/836
Вот что пишет Грем Роше (Graeme Rocher, главный по grails): graemerocher.blogspot.com/2008/11/groovy-and-grails-join-spring-family.html
И Гийом Лафорж (Guillaume Laforge, главный по groovy): glaforge.free.fr/weblog/index.php?itemid=259

IntelliJ IDEA 8 — Pocket the Eight!

Время на прочтение1 мин
Охват и читатели2.7K
Сегодня состоялся релиз IDE, очень знакомой многим Java разработчикам. Хотел бы рассказать о новшевствах и фичах восьмерки.
image
Читать дальше →

Задачи для начинающих Java программистов

Время на прочтение4 мин
Охват и читатели394K
В продолжение моего поста "Начинающим Java программистам" публикую очередную свою шпаргалку, а именно список задач, которые я обычно даю новичкам. Опытным разработчикам они покажутся тривиальными, а только начинающим изучать Java, причём самостоятельно, надеюсь будут в самый раз. Так же если Вы используете какие-то ещё задачи для обучения, то поделитесь ими, пожалуйста.:) Так как мне, иногда, как-то не по себе в ...-цатый раз рассказывать стажёрам одну и ту же задачу — пусть даже они её слышат впервые:)
Читать дальше →

Как я заново открыл для себя инкапсуляцию в java.

Время на прочтение2 мин
Охват и читатели20K
Я всегда считал, что Java — лаконичный и красивый (в плане концепции) язык с четкой структурой, позволяющей расширять эту структуру и на всевозможные фреймворки, там самым помогающая привнести порядок и в код конечного программиста. И, прежде всего, я считал, что java — это 100% ОО язык! Но недавно мне попался код, после которого я вечер ходил возмущался. Код совершенно несложный для понимания даже людей несведующий в java.
Читать дальше →

Java @ CERN

Время на прочтение1 мин
Охват и читатели1.1K
image

На фото Дерек Матейсон из ЦЕРН получает премию от Джеймса Гослинга. Java активно используется учёными в качестве основного инструмента для работы с Большим Адронным Колайдером: их система ATLAS в которой количество столкновений протонов достигает 600 в секунду, генерируя 15 петабайт информации управляется с помощью Java. Java так же используется как основное средство для мониторинга всех систем и 3D-визуализаций.

Подробнее на сайтах SUN & CERN.

Начинающим Java программистам

Время на прочтение2 мин
Охват и читатели1.2M
Программирую на Java вот уже 7 лет. Но на работе часто приходится обучать новое поколение. В связи с этим и решил сделать некоторую шпаргалку, которая, надеюсь, пригодится и для хабрчан. Если кто-то может помочь дополнить чем-то информацию из этой статьи, то пишите! Итак:

Основные ресурсы для начального обучения


  • www.javable.com — сайт со статьями и tutorial'ом по Java. Все в основном на русском.
  • www.exampledepot.com — очень полезный ресурс, где собраны краткие примеры использования классов для тех или иных пакетов
  • java.sun.com — без первоисточника не обойтись. Для любого Java программиста JavaDoc должен быть истиной в последней инстанции. Так же здесь можно найти серию tutorial'ов на все возможные темы.

Читать дальше →

Как Sun спонсирует open source, часть вторая. NetBeans Innovators grant

Время на прочтение3 мин
Охват и читатели834
Этой весной Sun вложил 1.000.000$ в развитие open-sourсe. Наша команда так же выставила на суд жюри свой проект.
image image
Читать дальше →

Как Sun спонсирует open source, часть первая

Время на прочтение3 мин
Охват и читатели1K
Этой весной Sun вложилась в open source. Было выделено 1.000.000 долларов США на стимуляцию оупенсорсной активности. Несмотря на относительную (легкая ирония) свежесть новости, я, как непосредственный участник событий, освещу несправедливо обделенную вниманием тему.




Читать дальше →

Ближайшие события

тиражируемые решения

Время на прочтение3 мин
Охват и читатели2.2K
Т.З. примерно следующее — необходимо иметь некоторый «быстрый старт» для приложений с стандартным функционалом. Дополнительным (и самым «заковыристым») условием является то, что этот стандартный функционал необходимо иметь возможность изменять самым невероятным образом, вплоть до полного отключения и замены своим (специфичным для данного приложения) кодом.

Приведу жизненный пример: есть необходимость делать ОЧЕНЬ похожие приложения. Например интернет-магазины, которые построены на примерно одинаковых схемах данных, бизнес-процессах и тп. Т.е. функционал любого из магазинов примерно идентичен, различается только view слой.

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

Собственно задача такая — как уменьшить «повторяемость кода» (т.е. отойти от monkey-patching-а) и при этом не потерять полный контроль над кодом.
Читать дальше →

Класс Money

Время на прочтение7 мин
Охват и читатели21K
Множество приложений оперирует деньгами, но в большинстве языков программирования, в том числе и в Java, нет стандартного класса Money. Многие просто хранят денежные величины в переменный с плавающей точкой, но это плохое решение, так как всегда возникают проблемы с округлением, которые приходится каждый раз решать по-разному. Кроме того, деньги могут измеряться в разных величинах (рублях, долларах, евро и других). Нельзя складывать или сравнивать евро с рублями — это неминуемо вызовет ошибку в результате.
Читать дальше →

Java — это просто! Java и SNMP

Время на прочтение3 мин
Охват и читатели22K
Посмотрел я на не слишком объемный блог JAVA и решил, что нужно поднимать его рейтинг. К тому же многие хабрики жалуются, что «хабр уже не тот». Возникла идея написать серию статей, продвигающих идею, что JAVA — это легко! Работаю я в среде интеграторов (берем готовые «жирные» системы, связываем в единый комплекс и продаем), и частенько возникает ситуация, когда что-то невозможно решить средствами интегрируемых систем. Тогда коллеги напрявляют прожектор в ночное небо и я иду им на помощь :). Поэтому частенько приходится использовать java в разных аспектах. Начнем с работы с SNMP. Протокол SNMP используется для управления сетью.
подробности

Caucho Resin — сервер приложений Java/PHP

Время на прочтение6 мин
Охват и читатели6.7K
Для приложений Java, я имею ввиду, веб-приложений, существует уже достаточное количество серверов, которые уже давно разрабатываются и давно вышли на уровень, достаточный для того, чтобы применять их в самых сложных и ответственных случаях. Думаю, всем знают Apache Tomcat и Jetty — самые известные сервера из списка открытых разработок. Но к этому списку нужно добавить теперь еще и Caucho Resin. В ряде тестов его Pro версия превосходит в производительности Tomcat 6, обладая при этом рядом возможностей «из коробки», которых нет в других серверах или они реализуются при помощи сторонних средств.

И так, Resin — высокопроизводительный HTTP и сервер приложений для Java/PHP приложений, с возможностью масштабироваться и кластеризироваться в начальной конфигурации. Кстати, именно в этом состоит различие между обычной, open-source версией и Pro. В этой версии есть функции автоматического детектирования остановившихся или зависших сессий и рестарта сервера, а также средства мониторинга состояния JVM и потребления памяти. Кластеризация позволяет распределить нагрузку на несколько серверов, при этом сессии будут привязаны к конкретному серверу и мигрируют в фоновом режиме при крахе обслуживающей его ноды. Об этом стоит как то поговорить отдельно, возможно, в отдельной статье — я собираюсь плотно занятся изучением этого сервера и его возможностей, а результат буду публиковать в виде статей.
Читать дальше →

JavaFX -> дипломная работа забугорного студента. Сравнение JavaFX и конкурентов

Время на прочтение1 мин
Охват и читатели5.1K
Rich Internet Applications (RIA): A Convergence of User Interface Paradigms of Web and Desktop — Exemplified by JavaFX

Занятная работа, автор сравнивает AJAX, SilverLight, JavaFX, Flash, вполне адекватно оценивая минусы и плюсы технологий. Основной упор работы делается на JavaFX. Я буду писать диссер, моим основным инструментом как раз будет новая плюшка Сана.

Если вы не знакомы с JavaFX, эта работа введет вас в курс дела (4ая и 5ая главы), если вы уже познакомились — неплохая пища для ума. С весны, когда был первый анонс JavaFX, я слежу за развитием проекта, с первого превью релиза для разработчиков, я стал плотно изучать JavaFX.
Вещь, конечно, толковая. Кодить анимацию (моя первостепенная задача) — сплошное удовольствие. Триггеры и бинды в сто раз удобнее, чем листенеры и евенты, живущие в конексте Джавы. Кода в разы меньше, хотя он не такой читаемый (мое мнение), как Джава-код. Отсутствие Джавадока расстраивает. Бесспорно, JavaFX, основанный на Java2D и Swing'e, ничего нового не несет, т.к. триггеры и бинды — это интерпретация евентов и листенеров. основная задача — выделить в отдельный поток работу с гуями и графикой. По правде говоря, у Джавы богатые возможности в этих областях, но кода приходится писать столько, что пальцы начинают ныть еще до создания проекта.
Больше всего меня смущает очередная попытка Сана пропихнуть свои апплеты. Если деcктопные приложения на Джаве работают очень-очень неплохо, я бы не сказал, что они в чем-то уступают .NET'овским приложениям в скорости работы, то апплеты это тихий ужас. Видел я как-то мега-гига апплет к IBM WCM, у меня на глаза навернулись слезы.
Если есть какие-то комменты-вопросы, давайте их обсудим.
Рекомендую не оставить без внимания работу Флориана (см ссылку выше) и ознакомиться с ней.

Склонение существительных с числительными

Время на прочтение3 мин
Охват и читатели36K
В английском языке все просто: 1 year, 2 years ,… N years
«Русская языка» такая сложная, что в ней существительные после числительных иногда бывают в причудливых формах. Например, 0 лет, 1 год, 2 года, 3 года, 4 года, 5 лет, ..., 11 лет, 12 лет, .., 21 год.

Читать дальше →

JSF + DynamicFaces = AJAX

Время на прочтение3 мин
Охват и читатели5.8K
Кратко о JSF

JSF — компонентный MVC фреймворк для веб-приложений на java. Основная его задача — упростить разработку интерфейса и связывание его с серверной частью. JSF содержит валидаторы и конвертеры, также вы можете добавить свои компоненты и изменять существующие.
О JSF подробнее здесь (на русском) и здесь (на английском).

Так что же такое Dynamic Faces? Это библиотека для добавления динамики в jsf-приложения. Самое большое преимущество этой библиотеки в том, что DF не требует модифицировать компоненты или переписывать что-то в приложении, чтобы добавить Ajax.

Читать дальше →