Разбор дат в Java

Рубрика: Java, Юмор | 23 August 2007, 10:32 | juriy

Как известно, самый простой способ проверить в Java возможность выполнения некоторой операции, это попробовать ее выполнить в блоке try-catch и посмотреть что будет. До недавнего времени я использовал эту нехитрую методику для проверки корректности даты, записанной в виде строки. Получался приблизительно такой код:

[java]

try {
	DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
	dateFormat.parse("01.08.2007");
} catch (ParseException e) {
	// Дата введена некорректно
}

[/java]
Каково же было мое удивление, когда абсолютно безобидная с виду дата: “40.40.2000″ отлично пропарсилась ;) Попробуйте, если интересно, исполнить у себя такой код:

[java]

try {
	DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
	System.out.println(dateFormat.format(dateFormat.parse("40.40.2000")));
} catch (ParseException e) {

}

[/java]
У меня в консоли: 10.05.2003. Интересно, это баг или фича?

Напоследок, улыбнуло: [Далее...]

Using Groovy instead of Ant…

Рубрика: Development, Groovy, Java | 17 August 2007, 09:26 | Vadim Voituk

… or flexible build process using Groovy

Consider you need to create 30-40 build artifacts (depending of some params) during build process.
Or maybe to embed some static data, gathered from remote servers using network protocols into your application.
Or fill-in your test database before starting unit/functional testing with data in a non-trivial way.

The classic way to solve this issue is to create a-thousands-line-long build script that is hardly readable and impossible to support.
[Далее...]

Не ant-ом единым…

Рубрика: Development, Groovy, Java | 10 August 2007, 08:52 | Vadim Voituk

… или гибкая сборка проекта с помощью Groovy

English version of this article

Предположим, что в пrроцессе сборки вам нужно собрать под 30-40 билдов с разными параметрами.
Или внедрить в приложение статистические данные удаленных серверов.
Или нетривиальным образом заполнить тестовую базу перед началом модульного/функционального тестирования
Ко всем прочему не хотелось в итоге вместо сценария сборки, получить кучу “хаков” больше похожих на лапшу из псевдо-кода и Ant-xml, не поддающихся модификации. [Далее...]

Groovy + JSON + Prototype in Action [English version]

Рубрика: Development, Groovy, Java, JavaScript/Ajax | 27 July 2007, 14:57 | Vadim Voituk

I’ve heard an opinion that Groovy is good only for simple utilities and prebuild scripts. In this note I’ll try to prove that this is not the way things done in a real world. I’ll try to use Groovy with a couple of popular Web 2.0 technologies.

[Далее...]

Tomcat DBCP leak

Рубрика: Development, Java | 26 June 2007, 08:12 | juriy

Хочу описать небольшие, но крайне неприятные грабли, по которым мне довелось потоптаться. Грабли заключаются в том, что Tomcat не закрывает открытые соединения DBCP пула после undeploy/stop/redeploy.
Эффект следующий: вы спокойно отлаживаете какой-нибудь проектик, который использует DBCP. Через часа полтора-два отладки, приходит злой DBA и сообщает, что вы “совсем охренели по 700 сессий держать”. Если для пользователя, под которым вы ходите в БД установлено ограничение по количеству сессий, то вы получаете ошибку вроде “Exceeded simultaneous session per user limit” ну или что-то вроде того.

[Далее...]

Tomcat clustering

Рубрика: Development, Java | 25 June 2007, 08:21 | juriy

Эта заметка посвящена тому, как развернуть кластер из Tomcat серверов и настроить простую балансировку нагрузки для кластера.

Начнем сначала. Зачем нужен кластер? Обычным приложениям, которые обслуживают относительно небольшой поток пользователей и к которым не предъявляются серьезные требования со стороны бизнеса, кластер, возможно и не пригодится.

Совсем по-другому обстоят дела с теми приложениями, которые являются ключевыми для функционирования бизнеса, к примеру, приложения которые обрабатывают биллинговые операции. Если “ляжет” сервис такого рода, то некоторый бизнес-процесс, тоже перестанет функционировать.

[Далее...]

Ещё одна Java-задачка

Рубрика: Java, Задачки | 24 June 2007, 19:24 | Vadim Voituk

Задали мне на днях задачку на знание Java:

Какой результат у выражения:
[java]((int) (char) (byte) -1)[/java]

Ответ написан ниже белым цветом на белом фоне :) [Далее...]

More GRails video

Рубрика: Development, Groovy, Java | 22 June 2007, 08:22 | Vadim Voituk

In addtitional to my previous “Groovy & GRails video” post.

Threre is some introductions to the main features of GRails web applications framework: [Далее...]

FJ-310 День четвертый.

Рубрика: Java | 7 June 2007, 21:51 | juriy

Сегодня прошел четвертый день курсов FJ-310. Мы разобрали тринадцать из четырнадцати модулей (осталось разобрать только вопросы безопасности в J2EE) – так что, я думаю, я не буду тянуть до завтрашнего дня для того, чтобы сделать выводы по всему курсу.
[Далее...]

FJ-310. День третий.

Рубрика: Java | 6 June 2007, 19:12 | juriy

Сегодня писать вступление к заметке я не буду. Просто замечу, что сегодняшний день вкорне отличался от двух предыдущих в лучшую сторону. Такое бывает редко, но про сегодняшний день могу сказать – эффективность – 100%.
[Далее...]

Страница 7 из 1012345678910