Pull to refresh
374
5.1
Олег Чирухин @olegchir

Продакт Sber Giga IDE, продюсер в Failover Bar

Send message

Пультовая Всевластья. Как устроен стриминг на онлайн-конференциях JUG Ru Group

Reading time10 min
Views7.7K

В 17-м эпизоде 2-ого сезона South Park Мистер Гаррисон поручает классу сделать доклады, от успешности которых зависит, останется ли он в должности учителя. В конце концов герои делают доклад со слов существ, постоянно ворующих подштанники Твика, — кальсонных гномов. Все уже видели этот эпический бизнес-план:


  1. Собираем кальсоны
  2. ???
  3. PROFIT

Примерно на такую же схему надеются люди, решившиеся в первый раз организовать онлайн-митап или что-то в этом роде:



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


Мы профессионально делаем конференции с 2013 года, и сейчас тоже переключаемся в онлайн. Эта статья — о том, как у нас устроены студии и пультовые для проведения онлайн-конференций и митапов. Мы утверждаем, что такая схема сильно повышает шансы на успех. Другим организаторам эта информация пригодится как вклад в коллективный опыт о том, как делать нестыдные мероприятия.


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

Читать дальше →
Total votes 37: ↑36 and ↓1+50
Comments9

Java-дайджест за 4 мая

Reading time4 min
Views5.2K


  • Вышла совершенно новая библиотека Enriched Beans — генератор исходников, совместимый с JSR 330: Dependency Injection for Java. Конкретно, генерит он фабрики, совместимые с фреймворками вроде Spring и Micronaut. Работает примерно как AutoFactory, может использоваться вместе с Lombok. В смысле, если в Guice вам нужно писать конструктор руками, то тут можно подцепить то, что сгенерил Lombok. Получаются простые POJO, каждое генерируемое поведение можно менять/подменять/оборачивать как хочешь, нормально работает автодополнение в IDE, код более-менее ООП-шный. Если перечисленные аббревиатуры ничего не говорят — проходите мимо :) Из минусов — 1 контрибьютор, 18 коммитов, насколько хорошо это работает — никому не ведомо.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments8

Java-дайджест за 30 апреля

Reading time4 min
Views4.9K


  • Марк Рейнхольд (Chief Architect of the Java Platform Group at Oracle) рассказал о новом проекте: Project Leyden. Проект должен решить проблему долгого запуска, медленного достижения пиковой производительности и лютого пожирания оперативной памяти… нет, не с помощью GraalVM. Предполагается генерить статические бинарники на существующей инфраструктуре — HotSpot JVM, jaotc AOT compiler, AppCDS и jlink. Ссылка на твит с обсуждением — здесь. Забавно, что твит сразу же заретвитил Томас Вюртингер (сумрачный гений GraalVM), а Рейнхольд заретвитил ретвит обратно к себе в ленту. Там у них своя атмосфера.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments9

JEP 360: Sealed Types (Preview)

Reading time10 min
Views5.4K


В то время, как половина мира заточилась в самоизоляции, ходят слухи, что Java 15 может присоединиться к флешмобу. Если в Бельгии нельзя размножаться людям, то почему классы должны наследоваться бесконтрольно, разве это справедливо?


Задача этого JEP — описать улучшение языка программирования Java, новую фичу под названием «sealed types» (изолированные типы). Изолированные типы — это такие классы и интерфейсы, которые могут запрещать наследовать или реализовывать себя.

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments14

Java-дайджест за 21 апреля

Reading time2 min
Views4.9K


  • Выпущен монитор системных ресурсов, работающий на Raspberry Pi и 7-дюймовом экране. Зонд жрет всего 30 мегабайт оперативки без использования GraalVM (но как?). И зонд, и дисплей-сервер для Raspberry Pi используют JavaFX. В качестве платформы для мониторинга пока доступна только Windows с установленным Open Hardware Monitor.


  • Международная Java-конференция JPoint пройдет в онлайне. Остальные конференции JUG Ru Group весенне-летнего сезона тоже переходят на удалёнку. Благодаря этому теперь можно купить абонемент на все восемь конференций сразу, подробности уже есть на сайте.


Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments6

Разбор доклада Баруха Садогурского «DevOps для разработчиков (или против них?!)»

Reading time1 min
Views5.7K


Впервые в своей истории JUG.ru выходит обеими ногами в онлайн и представляет новый формат: смесь доклада и подкаста. Вашему вниманию мы представим живой разбор доклада Баруха Садогурского «DevOps для разработчиков (или против них?!)». В разборе будут участвовать:


  • Барух Садогурский, Developer Advocate в компании JFrog, автор доклада, евангелист DevOps и любимец публики;
  • Антон Кекс, основатель компании Codeborne, гуру методологии XP и настоящий Software Craftsman;
  • Олег Анастасьев, ведущий разработчик в Одноклассниках и гуру распределенных систем;
  • Алексей Федоров, лидер питерского JUG и организатор Java-конференций Joker и JPoint.


Участие бесплатное!


РЕГИСТРАЦИЯ ТУТ
Total votes 22: ↑16 and ↓6+16
Comments1

Java-дайджест за 13 апреля

Reading time4 min
Views6.5K


  • Системе контроля версий Git исполнилось 15 лет.
  • Testcontainers исполнилось целых пять лет! Testcontainers — это Java-библиотека, позволяющая делать легкие одноразовые экземпляры популярных баз данных, веб-браузеров Selenium, или чего угодно ещё, что можно запустить в Docker-контейнере.
  • Вышел долгожданный Spring Graal Native 0.6.0. Вот здесь на GitHub есть огромное количество примеров использования вместе с разными технологиями, например, Kotlin и Netty.

Читать дальше →
Total votes 23: ↑22 and ↓1+26
Comments1

Пишем поиск подстроки лучше, чем в учебниках

Reading time9 min
Views17K


Жизнь инженера полна сюрпризов: особенно, когда приходится иметь дело с производительностью. Например, что произойдет, если попытаться запустить этот кусок Java-кода? Выглядит довольно невинно:

// Для использования String.repeat нужен JDK 11 и выше:
final var needle = "A".repeat(500000) + "B";
final var haystack = "A".repeat(1000000) + "B";
System.out.println(haystack.indexOf(needle));

Мы ждем, ждем, ждем… По крайней мере, на моем ноутбуке 2015 года c OpenJDK 13 поиск иголки в стоге сена занимает около минуты. Наша старая добрая JVM прошла сквозь десятилетия перформанс-тюнинга, в ней эффективно реализованы интринсики для String.indexOf и так далее. Что же могло пойти не так?
Это начало серии из нескольких статей, любезно предоставленных их автором, Linas Medžiūnas, и изначально опубликованых в блоге WiX Engineering.

Читать дальше →
Total votes 24: ↑22 and ↓2+29
Comments11

Java-дайджест за 10 марта

Reading time4 min
Views7.6K


  • Есть такая штука, Milkman — это альтернатива Postman, расширяемый воркбенч для работы с запросами и ответами с интерфейсом на JavaFx и с идеей «всё есть плагин». Несмотря на плагинную архитектуру, эта штука почти не использует reflection, и поэтому стало возможно пересобрать её как бинарник GraalVM Native Image. Плагины, конечно, нельзя добавлять в рантайме — что собрал, то и будет. Сборка делается через Maven. Обсуждение в документации — по ссылке. Не обошлось и без ложки дегтя: так же как пользователи GNU/Linux называют операционную систему просто (и неправильно) «Linux», здесь автор Milkman написал просто «Graal» вместо «GraalVM» — пришлось пойти и создать тикет на исправление этой несправедливости.
  • В прошлом декабре появился новый язык для JVM под названием Concurnas. На нем можно писать что угодно, но заточен он для легкого и приятного создания многопоточных, распределенных и параллельных систем. Сейчас вышла версия 1.14.020: в ней поправлены баги с escape-символами в REPL, там же добавлены номера строк, добавлены инструменты по работе со строками вроде взятия буквы по индексу (их не было?!), методы и функции теперь можно красиво печатать с помощью toString, добавлена совместимость с JDK 11 (теперь поддерживаются JDK 8-13).

Читать дальше →
Total votes 28: ↑27 and ↓1+33
Comments4

Java-дайджест за 6 марта

Reading time5 min
Views5.2K


  • Вышел очередной выпуск подкаста «Битовая Каска» с Антоном Архиповым (@antonarhipov). Антона, наверное, представлять не нужно, но всё-таки: Java-чемпион, менеджер по продукту в команде Kotlin, раньше работал в ZeroTurnaround. Подкаст помогает вести Кирилл Толкачёв, в остальном ведет стандартный состав.
  • Кстати, к нам приехал Kotlin 1.3.70. В комплекте — новые функции и классы в коллекциях стандартной библиотеки (например, kotlin.collections.ArrayDeque), улучшения в Kotlin-плагине в IntelliJ IDEA, компилятор Kotlin/JVM генерит type annotations в байткоде 8 джавы и выше, ускорилась сборка Kotlin Native и так далее.
  • Драйвера Oracle JDBC отныне лежат на Maven Central. Не только для свежей базы, а для всех: 19.3.0.0, 18.3.0.0, 12.2.0.1, 11.2.0.4. Все остальные артефакты, относящиеся к базе данных, теперь сгруппированы в com.oracle.database.* в Maven. Подробности здесь. Мы пережили все эти годы мучений с подсовыванием джарок в разные странные места, давайте же выпьем за славную победу!

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments26

Ужасы Set.removeAll

Reading time4 min
Views17K
Мы привыкли, что стандартные коллекции в JDK сделаны достаточно хорошо и ведут себя интуитивно-понятно. Но так ли это на самом деле? Вчера Роман Елизаров elizarov опубликовал в твиттере новость о новом интересном косяке.

Держитесь покрепче: Set.removeAll(list) в определенных случаях может работать за O(N²). Как же так?


Total votes 34: ↑32 and ↓2+39
Comments32

Java-дайджест за 28 января

Reading time4 min
Views6K


  • Вышел JUnit 5.6. Добавлены any() и none(), чтобы запускать тесты без каких-то дополнительных тэгов, ReflectionSupport.findNestedClasses() может находить циклы в иерархии внутренних классов, TestExecutionSummary.Failure можно сериализовывать, и все в таком духе. Интересно, что если раньше ошибки логировали и прятали, то теперь в явном виде выбрасывают в ходе сканирования тестов (но можно вернуть старое поведение, установив параметр junit.platform.discovery.listener.default).


Total votes 23: ↑23 and ↓0+23
Comments7

Что под капотом компиляторных оптимизаций GraalVM?

Reading time7 min
Views6.4K

Продолжаем разбираться с работой GraalVM, и на этот раз у нас перевод статьи Aleksandar Prokopec «Under the hood of GraalVM JIT optimizations», изначально опубликованной в блоге на Medium. В статье есть несколько интересных ссылок, позже мы постараемся перевести и эти статьи.





В прошлый раз на Medium мы рассматривали вопросы производительности Java Streams API на GraalVM в сравнении с Java HotSpot VM. GraalVM отличается высокой производительностью, и в тех экспериментах мы достигли ускорения от 1.7 до 5 раз. Конечно, конкретные значения выигрыша в производительности всегда будут зависеть от запускаемого кода и нагрузочных данных, поэтому, прежде чем делать какие-то выводы, стоит самостоятельно попробовать запустить ваш код на GraalVM.


В этой статье мы глубже проникнем во внутренности GraalVM и посмотрим, как происходит JIT-компиляция.


Читать дальше →
Total votes 26: ↑25 and ↓1+34
Comments1

Java-дайджест за 17 января. Две первые недели нового года

Reading time9 min
Views9.3K


  • Появился шрифт JetBrains Mono — приятный и красивый шрифт для разработчиков


  • Вышел плагин для интеграции GitLab с IntelliJ IDEA. Теперь можно делать код-ревью прямо в вашей любимой IDE!


  • В Java-плагине для Visual Studio Code добавили кучу важных ништяков (действительно влияющих на качество жизни). Теперь в браузере файлов есть компактизация папок в привычный нам вид (как в Идее), у методов можно смотреть иерархию вызовов, в отладчике можно ставить брейкпоинты с условием (сработают, только если выполнилось условие), запускатор тестов визуально отображает статус теста (не нужно постоянно смотреть логи), и еще много всего.


  • Вышел Repeat 5.4, кроссплатформенный (Mac/Lin/Win) инструмент для хоткеев, макросов и автоматизации, на 70% написанный на Java. 442 коммита, 574 звездочки, проект пользуется массовой любовью и обожанием у своей узкой аудитории. Разрабатывается ровно одним человеком.

Total votes 28: ↑26 and ↓2+33
Comments3

Java-дайджест за 27 декабря

Reading time5 min
Views6.1K


  • Рон Пресслер собрал и выложил новый «официальный» прототип Project Loom (файберы для Java). В качестве основы используется JDK 14. Скачать можно здесь, прочитать анонc можно здесь. Люди потихоньку начинают втягиваться в тему, и на GitHub уже лежит несколько проектов, использующих Loom: Loom Date Server, Fibry (реализация акторов с поддержкой файберов), RxJavaFiberInterop (мост между RxJava 3 и Loom), и пара примеров использования Loom (раз, два). На всякий случай напоминаю, что Рон есть на Reddit, временами он пишет туда анонсы и оставляет хорошие развернутые комментарии.


  • InfernoPlus опубликовали видео про то, как сделали фанатскую игру в жанре Battle Royale про Super Mario, которая неожиданно хайпанула. На бэке там были Java + Tomcat. Конец истории: авторам позвонили из Nintendo и пообещали засудить, из-за чего игрушку пришлось убить.

Читать дальше →
Total votes 25: ↑24 and ↓1+30
Comments4

«Создавать технологии, не думая о том, кто ими пользуется — совершенно бессмысленно»: большое интервью с Антоном Вайсом

Reading time20 min
Views3.3K


Этот хабрапост — интервью с Антоном Вайсом, совладельцем технологического консалтинга Otomato Software, обладателем более чем 15-летнего опыта в области высоких технологий. Является экспертом по техническому преподаванию, инициатором и соавтором первого в Израиле курса DevOps-сертификации. Антон участвует в международных конференциях и известен как крутой докладчик.

Мы поговорим на следующие темы:

Читать дальше →
Total votes 8: ↑7 and ↓1+9
Comments2

Java-дайджест за 18 декабря

Reading time5 min
Views5.2K


  • Вышел первый пробный билд JDK 15. Страничка проекта — здесь, но смотреть там пока совершенно нечего.
  • RedHat зарелизили WildFly 18. Заявлена поддержка Jakarta EE 8, MicroProfile 3.0, JDK 13, есть куча изменений в подсистемах безопасности и EE, и многое другое.
  • Tobias Hartmann, HotSpot-инженер в Oracle, опубликовал в почтовой рассылке valhalla-dev большое письмо «Optimizing the way to Valhalla: JIT Status Update». Valhalla — это проект в OpenJDK, представляющий из себя инкубатор самых крутых современных идей в виртуальной машине и языке Java, такие как Value Types и Generic Specialization. Письмо представляет собой сплошной чеклист, и копипастить его в этот дайджест бессмысленно. В целом, там подробности про оптимизацию доступа к массивам и скаляризацию в C2.
Читать дальше →
Total votes 22: ↑21 and ↓1+28
Comments3

Java-дайджест за 14 декабря

Reading time6 min
Views6.9K


  • Дело Google vs Oracle будет рассматривать Верховный Суд США. В последний раз. Запасаемся попкорном, русская рулетка начинается. Прочитать суть проблемы можно в оригинальной PDF-ке, в которой Oracle утверждает, что у них скопировали 11500 строк кода из 37 пакетов, тем самым стибрив черезвычайно сложную и важную архитектуру, и хотят они за это 8.8 миллиардов баксов. Google же возражает, что пытаться запатентовать API — это безумие какое-то, и без возможности открыто использовать API современная жизнь невозможна. Дуэль между мегакорпорациями будет проводиться в формате блица, когда Google нужно будет за 30 минут объяснить суть проблемы, а Oracle за 30 минут должны будут на всё это ответить.


  • JDK 14 перешел в первую фазу заморозки, про это есть сообщение в рассылке и твит Марка Рейнхольда. Много изменений, только JEP-ов 16 штук, последним подтвердили Foreign-Memory Access API. Репозиторий форкнут в jdk/jdk14. В новостях каждый раз перечислять одни и те же JEP-ы, список которых больше не изменится, кажется, не имеет смысла: полноценная развернутая статья будет сразу же после финального релиза Java 14.

Читать дальше →
Total votes 14: ↑13 and ↓1+18
Comments5

DevOps-инженеров не существует. Кто тогда существует, и что с этим делать?

Reading time7 min
Views25K


В последнее время такие объявления заполонили интернет. Несмотря на приятную зарплату, не может не смущать, что внутри написана дикая ересь. Вначале предполагается, что «DevOps» и «инженер» можно каким-то образом склеить вместе в одно слово, а далее идет рандомный список требований, часть которых явно скопирована из вакансии сисадмина.


В этом посте хочется немного поговорить, как мы дошли до жизни такой, что такое DevOps на самом деле и что теперь с этим делать.


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

Читать дальше →
Total votes 29: ↑24 and ↓5+28
Comments35

Утренний Java-дайджест за 12 декабря

Reading time3 min
Views4.7K


  • Окончание жизни Spring Boot 2.1.x намечено на 1-е ноября 2020. Какие-то обновления до этой даты все еще будут, а после — пропадут. Нужно обновляться на 2.2. Сама процедура обновления не кажется сложной, инструкции есть в wiki. Там же есть список поддерживаемых версий.
Читать дальше →
Total votes 18: ↑17 and ↓1+21
Comments9

Information

Rating
980-th
Location
Россия
Works in
Date of birth
Registered
Activity

Specialization

Chief Technology Officer (CTO), Chief Executive Officer (CEO)
Lead
From 2,000,000 ₽
Product management
Project management
Marketing research
Game Development
Web development
Software development