Обновить
156.21

Java *

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

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

Oracle обещает много инвестировать в Java

Время на прочтение1 мин
Охват и читатели712
Директоры компаний Oracle и Sun — Ларри Эллисон и Скотт Макнили — совместно выступили на конференции JavaOne, где рассказали о будущем активов Sun, которые перешли к новому владельцу. Нужно заметить, что это первое публичное выступление Эллисона с момента покупки Sun, которое произошло 20 апреля.

Эллисон предпочёл умолчать об аппаратной части, ничего не сказали о серверах, процессорах, системах хранения данных, сетевом оборудовании и тонких клиентах. Зато подробно рассказал о будущем технологии Java. Оно обещает быть светлым.

Эллисон напомнил, что именно его компания и раньше была главным инвестором в Java-технологии, у них всё middleware на 100% работает на Java. В будущем Oracle обещает продолжить эти инвестиции в полном объёме. Следующее поколение бизнес-приложений Oracle (Fusion Suite) полностью будет построено на Java. И это будет первый в мире пакет ERP и CRM, построенный на стандартной платформе.

Более того, Эллисон сообщил, что Oracle займётся даже разработкой нетбуков и мобильных телефонов под Java! Хотя это звучит просто невероятно, но таким образом Oracle собирается вступить в конкуренцию с Hewlett-Packard, Acer, Lenovo, Dell и другими компаниями на рынке нетбуков.

via eWeek

Face Detection на джаве — это просто!

Время на прочтение1 мин
Охват и читатели29K
Спешу поделиться с вами своею радостью :) Столкнулся я тут недавно с задачкой — нужно было определить местонахождения лиц на картинке.

Зачем это нужно — другой вопрос: мне, лично, понадобилось для создания модели распределения внимания по картинке, а кому-то, может быть, нужно для того, чтобы людей как в фейсбуке автоматически на групповой фотографии выделять.

Алгоритмы, в принципе, неплохо известны. Одним из лучших является алгоритм Viola & Jones, но поиск готовых имплементаций результатов не принёс. Было расстроился, но обратил внимание на замечательную нативную библиотеку — OpenCV. Библиотека ценна не только реализацией основных алгоритмов компьютерного зрения, но тем, что встречается решительно на всех платформах.

И что же вы думаете? Одним из первых в гугле выпадает вот такой замечательный проект JNI интерфейса к OpenCV!

Несколько минут закачки, десяток минут чтения документации с установкою программы, и ещё десяток — написание теста. А потом, и вот этими четырьмя строчками, просто берём и распознаём на картинке лица!

OpenCV cv = new OpenCV();
cv.loadImage("test.jpg", 300, 400);
cv.cascade("haarcascade_frontalface_default.xml");
Rectangle bounds[] = cv.detect();

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

Сериализация в Java

Время на прочтение7 мин
Охват и читатели379K
Сериализация это процесс сохранения состояния объекта в последовательность байт; десериализация это процесс восстановления объекта, из этих байт. Java Serialization API предоставляет стандартный механизм для создания сериализуемых объектов. В этой статье вы увидите как сериализовать объект, и почему сериализация иногда необходима. Вы узнаете об алгоритме сериализации используемом в Java и увидите пример, который иллюстрирует сериализованый формат объекта. В конце у вас должно сложиться чёткое представление о том, как работает алгоритм сериализации, а так же каким образом представлены части объекта в сериализованном виде.
Читать дальше →

SpringSource Tool Suite бесплатно, ROO и спецификация DI совместно с Google

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

На прошедшей конференции SpringOne Europe компания SpringSource сделала несколько объявлений:
  • SpringSource Tool Suite, плагин для Eclipse, упрощающий разработку Spring-приложений становится бесплатным. В ближайшее время ожидается прогресс в поддержке других продуктов SpringSource: Groovy & Grails.
  • Spring ROO — фреймворк для увеличения производительности Java-разработчиков при написании Spring-приложений путём использования Code Generation и Aspect Oriented Programming.
  • Партнёрство с Google для создания единой спецификации по Dependency Injection.

Необычное поведение generics

Время на прочтение1 мин
Охват и читатели6.2K
Случайно обнаружил нетипичную проблему с параметризацией и наследованием в Java.
Сразу оговорюсь, что все это представляет только академический интерес. В реальной жизни так криво писать никто не будет. Но формально такого быть не должно:
Interface.java
public interface Interface {
    void test(Class<Object> clazz);
}

BaseClass.java
public abstract class BaseClass<T> implements Interface {
    abstract public void test(Class<Object> clazz);
}

MyClass.java
public class MyClass extends BaseClass {
    public void test(Class<Object> clazz) {
    }
}
Компилятор выдает ошибку:
MyClass is not abstract and does not override abstract method test(java.lang.Class)

Перевод манов с оффсайта Sun. Часть 1

Время на прочтение3 мин
Охват и читатели2.2K
Еще в сентябре прошлого года, начиная изучение Java я наткнулся на подкаст Голодного «The Art Of Programming». В одном из них он прославлял мануалы? расположенные на оффсайте Sun. Достаточно долгое время проведя со словарем и IDE, я добился некоторого результата.
Недавно пришла мысль, что люди, не сильно владеющие английским языком не могут использовать этот ресурс, каким бы хорошим он ни был.
Ниже последует перевод первой статьи (она небольшая), а к хабралюдям есть вопрос: как вы оцениваете качество/целесообразность подобного перевода?

P.S. Публикую в блоге JAVA, потому что никак не получается опубликовать в «Стартап Программист»
P.P.S. За дельный совет в переводе спасибо miravingin


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

Parse it!

Время на прочтение4 мин
Охват и читатели8.1K
Какое-то время назад мне по работе пришлось провести небольшое исследование. Суть его состояла в поиске наилучшего pdf-парсера реализованного на java.

Немного о проекте. В нем реализована система пересылки внутренних сообщений, к которым могут быть прикреплены файлы. Также есть поиск, который должен осуществляться по содержимому аттачментов. Большую часть подобных аттачментов составляют pdf-ки.
Собственно работа механизма довольно проста: при отсылке сообщения данные аттачмента парсятся и по ним стороится индекс.

Долгое время документы парсились при помощи библиотеки PDFBOX, работа которой не вызвала ни у кого радости: долго и со сбоями.
В итоге были выбраны 4 библиотеки, сравнением которых я занялся: PDFBOX, JPod, iText и Acrobat.
Читать дальше →

Анонсирован план развития Grails

Время на прочтение1 мин
Охват и читатели945
Пока что разработчики сообщили о двух версиях:

Grails 1.2 «Bedivere» обещает быть релизом направленным на стабильность: обновление основных компонент(в том числе Spring до версии 3.0), переход с Jetty на Tomcat, выделение WebFlow в отдельный плагин, а так же GSP в самостоятельное решение. Релиз ожидается в июне 2009 года.

Grails 2.0 «Galahad» ставит свой целью упор на модульность плагинов с помощью технологии OSGi.

Параллельно с этими релизами будет вестись активная работа над плагинами для работы с JPA, JCR, Portlet & Flex.

P.S. Будущие релизы получили свои имена в честь рыцарей круглого стола короля Артура, в частности именно Галахад по легенде нашёл священный Грааль.

Прорыв в программировании

Время на прочтение1 мин
Охват и читатели2.9K
image
Сегодня компания JetBrains выпустила революционный плагин для своей Java IDE IntelliJ IDEA — это Voice Control plugin Теперь кодирование станет еще быстрее и, главное, больше никаких клавиатур и мышек!!! Что умеет плагин:
— Создание класса, конструктора, полей, переменных, параметров
— Навигация по коду
— Рефакторинги
— Вызов компиляции и деплоймент
— Дебаггинг (и всё это с помощью голоса!!!)
— Возможность парного программирования
— Поддерживаются любые языки (вы обучаете плагин)

Подробнее можно узнать по ссылке выше и там же можно посмотреть демку плагина.
P.S. так же обновлены продукты TeamCity, ReSharper и т.д. можно посмотреть на сайте ;)

Отладка Java-сервлетов

Время на прочтение2 мин
Охват и читатели8.1K
Несмотря на то, что я пишу на Java уже 2 месяца (о да, это срок :) ), я ни разу не запускал remote debugger. При разработке на GWT этого делать и не нужно — оно как-то само всё это делает. :) Но вот настала весна, моё GWT приложения распустилось, и хочет, чтобы я его выложил на сервер. Но вдруг выяснилось, что просто так оно работать не захотело. А почему, я понять не могу. И значит мне нужен дебагер.

Принцип работы наверное любого удалённого отладчика (remote debugger) прост — контейнер (это может быть и какой-либо сервлет-контейнер, и php-интерпритатор. Полагаю, что интерпритаторы Ruby, Perl, Python работают аналогичным образом), который выполняет приложение настраивается таким образом, что при запуске приложения он либо начинал слушать определенный порт, либо сам пытался коннектиться куда-либо.
Читать дальше →

Создание демон-процесса на Java

Время на прочтение6 мин
Охват и читатели36K
Доброго всем времени суток.

Недавно, по долгу службы, появилась необходимость написать background process для IBM AIX 5.2 на Java с контролирующим shell скриптом.

Раз работа проделана, документация поднята, код написан, почему бы не поделиться с общественностью? По сему, переходим к делу.

читать дальше ...

IntelliJ IDEA 8.1 released

Время на прочтение2 мин
Охват и читатели2.8K
imageСегодня вышла обновленная версия идеевской «восьмерки». Помимо баго-фиксов в 8.1 есть новые вещи, которые считаю уместным упомянуть в двух словах.

1. Idea Server. У каждой более менее-сложной программы, а идею безусловно можно причислить к сложной программе, существует такая вещь как настройки. Каждый раз, когда мы запускаем программу «не_со_своего_компьютера», а другими словами просто в другой конфигурации (или программа только что установлена) мы первым делом лезем в настройки и меняем их на свой лад. Например, я это делаю постоянно с Total Commander'ом, выставляя свои любимые настройки: как быстро искать, как сжимать, что показывать и т.д. IntelliJ IDEA, как и любая другая IDE, программа примерно эдак в 1000 раз сложнее чем вышеописанный пример. И настроек там так много, что всех их не упомнишь. Это и шрифты, и цвета, настройки инспекций (некоторые можно отключать), и, самое главное, это кастомные шорткаты. Согласитесь, каждый раз выставлять эти настройки заново не очень то удобно. Чтобы решить эту проблему, в IDEA появилась новая фича — Idea Server. Все очень просто. Вы регистрируетесь один раз на сервере идее и настройки вашей IDE хранятся удаленно. Когда Вы запускаете IDE, то можете залогиниться под вашим аккаунтом и настройки загрузятся сами с сервера. На мой взгляд, любители кастомных настроек оценят эту вещь по достоинству. Я, если честно, использую настройки по умолчанию.

2. Мощный апдейт VCS функциональности. Во-первых, появилась интеграция с Git, который становится все более популярным. Во-вторых, появилась интеграция с TFS (Team Foundation Server).

3. Для любителей SQL поддержан Оракловый диалект.

4. Интеграция с Resin AppServer

5. Появилась поддержка копирайтов. Для меня это существенный плюс. Т.к. я часто коммичу в open-source communities, то проверка копирайта занимает какое-то время. Если Вы правите чужой код с копирайтом, то нужно не забыть изменить год на новый и т.д. Сейчас все это (вставка или правка копирайта) можно делать прямо из диалога коммита. Удобно.

Так же произведена работа над улучшением перфоманса. В частности, убыстрен стартап, убыстрена работа с кэшом компилятора, что значительно уменьшает время компиляции. Подробнее тут http://www.jetbrains.com/idea/features/newfeatures.html

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

Интервью с Ken Russel по поводу нового Java плагина

Время на прочтение5 мин
Охват и читатели1.1K
Ну что же, как я и обещал, в дополнение в моему посту habrahabr.ru/blogs/java/49989
Небольшое интервью с человеком который внес большой вклад в разработку нового плагина от Sun
Плоды труда этого человека использует каждый разработчик который пишет на платформе Java, и зовут его Ken Russell (http://research.sun.com/minds/2008-0811/)

Прошу учесть что интервью проведено в первых числах декабря, поэтому некоторые события могут говорится в будущем времени хотя они уже наступили.
Читать дальше →

java.io.Serializable и наследование

Время на прочтение2 мин
Охват и читатели26K
Что такое сериализация можно почитать в отличной статье Евгения Матюшкина.

Я же отмечу случай с этим чудом техники в аспекте наследования классов. Интерфейс Serializable не требует от разработчика никаких действий, однако важно помнить, что внутренний механизм сериализует лишь поля этого класса и поля наследников, а поля родителя будут инициализированы с помощью конструктора без параметров.

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

Родилась задачка

Время на прочтение1 мин
Охват и читатели1.1K
Возникла у меня одна задумка, которая может мне приятно облегчить программирование некоторых штук (в реальном проекте).
Но будет ли это работать, я не знал. В результате чего я накидал маленький тест чтобы проверить свои догадки.
После написания этого теста, обнаружил, что этот примерчик может быть вполне интересной и познавательной java-задачкой.
Вот такая задачка получилась

Applets reloaded

Время на прочтение6 мин
Охват и читатели2.3K

Applets reloaded



предисловие


Ни для кого не секрет что Adobe Flash полноценно занял свою позицию в интернете. По общей статистики почти у 98% пользователей интернета установлен Flash плагин. Главное назначение которого — реализация «rich UI»(англ: богатый пользовательский интерфейс), проще говоря — красивый, динамический интерфейс. Однако в последнее время два гиганта решили пошатнуть его позицию — Microsoft и Sun. Microsoft выпустила технологию Silverligth, а Sun — решила нанести более серьезный удар. Выпустив сразу несколько продуктов с общей и довольно явной целью — пошатнуть Flash/Flex.

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

Конференция devnexus 2009

Время на прочтение1 мин
Охват и читатели732
Читая утреннюю прессу, наткнулся на новость о том, что открыта регистрация на конференцию devnexus 2009, которая пройдет 10-11 марта 2009 г. в Атланте.

Билет стоит $185 ($150 если регистрироваться до 1 февраля или группой от пяти человек). Он включает в себя пропуск на оба дня и питание.

Список тем (под хабракатом) выглядит интересным, в связи с чем у меня несколько вопросов.
  1. У кого есть опыт подобных конференций? Стоит ли туда ехать?
  2. Может, кто-то уже туда собрался?

Список тем

Как подружить Java и C++. Часть первая

Время на прочтение5 мин
Охват и читатели103K
Здравствуйте.

Как вы, наверное, уже догадались, речь пойдет о JNI. Для тех, кто не знает что это, объясняю: JNI (или java native interface) — это такая штука, которая позволяет делать вызовы нативного кода из java машины и наоборот.

Зачем это может потребоваться? Есть несколько причин: необходимость использовать код, который уже написан для нативной платформы, необходимость реализовать что-то такое, что невозможно сделать с помощью одной JVM (например, работа с какими-нибудь специфическими железками), ну и ускорение выполнения критических кусков кода (правда, это весьма спорный момент).

Так как же им пользоваться?

Spring IoC Annotation-based configuration, часть 2

Время на прочтение4 мин
Охват и читатели45K
В предыдущей статье я рассказал об основных аннотациях Spring IoC, однако есть еще несколько интересных вещей, о которых хотелось бы поведать.
Для, тех, кто не в курсе, что такое Spring Framework предлагаю почитать вот эту статью.

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

Вклад авторов