JAVA → Непрерывный мониторинг JVM с помощью Zabbix
Предположим, у вас есть большое приложение написанное на Java. Это может быть web-сервлет размещенный в контейнере или standalone-сервис. В процессе разработки (да и во время эксплуатации) возникает необходимость отслеживать процессы, протекающие в JVM: работу garbage collector, использование памяти, жизненный цикл потоков, а так же иные специфичные для вашего проекта показатели по средствам MBean. Самый простой вариант — использовать профилировщик. Но увы, проблемы не случаются по расписанию, и невозможно заранее знать, когда нужно подключить профилировщик, а держать его постоянно включенным тоже не вариант. В таких случаях идеальное решение — непрерывный мониторинг. О нем и пойдет речь. Но для начала пара слов о классической профилировке.
JAVA → Объекты Java
Под впечатлениями от habrahabr.ru/blogs/java/134102/.
Недавно мне приходилось немного поковыряться внутри JVM. Довольно интересный опыт. Текст в вышеупомянутом топике не совсем сходится с моим опытом, но я не считаю себя обладателем абсолютной истины. Ниже я поделюсь с читателями небольшой частью моих экспериментов, которые касаются непосредственно объектов Java.
Недавно мне приходилось немного поковыряться внутри JVM. Довольно интересный опыт. Текст в вышеупомянутом топике не совсем сходится с моим опытом, но я не считаю себя обладателем абсолютной истины. Ниже я поделюсь с читателями небольшой частью моих экспериментов, которые касаются непосредственно объектов Java.
Подкасты → «Разбор полетов» — episode 3 — Горький вкус загрузки классов
Я и коллега aib представляем вашему вниманию третий выпуск уже ставшего популярным в узких кругах, разговорного IT-тематического подкаста «Разбор Полетов».
В этом выпуске:
В этом выпуске:
- Новость для разминки — http://www.infoq.com/news/2011/12/HP-Open-Source-webOS
- Сделай свой гитхаб на Java с преферансом и поэтессами http://gitblit.com/
- Мы строили строили и наконец получили… http://community.jboss.org/wiki/JBossClassLoaderHistory
прослушан 228 раз
Блог компании Jelastic → Jelastic PaaS — статистика использования баз данных, серверов и JVM в ноябре
Мы продолжаем делиться с вами статистикой использования программного стека на платформе Jelastic. Какими же были предпочтения девелоперов в прошлом месяце?
Начнем с SQL баз. Как и прежде MySQL остается неоспоримым лидером. PosgreSQL занимает второе почетное место, за ней следует MariaDB. Единственная среди наших NoSQL баз, MongoDB показала очень хороший результат в ноябре.
Если сравнить текущие данные с октябрьскими, то можно сделать вывод, что количество фанов каждой из баз практически не изменилось.
Ситуация в регионах (Европа и Северная Америка).
&chts=000000,12&chs=500x200&chf=bg,s,ffffff|c,s,ffffff&chxt=x,y&chxl=0:|MySQL|PostgreSQL|MariaDB|MongoDB|1:|0|10|20|30|40|50&cht=bvg&chd=t:100.00|90.00,34.00,36.00,40.00|88.00,24.00,48.00,40.00|100.00&chdl=|Europe|North+America|&chco=ffffff,0000ff,ff0000,ffffff&chbh=18)
Текущие цифры
Статистика использования баз данных MySQL, MariaDB, PostgreSQL и MongoDB
Начнем с SQL баз. Как и прежде MySQL остается неоспоримым лидером. PosgreSQL занимает второе почетное место, за ней следует MariaDB. Единственная среди наших NoSQL баз, MongoDB показала очень хороший результат в ноябре.
Если сравнить текущие данные с октябрьскими, то можно сделать вывод, что количество фанов каждой из баз практически не изменилось.
Ситуация в регионах (Европа и Северная Америка).
Текущие цифры
Блог компании Ciklum → Сиклум Java Субботник возвращается
Всем поклонникам Java, всем, кто уже активно использует или только хочет работать с Java — это мероприятие мы организуем для вас. По многочисленным просьбам, которые высказывались после летнего Java Субботника, и в особенности после Сиклум Java Субботников, прошедших в Одессе и Минске. Мы еще раз в этом году проведем киевский Сиклум Субботник по Java-технологиям. По традиции, мы приглашаем всех желающих бесплатно посетить Сиклум Java Saturday 10 декабря в нашем киевском офисе.
В этот раз 10 декабря мы соберемся, чтобы обсудить что нового, интересного или полезного можно найти в старой доброй Java. Программа субботника еще формируется, поэтому, если вам есть что рассказать, обращайтесь к координатору мероприятия — Инне Туевой, она всегда поможет.
В этот раз 10 декабря мы соберемся, чтобы обсудить что нового, интересного или полезного можно найти в старой доброй Java. Программа субботника еще формируется, поэтому, если вам есть что рассказать, обращайтесь к координатору мероприятия — Инне Туевой, она всегда поможет.
JAVA → New day — new language!
Xtend
Xtend представляет собой статически типизированный язык программирования от команды Eclipse, который обладает тесной интеграцией и работает поверх JVM. Его корни лежат в языке программирования Java (
- Выведение типов — нет необходимости постоянно указывать сигнатуры типов.
- Полная поддержка Java Generics — включая все соответствия и правила приведения.
- Замыкания — приятный синтаксис для анонимных классов.
- Перегрузка операторов — позволяет писать более выразительный код.
- Улучшенные switch выражения — на основе типов и приведения.
- Каждое выражение имеет значение (en. «No statements — Everything is an expression»).
- Шаблоны — с поддержкой пробелов.
- Поддержка расширений — JSR-330.
- Доступ к свойствам — синтаксический сахар над get/set.
- Полиморфный вызов методов.
- Транслируется в Java код, а не Bytecode — корректная работа с кодом, предназначенным для пратформ, таких как Android или GWT.
У разработчиков не стоит цели заменить Java. Библиотека Xtend является тонким слоем над JDK и работает равносильно с Java и Xtend. Разумеется, разработчики предоставляют современную IDE на основе Eclipse.
Lisp → Будущее Лиспа
Это перевод статьи Стивена Дегутиса.
Будущее Lisp
В последнее время я часто стал задумываться о существующих диалектах Lisp и о том, в каком направлении мы двигаемся. В частности, я рассматривал возможность написания очередного диалекта Lisp, и те сферы, в которых бы он пригодился.
Если вы еще не знакомы с ним, Lisp является замечательным семейством языков; его чрезвычайно минималистический синтаксис позволяет нам думать практически на уровне алгоритмов, не заморачиваясь по поводу неочевидного синтаксиса или каких-либо языковых рамок.
Традиционно, существует Scheme, который полезен разве что для преподавания в вузах из-за скудности поддерживаемых библиотек, есть также Common Lisp, который представляет из себя ужасную, страшную неразбериху (представьте C++, но с целым морем скобок).
Будущее Lisp
В последнее время я часто стал задумываться о существующих диалектах Lisp и о том, в каком направлении мы двигаемся. В частности, я рассматривал возможность написания очередного диалекта Lisp, и те сферы, в которых бы он пригодился.
Если вы еще не знакомы с ним, Lisp является замечательным семейством языков; его чрезвычайно минималистический синтаксис позволяет нам думать практически на уровне алгоритмов, не заморачиваясь по поводу неочевидного синтаксиса или каких-либо языковых рамок.
Положение на рынке
Традиционно, существует Scheme, который полезен разве что для преподавания в вузах из-за скудности поддерживаемых библиотек, есть также Common Lisp, который представляет из себя ужасную, страшную неразбериху (представьте C++, но с целым морем скобок).
Twitter → Миграция с Ruby
Уверен, что на Хабре обитает огромное число юзеров, облизывающихся при чтении описаний технологий и архитектур, используемых в молодых, динамичных и, что наиболее важно, быстрорастущих в своей пользовательской базе, компаний. К сожалению, относительно небольшое количество наших соотечественников работает в таких компаниях по всему миру, а те, кто все-таки трудится во внутренней кухне, связаны различными условиями трудовых договоров или банальным NDA, запрещающим сливать публике самые интересные подробности. Тем не менее, я лично знаю большое количество специалистов, особенно заинтересованных в высоких нагрузках и не знающих, где получить эту информацию из первых рук.Эту проблему можно решить единственным способом — предоставить слово кому-то из менеджеров отдела разработки или любому другому человеку, занимающему адекватно высокий пост и разбирающемуся в разработке, а после — тянуть, тянуть из него все подробности. Примерно так поступили в Information Queue, опросив одного из инженеров Twitter'а — Эвана Уивера (Evan Weaver) о том, почему компания так долго развивавшаяся на «рельсах», решила переключиться на использование других технологий и какие это имело последствия.
В этом материале я буду всецело ссылаться на слова Эвана, объясняющего суть миграции и выгод, получаемых от использования JVM, в первую очередь — производительности и, все той же, масштабируемости. Но как мы узнаем чуть позже, решение было так же продиктовано желанием изолировать отдельные сервисы, а так же слегка изменить общую архитектуру продукта.
Итак, история начинается в прошлом году, когда Twitter анонсировал изменения в архитектуре бэкэнда (message queue), а так же заявил о намерении переписать Twitter Storage на Scala, а весной началась работа по переписыванию всего поискового движка. Как часть этих изменений, БД MySQL (лежавшая в основе поиска) была заменена Lucene. И, наконец, совсем недавно команда разработчиков заявила о замене Ruby on Rails в области поиска — на его место встал Java-сервер, который они сами называют Blender. Результатом этой замены стало трехкратное снижение задержки при выполнении поискового запроса.
JAVA → Groovy за 15 минут – краткий обзор
Groovy — объектно-ориентированный язык программирования разработанный для платформы Java как альтернатива языку Java с возможностями Python, Ruby и Smalltalk.
Groovy использует Java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим Java кодом и библиотеками. Язык может использоваться в любом Java проекте или как скриптовый язык.
Возможности Groovy (отличающие его от Java):
— Статическая и динамическая типизация
— Встроенный синтаксис для списков, ассоциативных массивов, массивов и регулярных выражений
— Замыкания
— Перегрузка операций
[http://ru.wikipedia.org/wiki/Groovy]
Более того, почти всегда java-код — это валидный groovy-код.
Groovy использует Java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим Java кодом и библиотеками. Язык может использоваться в любом Java проекте или как скриптовый язык.
Возможности Groovy (отличающие его от Java):
— Статическая и динамическая типизация
— Встроенный синтаксис для списков, ассоциативных массивов, массивов и регулярных выражений
— Замыкания
— Перегрузка операций
[http://ru.wikipedia.org/wiki/Groovy]
Более того, почти всегда java-код — это валидный groovy-код.
Я пиарюсь → «Виртуальные машины» — пятидневный семинар в Петербурге. 25-29 апреля. Участие бесплатное
Компания Oracle приглашает вас принять участие в научно-техническом семинаре «Виртуальные машины».
Семинар предназначен для студентов старших курсов, аспирантов, научных сотрудников и инженеров соответствующих специальностей. Предполагается, что аудитория знакома с виртуальными машинами, компиляторами, сборкой мусора и языком Java. Семинар проводит ведущий инженер, к.ф.-м.н. Олег Плисс.
Ориентировочный план семинара
1. Обзор и история развития виртуальных машин. Архитектура JVM.
2. Интерпретация и компиляция.
3. Управление памятью.
4. Многопоточность, синхронизация, вызовы библиотечных функций.
5. Многозадачность, кросскомпиляция, ромизация, двоичная конверсия.
Объем тем очень разный. Поскольку это именно семинар, то формат предполагает высокую степень интерактивности, и длительность и глубина рассмотрения тем зависит от проявленного публикой интереса.
Семинар пройдет в офисе компании Оракл в Санкт-Петербурге 25-29 апреля. Начало в 13:00 каждый день.
Адрес: Санкт-Петербург 10я Красноармейская 22А, 2 этаж (2022)
Участие бесплатное
По всем вопросам можно обращаться ко мне через ХабраПочту или Елене Блохиной tinyurl.com/43pnynr
Семинар предназначен для студентов старших курсов, аспирантов, научных сотрудников и инженеров соответствующих специальностей. Предполагается, что аудитория знакома с виртуальными машинами, компиляторами, сборкой мусора и языком Java. Семинар проводит ведущий инженер, к.ф.-м.н. Олег Плисс.
Ориентировочный план семинара
1. Обзор и история развития виртуальных машин. Архитектура JVM.
2. Интерпретация и компиляция.
3. Управление памятью.
4. Многопоточность, синхронизация, вызовы библиотечных функций.
5. Многозадачность, кросскомпиляция, ромизация, двоичная конверсия.
Объем тем очень разный. Поскольку это именно семинар, то формат предполагает высокую степень интерактивности, и длительность и глубина рассмотрения тем зависит от проявленного публикой интереса.
Семинар пройдет в офисе компании Оракл в Санкт-Петербурге 25-29 апреля. Начало в 13:00 каждый день.
Адрес: Санкт-Петербург 10я Красноармейская 22А, 2 этаж (2022)
Участие бесплатное
По всем вопросам можно обращаться ко мне через ХабраПочту или Елене Блохиной tinyurl.com/43pnynr