Рубрика «java» - 314

Наверное многие из Вас работают с Maven. Если так, то полагаю каждый из Вас ежедневно собирает свой проект по несколько раз, особенно если Вы сейчас в активной фазе разработки и изменения затрагивают много модулей. В определенный момент времени проект становится довольно большим и билд с каждым днем начинает выполнятся все дольше и дольше… И вот приходит время, когда пора что-то с этим делать.

Мигрируйте с Maven 2 на Maven 3

Вы еще используете maven2? Странно. Одна только миграция на 3-ю версию может значительно ускорить процесс сборки. В моем проекте переход на Maven 3 дал прирост в скорости сборки на 10%. Вероятней всего за счет каких-то фиксов и оптимизаций, что были сделаны в новой версии (так как заявляют разработчики количество кода было существенно уменьшено и сильно отрефакторено). Миграция займет у Вас несколько минут и в большинстве случаев будет безболезненной. Хотя есть шанс, что некоторые конфигурационные файлы все же придется подправить.

Используем ядра и дополнительные потоки

В Maven 3 есть замечательная опция:

mvn -T 4 clean intall
mvn -T 2C clean install

В первом случае мы явно указываем, что хотим запустить процесс сборки на 4 потока. Во втором случае мы указываем, что на каждое ядро должно быть выделено по 2 потока для процесса сборки. Это одна из новых фич нового мавена — Parallel Builds. Эта фича анализирует граф зависимостей Вашего проекта
и распихивает модули по разным потокам, сборка которых может быть выполнена параллельно.
Для моего текущего проекта скорость сборки со вторым параметром (-T 2C) ускорилась на 20%. Правда тут есть один минус. Количество ресурсов, что будет потребляться для билда может значительно вырасти. В моем случае это +30% к потребляемой памяти.
Хочу сразу обратить внимание — если связанность модулей в Вашем проекте очень низкая — то
скорость сборки этой опцией можно увеличить на порядок.
Это, кстати, повод задуматься об Вашей архитектуре проекта. Ведь если билд занимает довольно много времени, то небольшой рефакторинг поможет уменьшить эту цифру. Хотя, конечно, это все очень индивидуально.
Вообще разработчики заявляют, что прирост в скорости сборки может быть 20-50%.
Читать полностью »

На этой неделе известный набор эксплойтов Blackhole обновился до версии 1.2.3 и в его составе появился новый эксплойт для Java на уязвимость CVE-2012-0507 (Java/Exploit.CVE-2012-0507). Первыми обратила внимание общественности на актуальность этой уязвимости компания Microsoft, которая опубликовала в своем блоге сообщение об интересном способе выполнения Java-кода за пределами песочницы JRE (Java Runtime Environment).

Первые упоминания о боевом эксплойте для этой уязвимости появились от компании Immunity, которая выпустила специальный модуль для своего продукта Immunity CANVAS еще в начале марта 7.03.2012. Эта уязвимость была закрыта 15 февраля в рамках критического обновления от Oracle. Буквально вчера поздним вечером, на момент подготовки этой публикации, появился публичный эксплойт для CVE-2012-0507 в составе Metasploit Framework. Отдельно стоит отметить его кроссплатформенность и возможность эксплуатации на системах Windows, Linux, Solaris и OSX. Последняя особенно интересна в свете увеличения количества вредоносных программ для нее, распространяющихся в том числе и посредством эксплуатации Java уязвимостей. Эксплойт из Metasploit Framework выглядит очень похожим на тот, что был обнаружен в обновленном Blackhole и складывается впечатление, что он был рипнут по большей части оттуда…

В последнее время я часто писал об эксплойтах для Java и они действительно в последний год самые пробивные в инцидентах массового распространения вредоносных программ. Разработчики наборов эксплойтов, таких как Blackhole, используют только так называемые 1-day уязвимости, т.е. уже содержащие официальное исправление от разработчиков. Потому что использование 0-day слишком дорого для их целей и совершенно себя не окупает, но бывают исключения, когда 0-day попадает на паблик вместе с PoC. Использование уязвимости нулевого дня на данный момент можно чаще всего увидеть в целенаправленных атаках. Кстати, довольно занимательный пост о ценах на 0-day и карме ресечеров можно почитать тут.

Вернемся к нашему эксплойту, на этой неделе снова было замечено распространение Win32/TrojanDownloader.Carberp через популярные веб-ресурсы, посредством внедрения iFrame конструкций для перенаправления на ресурс с набором эксплойтов.

Первым нам попался ресурс lifenews.ru, на котором содержался следующий iFrame:

image

Как видно из внедренного кода, сразу происходила атака именно CVE-2012-0507, а доменное имя, на котором был расположен Blackhole,<Читать полностью »

Данная статья является переводом документа «2010 internship technical report» библиотеки Cofoja. Документ раскрывает причины возникновения библиотеки и отвечает на вопросы критиков, которые можно встретить на Хабре в статьях посвященных данной библиотеки. Статья служит для распространения и понимании реализаций парадигмы Design By Contracts или Контрактного Программирования.
Читать полностью »

В этой статье я расскажу об одном из средств обеспечения версионности схем и управления миграциями БД — библиотеке Flyway. С поблемой версионности схемы базы данных рано или поздно приходится сталкиваться разработчикам любого приложения, опирающегося на СУБД. Увы, иногда эта проблема принимается в рассмотрение слишком поздно — например, если вопрос о внесении изменений в структуру базы встаёт, когда приложение уже находится в эксплуатации. Но и на этапе разработки контроль схемы базы данных причиняет не меньше проблем, чем все прочие аспекты версионности приложения: в отсутствие чёткой системы управления миграциями локальная, стендовая и эксплуатационная базы могут быстро «разъехаться», не предоставляя при этом никакой информации относительно своего текущего состояния.

Читать полностью »

в 9:20, , рубрики: applet, java, метки: ,

С утра Firefox порадовал предупреждением:

image

Предлагается отключить Java Plug-in (то что требуется для запуска Java-апплетов в браузере)
Читать полностью »

История игры Триплекс, или сколько нужно квадратиков чтобы сломать голову Чтобы освоить азы Web программирования, я решил написать HTML5 игру — головоломку под названием Triplex (www.quadpuzzle.ru). Написать игру для себя и для друзей — полдела. Захотелось довести проект до ума, сделав из игры продукт для широкого круга пользователей. Насколько получилось — судить вам.

    Правила игры просты. На игровом поле разложены фигуры из квадратиков. Цель игры — уложить все фигуры в указанный прямоугольник. Вращать можно только одну фигуру, помеченную кружком, если она есть. Решение в каждой задаче существует и единственное.

                        История игры Триплекс, или сколько нужно квадратиков чтобы сломать голову История игры Триплекс, или сколько нужно квадратиков чтобы сломать голову

Читать полностью »

image

Вчера на сайте JetBrains стала доступна для скачивания новая версия среды разработки на Java – IntelliJ IDEA 11.1.

Как всегда IntelliJ IDEA доступна в двух версиях: Ultimate – полная платная версия, а также Community Edition – бесплатная Open-source версия. Владельцы лицензии IntelliJ IDEA 11 Ultimate имеют возможность бесплатного обновления до 11.1.

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

image Хотим сделать небольшой анонс: технический директор российского подразделения Jelastic Дмитрий Лазаренко выступит с докладом на одной из самых больших российских профессиональных конференций разработчиков в области веб-технологий — РИТ++ 2012. Доклад состоится 3 апреля во втором зале конференц-центра «Digital October» (Берсеневская набережная, дом 6, 3 этаж) на 12.30. Мы хотим с вами поделится самым сокровенным: «Как мы строили Jelastic — облачную платформу (PaaS) нового поколения». Дмитрий откроет занавес над архитектурой Jelastic.
Вы узнаете:

  • с какими нетривиальными проблемами нам пришлось столкнуться и как мы их решали для того, чтобы обеспечить высокую производительность и масштабируемость;
  • о применяемых нами методами автоматического развертывания и централизованного обновления как самой платформы, так и пользовательских окружений, одновременно в нескольких датацентрах;
  • о механизмах непрерывного обеспечения сбалансированности нагрузки внутри датацентра;
  • о процессе выбора оптимальной технологии виртуализации для задач java-хостинга.

image Фото докладчика поможет вам быстрее его найти среди множества других участников конференции. У вас будет возможность пообщаться с членом нашей команды лично и узнать все интересующие вас подробности о нашей платформе. С нетерпением ждем встречи!Читать полностью »

26 Марта вышел новый релиз библиотеки Apache POI — версии 3.8.

Apache POI — это библиотека на языке Java для чтения и записи документов Microsoft Office,
таких как Excel, PowerPoint и Word. С помощью POI вы можете программно создавать новые
или изменять существующие документы, индексировать текст, обрабатывать вложенные
(embedded) объекты (документы, картинки и т.д.) и много чего другого.

Предыдущая стабильная версия Apache POI вышла полтора года назад, в Октябре 2010 года,
поэтому изменений накопилось порядочно. Исправлено более 200 багов, добавлены многочисленные
новые фичи и улучшена общая производительность.

Читать полностью »

В одной из крупных гос. компаний ведем небольшим коллективом разработку САПР на платформе Java
Проекту уже полтора года.
До недавнего времени все дружно использовали IDE Netbeans. Периодически радовались новым версиям среды.
И вот ваш покорный слуга увидел релиз Netbeans 7.1. Захотелось попробовать, посмотреть новинку.
Сначала обновил себе (Slackware Linux 12.2). Запустил, открыл проект, собрал (скомпилировал).
Все прошло нормально. Посоветовал коллеге (Windows 7), сам продолжил работу в новой версии.

Тут началось невообразимое. Сборка проекта прошла нормально, а при его выполнении появились странные Exception-s. При щелчке на Exception редактор Netbeans открыл пустое место в коде, где был вообще комментарий, а не какой-либо метод.
При этом сборка того-же проекта вручную с помощью Ant и последующий запуск из командной строки дали абсолютно корректный результат.

Был сделан вывод, что Netbeans 7.1 запускает какой-то собственный кэш, а не только что скомпилированные Java-классы!
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js