Обновить
256K+

Java *

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

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

DevOps: отправляем метрики и спим спокойно

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


Внезапно, ночью раздается звонок и мы узнаем что наше приложение не работает. Есть 2 часа на его реанимацию…
Где же наш мониторинг и логи программы!?

Как иногда плохой код и антипаттерн решают

Время на прочтение3 мин
Охват и читатели27K
Привет %username%!

Сегодня я хотел бы рассказать о том, как мне помог в проекте плохой код.

Кому интересно, прошу под кат.
Читать дальше →

Стань участником 1-й бесплатной Международной школы по методам разработки ПО

Время на прочтение7 мин
Охват и читатели7.3K
Университет Иннополис объявляет о приёме заявок от студентов магистратуры на участие в Международной школе по методам разработки программного обеспечения, которая пройдёт в феврале на территории ИТ-вуза в Иннополисе. На мероприятии пройдут семинары и практические занятия, посвящённые интеллектуальному анализу мобильных и распределённых данных, разработке сетевых игр, архитектуре операционной системы Android, а также выявлению требований для мобильных предложений. Бесплатное проживание и питание включено, число участников ограничено. Все подробности под катом.


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

Отслеживание уведомлений на Android 4.0-4.2

Время на прочтение14 мин
Охват и читатели11K
Начиная с версии 4.3 в Android OS была добавлена возможность отслеживать все уведомления в системе используя NotificationListenerService. К сожалению, обратная совместимость с предыдущими версиями OS отсутствует. Что делать, если подобный функционал необходим на устройствах с более старой версией операционной системы?

В статье можно найти набор костылей и хаков для отслеживания уведомлений на Android OS версии 4.0-4.2. Не на всех устройствах результат 100% работоспособен, поэтому приходится использовать дополнительные костыли, чтобы предположить удаление уведомлений в определенных случаях.
Читать дальше →

Apache Spark как ядро проекта. Часть 1

Время на прочтение4 мин
Охват и читатели34K
Привет, коллеги.

С недавнего времени у нас на проекте появился Spark. В процессе разработки мы сталкиваемся с множеством трудностей, и узнаём много нового. Хочется для себя систематизировать эти знания, и за одно поделиться ими с окружающими. Поэтому я решил написать цикл статей про использование Apache Spark. Эта статья первая, и она будет вводной.
Читать дальше →

Параллельный парсинг большого количества HTML-страниц с помощью Apache Ignite (GridGain) в 200 строк кода

Время на прочтение12 мин
Охват и читатели32K
Периодически у меня появляются задачи обработать большое количество файлов. Обычно это конвертирование из одного формата в другой: XSLT-трансформация, парсинг, конвертация картинок или видео. Для решения этих проблем я приспособил фреймворк GridGain In-Memory Data Fabric. Он дает возможность делать distributed computing, MapReduce, распределенные кэши и очереди, распределенную файловую систему в памяти, перемещение кода к данным, job stealing, ускорители для Hadoop и многие другие модные ныне вещи. И все это легко и под разные операционки. Вы легко можете все это пощупать под виндовс.

Попробую рассказать о своем опыте использования на примере простенькой задачи.
Читать дальше →

Google Cloud Endpoints на Java: Руководство. ч. 3

Время на прочтение4 мин
Охват и читатели7.2K
предыдущие части:
Google Cloud Endpoints на Java: Руководство. ч. 1
Google Cloud Endpoints на Java: Руководство. ч. 2 (Frontend)

Работа с версиями


Google App Engine предоставляет возможность загрузить до 10 различных версий приложения.
Одна из них (по умолчанию — первая загруженная) является основной (default) и доступна по основному адресу приложения, и соответственно по адресу собственного домена(ов).
Читать дальше →

Google Cloud Endpoints на Java: Руководство. ч. 2 (Frontend)

Время на прочтение26 мин
Охват и читатели8.6K
Часть первая: Google Cloud Endpoints на Java: Руководство. ч. 1
Часть третья: Google Cloud Endpoints на Java: Руководство. ч. 3
Часть четвертая: Работа с базой данных в Google App Engine/Google Cloud Endpoints на Java: фреймворк Objectify
Часть пятая: Google Cloud Storage c Java: изображения и другие файлы в облаках

В первой части мы рассмотрели создание проекта на Google Cloud Endpoints с Java, в этой статье речь пойдет о создании фронтенда к нашему API.

В дополнение к инструментам, использовавшимся в первой части, нам понадобится:

AngularJS, и начальное общее представление о том как он работает, опционально Bootstrap или Foundation.

Простейший веб-сервер на локальной машине для тестирования, и сервер для деплоя приложения.
Читать дальше →

Введение в разработку предметно-ориентированных языков (DSL) с помощью EMFText

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

Это 5-я статья цикла по разработке, управляемой моделями. В предыдущих статьях мы уже разобрались с метамоделями, валидацией моделей, некоторыми нотациями для моделей (диаграммы и таблицы). Всё это было в рамках пространства моделирования MOF. Сегодня мы построим мост в пространство моделирования EBNF – познакомимся с текстовой нотацией для MOF-моделей.
Читать дальше →

Hibernate. Основные принципы работы с сессиями и транзакциями

Время на прочтение14 мин
Охват и читатели278K
В моей первой статье на Хабре я хотел бы поделиться некоторыми соображениями и замечаниями по работе с Hibernate, касающихся сессий и транзакций. Я остановился на некоторых нюансах, которые возникают при начале освоения этой темы. Признаюсь, сам пока Junior-программист, с Hibernate работал не постоянно, поэтому, как всегда, возможны ошибки, коль заметите оные, буду благодарен за поправки.

Библиотека Hibernate является самой популярной ORM-билиотекой и реализацией Java Persistence API. Часто используется как ORM-провайдер в обычных Java-приложениях, контейнерах сервлетов, в частности, в сервере приложений JBoss (и его потомке WildFly).

Начнём, пожалуй.
Читать дальше →

Как реализовать SOAP- сервис для работы с таблицами Google через SQL

Время на прочтение5 мин
Охват и читатели16K
Была задача — в ходе подготовки демки одного из решений надо было показать, что клиентскую информацию можно сохранять где угодно — в простом случае, например, в таблицах Google, в более сложном (после полугодового «внедрения»и многомиллионного бюджета) в CRM клиента. В используемой нами WSO2 ESB есть коннектор к таблицам Google — но реализовать требуемый функционал на нем оказалось не очень простой задачей — и тогда я на это забил.

Но вот недавно, разбираясь с новыми фичами WSO2 Data Services Server обнаружил, что в нем можно легко реализовать SOAP-сервис для работы с таблицами Google (который потом можно подцепить где угодно). Причем работа с данными в таблице осуществляется через привычный всем SQL.
О том, как это сделать, и хочу рассказать под катом.
Читать дальше →

Spring 4 MVC, Hibernate: ассоциация многие ко многим

Время на прочтение27 мин
Охват и читатели32K
Данный пост показывает отношение многие-ко-многим в Hibernate, на примере соединения таблиц в веб-приложении Spring 4 MVC. Мы будем обсуждать управление отношением многие-ко-многим в представлениях и в бэк-энд'ах. Мы выполним операции создания, обновления, удаления и запрос через веб-интерфейс.

Это приложение использует интерфейс org.springframework.core.convert.converter.Converter, который помогает нам в отображении ID' предметов в настоящих субъектах в базе данных.


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

Введение в RxJava: Жизненный цикл подписки

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

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

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

Параллельное программирование в Java8. Создание многопоточных программ с помощью Fork/Join Framework

Время на прочтение3 мин
Охват и читатели21K
Статья посвящена такому интересному и полезному механизму (совокупностям механизмов и библиотек), как Fork/Join Framework. Он позволяет многократно ускорить вычисления, добиться максимальных результатов при обработке, используя все доступные возможности системы (процессоры).

В рамках данной статьи будет созданы классы, использующие Fork/Join Framework. В коде показан один из возможных вариантов применения параллельного программирования. Итак, начнем.
Читать дальше →

Установка плагина onlyoffice-alfresco (контрольный лист — шпаргалка)

Время на прочтение2 мин
Охват и читатели8.8K
10 ноября 2015 стал доступен плагин для редактирования документов в Alfresco Share при помощи онлайн-редакторов OnlyOffice. Код плагина распространяется под лицензией GPL.
Читать дальше →

Критическая уязвимость в ряде Java Application Server

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

Вчера в блоге Apache FSF появилась интересная запись. Уязвимым оказалось практически все ПО, которое использует сериализацию и десереализацию данных совместно с apache commons collections и некоторыми другими библиотеками.
Сама уязвимость была описана 6 ноября, а сегодня Oracle выпустил первые патчи к WebLogic.

Кратко


Тип: Удаленное исполнение кода
Опасность: высокая
Уязвимое ПО: Oracle WebLogic, IBM WebSphere, JBoss, Jenkins, OpenNMS и другое ПО с commons collections в classpath.
Описание: Уязвимость позволяет злоумышленнику создать такой пакет сериализованных данных, который при распаковке заставит уязвимый сервер исполнить произвольный код.
Читать дальше →

Highload Dev Conf'2015 прошла 17 октября в Минске

Время на прочтение2 мин
Охват и читатели5.2K
17 октября прошла ежегодная брутальная конференция Highload Dev Conf.
Участниками стали более 300 суровых разработчиков, которым интересны высоконагруженные проекты и BigData.

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

Что нового и интересного в IntelliJ IDEA 15

Время на прочтение4 мин
Охват и читатели30K
На прошлой неделе JetBrains объявила о выходе IntelliJ IDEA 15. Как всегда, IDE доступна в двух редакциях: коммерческая Ultimate и бесплатная Community Edition. Скачать новую версию можно на официальном сайте JetBrains. Этот пост вкратце о том, что в ней нового и интересного.

image

Kotlin
Главная новость заключается в том, что одновременно с релизом IntelliJ IDEA 15 вышел и Kotlin Beta — практически готовый к релизу JVM язык программирования, разрабатываемый в недрах JetBrains. В IntelliJ IDEA 15 поддержка Kotlin доступна “из коробки”.

Отладчик
Популярность Java 8 продолжает набирать обороты, а JetBrains продолжает делать отладчик более удобным для работы с лямбда-выражениями. При добавлении точки останова IDE теперь позволяет выбрать конкретное выражение. Перейти в конкретное лямбда-выражение теперь можно и при помощи Step Into и Run to Cursor.

Также в отладчик был добавлен инструмент Force Return. Он позволяет прервать исполнение текущего метода и вернуть выбранное значение. Это может быть удобно, если вы хотите поменять логику выполнения программы без изменения кода и без перезапуска.

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

Веб-два-нольные ярлыки для Java

Время на прочтение5 мин
Охват и читатели7.7K
Когда мне понадобилось реализовать ярлыки для Java «как в веб-два-ноль», гугление не помогло найти ни одной библиотеки, содержащей в себе подобный тип коллекции.

Решил сделать сам.

Итак, нам надо хранить объекты в коллекции данного типа (назовем его, скажем, LabelsMultiMap). Как объекты, так и ярлыки могут быть произвольного типа. Количество ярлыков сверху не ограничено, равно как и количество объектов. Одним и тем же набором ярлыков могут быть описаны более 1 объекта. У одного объекта один ярлык может встретиться только 1 раз.

Пример валидных ярлыков:
Ярлыки Объекты
green, wooden, alive tree
green, wooden, lifeless bench
green, alive, croak frog

Коллекция должна позволять:

  1. put() — помещать в неё объекты со списком прикрепленных меток
  2. getValues() — возвращать объекты, содержащиеся в коллекции
  3. findValues() — осуществлять поиск объектов, ярлыки которых содержат запрашиваемый набор ярлыков
  4. findValuesOnlyIn() — осуществлять поиск только тех объектов, все ярлыки которых входят в запрашиваемый набор ярлыков

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

Универсальная функция toCamelCase() для Java

Время на прочтение3 мин
Охват и читатели11K
Сегодня мне понадобилось перевести строку произвольного содержания в camelCase.
В интернете в основном встретились узкоспециализированные методы, которые либо переводят только имена констант (по соглашениям Java, SOME_JAVA_NAMING_CONVENTION_CONST), либо только фразы, разделенные пробелами.
Мне этого категорически не хватало, нужна была бОльшая универсальность.

Как и подобает любому уважающему себя велосипедисту, я начал писать свой алгоритм, и немного увлёкся. Очнувшись от кода, я обнаружил, что функция переводит любые мною скормленные строки в нормальный camelCase или CamelCase.
Единственное, что она не делает — не запрещает цифры в начале получившейся строки (для соглашений JNC), но мне это и не нужно было (при необходимости дописывается одной строкой кода — пополнением ко второму, вложенному, условию).

Что получилось можете увидеть под катом.
Читать дальше →