Как стать автором
Обновить
166.36

Java *

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

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

Работа с ContactListener из Box2d в Libgdx

Время на прочтение3 мин
Количество просмотров18K
В продолжение прошлой статьи про использование Box2d в Libgdx решил рассмотреть работу с классом ContactListener.

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

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

Кофе, табак и bootstrap за 5 секунд

Время на прочтение4 мин
Количество просмотров32K
Опуская лукавство в заголовке, речь пойдет о моем свеженьком опен-сорс начинании, которое показано к употреблению вовнутрь и наружно всем Java программистам.

Встречайте Tobacco Bootstrap или просто в дальнейшем Табак, который cобрал все лучшее, что я видел в мире веб-проектов в один архетип для Maven.

UPD: Табак обновлен до 1.0.2 с Twitter Bootstrap 2.2.2 внутри, и кроме того этот релиз уже уйдет в центральный репозиторий, то есть инсталляция больше не нужна
Очередной велосипед?

Box2d и Libgdx

Время на прочтение9 мин
Количество просмотров58K
День добрый.

Не так давно начал изучать работу Libgdx и обнаружил, что не так много статей по сему фреймворку на русском языке. Встречал, конечно, статьи на русском, но они были лишь переводами офф. мануалов. Были правда и статьи, где разработчики пытались рассказать о своих творениях. Но в одной статье всё не обхватить, в итоге в подобных статьях было всего понамешано.

Я задался целью поэтапно писать статьи о различных аспектах/частях LibGDX, чтобы в итоге, любой человек мог более-менее работоспособную версию своей собственной игрушки сделать. В этой статье хотел бы рассказать про Box2D, который присутствует в LibGDX.
image
Читать дальше →

Продвижение мобильных приложений

Время на прочтение4 мин
Количество просмотров8K
Согласно статистике, 59% мобильных приложений не окупает затраты при его разработке.
Оригинальная идея и хорошая реализация — только половина пути к успеху.
Хорошее приложение, но без маркетинга, с большой вероятностью провалиться, а плохое при грамотном продвижении может окупить себя в десятки раз.

Далее разберем приемы продвижения приложения без вложения средств.

ASO оптимизация

Происходит в два шага и у каждого своя цель:
1. Непосредственно поисковая оптимизация (SEO),
2. Визуальная оптимизация.

Цель первого — повысить searching ranks. То есть сделать так, чтобы Ваше приложение могли найти как можно больше людей, используя поисковик.

Существует три основных бесплатных приема.
1) Название приложения. Очень важно выбрать правильное название. Именно от него в основном зависит, сколько людей найдут Вас, используя поиск. Старайтесь сделать так, чтобы название включало основные ключевые поисковые слова.
Пример: приложение на тему «Развлекательные игры для вечеринок» лучше назвать «Развлечения для вечеринок». Сразу 2 ключевых слова: развлечения и вечеринки. Не стоит называть, к примеру, «Развлекуха» или «Мимоза».
2) Описание. Большинство пользователей читает только первый абзац. Постарайтесь сделать его максимально информативным и привлекательным. Также используйте по максимуму ключевые слова в тексте.
Пример: приложение на тему «Кулинария». Используйте в описании примерно следующие слова: кухня, рецепты, вкусно, приготовление и тд.
3) Перевод. Прирост пользователей до 15%. Используйте основные языки (английский, немецкий, китайский и др). Постарайтесь обеспечить качественный перевод и не переводить текст в гугл переводчике, других программах.
Читать дальше →

Создание плагина разрешения ссылок для PhpStorm (IntelliJ IDEA)

Время на прочтение8 мин
Количество просмотров17K
Я работаю веб-программистом, пишу на PHP и использую фреймворк Kohana. Для разработки использую потрясающую, на мой взгляд, среду PhpStorm.

При работе с большими и не очень проектами меня всегда угнетало, что я много времени трачу на навигацию по проекту, на поиск того или иного файла (контроллера или шаблона) в дереве проекта. Ctrl+Shift+N, к сожалению, удобен далеко не всегда.

Для начала мне захотелось сделать так, чтобы можно было переходить из файла контроллера по нажатию Ctrl+B (или Ctrl+Click) над именем шаблона, передаваемого в кохановский View::factory(), непосредственно в файл шаблона:


 
Поэтому я решил написать небольшой плагин для PhpStorm, который облегчил бы мою работу и освободил бы от некоторой части рутины.

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

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

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

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

Время на прочтение4 мин
Количество просмотров26K
Да-да, это та самая библиотека 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 мин
Количество просмотров91K
Мне было интересно, какие коллекции сколько съедают дополнительной памяти при хранении объектов. Я провёл замеры накладных расходов для популярных коллекций, предполагающих хранение однотипных элементов (то есть списки и множества) и свёл результаты на общий график. Вот картинка для 64-битной Hotspot JVM (Java 1.6):

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

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

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

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

Время на прочтение4 мин
Количество просмотров650K

Книги, которые должен прочитать 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.1K
На хабре уже были подобные статьи, но для 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 мин
Количество просмотров4.8K
Пост будет кратким и весьма техническим.

Задача

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

Решение

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

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