Автор: vit

  • Main args, netbeans

    Пара простых вещей (про аргументы командной строки + Java/Scala и чуть-чуть про NetBeans) Самый популярный и набивший оскомину пример HelloWorld встречается, наверное, уже во всех учебниках по программированию: // Пример из туториала: http://download.oracle.com/javase/tutorial/getStarted/application/index.html class HelloWorldApp { public static void main(String[] args) { System.out.println(«Hello World!»); // Display the string. } } Здесь String[] args — аргументы

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

  • Немного карри

    Использовать карринг в Scala одно удовольствие. Само определение каррирования(или карринга, названо в честь Хаскелла Карри): Для функции h типа h : (A × B) → C оператор каррирования Λ выполняет преобразование Λ(h) : A → (B → C) Отметим, что Λ — это оператор, то есть «функция над функциями». Например берем функцию foo(x,y), каррируем и

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

  • Java + Excel файлы (Apache POI)

    С периодичностью раз в два-три года сталкиваюсь с проектами, в которых опять нужно работать с Excel файлами. Наверно это у меня что-то кармическое… Сейчас, в очередной раз приходиться реализовать полуавтоматический разбор сотен excel-файлов с прайсами. В прошлых своих проектах использовал JExcelApi. Ничего плохого про эту библиотеку сказать не могу, но хочется какого-то разнообразия в жизни

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

  • Календари и даты

    Постоянно наталкиваюсь на людей, которые утверждают, что «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

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

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

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

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

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

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

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

  • Scala. Pattern Matching

    Продолжил работу по созданию учебных материалов по Scala. Выкладываю черновую версию одной из глав. Сопоставление по образцу (pattern matching). Начало.

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