Анонс первой встречи Java User Group EKB

Привет, Хабр!

Несмотря на то, что в Екатеринбурге на java разрабатывает далеко не одна компания, java комьюнити отсутствует. Но когда тебе чего-то не хватает, то нужно просто взять и сделать это. Так, просмотрев очередную встречу JUG.ru, окончательно стало ясно, что Екатеринбургу нужно место, где java разработчики могут встретиться, обсудить новости java технологий, поговорить про внутренности java, да и просто пообщаться!

Так родилось JUG.EKB — cообщество Java разработчиков Екатеринбурга.
Читать дальше →

Как понять NullPointerException

Эта простая статья скорее для начинающих разработчиков Java, хотя я нередко вижу и опытных коллег, которые беспомощно глядят на stack trace, сообщающий о NullPointerException (сокращённо NPE), и не могут сделать никаких выводов без отладчика. Разумеется, до NPE своё приложение лучше не доводить: вам помогут null-аннотации, валидация входных параметров и другие способы. Но когда пациент уже болен, надо его лечить, а не капать на мозги, что он ходил зимой без шапки.

Итак, вы узнали, что ваше приложение упало с NPE, и у вас есть только stack trace. Возможно, вам прислал его клиент, или вы сами увидели его в логах. Давайте посмотрим, какие выводы из него можно сделать.
Читать дальше →

[Из песочницы] Знакомство с Kotlin и сборка jar при помощи maven

Это пост заметка о том, как я познакомился с языком Kotlin, какие использовал для этого ресурсы, инструменты, и как я собрал его в jar и запустил в консоли.

В общем-то я PHP программист, немного заком с Java. На днях решил посмотреть Kotlin. Это менее строго типизированный язык от JetBrains до того, что он, по сути, статически типизированный. В этом его основное принципиальное отличие от Java, плюс Kotlin имеет свой приятный синтаксис. Kotlin может быть скомпилирован в JVM или JavaScript.

Приступим к знакомству. Для начала понадобится IDE Idea.
Читать дальше →

JSR 133 (Java Memory Model) FAQ (перевод)

Добрый день.
В рамках набора на курс «Multicore programming in Java» я делаю серию переводов классических статей по многопоточности в Java. Всякое изучение многопоточности должно начинаться с введения в модель памяти Java (New JMM), основным источником от авторов модели является «The Java Memory Model» home page, где для старта предлагается ознакомится с JSR 133 (Java Memory Model) FAQ. Вот с перевода этой статьи я и решил начать серию.
Я позволил себе несколько вставок «от себя», которые, по моему мнению, проясняют ситуацию.
Я являюсь специалистом по Java и многопоточности, а не филологом или переводчиком, посему допускаю определенные вольности или переформулировки при переводе. В случае, если Вы предложите лучший вариант — с удовольствием сделаю правку.
Этот статья также подходит в качестве учебного материала к лекции «Лекция #5.2: JMM (volatile, final, synchronized)».
Ну и да, приходите учиться ко мне!:)


JSR 133 (Java Memory Model) FAQ

Jeremy Manson и Brian Goetz, февраль 2004

Содержание
Что такое модель памяти, в конце концов?
Другие языки, такие как C++, имеют модель памяти?
Что такое JSR 133?
Что подразумевается под «переупорядочением» (reordering)?
Что было не так со старой моделью памяти?
Что вы подразумеваете под «некорректно синхронизированы»?
Что делает синхронизация?
Как может случиться, что финальная поля меняют значения?
How do final fields work under the new JMM?
Что делает volatile?
Решила ли новая модель памяти «double-checked locking» проблему?
Что если я пишу виртуальную машину?
Почему я должен беспокоиться?
Читать дальше →

Так ли прост строковый оператор +

Введение

Строковый тип данных является одним из фундаментальных типов, наряду с числовыми (int, long, double) и логическим (bool). Тяжело себе представить хоть, сколько либо полезную программу, не использующую данный тип.

На платформе .NET строковый тип представлен в виде неизменяемого класса String. Кроме того, он является сильно интегрированным в общеязыковую среду CLR, а так же имеет поддержку со стороны компилятора языка C#.

В этой статье я бы хотел поговорить о конкатенации, операции, которая выполняется над строками так же часто, как операция сложения над числами. Казалось бы, о чем тут можно говорить, ведь все мы знаем о строковом операторе +, но как оказалось, есть у него свои тонкости.
Читать дальше →

[Из песочницы] Сайт Ростелеком под капотом

Пока свежи воспоминания, хочу рассказать о том как я участвовал в поддержке портала одной крупной телекоммуникационной компании России.

Пять лет назад кто-то в Москве озаботился состоянием телекоммуникационной отрасли в РФ. Обнаружилось, что на основе государственного имущества приближенныепредприниматели строят бизнес, но забывают делиться. Кроме того в стратегическую отрасль стала проникать офшоризация, а с ней и иностранные диверсантыинвесторы. Было принято решение вернуть все региональные компании под контроль и присоединить к Ростелеком.

До этого в стране работало 7 крупных региональных компаний телекоммуникационных услуг. У каждой компании был выстроен процесс работы с клиентами, подрядчиками. У каждой был свой сайт, биллинг, какой-то CRM и т.д. После объединения пришло понимание, что с этим нужно что-то делать. В качестве базы был взят опыт ОАО «Уралсвязьинформ», который на тот момент уже объединял 6 областных компаний, имел успешный опыт по интеграции разрозненных сервисов и развитую техническую службу.
Читать дальше →