Победители премии Duke's Choice Award 2012 были объявлены командой Oracle в преддверье самого крупного ежегодного события в мире Java – конференции JavaOne в Сан-Франциско, и мы среди них! Проект Jelastic победил в номинации «Технологический лидер». Было очень приятно разделить пьедестал почёта с другими победителями, среди которых Hadoop Project, Parleys.com и Liquid Robotics. Это не только наша победа, это победа всех читательов, ведь наш проект зародился на Хабре и постоянно развивается благодаря Вашему активному фидбэку. Огромное спасибо за поддержку!
Рубрика «java» - 272
«Java-Оскар» нашел своего нового обладателя
2012-10-04 в 10:30, admin, рубрики: cloud computing, cloud hosting, couchdb, glassfish, java, jetty, mariadb, mysql, nginx, paas, postgresql, tomcat, Блог компании Jelastic, Облачные вычисления, облачный хостинг, платформа как услуга, метки: cloud computing, cloud hosting, couchdb, glassfish, java, jetty, mariadb, mysql, nginx, paas, postgresql, tomcat, облачные вычисления, облачный хостинг, платформа как услугаDoppio — JVM, Компилятор и дизассемблер в JavaScript
2012-10-04 в 3:06, admin, рубрики: Doppio, java, javascript, jvm, дизассемблер, компиляторНа сегодняшний день мы не испытываем недостатка в прекрасных вещах, которые написаны на JavaScript. Да и реализации JVM в JavaScript мы уже видели. Теме не менее, Doppio представляет собой наиболее полную и активно развивающуюся JVM.
К моему последнему проекту, написанному на 80% на Java, надо было дописать модуль — парсер всех писем, проходящих через сервер. Религиозные мотивы модуля очень странные, но некоторыми деталями хотелось бы поделиться.
В наличии имеются:
Почтовый сервер Postfix со службой доставки Dovecot на CentOS. Ну и JVM.
Структура сообщений
Что такое электронное письмо, его составные части, их примерная структура, заголовки и MIME типы по-человечески описано на википедии.
Более интересной является структура имени файла письма на сервере. Пример имени новоиспеченного (не прочитанного/не запрошенного клиентом) письма:
1348142977.M852516P31269.mail.example.com,S=3309,W=3371
Какой Java поток нагружает мой процессор
2012-10-02 в 9:07, admin, рубрики: java, threads, переводы, метки: java, threads Что Вы делаете, когда Ваше Java приложение потребляет 100% ЦП? Оказывается Вы легко можете найти проблемные потоки, используя встроенные Unix и JDK утилиты. Никакие инструменты профилирования не потребуются.
С целью тестирования мы будем использовать простую программу:
Читать полностью »
Scala как расширенная Java или Java++
2012-10-01 в 21:20, admin, рубрики: java, scala, метки: java, scalaJava существует достаточно долго, на ней написано огромное количество софта и она является лидером в своей области. Однако Java не лишена недостатков. При проектировании языка важным критерием была простота и легкость изучения языка, и эта простота заставляет писать огромное количество лишнего кода, что бы компенсировать недостаточную гибкость языка: паттерны проектирования, XML конфиги, AOP, гетеры-сеттеры, try catch finaly синтаксис и т.д. Так же очевидно что не для всех задач чистый ООП подход является оптимальным, некоторые задачи намного эффективнее выполнять в функциональном стиле.
Существует много разных языков — Groovy, Python, Ruby, JRuby и еще много других, которые потенциально могут заменить java. Так почему же именно Scala?
Читать полностью »
А* для нахождения решения «пятнашек»
2012-09-29 в 22:38, admin, рубрики: java, Алгоритмы, пятнашки, метки: пятнашкиЗадача
Наша задача на сегодня состоит в нахождении решения игры «пятнашки». И не любое, а за наименьшее количество ходов. Надо же удивить ребенка тем, что вы умеете ее собирать за 10 ходов!
Правила гласят:
Пятна́шки — популярная головоломка, придуманная в 1878 году Ноем Чепмэном. Представляет собой набор одинаковых квадратных костяшек с нанесёнными числами, заключённых в квадратную коробку. Длина стороны коробки в четыре раза больше длины стороны костяшек для набора из 15 элементов (и в три раза больше для набора в 8 элементов), соответственно в коробке остаётся незаполненным одно квадратное поле. Цель игры — перемещая костяшки по коробке добиться упорядочивания их по номерам, желательно сделав как можно меньше перемещений.
Описанное здесь решение этой задачи — это реализация одного из Programming Assignments из курса по алгоритмам на coursera.org. Этот курс закончился неделю назад, так что думаю что решение можно публиковать.
Как запускать DBDeploy в Gradle
2012-09-28 в 22:21, admin, рубрики: database migrations, gradle, java, sql, Администрирование баз данных, метки: database migrations, gradle, sql
В данной заметке я покажу, как запускать DBDeploy из скрипта Gradle.
О чём это вообще?
Возможно, вы уже слышали о версионированной миграции структуры баз данных. Об этом писали на хабре. DBDeploy — один из самых простых и известных инструментов, позволяющий легко установить все последние изменения в базе данных на любом инстансе и любой девелоперской машине. А Gradle — модный ныне инструмент для сборки проекта (как Ant и Maven, только лучше). О нём тоже уже писали.
И в чём вопрос?
Вопрос в том, как запускать DBDeploy из скрипта Gradle? У DBDeploy есть таски для Ant и плагин для Maven, но пока ещё нет плагина для DBdeploy (точнее, он в зачаточном состоянии). Немного потыркавшись, я пришёл к выводу, что самый простой способ — это использовать тот самый Ant таск DBDeploy из скрипта Gradle (здесь описано, как из gradle-скрипта использовать любые Ant-таски). Рассмотрим пример.
Во Львове просят предоставить Java статус регионального языка *
2012-09-28 в 13:56, admin, рубрики: Dura Lex, java, Разработка под Java ME, юмор
Мов парость виноградної лози,
Плекайте Java пильно й ненастанно!
Несмотря на то, что эта новость лежит в плоскости юмора (и отчасти даже политической сатиры), нельзя обойти её вниманием. Я взялся собрать воедино и перевести часть из этих весёлых материалов которые сегодня гуляют по UAнету.
Очередной конфуз, regexp, или за что я не люблю java
2012-09-28 в 2:45, admin, рубрики: bug, java, python, regexp, script, tcl, проблемы программирования, Программирование, Регулярные выражения, метки: bug, java, python, regexp, script, tcl, проблемы программирования, регулярные выраженияНужно было мне намедни расширить Tokenizer для одного известного поисковика на джаве. Всяческие стандартные токенайзеры ну никак не хотели делать то, что нужно было, даже с включением разных токен фильтров типа WordDelimiter и ко. Кто в теме, знает какой с этим бывает геморрой, особенно если используем мультиязычные фильтры — токенайзер то один.
Так вот, на java крутить тест-кейсы довольно муторно (длинный код, вечный ескейп, долгий деплой, и т.д. и т.п.), я пытаюсь это делать как можно меньше, поэтому отрабатывал регулярки на тестах в tcl (ну люблю я этот язык).
Так вот накидал такое вот в тикле, даволен как слон все работает как хотел:
% join [regexp -inline -all {[w][w-&]+|[d-][d-*.,/]+}
"US-Währung, C&A, VW-Bus. 1.2.3 -23.456,78 12,345.00 12/01/2012"] " | "
US-Währung | C&A | VW-Bus | 1.2.3 | -23.456,78 | 12,345.00 | 12/01/2012
Немного поясню: нужно вырвать слова из текста, при этом соблюсти кое-какую логику на спецсимволах, чтобы ловить минус только как дефис или например точки и запятые в числах, или даты в разных форматах, но при этом более-менее хорошо отделять пунктуацию.
Короче, регулярка в порядке — лезем в джаву. Читать полностью »
Собственный Security Realm в GlassFish
2012-09-27 в 8:13, admin, рубрики: glassfish, java, security, метки: glassfish, java, security Ни для кого не секрет что сервера приложений существуют для того чтобы снять некоторую часть работы с разработчика и возложить её на уже готовые механизмы. В частности механизм аутентификации в сервере приложений Glassfish можно организовать с помощью так называемых Security Realms. Существуют несколько встроенных вариантов, такие как аутентификация через СУБД, LDAP, PAM, Certificate и обычное чтение из файла. Однако они могут нас не устроить ввиду своей ограниченности (LDAP, например, может работать только с одним наперед заданным доменом). Поэтому мы и рассмотрим создание собственного security realm’а.
Читать полностью »