У Java отличная поддержка параллелизма (concurrency) и блокировки (locking) — возможно, самая лучшая из тех, что предлагают современные языки. Кроме того, что в самом языке есть встроенная поддержка синхронизации, существует целый ряд полезных утилит на основе AQS framework. К ним относятся CountDownLatches, Barriers, Semaphores и прочие. Однако часто встречается ситуация, не поддерживающаяся напрямую: когда надо блокировать доступ не к конкретному объекту, а к идее этого объекта.
Рубрика «java» - 248
IdBasedLocking
2014-01-29 в 12:27, admin, рубрики: concurrency, java, lock, locking, locks, Веб-разработка, многопоточное программирование, многопоточность, Программирование, метки: concurrency, lock, locking, locks, многопоточное программирование, многопоточностьVaadin: полезные доработки и наблюдения
2014-01-29 в 11:52, admin, рубрики: java, tips, vaadin, Блог компании Haulmont, метки: java, tips, vaadinVaadin — компонентный UI фреймворк для создания веб-приложений на Java. Мы используем Vaadin в составе своей платформы CUBA на протяжении 4 лет и за это время накопили большой опыт работы с ним.
Vaadin был выбран нами по нескольким причинам:
- Серверная модель программирования, не требующая применения JavaScript/HTML в прикладном коде
- Возможность создавать насыщенный AJAX UI
- Множество компонентов и сторонних аддонов
Из недостатков стоит отметить:
- Высокие требования к памяти сервера, поскольку все элементы пользовательского интерфейса и их данные хранятся в HTTP сессии
- Сложность расширения компонентов Vaadin и написания аддонов
В этой статье я поделюсь решениями некоторых проблем и задач, с которыми мы столкнулись при использовании Vaadin. Несколько решений я разберу подробно, для остальных — только важные моменты. Читать полностью »
Java ME Embedded на Raspberry Pi
2014-01-28 в 12:36, admin, рубрики: java, Raspberry, Raspberry Pi, Разработка под Java ME, умный дом, метки: java, Raspberry, умный дом 
Насколько я могу судить, на Хабре да и не только, наблюдается всплеск интереса к микроконтроллерам — устройствам на базе ARM процессоров и другим не совсем обычным железкам. Рынок отвечает симметрично. Для удовлетворения возникшего спроса появились Arduino, Biggle Board, Raspberry Pi и множество других полезных штуковин.
С начала этого года прошло всего ничего, а на Хабре появились сразу две статьи о применении Java платформы на Rasprerry Pi «Raspberry Pi и чашечку Java, пожалуйста!» и «Raspberry PI и JAVA: пристальный взгляд». Вполне естественно, что в экспериментах использовалась привычная всем Java SE, порт которой под ARM появился около двух лет назад. Мало кто знает, что Java ME не почила с миром вместе с эрой кнопочных телефонов от Nokia. Она живет полноценной жизнью в новом мире — мире встроенных систем. О применении Java ME на Raspberry Pi я и хочу сегодня рассказать.
Читать полностью »
Новый лидер Java EE? Знакомимся с сервером приложений Wildfly 8 CR1 в InfoboxCloud IaaS. Часть 1. Быстрый старт
2014-01-27 в 11:51, admin, рубрики: java, java ee, wildfly, Облачные вычисления, Программирование, метки: infoboxcloud, java ee, wildflyНедавно Oracle заявила о прекращении выпускa коммерческих версий Glassfish. С OpenSource версией все будет неплохо и она останется рефренсной имплементацией Java EE. Однако вызывает опасения тот факт, что качество самого сервера приложений начнет падать без коммерческой версии той же базы кода и соответственно enterprise качество для новых версий Glassfish будет недостижимо. Особенно это касается кейсов, о которых не думают разработчики, но в которых проблемы проявляются в продакшне. Kоммерческий продукт Oracle WebLogic к Glassfish отношения не имеет.
У многих разработчиков необходимость найти сервер приложений Java EE7, который с одной стороны будет иметь OpenSource версию, а с другой — возможность купить коммерческую версию на той же кодовой базе.
Таким сервером стал Wildfly 8, полностью совместимый со стандартом Java EE 7 (прохождение Java EE TCK на 100%). Red Hat при необходимости продаст JBoss с коммерческой поддержкой. Кодовая база у обоих серверов одна. К тому же Arun Gupta, возможно главный евангелист платформы Java EE, перешел из Oracle в RedHat и крайне советует пользователям переходить на Wildfly. Нет повода ему не верить.
В этой статье мы рассмотрим сервер приложений Wildfly в облаке InfoboxCloud.
Читать полностью »
«Разбор Полетов» — Dart-аньян веб-разработки
2014-01-26 в 22:24, admin, рубрики: dart, dart editor, java, javascript, разбор-полетов, метки: dart, dart editor, java, javascript, разбор-полетов
Гость выпуска — Константин Щеглов, Google
Читать полностью »
ВКонтакте представили SDK для Android
2014-01-22 в 16:12, admin, рубрики: android, api, java, SDK, Вконтакте, метки: android, api, java, SDK, Вконтакте
На днях ВКонтакте в разделе для разработчиков выложили SDK для Android.
Популярная социальная сеть ВКонтакте пополнила свой набор инструментариев для разработки приложений, в котором уже имеются Flash и Javascript SDK, а также SDK для iOS, еще одним — SDK для Android.
Эта библиотека включает в себя инструменты для авторизации, как при наличии на девайсе пользователя официального клиента, так и при его отсутствии, а также инструменты для облегчения составления/выполнения запросов и обработки ответов.
Не забыли ребята и о владельцах девайсов с неактуальными версиями Android на борту — тестовое приложение, поставляемое вместе с SDK, имеет требования Android 2.2+
Также не оставлен без внимания вопрос защиты.
Подробности под катом.
Читать полностью »
По следам бага и немного о событиях MotionEvent в Android
2014-01-21 в 22:03, admin, рубрики: android, android development, event, java, mobile development, motion, open source, source code, touch, Разработка под android, метки: android, android development, event, java, motion, source code, touchДумаю, многие из нас писали код вида:
@Override
public boolean onTouch(View view, MotionEvent event) {
final float x = event.getX();
final float y = event.getY();
// использование x и y...
return false;
}
Но, думаю, не многие задумывались о том, какой путь проходит каждый объект MotionEvent прежде чем попасть в этот метод. В большинстве случае в этом нет необходимости, но все же случаются ситуации, когда незнание особенностей MotionEvent и обработки касаний приводит к печальным результатам.
Год назад я с друзьями разрабатывал приложение, где очень многое упиралось в обработку касаний. Однажды, загрузив новые исходники из репозитория и собрав приложение, я обнаружил, что вертикальная координата касания определяется неверно. Просматривая последние коммиты команды, я наткнулся на интересную строку, где внезапно от y-координаты отнималось 100. То есть, что-то вроде «y -= 100;», причем, это число не было вынесено как константа и вообще было непонятно почему именно 100. На мой очевидный вопрос я получил ответ «Ну, мы опытным путем определили, что в этом месте y-координата всегда на 100 (пикселей) больше, чем должна быть». Здесь, конечно, стоило бы перечитать документацию по обработке касаний и, просмотрев код проекта, найти ошибку, но я решил пойти более интересным путем – проследить по исходникам Android за MotionEvent от его получения до утилизации.
Если я смог кого-то заинтриговать историей в стиле «По следам полосатого бага» — добро пожаловать под кат.
Читать полностью »
Как мы на энтузиазме автоматизаторов обучали
2014-01-21 в 10:59, admin, рубрики: java, qa, selenium, качество, киев, курсы, обучение, тренинг, Учебный процесс в IT, метки: java, selenium, качество, киев, курсы, обучение, тренингМы постоянно обсуждаем бесплатные IT-курсы типа coursera, радуемся когда выходит новый интересный материал, стараемся направлять в эту струю коллег, студентов. Ведь знания — вот они, лежат просто у ног, возьми да и пользуйся. Мои друзья решили сделать вклад в это направление и организовать тренинг QA-автоматизаторов по серьезному, с отбором и курсом на качество. Что вышло в итоге можно прочитать под катом от первого лица.
Про Selenium и один «велосипед». Продолжение. part 2
2014-01-21 в 9:37, admin, рубрики: 1С, bdd, java, jbehave, page object, selenium, thucydides, велосипединг, тестирование, метки: 1с, bdd, jbehave, page object, selenium, thucydides, велосипедингВводную можно прочитать здесь.
5. Эксперимент.

Сам демо-проект со всей структурой был создан по инструкции из этой статьи (способ для Eclipse, Jbehave шаблон).
— Что должно было получиться.
В самом начале мне хотелось получить небольшой набор тестов, которые бы выполняли аналогичные действия. Пример не сложный – выполняем интерактивные действия, получаем что-то на главной странице или на странице, загруженной в новом окне, и продолжаем манипуляции. Хотя, позже я отошел в сторону от этого примера.
Все это должно быть:
— описано в виде BDD – сценариев;
— с одновременным использованием возможностей моего самодельного фреймворка и thucydides;
— должен быть использован репортинг thucydides.
Получилось следующее.
Читать полностью »




