Метка: Java

  • 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 […]

  • Простые хаки и Greasemonkey

    Недавно обратил внимание на то, что шрифты на сайте java.net какие-то неприятные – мутные и плохо читаются. Может они всегда были такими, а я стал чуть-более придирчивым, а может быть стали такими после мега_перезагрузки_сайта. На самом деле не столь важно почему, важно понять как подправить… Могу предложить два способа из разряда “быстрых хаков”. Способ 1. […]

  • Удобный небезопасный кастинг

    Удобный автоматический кастинг Вещь не новая, но для тех, кто начинал программировать на Java в 90-ые и не очень привык к Generics-ам, это может быть интересно. Пример использования. Вам нужен метод, который возвращает объекты разных классов. Это могут быть обычные объекты – String, Integer, List, а могут быть и какие-то “свои” сложные бизнес-объекты вроде – […]

  • XMPP (Jabber) + Smack

    Недавно с товарищем начал работу над одним проектом, в котором нужно было написать программу для отправки сообщений пользователям по протоколу XMPP (т.е. через jabber). Список библиотек для работы нашли на официальном сайте xmpp.org. После серии небольших испытаний решили для интеграции с серверной частью написанной на Java использовать библиотеку Smack. Не факт, что будем использовать ее […]

  • Работа с видео и аудио в Java. Xuggle

    Первый раз мне пришлось столкнуться с обработкой видео на Java лет 10-12 назад. Я еще был студентом и работал над проектом, в котором мы пытались сделать видео проигрыватель в виде апплета. В те времена, для перекодирования видео мы пробовали использовать JMF (Java Media Framework). Нам нужно было сделать хитрую предварительную обработку видео, т.к. показ видео […]

  • Быстрый обратный корень на Java

    Fast Inverse Square Root, он же Fast InvSqrt() или 0x5f3759d5 – способ вычисления обратного квадратного корня из числа = 1/sqrt(x). Изобретен еще в 90-х годах. Если верить википедии, то этот алгоритм использовался в Quake III. Главная фишка метода в использовании “магической” константы – 0x5f3759d5, с помощью которой можно получить первое приближенное значение. Затем обычным методом […]

  • printf

    Небольшой справочник “для себя” по работе с джавным printf(). Для простоты текста заменил System.out.printf() на printf(). Базовые конструкции. %s → String или toString(). printf(“Hello %s!”, “World”); // “Hello World!” %n → Перенос строки. Byte, Short, Int, Long. %d → В десятеричном. %x → В шестнадцатеричном. %7d → В десятеричном. Минимальная ширина строки 7 знаков. printf(“%7d”, […]

  • GWT. Обработка серверных исключений на клиенте.

    В целом обработка исключений при работе в GWT через RPC довольно детально описана в разделе документации DevGuideHandlingExceptions Важный момент на который следуют обратить внимание – throws для метода. Например, вот Ваш интерфейс: public interface MyService extends RemoteService {   public String myMethod(String s); } Допустим Вы сделали класс MyException который наследуется от RuntimeException. Например, это […]