Pull to refresh
48
0
Дмитрий Белобородов @dbelob

Пользователь

Send message

«ПК», но не «персональный компьютер»: интервью с программным комитетом Joker

Reading time14 min
Views3.1K


Любому Java-разработчику понятно, сколько важного остаётся незаметным для конечного пользователя. Кнопочки на сайте видны всем — но при взгляде со стороны можно никогда не задуматься о бэкенде, без которого эти кнопочки не работали бы.

А у Java-конференции Joker, как и у любой другой конференции, есть свой «бэкенд». «Фронтендом» можно считать спикеров: они видны всем, их гигантский вклад понятен. Но есть и большая работа, происходящая «за кулисами». Кто следит, чтобы доклады были достойного уровня, и помогает спикерам его достичь? Кто решает, какие темы подходят мероприятию? Кто помогает привлечь зарубежных звёзд?

Программный комитет конференции — это «бэкендеры» программы, и в преддверии Joker мы решили расспросить ПК. Во-первых, так можно увидеть мероприятие со стороны, обычно незаметной участникам. А во-вторых, от интервью есть и конкретная практическая польза: поскольку они уже видели лично все доклады грядущего Joker, могут подсказать, на что обратить внимание.
Читать дальше →

Бонусы Joker 2018: бесплатная онлайн-трансляция, бофы, вечеринка и настолки

Reading time3 min
Views4K


Считаные дни остались до конференции Joker 2018: она пройдет в эту пятницу и субботу, 19-20 октября в Экспофоруме. Вы уже знаете про 42 доклада и сотни участников, но мы подготовили кое-что ещё.

По традиции, прямо на YouTube будет открыта бесплатная онлайн-трансляция. Но только первый день и первый зал. Между докладами будут вестись интервью с ключевыми спикерами конференции.
Ссылка на трансляцию

В бесплатной трансляции вас ждет следующее:
  • Венкат Субраманиам, один из лучших докладчиков в мире Java, выступит с кейноутом;
  • Николай Парлог, известный спикер, блоггер и автор книги The Java Module System, расскажет о фичах Java 11;
  • Гаральд Вендел из TransferWise расскажет о решении проблем транзакционности в микросервисах;
  • Андрей Паньгин из компании Одноклассники феерически расставит все точки над тем, почему Джава жрёт память, и что с этим делать;
  • Тагир Валеев из JetBrains расскажет, как видят pattern matching авторы Java, и какие новые возможности требуются, чтобы этим было удобно пользоваться;
  • «Приключения Сеньора Холмса и Джуниора Ватсона в мире разработки ПО» возвращаются в специальном Joker Edition, а ведут доклад Евгений Борисов и Барух Садогурский.

Подробные описания докладов доступны по ссылке.

Безусловно, конференция — это не только видео, значительная её часть происходит в оффлайне. Для тех, кто пойдёт вживую, хочется напомнить о нескольких дополнительных фишках.
Читать дальше →

Чарльз Наттер о динамических языках в JVM на jug.msk.ru

Reading time2 min
Views3.5K
На очередной встрече московского сообщества Java-разработчиков jug.msk.ru, прошедшей 4 октября 2018 года, Чарльз Наттер рассказал о технологиях, используемых JRuby и другими динамическими языками для JVM.


Читать дальше →

Реактивное программирование с JAX-RS

Reading time10 min
Views6.5K
Всем привет!

Последний в этом году курс «Разработчик Java Enterprise» успешно запущен и у нас остался последний материал по данной теме, которым мы хотим поделиться с вами, где разбирается использование асинхронного подхода и стейджинга для разработки отзывчивых реактивных приложений.

Поехали.

Реактивное программирование сперва звучит, как название зарождающейся парадигмы, но на самом деле, относится к методу программирования, в котором для работы с асинхронными потоками данных используется событийно-ориентированный подход. Основываясь на постоянно текущих данных, реактивные системы реагируют на них путем выполнения ряда событий.
Реактивное программирование следует шаблону проектирования “Наблюдатель”, который можно определить следующим образом: если в одном объекте происходит изменение состояния, то все прочие объекты оповещаются и обновляются соответствующим образом. Поэтому, вместо того, чтобы опрашивать события на предмет изменений, события пушатся асинхронно, чтобы наблюдатели могли их обработать. В этом примере, наблюдатели — функции, которые исполняются, когда событие отправлено. А упомянутый поток данных — фактический наблюдаемый.

Почти все языки и фреймворки используют этот подход в своей экосистеме, и последние версии Java — не исключение. В этой статье я объясню как можно применить реактивное программирование, используя последнюю версию JAX-RS в Java EE 8 и функционал Java 8.

Читать дальше →

Портирование JS на Эльбрус

Reading time11 min
Views33K
Это рассказ про портирование JavaScript на отечественную платформу Эльбрус, выполненное ребятами из компании UniPro. В статье — краткий сравнительный анализ платформ, детали процесса и подводные камни.



В основе статьи — доклад Дмитрия (dbezheckov) Бежецкова и Владимира (volodyabo) Ануфриенко с HolyJS 2018 Piter. Под катом вы найдете видео и текстовую расшифровку доклада.

«Высокий уровень самодисциплины». Джеффри Рихтер о том, как кодить, писать книги и создавать свои компании

Reading time16 min
Views30K

Сегодня в нашей виртуальной студии один из самых известных дотнетчиков — Джеффри Рихтер.

В данный момент он — Partner Software Architect в Microsoft, работающий по направлению Distributed Cloud Apps & Storage. Иначе говоря, человек, который знает об Azure Storage всё.

F.A.Q.

Слишком много текста. О чём это всё?
Чтобы вам было веселей читать, для этой статьи мы придумали более интересную вёрстку. Слева будут говорящие головы, а справа — текст. Если вам уныло листать до интересующей части, то в оглавлении есть анкерные ссылки. В ролях:


Евгений phillennium Трифонов (нетехнические вопросы)
  • Советы разработчикам по созданию компании
  • Комбинирование разных видов деятельности
  • Что читать, что изучать, как писать


Олег olegchir Чирухин (технические вопросы)
  • Зачем Рихтер изучает JS, Golang и Python
  • Стоит ли продолжать писать на C++
  • Эволюция и будущее разработки на платформе Windows, .NET и вообще
  • Захватит ли JavaScript мир, нужна ли типобезопасность
  • Немного о пользе облачных провайдеров
  • Что лучше иметь — личный самолет или личный вертолёт
  • Как всё успевать



Почему эта статья попала в хаб JavaScript?
Только для тех, кому интересно мнение архитектора Azure относительно JS и его позиция в холиваре о типобезопасности. Этот холивар перетекает у нас из интервью в интервью, и конца ему не видно.


Почему эта статья попала в хаб С++?
Изначально Рихтер писал книги про C++. Только для тех, кому интересно мнение архитектора Azure относительно будущего и применимости C++


Джефф стал известен еще в начале 90-х, когда написал книгу о том, как программировать Windows 3.1. Его книга «Programming Applications for Microsoft Windows» стала классикой, позже выпускалась как «Windows via C/C++» и выдержала несколько изданий.

С появлением .NET он написал «CLR via C#» — тоже получилась классика, тоже несколько изданий. В то время он был одним из основателей компании Wintellect и, формально не будучи частью Microsoft, оказался более свободен в оценках. Чем и заработал репутацию крупного независимого эксперта по Windows. Это человек-легенда уровня Чарльза Петцольда и Дона Бокса.



Читать дальше →

[Javawatch Live] История одного pull request. `os.version` в SubstrateVM

Reading time12 min
Views5.1K
Прошел год с тех пор, как удалась предыдущая выходка: опубликовать вместо поста ролик на YouTube. «Стыдный разговор о синглтонах» набрал 7к просмотров на YouTube и вдвое больше на самом Хабре в текстовой версии. Для статьи, написанной в совершенно упоротом состоянии и рассказывающей о древнейшем баяне — это что-то вроде успеха.

Сегодня я всю ночь монтировал новый выпуск. На этот раз тема куда более свежая: история коммита в экспериментальную технологию — SubstrateVM. А вот градус упоротости поднялся на новый уровень.



Очень жду ваших комментариев! Напоминаю, что если вы хотите действительно что-то улучшить в этом посте, то лучше всего зафайлить ишшую на Github. Хотел бы сказать «ставьте лайки и подписывайтесь на новый канал, но ведь все его выпуски и так будут у вас в хабе Java?

Технически: в видео есть одна склейка ближе к концу. Просто я писал несжатое видео, и мой m2 ssd размером всего в пятьсот гигабайт быстро переполнился. А ни один другой жесткий диск не смог выдержать такого напора данных. Поэтому пришлось отключиться на полчаса и изголившись найти дополнительные пятьдесят гигов на запись последних нескольких минут. Это было достигнуто удалением файлов собранного GoogleChrome. Мнение о записывающем софте отписал в ФБ прямо в момент записи, там очень много боли.

Ещё из технически интересного: YouTube почему-то заблокировало мне live streaming. При этом на аккаунте нет ни единого страйка и клейма. Будем надеяться, что это просто косяк, и через 90 дней всё вернут назад.
Текстовая расшифровка хаброкаста

Алексей Зиновьев о BigData + ML на jug.msk.ru

Reading time3 min
Views3.7K
12 июля 2018 года в офисе компании КРОК прошла встреча московского сообщества Java-разработчиков jug.msk.ru, докладчиком на которой был Алексей Зиновьев. Темами встречи были Big Data и машинное обучение (machine learning).


Читать дальше →

Анонс DevOps-конференции DevOops 2018

Reading time9 min
Views5.1K


Прошло уже как минимум несколько лет с тех пор, как слово «DevOps» стало у всех на слуху. Кто только не внедрял его, и чего только не делал.


Между тем, область это весьма неизведанная, таящая в себе множество открытий. Например, в русскоязычном сообществе всё еще не определились с терминологией: кто-то уже сейчас нанимает людей на должность «девопс», а кто-то всегда рассказывает, что «девопс» — это культура и практика, призванная объединить разработку, эксплуатацию и кого-то ещё, поэтому называть так должность некорректно.


Многие ищут ответ в книгах, благо в последнее время их появилось множество. Например, одними из наиболее значимых мне кажутся Devops Handbook, автором которой является наш спикер Джон Виллис, и Google SRE Book, доступная в интернете бесплатно. Однако, читая эти книги, я обнаружил следующую вещь: сухой текст не очень подходит для передачи знаний, очень сильно основанных на реальной работе живых людей. Получается слишком абстрактное знание.


Например, мы берем 14-ю главу, «Managing Incidents». Нам приводят два примера: вначале красочно рассказывается история одного инцидента, с которым разбирались неправильно. Потом рассказывается та же история, но с правильной структурой и хорошим исходом. Хороший исход наступает, если соблюдать важные практики:

Читать дальше →

Руслан Черёмин и Максим Грамин — работа с окружением на jug.msk.ru

Reading time2 min
Views2.6K
Очередная встреча московского сообщества Java-разработчиков jug.msk.ru прошла 7 июня 2018 года. На ней выступили Руслан Черёмин и Максим Грамин. Доклады были посвящены тестированию конфигурации и управлению кодом для баз данных.


Читать дальше →

Виктор Гамов об Apache Kafka на jug.msk.ru

Reading time2 min
Views6.9K
23 апреля 2018 года в московском офисе компании КРОК прошла встреча московского сообщества Java-разработчиков jug.msk.ru, на которой выступил Виктор Гамов. Тема выступления — продукт Apache Kafka.


Читать дальше →

JPoint 2018: разбор полётов

Reading time6 min
Views5.7K
6-7 апреля 2018 года в Москве проводилась Java-конференция JPoint 2018. Далее представлен «разбор полётов» конференции, прошедшей при активной поддержке и участии популярного подкаста Разбор полётов: информация и впечатления о докладах, организации мероприятия, проиллюстрированные большим количеством фотографий.


Читать дальше →

Рустам Мехмандаров и Александр Тарасов — семантические чудеса и автоматизация экспериментов на jug.msk.ru

Reading time2 min
Views2.3K
5 апреля 2018 года, как раз накануне конференции JPoint 2018, прошла очередная встреча московского сообщества Java-разработчиков jug.msk.ru. Рустам Мехмандаров рассказал об опыте решения задач с использованием Apache Jena. Александр Тарасов поведал про использование DSL на основе языка Kotlin для автоматизации экспериментов.


Читать дальше →

Алексей Рагозин о Java Mission Control на jug.msk.ru

Reading time2 min
Views5.6K
13 марта 2018 года прошла первая в этом сезоне встреча московского сообщества Java-разработчиков jug.msk.ru. Алексей Рагозин провёл мастер-класс по использованию Java Mission Control. Как прошла встреча, что именно на ней рассказывалось, как приняли доклад участники — обо всём этом далее.


Читать дальше →

Java с ассемблерными вставками

Reading time11 min
Views26K



Как известно, на любом языке можно писать, как на Java, а первая любовь джависта — это написание Garbage Collectors и JIT Compilers. С этим связано множество восхитительных вопросов, например: каким образом можно из управляемого кода напрямую работать с машинным кодом и ассемблером?


Кроме того, в этой статье будет небольшой пример на C#. В какой-то момент стало понятно, что нельзя всегда изучать одну Java. Рантаймы динамических языков используют общую теорию и на практике работают в рамках похожих проблем. Самый простой способ продвинуть свою работу — посмотреть, как там у соседей, и скопировать себе что-нибудь хорошее.


Теперь про ассемблер и машинный код. Зачем это нужно — вопрос открытый. Например, вы наслушались о Meltdown и хотите написать для него красивое API :-) Ну, и не надо забывать, что Oracle — не боги, поддержку того же AVX-512 добавили только в Девятке, прямое управление аппаратной транзакционной памятью не ложится на язык, часть стандартных методов можно реализовать лучше, чем это сделали в SDK и т.п. — у нас всегда есть с чем покопаться!

Читать дальше →

«Когда ты рассказываешь правдивую историю, ей верят гораздо больше» — Интервью с Олегом Шелаевым, часть 2

Reading time20 min
Views3.8K


Несколько месяцев назад мы встретились с Олегом Шелаевым, Developer Advocate компании ZeroTurnaround (далее — ZT). С тех пор Олег успел стать Java Champion (поздравляем!) и… покинуть ZT. Да, если откладывать интервью в долгий ящик, с героем может случиться разное.

Интервью получилось длинным, поэтому я разбил его на две части. Первую часть я опубликовал на хабре ещё в декабре, а сейчас пришло время для второй части. В ней мы поговорили:

  • о гипотезах и их проверке;
  • о блоге RebelLabs;
  • о разнице между продуктами и услугами;
  • о профилировщике XRebel;
  • о конференции GeekOUT и проекте VirtualJUG;
  • о простых и сложных цепочках в маркетинге.

Вот видео:


Для тех, кто предпочитает читать, а не слушать, ниже — полная расшифровка нашего с Олегом разговора. Приятного вам просмотра или прочтения.

Как устроен dtraceasm в JMH

Reading time6 min
Views6K

В последней версии Java Microbenchmark Harness (JMH) появился новый профайлер — dtraceasm, долгожданный порт perfasm на Mac OS X, который умеет показывать ассемблерный профиль Java-бенчмарка.


Блиц-опрос показал, что не всем понятно, как в принципе возможно, получив на входе Java-метод, на выходе показать ассемблерный листинг скомпилированного метода с самыми горячими инструкциями, их распределением и небольшим профилем вида "А еще 5% времени виртуальная машина провела в методе Symbol::as_C_string(char*, int)".


В процессе портирования perfasm выяснилось, что на самом деле™ все не очень сложно и появилось желание рассказать, как такой профайлер устроен.


Для понимания статьи крайне желательно ознакомиться с JMH, например, посмотрев на примеры его использования.

Читать дальше →

Как я чинил интерактивный логин, или Что там в кишках у //chrome/test/ChromeDriver?

Reading time17 min
Views20K

Эта статья возникла из-за одной моей ошибки и двух багов — по одному в Chromium Headless и ChromeDriver. В результате пришлось собрать всё это из исходников (в статье есть подробнейшая инструкция), отладить цепочку взаимодействия Selenium<->ChromeDriver<->Chromium в отладчике IntelliJ IDEA и Microsoft Visual Studio, покопаться в Java, C++ и JS.


Статья будет интересна тем, кто хочет понять, чем им грозит переход на Selenium + Headless Chrome и как с этим жить. А также всем, кто просто хочет немного поглумиться над несчастным быдлокодером.


Под катом есть пачка скриншотов (трафик!).




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


Вначале напомню названия участвующих продуктов. Их три штуки:


  • Chromium — это браузер. Небрендированная версия Google Chrome, без автообновлений, анальных следящих зондов, но и без несвободных компонентов типа кодеков.
  • Chromium ChromeDriver — это часть Chromium, которая отвечает за управление им с помощью внешних инструментов. Это standalone фронт-сервер (отдельный exe-файл), реализует стандарт W3C WebDriver и использует в качестве бэкенда Chrome DevTools.
  • Selenium и его Selenium Chrome Driver — эта штука предоставляет Java API для управления Хромиумом. Джава тут не принципиальна, на JavaScript и jWebDriver было бы то же самое (а на Puppeteer — возможно, нет, ибо он использует DevTools напрямую).

Всё вместе даёт нам в руки браузер, управляемый с помощью API на Java, JavaScript и так далее.


Вспомнили? Поехали дальше.

Читать дальше →

Анонс конференции Heisenbug 2018 Piter. Make Heisenbug, not warǃ

Reading time8 min
Views3.4K
Конференция: Heisenbug 2018 Piter
Дата: 17-18 мая 2018 года
Место: Санкт-Петербург, Гостиница «Park Inn by Radisson Пулковская»



Четвёртому по счёту Heisenbug официально быть. Между двумя Heisenbug проходит шесть месяцев. Это большой срок, который позволяет вам научиться жить с полученной информацией, а нам — улучшить конференцию.


Анализ отзывов участников


Перед написанием этого анонса я открыл отзывы участников и просмотрел 292 ответа. Основная тема половины отзывов — необходимость (или её отсутствие) иметь доклады по мануальному тестированию. Это то, что я хотел бы обсудить с вами.


На позапрошлый Heisenbug ругались, что он превратился в какой-то Autobug. Надеюсь, никто не обидится, если я приведу один обезличенный отзыв по этой теме, как из палаты мер и весов:


«Если в двух словах — «автоматизация головного мозга». Следовало так и назвать конференцию. Была всего пара докладов про НЕ автоматизацию. Вы ведь и сами знаете, что автоматизация это всего лишь часть тестирования, и совсем не основная».

Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity