Обновить
256K+

Java *

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

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

Наконец-то! Hard-float Oracle Java на Raspberry Pi

Время на прочтение1 мин
Охват и читатели6.4K
Одной из основных целей создания и поддержки Малинки была поддержка всех основных языков программирования. Однако, до недавнего времени нерешенной проблемой оставалась Java.
Как стало известно примерно 12 часов назад, наконец-то в репозитории Raspbian была добавлена hard-float Oracle Java 7 JDK.
В последующие сборки Raspbian Java JDK будет включена автоматически, а пока ее можно установить ручками:
sudo apt-get update && sudo apt-get install oracle-java7-jdk

HBase, загрузка больших массивов данных через bulk load

Время на прочтение4 мин
Охват и читатели12K
Привет коллеги.
Хочу поделиться своим опытом использования HBase, а именно рассказать про bulk loading. Это еще один метод загрузки данных. Он принципиально отличается от обычного подхода (записи в таблицу через клиента). Есть мнение, что с помощью bulk load можно очень быстро загружать огромные массивы данных. Именно в этом я решил разобраться.
Читать дальше →

Победители Duke's Choice Awards 2013

Время на прочтение3 мин
Охват и читатели4.6K
Привет Хабр!

Прошел ровно год с тех пор, как наш проект Jelastic получил самую престижную награду в мире Java — Duke's Choice Award (в рамках конференции JavaOne). Еще раз спасибо всем хабравчанам за поддержку!

В этом году мы также активно принимаем участие в конференции JavaOne, правда уже не в качестве номинантов. Мы рады находиться в самом эпицентре событий и сегодня хотим предоставить вашему вниманию короткий обзор победителей Duke's Choice Award 2013, ведь такую награду удается заполучить только самым инновационным, продвинутым и грандиозным Java-проектам:

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

Codenvy Factories: клонирование среды разработки в один клик

Время на прочтение3 мин
Охват и читатели4.1K
Как известно, в данный момент в Сан-Франциско проходит весьма интересный ивент — Java One. Несколько дней презентации достижений индустрии, общения и обмена опытом. Облачные технологии, и облачные IDE в частности, естественно, не упустили момент, чтобы похвастаться своими последними разработками и бета-фишками. Codenvy, среди причих, привлекли внимание к своей демонстрационной кабинке фишкой, позволяющей клонировать среду разработки, конечно же, вместе с проектом. В своей документации компания предоставляет довольно подробную информацию о Codenvy Factory. Я лишь сделаю краткое резюме функционала и приведу пример Factory кнопки:
Читать дальше →

Ускорение вычислений с помощью GPU, теперь на Java!

Время на прочтение2 мин
Охват и читатели23K
Именно так заявил технический директор IBM Джон Дуимович (John Duimovich) в своем выступлении на конференции JavaOne 2013. Он отметил, что ускорители GPU обладают невероятной вычислительной мощью и их применение для вычислений в Java позволит ускорить сложные вычисления и обработку больших массивов данных. Использование GPU для вычислений в Java открывает множество новых перспектив как для Java-разработчиков, так и для производителей GPU.
Читать дальше →

Чтение конфигурационных файлов в Java: nProperty

Время на прочтение10 мин
Охват и читатели90K
image
Многие разработчики сталкиваются с необходимостью чтения конфигурационных (*.ini, *.prop, *.conf, etc.) файлов в разрабатываемых приложениях. В Java есть стандартный класс Properties, с помощью которого можно очень легко загрузить ini-файл и прочитать его свойства. При большом объеме конфигурационных файлов чтение и запись настроек в объекты превращается в очень нудную и рутинную работу: создать объект Properties, конвертировать каждую настройку в нужный формат и записать его в поле.

Библиотека nProperty (Annotated Property) призвана упростить этот процесс, сократив примерно в два раза требуемый код для написания загрузчиков настроек.

Чтобы показать, каким образом возможно обещанное сокращение кода в два раза, ниже приведены два примера: в первом примере используется стандартный класс Properties, во-втором — nProperty.

Прошу под кат за подробностями

Пулы соединений к БД — зачем и почему

Время на прочтение5 мин
Охват и читатели88K
Когда Ваш проект начинает пользуется популярностью и каждая миллисекунда обработки запроса от пользователя становится критической, приходится искать узкие места в системе. Часто больше всего времени занимает выполнение SQL запроса из приложения к базе данных. Попробуем разобраться, что можно оптимизировать в программе при работе с БД.
Читать дальше →

Java-конференция Joker: предварительная программа, Unconference и другие подробности

Время на прочтение6 мин
Охват и читатели6.9K
Привет, хабр!

Как многие из вас уже знают, 15 октября в Питере пройдёт Joker 2013, конференция по Java-технологиям, организатором которой выступает сообщество JUG.ru, а генеральным спонсором — компания «Одноклассники». Конференция ориентирована на профессионалов в области разработки ПО на Java. Участников ожидает более 30 докладов от гуру Java-разработки на русском и английском языках, стенды компаний-лидеров в области Java-разработки и зона свободного общения, где можно будет пообщаться с друзьями и коллегами или просто отдохнуть.

Что ожидает участников:
  • 14 октября: мастер-классы
  • 15 октября: 4 трека, 30 докладов
  • 16 октября: закрытый Unconference!

Подробно о конференции Joker 2013

Багтрекер OpenJDK стал публичным

Время на прочтение2 мин
Охват и читатели8.8K
Привет, хабр!

У меня для тебя отличные новости: OpenJDK-шная JIRA стала открытой для всех! Адрес: http://bugs.openjdk.java.net

В старом сановском багтрекере нумерация багов была сквозной, независимой от проекта. В JIRA всё устроено немного не так: каждый проект, как известно, имеет некоторый префикс (в нашем случае это «JDK»), после которого идёт дефис и номер бага. Соответственно то, что раньше в bugs.sun.com было багом 4459438 в JBS получило номер JDK-4459438.

Узнать подробности!

Вышел GlassFish 4.0

Время на прочтение1 мин
Охват и читатели15K
Хотя вышел он еще весной, информация об этом попалась мне на глаза только сейчас, да и на хабре вроде нет упоминаний этого факта.
Читать дальше →

Делимся опытом по интеграции SSO средствами SAML 2.0

Время на прочтение34 мин
Охват и читатели50K
1. Предыстория

Не смотря на то, что функция централизованного входа (Single Sign On, SSO) существует, обсуждается и применяется уже давно, на практике ее внедрение зачастую сопровождается преодолением самых различных проблем. Целью данной статьи будет показать, как реализовать простейший собственный Service Provider 1 (SP) для SAML 2.0 identity provider (idP) и с его помощью осуществить интеграции SSO в Java Web приложение.

Одним из наших последних проектов была подготовка и кластеризация портального решения для крупного университета. В рамках проекта мы столкнулись с задачей реализации (а также кластеризации) функции единой аутентификации для следующих систем:

  1. Liferay version 6.1.20-ee-ga2.
  2. Простое java web-приложение.
  3. Google apps.

Со стороны заказчика были выдвинуты основные требования построения SSO:
  1. Для построения SSO должен использоваться протокол SAML 2.0.
  2. Требуется интеграция с Jasig CAS для поддержания работы уже существующих систем.
  3. LDAP используется для проверки аутентификации пользователей.

В качестве idP решили использовать Shibboleth (http://shibboleth.net/about/index.html) как open source-систему, реализующую в полном объеме протоколы SAML 1.0 && SAML 2.0.

Сложные моменты, с которыми мы столкнулись при решении данной задачи:

  1. Отсутствие экспертизы по работе с протоколом SAML 2.0 и продуктом Shibboleth.
  2. Сырая и еще не достаточно хорошо структурированная документация по Shibboleth от производителя.
  3. Отсутствие качественных примеров по реализации Service Provider’а для интеграции SSO в свое Java Web-приложение.

Преодоление этих барьеров и стало мотивацией для публикации данной статьи. Мы хотим поделиться приобретенными знаниями, помочь разработчикам решать подобные задачи, а также облегчить знакомство с протоколом SAML 2.0.

2. Для кого предназначена статья?

Данная статья ориентирована на следующую аудиторию:
  1. Разработчики, интегрирующие функцию SSO в своих проектах средствами SAML 2.0.
  2. Java-Разработчики, которым нужен практический пример интеграции в свое приложение функции SSO средствами SAML 2.0.
  3. Java-Разработчики, которые хотят опробовать в качестве SSO Identity Provider’а (idP) компонент Shibboleth.

Для понимания статьи рекомендуется иметь минимальные знания по протоколу SAML 2.0.

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

Интеграция Java и 1С через .Net framework на примере Apache PDFBox

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

Интеграция Java и 1С через IKVM.Net на примере Apache PDFBox



В сети Интернет мало информации по интеграции Java и 1С. Тем не менее, есть интересные Java-проекты, работу которых хотелось бы оценить внутри 1С. Apache PDFBox – один из таких популярных проектов. Так сложилось, что файлы pdf являются очень распространенными, а 1С не имеет хороших средств работы с данным форматом. Предложенный здесь способ состоит в том, чтобы через утилиту IKVM.NET перевести JAVA-библиотеку в .Net-сборку, а затем использовать эту сборку внутри 1С средствами интеграции.

Apache PDFBox– это библиотека Java для работы с PDF-документами. Позволяет выполнять операции: извлечение текста, печать PDF, слияние и разделение документов, преобразование в изображение, заполнение форм, создание PDF, проверка PDF/A, интеграция с Lucene Search Engine. В примере использована версия 1.8.2.

IKVM.Net – это виртуальная машина Java для Mono и .Net framework. IKVM.Net позволяет конвертировать библиотеку Java в сборку .Net и затем обращаться к библиотеке средствами .Net framework. IKVM.Net содержит много вспомогательных сборок, отвечающих за различные классы Java. В примере используется версия 7.2.4630.5.
Читать дальше →

Работа с шедулером в Java (Spring)

Время на прочтение4 мин
Охват и читатели54K
Недавно, в процессе работы, я столкнулся с задачей управления шедулерами в работающем приложении. У нас серверное приложение, и в конфигурационных файлах Spring мы указывали, какие задачи запускать по таймеру. Однако, далее появилась следующая задача: убирать из списка выполнения эти задачи или же менять cron-таймер, при этом не тормозя приложение.
В процессе гугления и чтения, я нашел, как это сделать. Всё оказалось гораздо проще, чем я думал. Но для того, чтобы это понять пришлось немного почитать.
Вероятно, эта статья будет полезна новичкам, но, возможно, и мастодонты почерпнут для себя что-то новое.
Читать дальше →

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

Как там Jigsaw?!

Время на прочтение1 мин
Охват и читатели12K
Я думаю, всем интересно в каком состоянии находится проект JigSaw. Модуляризация встроенная в Java платформу, потенциальная замена другим системам, функциональность которая было задержана до JDK 9, хотя изначально предполагалась в JDK 8, и т.д. и т.п.

Вкратце: Jigsaw prototype, take 2

Подробнее с дискуссией можно ознакомиться здесь:
mail.openjdk.java.net/pipermail/jigsaw-dev/2013-August/thread.html
mail.openjdk.java.net/pipermail/jigsaw-dev/2013-September/thread.html

Самая суть происходящего:
1. Марк поставил комьюнити в извесность о том, что проект будет разработан заново.
2. Марк обещал (более) подробный документ о предполагаемых требованиях и имплементации Jigsaw.
3. Этого еще не случилось.

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

Про Selenium и один «велосипед»

Время на прочтение26 мин
Охват и читатели69K
Всем привет!

Я бы хотел рассказать о проблемах, с которыми я сталкивался в процессе освоения Selenium WebDriver, c их решением и тем, как эти решения, в принципе, можно использовать. Все это представлено в виде прототипа фрэймворка, ссылка на который будет в конце статьи.

В этом посте я хочу поделиться своими идеями реализации шаблона Page Object, о том как можно обрабатывать ошибки, возникающие в процессе выполнения тестов, рассказать немного о логгинге. А так же поделиться сведениями о некоторых инструментах, которые реализованы с использованием Selenium WebDriver, и своими наработками.

План моей статьи следующий:

1. Капитан очевидность, вместо вступления.
2. Немного о себе, надо представиться…
3. Почему Selenium?
4. О Page Object…
5. Не баг, а фича!
6. И снова про логгинг и отчетность.
7. А разве нет аналогов?
8. Обещанные ссылки.
9. В заключение.


Итак, поехали!
Читать дальше →

Java-конференция Joker: выбираем доклады вместе!

Время на прочтение2 мин
Охват и читатели5.6K
Хабр, приветствую!

Всё лето мы, питерская Java User Group, занимались подготовкой Java-конференции Joker, которая пройдёт в Петербурге 15 октября. И всё шло хорошо до вчерашнего дня, когда real_ales, который занимается программой конференции, внезапно понял, что заявок на доклады у нас дофига, а мест в программе конференции гораздо меньше.

Разумеется, мы немедленно устроили митинг по скайпу, на котором попытались понять, какие доклады мы хотим оставить, а какие — выкинуть. И вот тут-то и возникла некоторая загвоздка. Мы осознали, что нам тупо не хватает экпертизы в некоторых областях, чтобы понять, насколько интересны и актуальны некоторые из докладов.

И тогда мы решили провести эксперимент и обратиться к хабровчанам с просьбой оценить, насколько им интересен тот или иной доклад.

Cледует отметить, что даже те хабровчане, которые не придут на конференцию, получат profit от участия в голосовании. Мы планируем сделать видеозапись большинства докладов и выложить в публичный доступ (@alexbel говорит, что если выложить совсем все доклады, как мы сделали в случае апрельской конференции JPoint, то на конфу никто не придёт). Поэтому каждый проголосовавший не-питерец получает возможность увидеть в записи именно те доклады, которые кажутся наиболее интересными именно ему!
Выберем доклады вместе!

Разбор адресов «нечёткими регулярными выражениями»

Время на прочтение7 мин
Охват и читатели32K
Краткое содержание: о библиотеке написанной мною для сопоставления с заданным словарём выражений на естественном языке — в частности, городских адресов.

На деревню дедушке


Сколько существует способов написать адрес — в смысле, географический?

Даже если упростить задачу и отбросить всякие мелочи вроде номера дома, строения, участка, квартиры и т.п. — и работать в пределах одного города — сколько вариантов можно придумать для написания названий улиц, площадей, проездов, проулков и т.п.?

Возьмём простой пример:
улица Цветочная — может быть обозначена с сокращением, как «ул. Цветочная» и «Цветочная ул.» — кроме того «ул.» можно пропустить (если Цветочной площади в городе нет), а «Цветочная» можно написать с ошибками «Цвяточная» или «Цвиточная», равно как и «Цветошная» — всё это будет выглядеть недурно!

Пример посложнее:
2-я Конно-армейская улица — здесь душе поэта есть где разгуляться. Номер можно выразить как «2-ая» или просто «2», а можно даже прописью «Вторая» или с сокращением «Втор.» — дефис же между «конной» и «армейской» будет встречаться примерно у 50% опрошенных. До кучи выяснится что «конно-армейская» кому-то показалась длинной и сократилась до «2 Конноарм. ул.»

Другие интересные примеры связаны с именами «ул. Матроса Железняка» (или просто «Железняка»?), «пр. Мориса Тореза» (или «Мариса Тереза»?) а также совсем эпические случаи «ул. 3-я линия второй половины», «дорога на деревню Рыбацкое», «ул. Левый берег реки Ижоры» — прошу простить если и сам я их не осилил написать правильно по памяти.
Читать дальше →

Подключение акселерометра к Raspberry Pi с использованием библиотеки Pi4J

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

Предисловие


Привет, Хабр! Буквально недавно меня взяли в кружок по робототехнике. Конечно, я с радостью согласился, это же новый опыт и все такое… Тем более я всего лишь первокурсник. Мой преподаватель, объяснив мне общую концепцию, предложил заняться работой с Raspberry Pi. Нужно было разобраться, как с ним работать, установить на него JDK и написать программу, которая выводила бы на экран показания с 3-х осевого акселерометра. Взяв все необходимое, я отправился домой разбираться. Когда я все закончил (ушло на это примерно неделя), решил написать гайдик, адресованный таким же, как и я, дабы собрать все, что я нарыл, в одном месте. Ну, приятного чтения!
Читать дальше →

Gradle и решение задач автоматизации

Время на прочтение6 мин
Охват и читатели34K
Всем привет, сегодня я хотел бы рассказать вам о моём опыте работы с Gradle, не просто переписать мануал (хотя он отлично написан), но рассказать с какими реальными проблемами я столкнулся и как побеждал их, а также показать какие возможности предоставляет нам Gradle. Тема очень обширная поэтому, к сожалению я не смогу рассмотреть многие аспекты подробно и последовательно, надеюсь что читатели уже немного знакомы с Gradle и смогут понять суть описываемых решений.
Читать дальше →

GWT-Platform основы работы с презентерами

Время на прочтение12 мин
Охват и читатели17K
Всем хабражителям доброго времени суток!

Я начинающий Java-программист и так уж получилось, что свою карьеру я начинаю с разработки серьезного приложения на GWT. На хабре довольно много статей на тему GWT, однако почему-то совсем нет информации о замечательном фреймворке GWT-Platform. Подробно познакомиться с данным фреймворком можно тут, а я расскажу вкратце об основах работы на примере простого приложения.
Читать дальше →