Search
Write a publication
Pull to refresh
387
3.2
Олег Чирухин @olegchir

Продакт GigaIDE Cloud, фаундер Anarchic

Send message

ZTools для Apache Zeppelin

Reading time9 min
Views2.6K

Zeppelin — это интерактивный блокнот, очень полюбившийся дата-инженерам. Он умеет работать со Spark и отлично подходит для интерактивного анализа данных.


Проект недавно добрался до версии 0.9.0-preview2 и активно развивается, но, тем не менее, множество вещей всё ещё не реализованы и ждут своего часа.


Одна из таких вещей — API для получения дополнительной информации о том, что происходит внутри блокнота. С одной стороны, там имеется API, который полностью решает задачи по высокоуровневому управлению ноутбуками. Но если вам нужно что-то нетривиальное — плохие новости.


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

Скринкаст: простейший плагин для IntelliJ IDEA

Reading time1 min
Views5K
Многие боятся писать плагины для IDE потому, что кто-то их напугал, что это безумно сложно. Это не совсем так: простые плагины для бытовых нужд писать вполне возможно.

Давайте сделаем простейший плагин, который при нажатии на Ctrl+T весь текст, выделенный в редакторе, отправляет прямиком в Twitter. Потом каждый его сможет заточить для собственных нужд.

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

Big Data Tools EAP 10: SSH-туннели, фильтрация приложений, пользовательские модули и многое другое

Reading time6 min
Views2K

Только что вышла очередная версия плагина Big Data Tools — плагина для IntelliJ IDEA Ultimate, DataGrip и PyCharm, который обеспечивает интеграцию с Hadoop и Spark, позволяет редактировать и запускать интерактивные блокноты в Zeppelin.


Основная задача этого релиза — поправить как можно больше проблем и улучшить плагин изнутри, но два важных улучшения видно невооруженным глазом:


  • соединяться с Hadoop и Spark теперь можно через SSH-туннели, создающиеся парой щелчков мыши;
  • мониторинг Hadoop может ограничивать объем данных, загружаемых при просмотре списка приложений.

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

Как включить шифрование в JetBrains Projector

Reading time6 min
Views3.6K

Projector — это способ запускать IntelliJ IDEA на удалённом сервере. Недавно я писал об этом статью, но умолчал о важной для любого параноика вещи — шифровании данных на вебсокете.


Генерация и подкладывание ключей — довольно муторный кусок работы. Тут придётся познакомиться с особенностями Docker и криптографии в Java. К сожалению, убежать от этого никуда нельзя, потому что это Java, и ребята из JetBrains совершенно не виноваты.


В изначальной статье этот текст был закрыт спойлером, но потом я почувствовал, что читать такую стену текста невозможно и родил вот этот текст. Заранее извините. Открывая эту статью вы соглашаетесь с тем, что увиденное вам не понравится.

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

Работаем в IntelliJ IDEA на слабом железе

Reading time7 min
Views51K

Обнаружил секретный репозиторий на гитхабе JetBrains под названием Projector. Благодаря нему написал кусок кода в IntelliJ IDEA, запущенной на Android-планшете. Рассказываю, как это повторить.


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

Что сделать, чтобы ваша онлайн-трансляция не развалилась (ну или хотя бы некоторое время работала)

Reading time13 min
Views9.7K
Многим знакома старая фотография Дворцовой площади в Санкт-Петербурге:



В соцсетях она чаще всего используется в виде мема «как вызывают дьявола в городе Ленина». Разгадка простая и ни ритуалов, ни коммунистической символики тут нет. Вот что написано под ней мелким шрифтом:

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

На самом деле, это специально устроенные в грубой мостовой дорожки, соединяющие напрямую все выходы с площади. Удобное, эффективное решение.

В случае со стримингом видео в интернет, картинка тоже состоит из множества дорожек. Но дороги эти складываются в некий мрачный ритуал:
Читать дальше →

«В идеале мы хотели бы вообще заменить Spring на Micronaut» — интервью с Грэмом Роше о перспективах развития Micronaut

Reading time20 min
Views15K


Micronaut ворвался в нашу жизнь внезапно, без стука и без объявления войны. О нем пишут новости и читают доклады, и вряд ли найдется джавист, который ни разу не слышал это слово. Micronaut — это современный фреймворк для JVM для написания модульных микросервисов и serverless-приложений, использующий для этого фичи GraalVM.


В свою очередь, Grails — это фреймворк, который появился ещё в 2005 году и с тех пор непрерывно улучшается. В 2015 году Grails 3 переехал на SpringBoot, а версия 4.0.0 появилась в июле прошлого года. У Grails сохраняется своя аудитория, для которой он очень хорошо подходит и решает вполне конкретные проблемы.


Грэм Роше создал оба этих фреймворка. Мы пригласили Грэма в нашу виртуальную студию, чтобы обсудить, зачем было изобретать велосипеды и городить костыли, не закопать ли Grails и Spring Boot, как поддерживать Jakarta EE и не сломаться, что будет в Micronaut 2, стоит ли писать Micronaut поверх Micronaut и когда уже Java наконец помрёт.

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

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

Reading time5 min
Views4.7K


  • 23 мая нашей любимой Java исполнилось 25 лет. Все эти годы один из самых популярных запросов в гугле — когда же Java наконец умрёт? Не дождётесь.


  • К летней конференции JPoint присоединяется сам Джоэл Спольски — один из двух создателей Stack Overflow. Олды должны хорошо помнить его по классической книге «Джоэл о программировании» и по всё ещё работающему оплоту Mercurial — системе контроля версий Kiln. Шипилёв, Гослинг, Хорстман — и вот теперь ещё и Спольски, это будет очень хороший JPoint.


  • Германия делает приложение для информирования про коронавирус, оно написано на Spring Boot и лежит на GitHub.


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

Съемочная площадка в офисе — практичный способ не налажать с трансляцией

Reading time17 min
Views9.5K


Сегодня каждый день натыкаешься на какую-то вебинар или онлайн-конференцию. На удалёнку переходят вузы и школы, крупные корпорации спешно переосмысливают свои флагманские ивенты в онлайне (вроде двухдневного Microsoft Build), у JUG Ru Group онлайн продлится сразу несколько недель. Отрасль захвачена стремительными инновациями.


Тем не менее, уровень среднестатистического вебинара в интернете всё ещё крайне плох. Наверное, любой разумный человек хоть раз в жизни задавался вопросом: что это за вакханалия? Зачем я в этом участвую? А если за это и деньги уплачены, то обидно до слез. Такое ощущение, что прогресса там нет и не было. Казалось бы, на дворе 2020 год, в любом компьютерном магазине лежат крутые веб-камеры и телефоны, наполненные чудесами вычислительной фотографии. Можно спокойно сидеть дома и, попивая чаек, транслировать в интернет голливудскую картинку.


Вместо этого я собираю вещи и иду в пустой офис. Зачем?


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

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

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

Reading time5 min
Views5.8K


Иллюстрация получена вот из этого видео.


  • Джеймс Гослинг, создатель языка Java, заявил об участии в летней конференции JPoint и уже появился в списке спикеров на сайте. Говорят, кризис — время возможностей. Иногда это действительно так! Пару лет назад трудно было представить, что Гослинг будет отвечать у нас на вопросы из чата.


  • В рассылочке появилось интересное письмо о том, что в спеке языка ведется работа над более аккуратным использованием слов вроде «class», «interface» и «type». Например, вместо «sealed types» правильнее говорить «sealed classes and interfaces». Примечание: а вместо Linux нужно говорить GNU/Linux!


  • Стивен Стюарт-Галлус сделал на Java и выложил на GitHub игрушечную реализацию System F JIT, в наличии MethodHandles и Higher Order Abstract Syntax. Соответствующий тред есть на Reddit, где автору можно задавать вопросы. System F — система, которую придумал в 1972 году Жан-Ив Жирар для доказательств в логике, которая представляет собой систему типизированного лямбда-исчисления, отличающаяся от просто типизированной системы наличием механизма универсальной квантификации над типами.

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

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

Reading time10 min
Views7.9K

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


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

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



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


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


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

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

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

Reading time4 min
Views5.3K


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

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), а Рейнхольд заретвитил ретвит обратно к себе в ленту. Там у них своя атмосфера.
Читать дальше →

JEP 360: Sealed Types (Preview)

Reading time10 min
Views5.8K


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


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

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

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

Reading time2 min
Views4.9K


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


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


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

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

Reading time1 min
Views5.7K


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


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


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


РЕГИСТРАЦИЯ ТУТ

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

Reading time4 min
Views6.5K


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

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

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

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.

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

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).

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

Information

Rating
2,239-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