После перерыва на летние каникулы возобновились встречи московского сообщества Java-разработчиков jug.msk.ru. 30 августа 2016 года в офисе компании КРОК была возможность послушать доклад Алексея Рагозина «Диагностические интерфейсы JVM или как сделать профайлер своими руками». Далее — подробности встречи.
Рубрика «java» - 188
Алексей Рагозин о диагностических интерфейсах JVM на jug.msk.ru
2016-09-04 в 18:34, admin, рубрики: java, JUG, jug.msk.ruНесколько примеров практического использования RxJava
2016-09-04 в 9:18, admin, рубрики: java, javafx, rxjava, параллельное программирование, реактивное программирование, функциональное программированиеRxJava — это реализация ReactiveX для Java — библиотеки для асинхронной обработки потоков данных. Паттерн observable на стероидах, как они сами пишут. В интернете, в том числе на Хабре, есть много «введений в RxJava». Я хочу привести несколько примеров реальных задач. Они не очень сложные, но возможно кто-то увидит какие-то сходства со своими и задумается.
Собственно, задачи:
1. Простое клиентское TCP-соединение. Есть протокол поверх TCP/IP, нужно сформировать сообщение, подключиться к удаленному узлу, если еще не подключился, передать сообщение и прочитать ответ. Плюс обработка ошибок, проверка таймаутов, повтор отправки в случае неудачи. Жестких требований к производительности нет, трафик не большой.
2. Есть двигатель и некоторый датчик. Нужно произвести сканирование — пройтись двигателем по заданной траектории: послать двигатель к точке, дождаться, когда он к ней приедет, снять показания датчика, отобразить точку на графике (в GUI потоке), поехать к следующей точке…
3. Полученные после сканирования данные нужно обработать (условно длительный вычислительный процесс) и засунуть в pdf-отчет (условно длительный процесс ввода-вывода) вместе с изображением графика и данными введенными пользователем (GUI поток).
Читать полностью »
Изучаем OpenGL ES2 для Android Урок №4. Текстуры
2016-09-03 в 14:21, admin, рубрики: java, OpenGL, Texture, texture openGL ES, Программирование, разработка игр, разработка мобильных приложений, Разработка под android, метки: texture, texture openGL ESПрограммное обеспечение для умного дома
2016-09-02 в 7:09, admin, рубрики: .net, android, C#, internet of things, IoT, java, modbus, smart home, smart house, z-wave, zwave, Интернет вещей, Разработка для интернета вещей, умный домВсем добрый день. В качестве хобби написал программу, которую можно использовать как часть системы “умный дом”. Чтобы сразу заинтересовать читателя, продемонстрирую некоторую малую часть сценариев использования ПО:
ООП будущего: Барух Садогурский и Егор Бугаенко о том, как мы будем программировать через 20 лет
2016-09-01 в 7:27, admin, рубрики: fun, java, joker, null, oop patterns, setters and getters, Блог компании JUG.ru Group, оопКонцепция объектно-ориентированного программирования воспринимается разработчиками по-разному: кто-то говорит, что ей уже пора на свалку истории; кто-то кодит и не задумывается о том, что, как и почему он делает; а кто-то пытается работать в «pure OOP» парадигме, переворачивая классические паттерны с ног на голову.
В преддверии Joker 2016 мы попросили Баруха Садогурского обсудить судьбу Java и ООП с Егором Бугаенко. Что из этого получилось, слушайте в аудиоформате или смотрите в видео:
А под катом лежит полная расшифровка интервью со всеми ссылками.
Читать полностью »
Let the Holy War begin: Java vs С++
2016-08-30 в 13:40, admin, рубрики: C, c++, holywar, holywars, java, joker2016, jokerconf, Блог компании JUG.ru Group, Программирование
В преддверии Joker 2016 мы накатали пост про Java Performance, который вызвал бурю эмоций у читателей. Дабы вбросить топлива в вентилятор и попытаться все-таки прийти к какому-то единому решению, мы решили привлечь экспертов из разных «лагерей»:
- Дмитрий Нестерук. Эксперт по .NET, С++ и инструментам разработки, автор курсов по технологиям и математике, квант.
- Андрей Паньгин. Ведущий программист компании Одноклассники, специализирующийся на высоконагруженных бэкендах. Знает JVM как свои пять пальцев, поскольку ранее на протяжении нескольких лет разрабатывал виртуальную машину HotSpot в Sun Microsystems и Oracle. Любит ассемблер и низкоуровневое системное программирование.
- Владимир Ситников. Десять лет работает над производительностью и масштабируемостью NetCracker OS — ПО, используемого операторами связи для автоматизации процессов управления сетью и сетевым оборудованием. Увлекается вопросами производительности Java и Oracle Database.
- Олег Краснов. CTO компании SEMrush и адепт ANSI C.
Что нового в IntellIJ IDEA 2016.3 EAP
2016-08-30 в 11:14, admin, рубрики: IDE, intellij, intellij idea, IntelliJ IDEA 2016.3, java, Блог компании JetBrainsВчера стала доступна IntellIJ IDEA 2016.3 EAP – программа “раннего” доступа к обновлению, запланированному на эту осень.

Для справки. Официально программа называется Early Access Program. На практике это аналог alpha-версии. Обновления появляются в среднем с недельной периодичностью. Каждый желающий может установить дистрибутив, попробовать новые функции и поделиться своим мнением и идеями в трекере.
В этом посте я расскажу о главных нововведениях, которые уже доступны в EAP-билде.
Оптимизируем свои трудозатраты при разработке приложения в Google Material Design
2016-08-28 в 15:04, admin, рубрики: google material design, java, psd, tutorial, ui kit, дизайн интерфейсов, разработка, разработка мобильных приложений, Разработка под android
Данный материал может быть полезен как профессиональным дизайнерам интерфейсов, так и разработчикам, чьи познания в графических пакетах находятся ниже уровня “продвинутого пользователя”.
Итак, перед нами стоит задача: опираясь на готовые решения в открытом доступе, максимально оптимизировать затраченный труд на разработку приложения в стиле Google Material Design.
Читать полностью »
О Legacy-коде без максимализма: что делать
2016-08-26 в 13:45, admin, рубрики: java, joker, joker2016, jokerconf, Блог компании JUG.ru Group, Программирование, разработка
Представьте, что вам дали задачу поправить часть кода. В голове возникнет много мыслей. Кто его написал? Когда? А может он — legacy? Где документация? Давайте попробуем разобраться с «наследием» основательно и со всех сторон. Поможет нам в этом вопросе Андрей Солнцев @asolntsev (http://asolntsev.github.io/), разработчик из таллинской компании Codeborne. Начнём.
— Андрей, вы знакомы с трудами Michael Feathers, например, «Working Effectively with Legacy Code»? В книге акцентируется внимание на важности тестирования и выделяется одно из ключевых отличий legacy от не legacy-кода — это наличие тестов. Вы согласны с этим мнением?
Абсолютно согласен! Скажу больше: юнит-тесты — необходимое, но недостаточное условие. И с юнит-тестами можно навалить так, что сам Геракл не разгребёт.
Что для настоящего джедая мастхав, так это:
- TDD — то есть тесты ДО кода.
- Чистый код (и чистые тесты).
Я очень люблю книгу Robert C. Martin «Clean Code» («Чистый код»). Это для меня настольная библия. Категорически всем советую. Кстати, его блог тоже великолепен.
Синий. Нет! Жёлтый! — или — Дают ли новые языки программирования прирост скорости разработки
2016-08-26 в 12:03, admin, рубрики: C, c++, fortran, java, ассемблер, компиляция, Программирование, трудоёмкость программирования, языки программированияКакой язык использовали для написания самых первых программ для самых первых компьютеров с хранимой программой?
Двоичный машинный язык, конечно.
Почему?
Очевидно потому, что не было символьного ассемблера. Первые программы необходимо было писать двоичным кодом.
Насколько легче писать программы на ассемблере, чем на двоичном машинном языке?
Намного легче.
Можно цифру? Во сколько раз легче?
Ну, блин, ассемблер делает всю тяжелейшую «рутинную» работу для вас. Т.е. он рассчитывает все физические адреса. Он составляет все физические машинные команды. Он обеспечивает невозможность выдачи физически нереализуемых команд, например, адресацию за пределы адресного пространства. И затем он создаёт легко загружаемый двоичный вывод.
Экономия объёмов работы огромная.
Читать полностью »



