-
Календари и даты
Постоянно наталкиваюсь на людей, которые утверждают, что “Date – deprecated, нужно использовать Calendar”. Это не верно! Вариаций на тему “почему это не верно” где-только уже не написано, но все-равно появляются люди которые мне доказывают, что правильней использовать Calendar (аргументеруя именно “устареванием” Date). На самом деле в классе Date просто много deprecated методов. Но если почитать…
-
Apache HTTPD, mod_jk, Apache Tomcat, Linux
1. Начало. Если Вы ставите Tomcat как-то так: (от рута) aptitude install tomcat6 tomcat6-admin tomcat6-examples, то прежде чем двигаться дальше, вам возможно стоит обратить внимание на настройки URIEncoding в server.xml. Здесь и далее: Томкат => Apache Tomcat, Апач => Apache HTTPD. 2. Вяжем. Классическая схема работы Томката (Apache Tomcat) в продакшене, это связка его с…
-
Java one, Day #2
Java One, День Второй. Москва. По просьбе друзей выкладываю фотографии с конференции Java One. Фотки не мои, так что вопросы где взять исходные фотографии не ко мне. Как я туда попал. Вначале идти не очень хотелось – дел по работе выше крыши. Но поскольку Java One мероприятия последнее время проводились в Питере, то я их…
-
Уменьшение изображения на Java
Довольно рутинная операция. Есть несколько способов. Возьмём исходное изображение: 1. Самый простой. Первый на stackoverflow. Суть метода очень проста – создаем BufferedImage меньшего размера, затем прорисовываем в него исходное изображение. Далее сохраняем обычным ImageIO.write() BufferedImage scaled = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB); Graphics2D g = scaled.createGraphics(); g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); g.dispose(); ImageIO.write(scaled, “JPEG”, new…
-
Удобный небезопасный кастинг
Удобный автоматический кастинг Вещь не новая, но для тех, кто начинал программировать на Java в 90-ые и не очень привык к Generics-ам, это может быть интересно. Пример использования. Вам нужен метод, который возвращает объекты разных классов. Это могут быть обычные объекты – String, Integer, List, а могут быть и какие-то “свои” сложные бизнес-объекты вроде –…
-
Scala. Pattern Matching
Продолжил работу по созданию учебных материалов по Scala. Выкладываю черновую версию одной из глав. Сопоставление по образцу (pattern matching). Начало.
-
XMPP (Jabber) + Smack
Недавно с товарищем начал работу над одним проектом, в котором нужно было написать программу для отправки сообщений пользователям по протоколу XMPP (т.е. через jabber). Список библиотек для работы нашли на официальном сайте xmpp.org. После серии небольших испытаний решили для интеграции с серверной частью написанной на Java использовать библиотеку Smack. Не факт, что будем использовать ее…
-
Netbeans Scala Maven
Если вам приходилось работать в связке Netbeans 6.9.1 + Scala + Maven, то вы могли заметить, что компиляция происходит сильно медленнее, чем если бы вы НЕ использовали maven-scala-plugin. Дело в том, что по умолчанию компиляция запускается в режиме “компилировать все классы”. Это не очень приятно, учитывая то, что Scala компилятор не очень-то быстрый. К счастью,…
-
Работа с видео и аудио в Java. Xuggle
Первый раз мне пришлось столкнуться с обработкой видео на Java лет 10-12 назад. Я еще был студентом и работал над проектом, в котором мы пытались сделать видео проигрыватель в виде апплета. В те времена, для перекодирования видео мы пробовали использовать JMF (Java Media Framework). Нам нужно было сделать хитрую предварительную обработку видео, т.к. показ видео…
-
Быстрый обратный корень на Java
Fast Inverse Square Root, он же Fast InvSqrt() или 0x5f3759d5 – способ вычисления обратного квадратного корня из числа = 1/sqrt(x). Изобретен еще в 90-х годах. Если верить википедии, то этот алгоритм использовался в Quake III. Главная фишка метода в использовании “магической” константы – 0x5f3759d5, с помощью которой можно получить первое приближенное значение. Затем обычным методом…