Обновить
512K+

Java *

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

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

Jelastic плагин для IntelliJ IDEA

Время на прочтение2 мин
Охват и читатели16K
imageПривет Хабравчанам! Как и обещали в предыдущем посте, закончили работу над плагином для IntelliJ IDEA. Так что теперь не только любители Eclipse могут разворачивать проекты в облако прямо с IDE, но и пользователи самой интеллектуальной среды разработки для Java. Специальный плагин позволяет логиниться в Jelastic, разворачивать приложения, управлять ими и просматривать логи. Работать с плагином очень легко и удобно, но все же давайте рассмотрим основные возможности с помощью краткой инструкции.
Читать дальше →

JAVA библиотека padeg — новогодний подарок хабру

Время на прочтение4 мин
Охват и читатели27K
Да-да, это та самая библиотека padeg.dll, но работающая везде где есть java. Авторы Sergey V. Plahov aka Seer and Gennady Pokatashkin
Собственно, история простая. Началась она в 2007 году, когда мне срочно понадобилось склонять ФИО и должности для одного корпоративного проекта. В принципе, данный функционал не стоял в требованиях заказчика, но нужны были «плюшки», и автоматические склонения — это как раз одна из плюшек.
Довольно быстро удалось связаться с одним из авторов библиотеки, и после перечисления небольшой суммы были получены исходники на Delphi, которые затем портировались в JAVA. По первоначальной задумке java и delphi исходники должны были максимально совпадать, чтобы впоследствии можно было вносить параллельные правки. Делалось так: брались исходники на delphi, менялись расширения pas→java, и добавлялись в проект. Дальше шла правка синтаксиса. Но фактически delphi — код пришлось сильно рефакторизовать, поскольку он состоял в основном из многоэтажных if-ов и внутренних процедур, содержал глобальные переменные и не был приспособлен для многопоточной работы.
Как бы там ни было, библиотека портирована. На вопрос о копирайте мне было разрешено делать с результатом что угодно, но поскольку delphi-библиотека распространялась на условиях shareware, я не стал публиковать java-порт.
С тех пор прошло 5 лет, и я думаю, хватит одному пользоваться инструментом, которой найдется применение в хозяйстве отечественного java — разработчика. К тому же праздник на носу. Поэтому загружайте
Читать дальше →

IntelliJ IDEA 12 раскрывает темную сторону продуктивного программирования

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

Несколько недель назад мы закончили Early Access Program, позволявшую опробовать предварительные билды IntelliJ IDEA 12. Спасибо всем, кто принял участие в программе и присылал нам свои отзывы и комментарии. Ваше пристальное внимание ко всем новым фичам, ваши идеи, предложения, баг-репорты — без всего этого продукт был бы совсем другим.

И вот, после целого года трудов, IntelliJ IDEA 12 официально выпущена и доступна для загрузки.



Конечно, все новые фичи и улучшения релиза здесь не перечислить. Каждый день мы не только добавляем что-то новое, но и пересматриваем существующую функциональность, чтобы сделать ее еще полезнее и «юзабельнее». Вот краткий список главных возможностей, ожидающих вас в IntelliJ IDEA 12.
Читать дальше →

Накладные расходы памяти у коллекций

Время на прочтение7 мин
Охват и читатели93K
Мне было интересно, какие коллекции сколько съедают дополнительной памяти при хранении объектов. Я провёл замеры накладных расходов для популярных коллекций, предполагающих хранение однотипных элементов (то есть списки и множества) и свёл результаты на общий график. Вот картинка для 64-битной Hotspot JVM (Java 1.6):

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

Простейшая триангуляция на Java

Время на прочтение5 мин
Охват и читатели35K
Все доброго времени суток!
Хочу рассказать об одной интересной проблеме и ее решении, которое я применил в одном из своих проектов.
Суть проблемы такова:
Есть несколько детекторов сигнала (допустим, базовые станции GSM). И эти детекторы присылают на сервер уровень сигнала для некоего источника. Необходимо вычислить и отобразить на карте координаты источника
Если вам интересно, как это сделать, добро пожаловать под кат.
Читать дальше →

Книги, которые должен прочитать Java программист: от новичка до профессионала

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

Книги, которые должен прочитать Java программист: от новичка до профессионала


[Примечание переводчика: термины градации «профессионализма» оставлены англоязычные в связи с трудностью их адекватного перевода на русский и несовпадением с привычными Junior-Middle-Senior-Lead. Перевод достаточно вольный — если знаний языка хватает, то лучше читать оригинал, как и советует автор. Оба языка для меня не родные, так что про ошибки сообщайте в личку — исправим. Здесь и далее в квадратных скобках примечания переводчика]

Я заметил, что в последние месяцы я рекомендую одни и те же книги как новичкам, так и опытным разработчикам. Поэтому я решил составить список этих книг. Они составили мне неплохую компанию в процессе моего роста от новичка до сегодняшнего уровня (какой-бы он не был :) )
Читать дальше →

О компонентах и интерфейсах. Java

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

В предыдущей статье я написал о разных способах оформления интерфейсов к компонентам и сокрытия их реализации в C++.
В этой статье расскажу вкратце, как в Java отделить интерфейс от реализации, а реализацию скрыть.
Я не буду рассматривать компоненты разных там Java EE, я рассмотрю самые обычные jar-ники-библиотеки.
Итак.
Читать дальше →

Получение изображения нужного размера без OutOfMemoryError + автоповорот согласно EXIF orientation

Время на прочтение10 мин
Охват и читатели22K
Многие уже наверняка сталкивались с проблемой OutOfMemoryError и находили достаточно толковый мануал Displaying Bitmaps Efficiently. Но если вы еще не успели изобрести свой велосипед на основе мануала, предлагаю свое готовое решение с объяснениями, которое умеет получать изображения:

  • В формате Bitmap и byte[]
  • Уменьшенное с сохранением пропорций
  • Уменьшенное с вырезанием (crop) до заданного размера width x height
  • Оптимизированное для 2g
  • Всегда в правильной ориентации (учитывая EXIF orientation)


Пример использования
ImageManager im = new ImageManager(ctx, 100, 100);
Bitmap bm = im.setIsScale(true)
              .setIsResize(true)
              .setIsCrop(true)
              .getFromFile(myUri.toString());



Далее: OutOfMemoryError и решение

Быстрый способ установки Java Oracle на Ubuntu

Время на прочтение1 мин
Охват и читатели15K
Привет, хабровчане!
В сети есть достаточно информации по установке Java Oracle. Но, на мой взгляд, способ, описанный ниже, самый удобный. Причина удобства — не нужно заходить на сайт Oracle, регистрироваться и выкачивать установочный файл и в то же время нет необходимости хранить его где-нибудь у себя локально.
Процесс установки сводится к запуску одного скрипта.
Читать дальше →

Java Native Interface. C++. Linux. Первые шаги

Время на прочтение5 мин
Охват и читатели9.5K
На хабре уже были подобные статьи, но для Windows и «ничего не понятно» для новичков вроде меня. В принципе ничего сложного нет, но есть где споткнуться и на долго засесть в поисковиках, как было со мной.
Читать дальше →

Jenkins + JsHint(JsLint) или смотрим метрики javaScript на Jenkins-е

Время на прочтение2 мин
Охват и читатели8.8K
Здравствуйте. Получил такое задание, в принципе все ясно из названия темы.
О том как я этого достиг, шаг за шагом, будет следующий пост.
Если что не так — критика приветствуется, это было так сказать исследовательское задание, и перед началом работы над ним у меня не было понятия о данном инструменте, зачем он и так д…
В процессе исследования многие вопросы прояснились.
Читать дальше →

3 миллиарда записей в Java Map на 16 GB RAM

Время на прочтение3 мин
Охват и читатели16K
Одним дождливым вечером я размышлял о памяти менеджмент в Java и как эффективно использовать Java коллекции. Я сделал простой эксперимент, сколько записей я могу вставить map с 16 Гб оперативной памяти?
Читать дальше →

Jelastic плагин для Eclipse

Время на прочтение2 мин
Охват и читатели6.8K
imageВсем привет!
Хотим поделиться с хабрасообществом последними новостями: теперь облачная платформа Jelastic интегрирована с Eclipse IDE. Cпециальный плагин для Eclipse делает разработку Java EE веб-приложений на платформе Jelastic гораздо удобнее: сейчас можно развернуть приложение в облако прямо из Eclipse и не переключаться постоянно между IDE и браузером. Известно, что Eclipse лежит в основе деятельности многих Java-разработчиков, так что надеемся, что они по достоинству оценят это нововведение. Также доступны такие полезные функции, как управление (запуск, остановка и т.д.) пользовательской средой и доступ к серверным логам.

Давайте вкратце рассмотрим, как установить плагин и как использовать его основной функционал.
Читать дальше →

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

Визуализируем геоинформацию из логов на web-карте в реальном времени

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


Дабы не было двусмысленностей, обозначу суть. При приёме на новую работу мне дали тестовое задание, которое кратко можно описать так: «Написать аналог Glow для геовизуализации событий входа пользователей в кастомерку интернет-магазина». Проще говоря, необходимо мониторить лог системы на предмет возникновения определенных событий и в случае оных выполнять (в данном случае) отображение точки на карте, которая будет определяться IP-адресом пользователя. Цель реализации: создать приятную на вид «игрушку» для презентационных целей, способную погрузить смотрящего в нирвану гармонии и эстетического наслаждения. Основным условием было использование в процессе разработки стека Java-технологий, чем обусловлено принятие многих решений. Кроме этого, было решено реализовать это в виде одностраничного сайта. А поскольку с Java и web я был знаком крайне поверхностно (писал в основном на C/C++), пришлось многому научиться. Что ж, будем разбираться вместе.
Статья рассчитана на интересующихся и начинающих, однако не «разжевывает» простые вещи, с которыми можно ознакомиться с помощью документации или специализированных статей. Наиболее полезные ресурсы, ссылка на исходники (распространяются по лицензии BSD) и ссылка на рабочую версию приведены в конце статьи.

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

Использование CompositeUserType для связи сущностей в Hibernate

Время на прочтение3 мин
Охват и читатели5K
Пост будет кратким и весьма техническим.

Задача

Есть Java-приложение, имеющее внутри большое количество ORM-сущностей (Entity).
Необходимо реализовать сущность ExtendedAttributes, которую можно прикрепить к любой другой сущности без дополнительной доработки.

Решение

На помощь к нам приходит CompositeUserType, который содержит внутри себя class и id той сущности, которую мы хотим привязать. Вот и всё решение. А дальше — код.
Читать дальше →

Разработка сервера мобильных клиентов

Время на прочтение5 мин
Охват и читатели57K
Обратная сторона мобильных клиентов — сервер.

Введение

Не открою секрета, что разработка мобильных приложений в тренде – этому способствует стремительное техническое развитие: мобильные устройства с каждым годом улучшаются по всем характеристикам и становятся доступнее для широкого круга людей. Почти каждый, кто имеет на руках мобильный гаджет (будь то смартфон, коммуникатор или планшет) пользуется приложениями: браузером, клиентом электронной почты и мгновенных сообщений, играми, бизнес или финансовыми программами. И зачастую от пользователей скрыто то, что многие из приложений взаимодействуют с удаленным сервером: обмениваются с ним данными через Интернет.
По роду деятельности (Java разработчик серверных приложений) мне в команде приходится разрабатывать сервера для мобильных клиентов (за последние 2 года участвовал в реализации 3-х таких проектов для зарубежных компаний). Определился набор Java-технологий для решения задач такого рода, который варьируется в зависимости от требований и целесообразности (другими словами — желания), благо свобода при выборе технологий позволяет экспериментировать. Сформировавшейся точкой зрения и опытом хотел бы поделиться с сообществом.
Читать дальше →

Text Mining Framework (Java)

Время на прочтение5 мин
Охват и читатели31K
Что это и для кого (вместо вступления)

В данной статье я бы хотел рассказать о небольших результатах своей научной деятельности в сфере Text Mining. Этими самыми «результатами» стал небольшой FrameWork, который, пока еще, и до либы то не очень дотягивает, но мы растем =). Данный проект — реализация на практике некоторых, разработанных мною, теоретических положений. Как следствие этого я представляю возможности, которыми он может потенциально обладать в конце внедрения всех идей. Названо сее творение: «Text Mining FrameWork»(TextMF). Давайте в кратце рассмотрим, что именно будет позволять TextMF в своей первой финальной версии и что работает уже сейчас.
Читать дальше →

Пример использования fluent interface в java для описания объектов предметной области

Время на прочтение2 мин
Охват и читатели15K
Disclaimer: нашел статью у себя в черновиках. Писал года полтора-два назад, почему не опубликовал — не помню. Просмотрел, вроде, не совсем бесполезная, пусть будет в открытом доступе.

В последнее время стало достаточно актуальным использование domain specific languages (DSL) — языков «заточенных» под конкретную предметную область. Слово «язык» в данном контексте не обязательно подразумевает именно новый язык программирования, зачастую можно обойтись и старым добрым.

На хабре не замечено ни одной статьи про fluent interface в контексте джавы, так что хотел бы поделиться своим опытом применения.
Читать дальше →

Подготовка к OCEJPAD 6

Время на прочтение3 мин
Охват и читатели8.9K
Хочу поделиться опытом прохождения Java EE 6 Java Persistence API Developer Certified Expert Exam (OCEJPAD 6).

Немного о OCEJPAD 6


OCEJPAD 6 один из новых(относительно новых) сертификатов, который охватывает Java Persistence API. Ранее Java Persistence API входил в состав SCBCD, но с добавлением Criteria API в JPA 2.0, было создано 2 экзамена вместо одного:
  • Java EE 6 Java Persistence API Developer Certified Expert Exam 1Z0-898(EE6 JPA or OCEJPAD 6)
  • Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam 1Z0-895(EE6 EJB or OCEEJB 6)

Для кого предназначен этот сертификат? На мой взгляд, для всех Java Developer’ов, так как редкий проект обходится без использования доступа к базам данных, а пользоваться только JDBC уже давно не по фэн шую. Так что крепкие знания JPA будут как нельзя кстати. Одна из наиболее часто используемых имплементаций JPA — Hibernate.

Где взять mock тесты?


Единственные существующие mock тесты по этой сертификации (во всяком случае известные мне) — epractizelabs, но они платные, и говорят, что содержат много ошибок. Я не могу ничего сказать об этом ресурсе, так как не пользовалась ими.
Но, так как просто читая книгу достаточно тяжело подготовиться к экзамену, я составила для себя вопросы/ответы содержащие все важные моменты из книги Pro JPA 2: Mastering the Java™ Persistence API. Отвечая на них, я достаточно хорошо подготовилась к сертификации — сдала с 87%. Эти вопросы/ответы выложены здесь — http://www.examclouds.com/ для бесплатного пользования.

Что читать?


Я использовала для подготовки книгу Pro JPA 2: Mastering the Java™ Persistence API (ее можно скачать бесплатно в интернете), а также спецификацию JPA 2.0. На мой взгляд спецификацию нужно читать после тщательного изучения Pro JPA 2: Mastering the Java™ Persistence API или обращаться за разъяснением наиболее непонятных моментов. Следующие главы из этой книги содержат всю необходимую информацию для сдачи экзамена (все остальное можно смело пропустить):
Читать дальше →

Эффективность автоматического тестирования приложений

Время на прочтение3 мин
Охват и читатели12K
Атака клонов.
Эпизод: покер.


По одной команде, без промедления, несколько тысяч клонов ринулись по узким сетевым коридорам, не ведая сомнений и страха поражения! Для того, чтобы сойтись в поединке и победить! Клоны, в большинстве своем не мастера, но запрограммированные на победу, просто четко выполняют инструкции, которые в случае удачи, ведут их к цели. Правила для всех одни, каждый сам за себя, но нет ни одного шанса выстоять и победить у человека, оказавшегося в этом месиве…

Это не эпизод легендарной саги «Звёздные войны» и не превью фантастической повести. Это описание нагрузочного тестирования сервера (построенного на технологиях Java), проведенного в ходе разработки игрового приложения «Покер» для социальных сетей.

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