Проводя уже около 6 лет собеседования с Java-разработчиками заметил, что из приходивших кандидатов вообще никто не знает, что можно штатными средствами JDK удалённо мониторить состояние JVM с контейнерами сервлетов.
Поэтому далее пошаговый рецепт, как настроить и использовать эту замечательную возможность
Читать полностью »
Рубрика «java» - 281
Рецепт настройки удалённого мониторинга контейнеров Tomcat и Jetty штатными средствами JDK
2012-07-22 в 15:34, admin, рубрики: java, jetty, jmx, tomcat, метки: java, jetty, jmx, monitoring, tomcatJava2Js: Инструменты и шаблоны
2012-07-21 в 16:07, admin, рубрики: java, javascript, jslint, netbeans, qunit, метки: javascript, jslint, netbeans, qunit
Кажется, что Js — это «просто скриптовый язык» на котором я по-быстрому добавлю нужные фичи на странице, не сильно заботясь о качестве кода. Когда-то это было верным. Даже текущие стандарты Js и Html в целом располагают к этой философии.
Но времена изменились! Теперь на Js создают сложные и запутанные веб-приложения, которые просто не могут не столкнуться с проблемами своих «старших братьев» (серверных приложениях написанных на Java, C# и т.д.). А значит, чтобы не погрязнуть в тысячах строк «спагетти-кода», требуется отказаться от философии «просто скрипт». Нужно воспринимать Js как инструмент, с которым требуется создать сложную, модульную и масштабируемую систему.
В рамках новой философии «серьезного языка, для серьезных задач» я хочу начать цикл небольших статей о мире Js со стороны Java разработчика. Начнем с инструментов и различных шаблонов разработки.
О том как я имя файла из С++ в Java передавал
2012-07-19 в 17:10, admin, рубрики: c++, indesign, java, macosx, Программирование, метки: c++, indesign, java, macosx
В кроссплатформенных приложениях чего только не встретишь. Или напишешь. Вот, намедни родили против шерсти очередного ежика наступили на заботливо разложенных грабель, на сей раз под маком.
Путевые заметки, или вкус кофе для слонов
2012-07-19 в 6:00, admin, рубрики: java, postgresql, взаимодействие, десктопные приложения, разработка, метки: java, postgresql, взаимодействие, десктопные приложения
Уже догадались, о чем будет статья?
Третий год занимаюсь разработкой крупной системы на Java с использованием СУБД PostgreSQL. Система десктопная, клиент-серверная. Опытного Senior-Java-Developer-а у нас нет, поэтому приходится думать самим. Думать, строить, ломать, строить заново, опять ломать…
За время работы накопился некоторый опыт как по организации непосредственно работы с БД, так и по взаимоувязыванию этих платформ, о котором и хочу рассказать в этой статье.
Опишу выборочно некоторые вопросы, с которыми мы столкнулись при разработке и которые решили.
Читать полностью »
Как я вставлял Java 7 в работающее приложение, и что пришлось изобрести для С runtime
2012-07-18 в 20:39, admin, рубрики: c++, java, jni, windows, Программирование, метки: c++, java, jni, windows
Однажды, в студеную зимнюю пору, в одно старое приложение на С++, успешно работавшее до этого годами, пришлось вставить новый Java runtime 7 вместо отлично работавшего Java 6. Ничто не предвещало, и вдруг.
Код в общем-то очевиден и прост — немного JNI, и вот он — больной зуб. Приведу код только для Windows, т.к. чудеса эквилибристики под маком не потребовались.
«Разбор полетов» — Episode 23 — И ты, Брут?
2012-07-17 в 16:42, admin, рубрики: Google, interview, java, leveldb, подкасты, разбор-полетов, метки: Google, interview, java, leveldb, разбор-полетов
В очередном выпуске правильного подкаста главного зачинателя заменил другой популярный подкастер!Читать полностью »
Физика Robocode
2012-07-17 в 10:25, admin, рубрики: game development, java, Robocode, обучение, Спортивное программирование, метки: Robocode, обучение Данный материал изначально был подготовлен в качестве раздела статьи “Первые шаги в Robocode”, но я решил вынести его, т.к. он значительно увеличивал размер и без того большой первоначальной статьи и не является базовым и необходимым для осуществления первого шага. Если вы сразу заинтересовались вторым шагом или постепенно доросли до него, то прошу под кат.
Читать полностью »
Первые шаги в Robocode
2012-07-17 в 9:53, admin, рубрики: game development, java, Robocode, введение, Спортивное программирование, метки: Robocode, tutorial, введениеЯ пишу эту статью по просьбам в комментариях к статье “Как я стал чемпионом Robocode” и продолжая начатое в ней дело по привлечению внимания к Robocode русскоговорящих разработчиков. Robocode — это игра для программистов, в которой задача заключается в разработке системы управления танком. Для затравки приведу несколько роликов, чтобы показать о чём вообще пойдёт разговор:
ZooKeeper или пишем сервис распределенных блокировок
2012-07-17 в 0:36, admin, рубрики: java, nosql, zookeeper, высокая производительность, метки: zookeeperdisclaimer Так получилось, что последний месяц я разбираюсь с ZooKeeper, и у меня возникло желание систематизировать то, что я узнал, собственно пост об этом, а не о сервисе блокировок, как можно было подумать исходя из названия. Поехали!
При переходе от многопоточного программирования к программированию распределенных систем многие стандартные техники перестают работать. Одной из таких техник являются блокировки (synchronized), так как область их действия ограничена одним процессом, следовательно, они не только не работают на разных узлах распределенной системы, но так же не между разными экземплярами приложения на одной машине; получается, что нужен отдельный механизм для блокировок.
От распределенного сервиса блокировок разумно требовать:
- работоспособность в условиях моргания сети (первое правило распределенных систем —
никому не говорить о распределенных системахсеть ненадежна) - отсутствие единой точки отказа
Создать подобный сервис нам поможет ZooKeeper
В википедии написано, что ZooKeeper — распределенный сервис конфигурирования и синхронизации, не знаю как вам, но мне данное определение мало что раскрывает. Оглядываясь на свой опыт, могу дать альтернативное определение ZooKeeper, это распределенное key/value хранилище со следующими свойствами:
- пространство ключей образует дерево (иерархию подобную файловой системе)
- значения могут содержаться в любом узле иерархии, а не только в листьях (как если бы файлы одновременно были бы и каталогами), узел иерархии называется znode
- между клиентом и сервером двунаправленная связь, следовательно, клиент может подписываться как изменение конкретного значения или части иерархии
- возможно создать временную пару ключ/значение, которая существует, пока клиент её создавший подключен к кластеру
- все данные должны помещаться в память
- устойчивость к смерти некритического кол-ва узлов кластера
Обзор зарплат программистов Java/C++/C#/Delphi
2012-07-16 в 8:07, admin, рубрики: Delphi, java, salary, survey, Блог компании IT-Доминанта, вакансии, зарплаты, исследование, кадры, обзор, С++, метки: c++, Delphi, java, salary, survey, вакансии, зарплаты, исследование, кадры, обзор, С++ А мы (мы — это рекрутинговая компания IT-Доминанта), продолжаем публиковать результаты нашего исследования рынка заработных плат в IT индустрии.
Очередной пост мы решили посвятить:
- Java программистам
- С++ программистам
- C# программист
- Delphi программистам