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

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



    Проблема


    Все мы любим IntelliJ IDEA, но есть с ней неувязочка — она жрёт ресурсы компьютера. Может, крипту майнит, никто не знает.


    У всех нас есть что-то вроде старого ноутбука, который ты очень любишь, но работать на нём уже не получается — уж слишком он слабый. На некоторых девайсах Идеи и не было никогда. Например, на Android-планшетах. Зайдите на сайт — нет там сборки под Arm.


    (На самом деле, это не совсем правда, запустить Идею на Arm можно — но поддержки не заявлено и ссылки на странице загрузки нет. Раз уж мы начали колдовать, то надо рубить правду-матку).


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


    Примерно те же проблемы у пользователей C++. Большие проекты вроде браузера Chromium могут занимать на жестком диске десятки гигабайт и компилироваться сутками напролёт. Когда ноутбук уходит в троттлинг от перегрева, пользоваться им не очень удобно. SSD протираются до дыр, а если SSD напаян и гарантия закончилась — выбрасывать его придется вместе с ноутбуком.


    Решением было бы разделить фронтенд и бэкенд IDE. Запускаем тяжелый вычислительный бэкенд в дата-центре, или просто на своём домашнем Threadripper 3990X. Соединяемся с бэкендом из локального приложения, написанного на Java.


    К сожалению, IntelliJ IDEA так сдизайнена, что до последнего времени сделать этого было нельзя. Ну, почти. Не надо быть гением, чтобы догадаться, что в Rider как-то общаются между собой Java-фронт и .NET-бэк, но использовать это в своих корыстных целях никак нельзя.


    Удалённый рабочий стол — отстой


    Конечно, многие пытались запускать Идею через TeamViewer, Microsoft Remote Desktop, VNC, и так далее. Существуют компании, которые только так и работают — сотрудники сидят на удалёнке и кодят через Remote Desktop.


    Видите в этом проблему? Вот, посмотрите:



    Теперь я должен вам новые глаза!


    Это то, что вы видите при соединении через удалённый рабочий стол. Все ощущения изящества интерфейсов, чёткости шрифтов, вся магия Идеи куда-то улетучивается, и во рту остаётся только горечь от пожатого джипегом мыла.


    Из этого можно вынести какой-то опыт. Например, TeamViewer тормозит меньше, но изображение больше артефачит. RDP выдает лучше картинку, но безбожно тормозит. И там и там есть вопросы к качеству мобильных приложений — если хочется запускать на планшете.


    Что же делать? Сколько надо полоскать рот, чтобы извести оттуда привкус мыла?


    Ваше слово, товарищ Projector!


    Вот как выглядит картинка на моем планшете Huawei MediaPad M5:



    Вначале я хотел сфотографировать шрифты с близкой дистанции, но неспособность камеры Sony RX100 v5 сфокусироваться на таком расстоянии похоронила эту идею. Вместо этого держите нотариально заверенный скриншот:



    Видите косяки в шрифтах, покорёженных джипегом?


    Не трудитесь, их там нет. Это настоящие векторные шрифты, и Идея тоже настоящая. Ну, почти. Это полноэкранный браузер.


    Магия заключается в том, что в репозитории проекта Projector на GitHub лежит запускатор IntelliJ IDEA в серверном режиме.


    Почему это работает?


    Судя по всему, Projector работает на переписанном изнутри рендерере AWT из OpenJDK. Теперь AWT рисует всё не на обычных поверхностях из операционной системы, а прямо в браузере. Как именно эта магия работает я сейчас быстро описать затрудняюсь — это тема для отдельной статьи.


    Но эффект потрясающий — любое приложение, написанное на Java и Swing, автоматически начинает работать в браузере без переписывания кода!


    Хочу! Что нужно делать?


    Сразу видно, что проект очень экспериментальный. Эта штука для тех, кто очень любит всё новое и хочет попробовать использовать в повседневной жизни. Но ставить на эту штуку свою жизнь я бы не стал.


    Расскажу о том, как всё это запустить и начать разбираться. Дальше вы уже сами.


    Общие инструкции есть вот в официальном репозитории.


    Алгоритм действий:


    • Подготовить сервер (только для использования в облаке)
    • Сбилдить и запустить докерные образы
    • Открыть IDEA в браузере
    • PROFIT

    Подготовка сервера


    Вам понадобится компьютер с Docker.


    Завести всё это можно и без Docker, но конкретно эта статья подразумевает его наличие, ибо без Docker всё становится куда сложнее.


    "Сервер" может быть как машиной в облаке, так и вашим обычным компьютером — неважно.


    Я всё тестировал в двух конфигурациях: Linux на десктопе и Linux на удалённой виртуалке с четырьмя ядрами и 4 гигабайтами оперативной памяти. Для других операционных систем могут потребоваться корректировки.


    В Ubuntu 16.04 установка докера делается вот по этой инструкции. Если у вас другая операционная система — придется погуглить самостоятельно.


    Краткое содержание установки Docker на Ubuntu 16.04:


    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
    sudo apt-get update
    
    sudo apt-get install -y docker-ce
    
    sudo usermod -aG docker ${USER}
    
    sudo reboot

    Дальше нужно немного поднастроить саму операционку. Если вы используете Linux-десктоп как рабочую машину в графическом режиме, то ничего делать не нужно.


    Если же вы хотите развернуть что-нибудь вроде тестового сервера в облаке (благо сейчас это делается двумя щелчками мыши в Amazon и других облачных сервисах), нужно будет поставить пару пакетов.


    Суть в том, чтобы у вас в командной строке появились xvfb (виртуальный фреймбуфер) и dbus-launch. Зачем нужен фреймбуфер я сказать затрудняюсь, но без этого не работают скрипты сборки. Вероятно, тяжелое наследие AWT.


    Вот что нужно установить для Ubuntu 16.04:


    apt install xvfb dbus dbus-x11 gnome-keyring

    Устанавливать gnome-keyring приходится по внутренним убунтовым причинам. Иначе окажется, что у вас проблемы с секретами для десктопа. Если у вас не Ubuntu, то скорей всего, это не нужно.


    Дальше нужно создать фреймбуфер:


    Xvfb :99
    export DISPLAY=:99

    Скрипт этот стоит засунуть куда-нибудь в автозагрузку. Например, в юнит systemd. Ну или просто руками каждый раз набирать заново.


    Тут критик воскликнет — ага, фреймбуфер, рендерите джипеги на сервере! Нет, он нужен только чтобы запустить скрипт сборки имиджа. В рендеринге он не участвует. Это просто артефакты легаси-кода, торчащего из джавы 1998-ого года производства. Думаю, в ближайшем времени разработчики выпилят необходимость использовать фреймбуфер на этапе сборки.


    Собираем и запускаем образ Projector


    Скачиваем репозиторий со сборочными скриптами:


    git clone https://github.com/JetBrains/projector-docker.git
    cd ./projector-docker

    Собираем и запускаем образ:


    ./clone-projector-core.sh
    ./build-container.sh
    ./run-container.sh

    Заходим в IntelliJ IDEA из браузера


    Если вы всё это время работали на своём (локальном) компьютере, то ссылка выглядит так: http://localhost:8080/projector/.


    Если же вы запускаете всё это на удалённой машине (например, в облаке), то ссылка выглядит так: http://hostname:8080/projector/?host=hostname&port=8887.


    Вместо hostname нужно ввести IP-адрес вашего сервера или доменное имя. Обратите внимание, что hostname в URL встречается два раза. Без этого не заработает.


    Проблемы:


    • Если вы используете прокси (именно прокси, а не VPN), временно отключите. Проблемы с пробросом вебсокетов через прокси всё ещё существуют в 21 веке.
    • Если вы используете Google Chrome в качестве браузера, он может начать перебрасывать вас с HTTP на HTTPS. Попробуйте вот такую ссылку: http://host:8080/projector/?host=//hostname&port=8887. Заметьте, что слева от hostname появилось два слеша (//). В Firefox все должно работать без этого хака. Предупреждая вопрос, частично включить шифрование можно (для вебсокета), но это настолько муторно, что я не стал бы этим заморачиваться прямо сейчас.

    Как работать в Android


    Стандартный браузер Google Chrome в Android тратит слишком много места на всякие ненужные вещи вроде адресной строки. Для решения этой проблемы поможет бесплатное приложение Fully Kiosk Browser.


    Если вам не мешает адресная строка, но мешают органы управления Android, то можно использовать бесплатное приложение Fullscreen Immersive.


    Одновременно и то и другое использовать не имеет смысла, т.к. FUlly Kiosk Browser уже умеет отключать органы управления Android-оболочки и делает это по-умолчанию.


    Как работать в iOS


    Понятия не имею! Из всех эппловских девайсов у меня есть только служебный макбук и личный айфон. На айфоне проверять всё это бессмысленно (экран слишком маленький), а на макбуке никаких проблем не существует.


    Как запаролить соединение?


    Идём в файлы проекта, которые мы скачали ранее, открываем файл run-container.sh и ищем строчку:


    docker run --rm -p 8080:8080 -p 8887:8887 -it "$containerName" bash -c "nginx && ./run.sh"

    И добавляем туда ещё один параметр с негуманоидным именем, значение которого — ваш пароль:


    docker run --rm \
        --env ORG_JETBRAINS_PROJECTOR_SERVER_HANDSHAKE_TOKEN=mypassword \
        -p 8080:8080 -p 8887:8887 -it "$containerName" bash -c "nginx && ./run.sh"

    Теперь контейнер можно запускать!


    ./run-container.sh

    Теперь можно пойти в браузер и подключиться по новому URL. Новый отличается от старого наличием параметра token с вашим паролем.


    Для локальной машины: https://localhost:8080/projector/?token=mypassword


    Для облачного сервера: https://hostname:8080/projector/?host=//hostname&port=8887&token=mypassword


    Как сделать безопасное соединение?


    Про это я написал на Хабре отдельную статью. Приготовьтесь к тому, что придется сделать кучу нудной работы в консоли.


    Перспективы


    Можно мгновенно придумать множество областей, где поможет этот проект:


    • Удалённая разработка;
    • Коллаборативная разработка;
    • Комфортная удалённая отладка;
    • Ускорение раундтрипа в приложениях с большими данными;
    • Работа в защищенном контуре;
    • Мгновенное разворачивание рабочего места;
    • Работа с Очень Большими Монорепозиториями;
    • Интеграция в инфраструктуру облачных компаний;

    Кто знает, что ещё нас ждёт! Перспективы безграничные.


    Проблемы


    Надо сказать, что MediaPad M5 двухлетней давности на чипсете Kirin 960 — не самая мощная машина в истории. (Зато это толстый надежный кирпич металла, которым можно копать землю в огороде!) И конечно, при редактировании большого количества текста появляются тормоза перерисовки. Браузеру сложно рисовать столько графики быстро.


    Тем не менее, чтобы что-то отлаживать — этого уже вполне достаточно. Отладчик будет красивый, четкий и приятный, а не как через Remote Desktop.


    Если же запускать всё это на ноутбуке, тормозов почти нет. Особенно если там есть видеокарта, а не как у планшета MediaPad M5, где вместо видеокарты работает Mali-G71.


    Выводы


    Найдено чудесное решение для запуска IntelliJ IDEA (и всех IDE от JetBrains) на удалённом сервере.


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


    Сам я сейчас занимаюсь тем, что пытаюсь упаковать запускатор IDEA в качестве нативного приложения для Windows, Android и iOS с помощью нативных для платформы средств (Electron и WebView). Некоторое время еще нужно писать код, а потом публикация на сторы может занять длительное время. Как чего получится — напишу статью на Хабр.


    Где-то в богом забытом репозитории на GitHub обнаружилось настоящая гора золота. К сожалению, чудес не бывает, и наверняка, это золото охряняют драконы. Посмотрим, кто выйдет на свет!

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 139

      +3
      Запускаем тяжелый вычислительный бэкенд в дата-центре, или просто на своём домашнем Threadripper 3990X.
      Тут согласен.
      Соединяемся с бэкендом из локального приложения, написанного на Java.
      А чем не устраивает «ssh -XC»? Никаких проблем ни со шрифтами, ни со скоростью не наблюдаю.
        +10

        Давай так, проблемы со скоростью есть и там и там. Не бывает так, чтобы был интернет, виртуалка, и нет проблем со скоростью.


        Условно говоря, если ты человеку, который долго пишет в vim или emacs дашь нативную Идею, его перекорёжит, потому что тормоза есть даже там! Он скажет, что редактор как-то медленно реагирует на нажатия кнопок.


        Это про тормоза. Кажется, это важно.


        Но я, конечно же, не буду сейчас заниматься демагогией, сравнивая Projector с локальными иксами. Потому что у меня не было возможности этим попользоваться.


        1. Мой основной компьютер — это Windows. На Windows нет встроенных иксов, а браузер у тебя есть всегда.


        2. На серверах в облаке обычно нет иксов. Projector-у они не нужны, что очень-очень приятно.


        3. Зачастую твой сервер — это рабочая станция Windows. Projector наверняка можно завести на WSL2 или Docker for Windows и это будет совершенно бесплатно, а с иксами — большой вопрос.


        4. Имхо, проброс иксов — это сложно. Какие-то отчаянные ёли адоптеры, конечно, всё что угодно у себя заведут. Для среднестатистического человека обычная ссылка в браузере может оказаться удобней. Например, представь вики (какой-нибудь конфлюенс), где есть таблица ссылок на IDE развернутые на разных тестовых серверах.



        Конечно, если тебя целиком устраивает проброс иксов — то ничего против не имею, пользуйся на здоровье ;) "А ты купи слона".


        Я сам обычно пользюсь VNC, потому что это дает доступ не только к одному приложению, а сразу ко всей операционной системе. Хотя от лагов меня аж трясёт.

          +1
          1. На серверах в облаке обычно нет иксов. Projector-у они не нужны, что очень-очень приятно.

          В терминологии X: X-сервер — это то, что выполняется на клиентском сервере, то, что выводит картинку на экран. Идея — X-клиент, ей не нужен X-сервер в облаке.

            +1
            ты человеку, который долго пишет в vim или emacs дашь нативную Идею, его перекорёжит

            Скорее всего, такие люди уже сделали вот так, но тем не менее:
              0

              или так

                +2

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

                  +1
                  Ну и если уже успел написать на Vim script всяких полезностей, в плагин их вряд ли добавишь.
              0
              X-server работает в Windows, в том силе и через ssh. Зачем нужен именно встроенный — не совсем понятно.
                +1
                «На Windows нет встроенных иксов» — есть «невстроенные». Cygwin/X, например.
                Заводить X-ы на Android/IOS не пытался (задачи такой не было), но предполагаю, что это будет неординарно :)
                Поэтому соглашусь, что работа в браузере — более универсальный подход (но — только с точки зрения «клиента»; с точки зрения «бэкэнда» универсальнее уже проброс X11: пробрасывается всё, а не только специальным образом написанные/подготовленные программы).

                «На серверах в облаке обычно нет иксов. Projector-у они не нужны» — в случае с пробросом иксов по SSH они на «бэкэнде» так же не нужны.

                «Зачастую твой сервер — это рабочая станция Windows. Projector наверняка можно завести на WSL2 или Docker for Windows и это будет совершенно бесплатно, а с иксами — большой вопрос.» — те же яйца, вид сбоку. Х11 на «бэкэнде» не нужны, они нужны на «клиенте».

                «Имхо, проброс иксов — это сложно. Какие-то отчаянные ёли адоптеры, конечно, всё что угодно у себя заведут.» — ну да, сложно. Это же надо на клиенте X-сервер поставить, да ключик "-X" к комманде ssh добавить.

                А по поводу где как тормозит — я ниже в обсуждении ролики выложил.
                Если вдруг будет интересно, как оно на совсем слабом железе (Raspberry Pi 2, например) — сделаю.
                Было бы неплохо увидеть видео работы через projector.
                  0

                  Пример пользовательского опыта "для обычного человека", как это может быть:


                  1. Зашел в Google Play, нашел Projector, установил.
                  2. Запустил с рабочего стола, залогинился своей JB-учеткой.
                  3. Подтвердил оплату в выбранном тобой облаке (виртуалки в облаке не бесплатные).
                  4. Работаешь.

                  И есть второй сценарий — для клиентов с защищенными контурами, завязанные на Amazon, и прочие высокотехнологические товарищи. Там тоже должны быть плюшки, но другие.


                  В идеальном варианте "для простых пользователей" никакого знания бэкенда технологии не требуется вообще. Приложение ничем вообще не отличается от notepad.exe за исключением необходимости в двух оплаченных учетках — на облако и на JB-аккаунт. Даже пра пра пра бабушка сможет всё это проделать.


                  Юзер экспириенс с ssh -X или разворачиванием докеров — не такой. Там реально нужно много знать и уметь. Куча мелких технических деталей, каждая из которых может привести к проблемам, которые придется решать с привлечением экспертизы. Хотя со стороны это может казаться не так, потому что квалифицированный специалист это умеет, и готов потратить время на применение навыков.

                +3
                А чем не устраивает «ssh -XC»? Никаких проблем ни со шрифтами, ни со скоростью не наблюдаю.

                IDEA или Firefox целиком рендерят свои окна и попытки пробросить с Linux на Windows их через SSH X11 Forwading приводят к совершенно фантастическим тормозам (20-30-40 секунд открытие пункта меню, например), даже если они запущены в виртуальной машине на том же компьютере или на сервере через один коммутатор.
                  0
                  У меня другой опыт. Вполне себе сносно получается работать в IDEA удаленно через SSH — но в локальной сетке, на 100 Мб. Т.е. в экстренных случаях, когда надо на Linux что-то собрать специфическое — спасает, так как в основном на Windows сижу. На постоянку конечно IDEA в Windows, дабы глаза поберечь.
                    +2
                    Понизьте цвет до 8 бит, сильно удивитесь.
                      –1

                      Господа, извините что врываюсь в дискуссию, но мне одному кажется странным что IDE пришли уже к клиент-серверной схеме и требуют кучу ресурсов даже ничего не делая?
                      Мне кажется где-то мы свернули не туда)

                        +2
                        Еще никого не уволили, за то что купил у IBM ©

                        Намекаю на минимально необходимый суперкомпьютер для девов.

                        Беда конечно, но Андроид-девам деваться некуда =(

                        ИДЕЯ — первая ИДЕ, в которой я получил OOM в 32-битной машине (виртуалке) при макс памяти.
                          +5

                          IDE может ничего не делать в текущую секунду (когда бездействует), но зато она сможет сделать очень многое в следущую секунду, как только вы нажмёте на клавишу, без загрузки всяких внешних инструментов.

                            +1

                            Да я знаю зачем нужна IDE)
                            Просто удивляет сравнение с тем что было 10 лет назад и к чему пришли сейчас. Вопрос риторический был)

                              +8
                              что было 10 лет назад и к чему пришли сейчас.

                              Пришли к высокой скорости разработки?
                                +2

                                10 лет назад были NetBeans и Eclipse


                                Первый работал быстро, но мало умел. Второй умел все, но я не видел компьютера на котором он быстро работал :) так что за 10 лет ничего не поменялось. Ide все так же выжирает все ресурсы компа, до каких дотянется. А если не она, то рядом ее докер добьёт в котором база крутится :)

                            +1
                            На локальной машине нормально работает, в инетах полно видео (wsl 2 vcxsrv), не натив конечно, но и секунды ждать не приходится. Проверял на Firefox, PHPstorm. В конце года обещают поддержку из коробки для запуска gui из wsl, возможно будет еще лучше.
                              +1
                              Не поленился, проверил.
                              Windows — 8.1 в виртуалке (VirtualBox), линуксовые хосты — LXC на другой машине.
                              Между машинами с VirtualBox и LXC — гигабитная сеть.
                              «Зажать» сеть по инструкции не получилось (команды выполняются без ошибок, но по факту ограничения не работают), разбираться не стал.
                              X-сервер на Windows — Cygwin/X (вчера ночером тупо поставил последнюю версию).

                              Firefox — да, тормозит сильно (пользоваться сильно неприятно), причем независимо от того, перебрасываются ли иксы на Windows, или на Linux.
                              Но никаких «20-30-40 секунд открытие пункта меню» нет.
                              А вот IDEA (в моём случае — Goland) работает почти «like native» (тормозит только Lens — отображение окна с куском кода при позиционировании указателя мыши на строке прокрутки).

                              В общем, я бы сказал, что особой разницы в скорости работы при пробросе иксов на Linux/Windows я не заметил.

                              Прошлым летом был у родителей в деревне и через их ADSL (10M/768K, кажется) вполне комфортно работал в Goland, но да, из под Linux.
                                +1
                                работает почти «like native»

                                Посмотрел ваше видео, оно «like native» только если вы привыкли с калькулятора работать. Иначе не понимаю как эти затупы по 200-500, иногда 1000-1500 мс можно нормально воспринимать. Плюс кадры теряются иногда.
                                  +1
                                  Ну-ка, в каком месте «затупы» по 1000-1500 мс?

                                  А «кадры теряются» — это, я так понимаю, результат захвата с 25 fps. Исходный файл.
                                    +2
                                    Открытие about, открытие настроек, переключение на соседнюю вкладку с кодом по ощущениям секунду заняло.
                                      +1
                                      Открытие about — это «непрогруз» Goland-а (там даже уже после показа about-а в статусе прогресс-бар мелькает), но никак не тормоза проброса иксов.

                                      На что Goland при загрузке CPU тратит — я не знаю.
                              +2
                              Топикстартер уже дал развернутый ответ. Есть еще — хромбуки, на которых я ежедневно пользуюсь похожим решением для visual studio code. В них тоже есть linux сейчас, но не во всех (и в моем случае по разным причинам им пользоваться нельзя для соединения с рабочей машиной, в том числе и потому что это untrusted vm). И я прям пошел пробовать на своей workstation завести этот самый projector для idea. Ну еще есть всякие android'ы (и даже околодесктопные оболчки для них) и ipad'ы.

                                +1
                                Не понял сентенции «и в моем случае… им пользоваться нельзя».

                                Если хромбук поддерживает Linux Beta (мы ведь о нём?) — то всё прекрасно соединяется/пробрасывается.

                                Вот если поддержки linux beta нет — тогда да, без напильника не обойтись.

                                Видео записано на Asus CN60 (на котором вроде как не должно быть ни Google Play, ни Linux Beta, и вообще, поддержка закончилась на 76 версии ChromeOS-а).
                                  +1
                                  Политики.
                                  Линукс бета есть, но подключаться к рабочей станции из него нельзя, потому что подключение к рабочей станции требует набора довольно специальных ключей и физического токена, которые теоретически конечно можно откуда-нибудь попробовать наковырять и пробросить/положить в вм, но безопасники настучат потом по одному месту. Потому что это untrusted vm и untrusted environment.
                                    +1
                                    Я правильно понимаю, что доступ по ssh закрыт, но при этом по http/https соединяйся куда хочешь?
                                      +1
                                      Доступ по ssh не закрыт. Он закрыт из непонятной виртуальной машины. С физических корпоративных железяк, при условии наличия всех сертификатов нужных и физического токена, все прекрасно работает. (в том числе проброс портов через ssh для обеспечения http/https (и на хромбуке тоже), в том числе и X11 forwarding, но не на хромбуке, конечно).
                                        +1
                                        Предположения:
                                        • Имеется хромбук, способный зарегистрироваться и работать в корпоративной сети (неважно, напрямую или через VPN)
                                        • В этой же корпоративной сети имеется машина (неважно, физическая или виртуальная)
                                        • Имеется желание работать на хромбуке в некой программе (idea), запущенной на корпоративной машине
                                        • Подключиться по ssh на корпоративную машину с хромбука (как и с любого другого «неподтвержденного СБ» устройства) нельзя
                                        • При этом имеется достаточно прав на корпоративной машине, чтобы быть способным создавать/запускать образы docker


                                        На каком пункте эти предположения ошибочны?
                                          +1
                                          Подключиться с хромбука можно, он подтвержден СБ и там все, что нужно есть. С виртуальной машины, которой по сути и является linux на хромбуках, нельзя. Остальное все так, да.
                                            +1
                                            Что мешает создать свой образ docker с блекджеком и ssh-сервером?
                                              +1
                                              Где, на рабочей станции? Там есть ssh-сервер, зачем мне еще один?
                                                +1
                                                Образ, в котором находится idea, projector и nginx (это как минимум) — это «Ок».
                                                А образ, в котором находится idea и ssh-сервер — это неправильно?
                                                  +1
                                                  Я не очень понимаю зачем мне ssh-сервер в образе. У меня есть ssh-сервер на рабочей станции, я через него могу любой мне нужный порт (в том числе и тот, который из контейнера в рабочую станцию торчит) прокинуть на хромбук. X11 forwarding я при этом не могу использовать, потому что на хромбуке нет иксов и такое взаимодействие с ssh не поддерживается (а из линукс не могу по озвученным уже причинам). А http — запросто.
                                                    +2
                                                    ssh-ем с хромбука создаётся туннель между linux beta хромбука и портом докер-образа, на котором сидит «дополнительный ненужный» ssh-сервер.
                                                    После этого из linux beta выполняется вход на этот «дополнительный ненужный» ssh-сервер с пробросом иксов.
                                                      +1
                                                      Ну кстати да, может наверное даже сработать. Ради интереса можно сделать PoC. Но я в целом, конечно, предпочту следовать рекомендациям СБ и чуть-чуть пользоваться линуксом для своих опосредованно связанных с работой нужд. Потому что если будет заметно много такого вот overus'а, linux просто выключат насовсем. Всем. (надо сказать СБшники тоже люди и работают с группой тех, кому это интересно, над правильным способом сертифицировать и использовать crostini для внутреннего пользования)
                            • НЛО прилетело и опубликовало эту надпись здесь
                                +1
                                Видите в этом проблему? Вот, посмотрите:

                                Наверное, это нужно иметь ну ооочень хреновый интернет чтобы подобные артефакты на таком разрешении лезли.
                                  +1

                                  О боги! Это чертовски круто, я обязательно этим воспользуюсь.


                                  Мне осталось только понять две вещи:
                                  • я не нашёл в статье момента, можно ли открывать файлы с хостовой машины, будь то bind mount или хотя бы отдельная volume для докера.
                                  • осмыслить статью раздела "как сделать безопасное подключение". У меня с этими CA вечная беда, что когда пытался настроить OpenVPN, что когда пытался удалённо управлять докером.


                                  Ну, и отправлять пароль в параметрах урла тоже так себе идея. Хотя тут она может быть вполне безопасной, но после консультации со StackOverflow она мне по-прежнему не нравится.
                                  Хотелось бы иметь хотя бы basic-authentication из коробки, но это всё равно лучше чем ничего. А то в добавок к CA ещё свой OAuth2 сервер поднимать, то ещё счастье. :)

                                    +1

                                    Да, нужно в докер смонтировать директории, которые тебе нужно, и жить счастливо.


                                    Посмотри на файл run-container-mounted.sh, там уже есть заготовка чтобы не терять настройки. Документация к этому файлу есть на глагне, но это элементарное монтирование фиксированной директории в домашнем каталоге.


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

                                    +1

                                    Крайне интересная замануха. Как интересно с лицензией будет?

                                      +1

                                      А что с лицензией? Она просто работает. Ну в смысле, нужно вводить её изнутри IDE. Оно вообще никак не влияет на лицензионную политику. Это как если бы ты купил новый монитор, но этот монитор показывает HTML+JS. Никто не запрещает покупать мониторы :)

                                        +2

                                        Я даже немного про другое, как бы потом это не вылилось в google stadia. А так то лицензия у меня есть :)

                                        +1

                                        С лицензией всё просто — на идею — лицензия ваша (если она вообще нужна), на час прожектор лицензия GPL2 with CPE

                                          +1

                                          Пардон, просто GPL2

                                          +1

                                          И да, оно работает, хоть и крайне медленно на андроид машинке:


                                          Картинка

                                          +1

                                          Звучит очень круто! У меня в офисе стоит мощная машина, а на удалёнку беру ультрабук, но как подметил автор, это обжигает коленки и тратит нервы. Мысли о IDEA-"сервере" постоянно лезут в голову, думал про ssh-форвардинг или настройку удалённого LSP-сервера (но тогда нужно решать проблему маппинга файловой системы). А тут, надеюсь, глтовитс6 что-то интересное

                                            +1
                                            Можете пока visual studio code в браузере настроить. Когда открываешь в хроме как WPA полное ощущение нативного vscode, запущенного при этом на workstation, где есть нужный код.
                                            0
                                            Видите в этом проблему?



                                            Это RDP, если что.
                                              0

                                              А теперь поскрольте туда-сюда, попереключайте экраны

                                                +1
                                                Поскроллил, экраны переключать не могу правда, у меня дома один монитор (на работе два).

                                                Абсолютно никаких артефактов.

                                                Уже больше двух месяцев на удаленке через RDP сижу, глаза не болят. RDP Windows — Windows, с Remmina были проблемы, да.

                                                По моим личным наблюдениям — RDP дает лучшее качество картинки в одинаково хороших условиях.
                                                  +1
                                                  Мне кажется RDP RDP рознь. Одно время работал только на VDI через RDP и ощущение было что работаешь на локальной машине, что при работе из офиса что из дома. Не знаю как они этого тогда добились. Во всех остальных случаях весь опыт с RDP это боль с пингом в полсекунды и кривыми шрифтами.
                                                    +1
                                                    в Windows 10 RDP прям хорош… но бывает проскакивают артефакты

                                                    выглядит так:
                                                    image

                                                    в принципе не критично
                                                      0
                                                      При работе через RDP в Windows 10 (вынужден пользоваться на работе) (патч RdpWrap) не работают хоткеи Ctrl+Alt+Стрелки

                                                      Это только у меня проблема?
                                                        0
                                                        Нет, не только. RDP из Win 8.1 на Win 7 — также не работают.
                                                    +1
                                                    image
                                                    Тоже RDP. Для этого заведена VDS на обычной Windows 10.
                                                    Тема очень интересная, но очевидно, что проблема накручена. У Вас в посте скриншот сделан либо с таким-себе соединением либо с выкрученным на самый минимум качеством изображения в настройках сессии. Но Projector уже ставлю, интересна производительность.
                                                      +1
                                                      А что за странные белые прямоугольники местами на фоне?
                                                        0
                                                        Где? Можно скриншот?
                                                          +3
                                                          Вот например
                                                          Можете ткнуть пипеткой прямо возле конца строки и правее, у правого края картинки. И таких на вашем скриншоте много, мне сразу в глаза бросилось. Уж не знаю, хабр это прежал, или RDP, но очень напрягает.
                                                            0
                                                            Чувак, что у тебя с насыщенностью в настройках монитора?
                                                            Увидел только при изменении насыщенности. А так — глазу не видно. Я через RDP работаю уже больше полугода. Никаких проблем нет.
                                                              +2

                                                              У меня яркость выкручена почти до минимума, да ещё и 4к монитор и всё равно они в глаза бросаются.

                                                                +2
                                                                У меня два монитора — на обоих видно. С телефона где настройки все тоже стандартные — аналогично, прекрасно видно, даже лучше чем на пк. Очень бросается в глаза и напрягает.
                                                                  0
                                                                  Ну, тут уже немного не та тема, что у ТС. Очевидно же, что дело в настройках монитора. На IPS и VA с нормальной яркостью и насыщенностью все ок.
                                                                  Просто попробуй через RDP поработать на сервере со стабильным интернетом (те шакалы, что у ТС на скриншоте, свидетельствуют о плохом соединении и выкрученной в минимум цветопередачей). Все будет в порядке.
                                                                  Ну а если не в порядке и решение ТСа подходит — это здорово. Больше мне сказать нечего.
                                                                  У меня никаких квадратов не видно.
                                                                    +1
                                                                    Вот пришел домой, теперь уже могу точно сказать, на двух разных мониторах на работе, на телефоне galaxy a50, на ipad прошлогоднем и на домашнем мониторе — везде прекрасно бросается в глаза. Судя по тому что не один я это замечаю — вы просто возможно слабее оттенки различаете.
                                                                    И нет, мне даже по локалке напряжно по RDP работать. Проверено. Как по времени отклика, так и по качеству картинки.
                                                                      +1
                                                                      Завидую Вашему зрению.
                                                                      Девушка художник на своем мониторе и планшете не видит — оттенки различает слабо, видимо, тоже.
                                                                      Думаю, все видят по-разному. Выше и другой человек написал, что все нормально через RDP и никаких проблем нет.
                                                                        +2
                                                                        Вот уж завидовать точно не стоит. Как раз завтра в оптику за новыми очками пойду — думаю -7 или -8 будет. Но тем не менее на любом мониторе на стандартных и на моих привычных настройках хорошо эти прямоугольники различаю. И не я один, как вижу по комментариям. Плюс из интереса скинул в чатик один — большинство все же увидело, но не все. Еще один на хорошем мониторе увидел, на каком то старом TN ноута не увидел.
                                                                          +2
                                                                          У меня работа не картинки разглядывать, а код писать ))
                                                                          Поделал еще скринов, поменял насыщенность — квадраты разные в разных местах в разном количестве. Просто при работе ничего не видно и усталости при работе не добавляет, я туда целый день смотрю.
                                                                      +1
                                                                      Отлично видно. Это ж прям совсем разные цвета.
                                                                    +2

                                                                    Я на одной работе только через 2 месяца узнал, что у нас оказывается на форме логина немного серый фон (а не белый). Кто-то из тестировщиков прикрепил к задаче видео, где это было заметно. Проблема оказалась связана с интегрированной графикой Intel. Значение "Контрастность" в настройках драйвера надо было сделать 49 (на 1 меньше чем по умолчанию), тогда цвета начинали нормально отображаться. Возможно у вас такая же причина.

                                                                    0

                                                                    Лопни мои глаза, эта картинка ведь — отличный тест на то, под правильным ли углом стоит монитор!

                                                                      0
                                                                      Искрутился весь, так и не увидел. Пришлось прибегнуть к магии фотошопа.
                                                                      Для тех кто тоже не видит
                                                                      Яркость снижена.
                                                                      image
                                                            0
                                                            у нас еще citrix используют. проблем никаких нет даже с двумя экранами.
                                                            +1

                                                            Локально по vnc (еще и с шифрованием через ssh) все летает и никаких лагов нет...

                                                              0

                                                              Мой опыт с VNC такой. Локально по проводу — да. Локально по Wi-Fi у меня уже есть серьезные затупы, хотя роутер не из дешевых, и отдельный асусовский Wi-Fi приемник с огромной антенной. Глобально из России в Германию — куда неприятней. Глобально из России в США — нужно иметь железную выдержку, чтобы пользоваться VNC.

                                                                +1

                                                                Из России в США и прожектор будет вдуплять (пока что).

                                                              +2

                                                              x over ssh ещё можно, для постоянной работы конечно не подойдёт, но быстренько поправить что-то находясь в отпуске или на даче можно. А главное ставить ничего не прийдётся ибо ssh клиент и иксы есть в любом (почти) дистре по умолчанию.
                                                              P.S.: на андроиде не пробовал но думаю будет не сильно хуже.
                                                              P.P.S: а вообще-то быстренько поправить что-то можно прям в вебморде вашего gitlab/github/etc не заморачиваясь ни с чем..

                                                                +1

                                                                1) райдер скоро перепишут на .net
                                                                2) райдер жрет оперативу, а точнее не физическую память, а выделенную.
                                                                3) рдп видно вам не понравился т.к. не вкючена функция ремоутФХ.
                                                                4) на рдп с ремотФХ работает даже гейминг от нвидиа онлайн. Если нету проблем с 4к динамическими играми ни с графикой, ни с задержками, то проблема явно в вас .

                                                                  +2
                                                                  1) райдер скоро перепишут на .net

                                                                  Серьезно? А где можно почитать/посмотреть/послушать про это?

                                                                  +1
                                                                  Неужели у кого-то действительно возникают проблемы со скоростью работы Идеи? По личному опыту — года 3 назад пользовался Идеей на windows-планшете с Атомом и 2 гигами RAM. Не летала, конечно, но небольшой проект без всяких проблем работал. При программировании тормозов не было, компиляция занимала адекватное количество времени.
                                                                    +1

                                                                    Наверно, зависит от размера проекта. Когда последний раз запускал android studio на нетбуке с атомом и 3гб памяти, тот был не очень рад, а для экономии ресурсов приходилось закрывать весь посторонний софт и иногда даже браузер. Лет 5-7 назад мощности и памяти хватало, но со временем IDE и браузер становились всё прожорливее.

                                                                      +1
                                                                      Android Studio совершенно не работоспособна с большими проектами даже на совершенно не бюджетном железе. Ну если отрубить все плюшки IDE то да, работает, но в таком случае проще использовать VSCode
                                                                        0

                                                                        Что именно неработоспособно? Что тормозит?


                                                                        Что такое "большой проект", в чем измеряется?

                                                                          +1
                                                                          Тормозит все, начиная от редактора кода, когда он может печатать по символу в несколько секунд, продолжая таким же медленным поиском, перетекая в зависающую сборку из студии (из консоли проблем нет) и прочее.

                                                                          В объеме кода видимо.
                                                                            0

                                                                            Ох, чувствую боль.


                                                                            Кстати, насколько понимаю, Android Studio — это не продукт JetBrains. Её делает Google самостоятельно, от JB там только базовая платформа.


                                                                            Ты пробовал запустить этот проект в IntelliJ IDEA с Android-плагином?

                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                      +3

                                                                      У вас, конечно же, есть десятки постов.


                                                                      Шутка, рофляночка, я знаю, что нет. Потому что только что нажал "одобрить" на экране модерации этого крайне токсичного комментария.


                                                                      А одобрил крайне токсичный комментарий я по одной простой причине. Чтобы написать, что грамотность, красота и достижимость поста — это совершенно разные вещи. Лучше написать хоть что-то на скорую руку, с десятками опечаток и грамматических ошибок, чем не написать ничего. Done is better than perfect.


                                                                      Поэтому у меня на аккаунте около трехсот постов, а у кого-то — ни одного. Возможно, какой-то начинающий автор сейчас это читает, и ему это поможет.

                                                                        +4
                                                                        На самом деле помогло
                                                                          +1

                                                                          У тебя статья хорошая :)

                                                                          +1
                                                                          Лучше лишний раз вычитать, чем опубликовать.

                                                                          Не только грамотность правится, но и обороты речи, и способ подачи идеи.
                                                                          А умная мысль, она не убежит из черновика.

                                                                          Как косноязычный говорю =)
                                                                            –2

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

                                                                              +4

                                                                              Серьёзно? Если статью про работу в IntelliJ IDEA на слабом железе опубликовать не сегодня, а завтра — будет поздно? И главное это случится из-за зумеров с дефицитом внимания? Как это работает?


                                                                              Или вы хотели сказать, что это авторы — зумеры с дефицитом внимания и если они не опубликуют статью сейчас, то через секунду всё выветрится из головы?

                                                                                +1
                                                                                Как это работает?

                                                                                Очень просто это работает. Сегодня ты написал статью, а завтра у тебя уже есть что-то другое, более интересное. Или не более интересное — просто другое. Про статью ты уже и не вспомнишь.


                                                                                Ну например, такой автор с дефицитом внимания — это я :) Чтобы статьи не выветривались, у меня есть два приёма. Во-первых, некоторая дисциплина с графками выпуска статей (даже если это статьи не по работе, а для развлечения, как вот эта). Если чего-то не существует в заметках или в календаре — этого не существует вообще.


                                                                                Во-вторых, у тебя компьютер, квартира, всё на свете должно быть всегда готово к созданию контента "на счёт ноль". У меня всегда стоит на штативе фотоаппарат, включенный в компьютер, чтобы писать ролики — на него садится пыль, но я его не разбираю, потому что знаю — если для записи ролика мне придется собирать видеосетап, то к тому моменту как я его соберу, я уже расхочу снимать ролик :)


                                                                                С этой статьей та же ситуация. Я попробовал Projector вечером, а потом сел и начал писать статью, и писал пока не дописал, а это случилось уже ночью. У статьи время публикации 14.02 — это потому, что я поставил будильник "опубликовать статью" на это время следующего дня, чтобы люди могли почитать за обедом. Если бы я остановился и продолжил назавтра — с высокой вероятностью, завтра было бы уже неинтересно что-то делать и статьи бы не было.


                                                                                Такие дела.

                                                                            +4

                                                                            О «токсичности» рассуждает человек, начавший комментарий с аргумента «сначала добейся», очень смешно.


                                                                            Глаза действительно начинают кровоточить от ваших «1998-ого».

                                                                            +3
                                                                            >Граммотность
                                                                            Оукей
                                                                              +3
                                                                              Тут принято об ошибках в личку сообщать. Это помогает снизить градус токсичности и улучшить качество маериалов.
                                                                              +1
                                                                              Я в последнее время использую Parsec Gaming, чтобы стримить экран с хоста. Правда я больше для монтажа видео использую, но в этом случае артефакты еще большее зло.
                                                                                +1
                                                                                У nvidia есть встроенная в драйвера поддержка стримминга кстати. Изначально для устройств nVidi Shield, но существует opensource клиент под все платформы (в том числе и под хромбуки). Гуглить по «nvidia moonlight». Работает хорошо.
                                                                                +1
                                                                                Автор, что за тему вы используете в своем IDE на планшете?
                                                                                  0

                                                                                  Для этой демки — дефолтная тема. Оно так выглядит на Linux, на "нативном" Mac может быть немного по-другому, особенно шрифты.


                                                                                  Вообще по жизни я использую тёмную контрастную тему, которая ставится вместе с плагином Material Design. Там целая пачка тем, и тонкие настройки, которые подойдут к самым противоположным по вкусу людям.


                                                                                  Ещё достойная тема (тоже плагин) — Dark Purple.


                                                                                  Минутка рекламы закончена ;)

                                                                                  +1

                                                                                  Правильно ли я понимаю:


                                                                                  • Приложение транслируется из контейнера в HTTP трафик?
                                                                                  • Может работать за проксей?
                                                                                  • Иксы хосту не нужны?

                                                                                  Получается можно завести все в Kubernates?

                                                                                    +1
                                                                                    1. да
                                                                                    2. не совсем понятен вопрос, но в принципе почему бы и нет? Это просто http, ничего особенного.
                                                                                    3. да, не нужны.
                                                                                      0
                                                                                      не совсем понятен вопрос, но в принципе почему бы и нет? Это просто http, ничего особенного.

                                                                                      http это плохо, т.к. кто-то может их перехватить, не?


                                                                                      данные передаются через вебсокет, вебсокет можно зашифровать (статья присутствует). Но вебсокет может плохо проходить через прокси


                                                                                      в идеале бы 1) сделать чтобы соединение-инициатор тоже было шифрованым 2) сделать хорошо оттестированную связку "правильного" прокси с полностью шифрованным соединением

                                                                                        +1
                                                                                        Там nginx внутри контейнера, отдается все через него, похоже. Подложить ему сертификаты, или добавить поверх, снаружи контейнера, еще один с сертификатами не должно быть большой проблемой?
                                                                                          +1

                                                                                          Попробую тогда PyCharm развернуть в пн в docker-compose за haproxy или nginx с сертификатами и http2. Если заведется, тогда можно попробовать в кубик загнать. Если и там заведется, то вообще JetBrains-as-Service это неплохая затея. Жаль только тестированные версии староваты.

                                                                                            +1

                                                                                            Ну да, в этом некоторые большие клиенты и заинтересованы.

                                                                                              0
                                                                                              Жаль только тестированные версии староваты.

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

                                                                                                +1

                                                                                                Я честно пытался завести это под RancherOS, но сбилдить контейнер мне так и не удалось. Сегодня попробую под убунтой.
                                                                                                Вообще проблема странная: нехватка памяти, но у меня на вируалке 8vCPU/16GB. Попробую собрать образ на убунту, там проверю и надеюсь потом завести это под RancherOS.

                                                                                                  +2

                                                                                                  Так, я поднял под Ubuntu 18.04 с docker. Можно прятать за ingress, но сам проект вообще не юзабельный. Поднимается кое-как с некоторыми недокументированными движениями только в строго определённых условиях, а значит в сам кубик такое засунуть будет сложновато. В хроме меню вообще куда-то вверх убегает, а значит невозможно выбрать ни один пункт. Периодические лаги, когда окно исчезает и весь интерфейс встаёт колом.
                                                                                                  Сама идея — классная, шрифты красивые и не плывут, авторизацию всегда можно навесить, притом разными интересными способами. В принципе, если даже не получится завернуть в K8s, то ничто не мешает подготовить виртуалку со всем необходимым для разных гипервизоров. Но реализация пока сильно сырая, поэтому работать в таком поделии невозможно. Ждём официального релиза от JB.
                                                                                                  Как идея (если нас читают JB): можно было бы реализовать что-то вроде тонкого клиента, либо PWA (это было бы вообще киллер-фичей).

                                                                                                    +3

                                                                                                    Мы читаем, да :)
                                                                                                    Мне лично немного грустно что у вас странно работает, я лично не занимаюсь этим проектом, но тут есть человек, который занимается. Для меня убегающее вверх меню выглядит как баг и мне кажется, что вы можете с чистой совестью завести его в Youtrack.


                                                                                                    А поделитесь что там такого используется что мешает запихивать в k8s/rancher?


                                                                                                    А что вы называете официальным релизом? Мы над этой штукой работаем, но политика партии такова, что громко кричать мы о ней пока что не будем (а может и вообще не будем). Так что просто дорабатываем, исправляем баги и т.д.

                                                                                                      +1

                                                                                                      Это круто, что вы читаете.
                                                                                                      Можете ссылку кинуть на то, где можно настрочить описание бага с подробностями? А то я репозиторий только на github видел. Или туда тоже норм?
                                                                                                      Я не сказал, что нельзя завести, только сбилдить контейнер под rancheros. Вообще, было бы круто не билдить их самим, а взять, так сказать, проверенный авторами образ, особенно в свете того, что он зависит от билд-хоста. Но это уже капризы.
                                                                                                      Под кубиком я не запускал, но образ в несжатом виде — 1.83Гб выглядит ужасающе для вытягивания с условного dockerhub. Хотя, там наверное сама IDE большую часть занимает. Тем не менее, если не запустится под неподготовленной системой (т.е. просто ставим докер, накатываем в кластер k8s), то для куба это решение будет сомнительным. Уверен, что есть поле для оптимизации размера образа.


                                                                                                      Релизом я называю стабильную версию, с описанием от компании, а не "мужики, прикиньте что нашёл в закромах гитхаба и вроде рабочее". Но раз политика партии говорит "молчим", то наверное на то есть причины.


                                                                                                      А если не секрет, с чем связана такая политика? С тем, что продукт не prod-ready или какие-то маркетинговые штучки?

                                                                                                        +1

                                                                                                        Отвечаю только на последний вопрос: это только про маркетинг и его использование. Мы делаем эту штуку для больших клиентов и заинтересованы в исправлениях для них. И конечно же у больших k8s и они там хотят и могут крутить.

                                                                                                          +1

                                                                                                          Ишшу создавать вот тут: https://youtrack.jetbrains.com/issues/PRJ?u=1


                                                                                                          Спасибо вам большое за ваш фидбек, он в любом случае полезен!

                                                                                                            0
                                                                                                            особенно в свете того, что он зависит от билд-хоста

                                                                                                            Мне кажется, сборка в Докере должна работать везде. Это баг, заведите тикет, пожалуйста.

                                                                                                          +1
                                                                                                          Ну кстати, я вот собрался с духом и поднял ее таки совсем без контейнера (такой уж юзкейс, с контейнером не подходит) со своей собственной интсалляцией идею. Если на хромбуке через «open as window» запускать веб-клиента, то вообще красота (хоткеи по крайней мере работают правильно, по ctrl+shift+n не открывается порно-режим браузера). Выглялит хорошо, подлагивает только, но возможно это из-за качества соединения (рабочая станция суть виртуалка в датацентре). Попробую денек-другой поработать за этой штукой.
                                                                                                            +1
                                                                                                            Поработал вчера, пока тяжеловато конечно идет. В целом оно работает, но очень похоже что сильно не дружит с какими-то оверлеями. (когда что-то не то удаляешь и весь файл раскрашивается красным, все иногда наглухо виснет вплоть до перезагрузки страницы, также при попытке работать в терминале я начал получать снизу зеленую подсказку про что-то, где надо было нажать got it и также все начало виснуть). Буду ждать обновлений в общем, пока тяжело.
                                                                                                      +1

                                                                                                      А, в этом смысле да.

                                                                                                  +1
                                                                                                  На маке завелось по инструкции из репозитория (запустить три sh файла)

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

                                                                                                  Да, тысячу раз да! Эта штука насколько просто и хорошо работает, что действительно непонятно, почему JetBrains о ней молчит и тратит так мало ресурсов (два человека, серьезно?)

                                                                                                  Это же супер удобная фишка для больших компаний с их огромными монорепозиториями, в которых тормозит практически все: как tooling (lint, build, tests), так и JetBrains IDE.
                                                                                                  Поэтому приходится разрабатывать на удаленной машине. А там практически нет выбора – только VS Code в remote режиме, качество подсказок которого сильно хуже по сравнению с настоящей IDE
                                                                                                    +1
                                                                                                    Можно Вас попросить снять видео работы этого решения?
                                                                                                      0

                                                                                                      Я могу сделать, но только завтра

                                                                                                        +1
                                                                                                        Youtube немного пожал видео, но идея ясна, я думаю
                                                                                                          +1
                                                                                                          Вполне юзабельно.
                                                                                                          А можно ещё как-то посмотреть, сколько оно при этом сети кушает?
                                                                                                    +2
                                                                                                    А мне вот интересно стало можно ли будет так Android Studio запускать. Особенно это интересно т.к. в Android Studio 4.2 встроили эмулятор в панель интерфейса. А если эмулятор не отобразится, то можно посмотреть в сторону docker образа эмулятора Android от Google со стримингом WebRTC экрана эмулятора в браузер (https://github.com/google/android-emulator-container-scripts).
                                                                                                    Таким образом целиком всю Android разработку можно будет перенести в облако. Актуально для больших проектов с тяжёлой сборкой.
                                                                                                      +1

                                                                                                      Должно быть можно, я ток не уверен что будет прям всё работать — визуальный редактор, диалог добавления SDK и так далее — протестируйте и расскажите нам, пожалуйста.

                                                                                                        0

                                                                                                        Скорей всего, можно. Технология внутри — универсальная, позволяющая запускать любое джава-приложение. Но придется вначале придется разбираться самому, т.к. разработчиков пока не очень много ;)

                                                                                                          +1

                                                                                                          И вот эмулятор ещё, да… Но Issues открыты — завести если что всегда можно. Хоть это и не проект JetBrains, но может что-то подскажем.

                                                                                                          +1
                                                                                                          А шорткаты не сыпятся при этом? Все-таки это «сайт» под браузером, а также серверная и клиентская ОСи могут отличаться.
                                                                                                            +1

                                                                                                            SerVB что скажешь?

                                                                                                              +1

                                                                                                              AlexunKo Текущее поведение следующее. Клиент при подключении говорит серверу о своей ОС, а сервер переключает раскладку запущенной IDE:


                                                                                                              • Клиент Windows -> X_WINDOW_KEYMAP
                                                                                                              • Клиент Mac -> MAC_OS_X_10_5_PLUS_KEYMAP
                                                                                                              • Другой клиент -> GNOME_KEYMAP
                                                                                                                0

                                                                                                                Спасибо, а что насчет конфликтующих шорткатов таких как ctrl+f, который в браузере обычно поиск выдает?

                                                                                                                  +1
                                                                                                                  Надо запускать в PWA-режиме, тогда приоритет шорткатов уходит в приложение.
                                                                                                                    0

                                                                                                                    Звучит круто, спасибо за упоминание. Я, правда, быстро не смог нагуглить про перехват шорткатов в PWA режиме.


                                                                                                                    Не могли бы Вы поянить: нужно ли что-то будет сделать специально или в любом PWA шорткаты не идут в браузер вообще?

                                                                                                                      +1
                                                                                                                      Я точной документации, описывающей эту разницу не видел. Но довольно активно пользуюсь в хромоси этим create shortcut -> open as window (также есть и в обычном хроме) для штук вроде secure shell app и visual studio code. И также пробовал projector (это то, про что пост, собственно) гонять. Для ssh в этом режиме ctrl+w перестает закрывать вкладку, для projector ctrl+n/ctrl+shift+n перестает открывать новые вкладки и вместо этого начинает открывать релевантные «идейные» окошки, то же самое для ctrl+p в vs code. Также в vscode и в idea начинает нормально ctrl+space работать для автокомплита (какой-то очень умный человек додумался на этот хоткей повесить переключение раскладки в хромоси и не дать возможность это поменять). При том ctrl+n в том же secure shell app, у которой нет своего действия на эти клавиши, вполне запускает новые окошки этого приложения. Т.е. чувство такое что хоткеи все еще работают, просто приоритет их обработки уходит от самой оболочки в программу. А уж если программа никак не отреагировала — тогда уже оболочка работает.
                                                                                                                    +1

                                                                                                                    Сейчас мы стараемся перехватывать все шорткаты, и например Ctrl+F вызывает поиск в IDE и не доходит до браузера. Однако более жесткие шорткаты для закрытия страницы типа Ctrl+W или Ctrl+Q браузеры видимо не дают перехватить, и они у нас не работают.


                                                                                                                    Это проблема, на это есть тикет: https://youtrack.jetbrains.com/issue/PRJ-43. Если хотите, голосуйте и комментируйте.

                                                                                                              +2

                                                                                                              Круто! Как раз есть мощная серверная тачка, на которой все билдится и тестируется, давно хотел вынести туда и разработку проекта.


                                                                                                              Есть одна возможная деталь по этому поводу: Websocket-ы в браузерах как правило не включают TCP_NODELAY (Nagle's algorithm), который приводит к некоторым лагам при передаче коротких пакетов. Более того, было замечено, что некоторые мобильные браузеры еще больше грешат "оптимизацией траффика", и задержки вебсокета составляют несколько секунд. К сожалению, протокол Websocket не позволяет напрямую включить TCP_NODELAY.

                                                                                                                0
                                                                                                                Иногда удалённо работаю на IPAD Pro 12,9 2020(Перешел на него с ноута), подключаюсь к Windows с помощью родного Microsoft приложения из AppStore RD Client, IDEA выглядит так:
                                                                                                                image
                                                                                                                  0

                                                                                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                                  Самое читаемое