Быстрое тестирование продуктовых гипотез или как мы опередили Google на три года | by Anton Stupnev | May, 2021

Ситуация: вам в голову пришла гениальная идея о новой функции или продукте, и прежде чем бросать все ресурсы на его создание, эту идею нужно протестировать. Классические методы вроде интервью или карты пользовательского пути (КПП) занимают как минимум несколько дней, поэтому мы используем стратегию, позволяющую протестировать КПП быстрее — всего за пару часов. Как улучшить путь…

Брендирование доставки еды: дегустационное меню из 21 дизайна

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

Самое интересное из мира дизайна и искусства: с 31 мая по 6 июня

Первая неделя лета ознаменована XXVI Международной выставкой архитектуры и дизайна АРХ Москва и большим количеством лекций — о коллекционном дизайне, об экоактивизме, о пересечении искусства и моды в XX-XXI веках и об образе художника в XXI веке. 1 июня. Начало: 19:00. Цена: бесплатно О коллекционном дизайне в последнее время говорят много и громко. Что такое…

Как устроиться на работу в анимации

Получить работу аниматора и укрепить свои навыки не всегда легко. Я помню, как был разочарован, пытаясь понять, как попасть в индустрию. Нужно ли мне поступать в колледж, мне нужен наставник, или это похоже на конкурс, и если я получу стажировку, тогда я буду счастливчиком, которого научат работать в отрасли? Хотя у всех разные случаи, и…

GitHub — sorenisanerd / gotty на webdesignernews.com

Со страницы выпуска

Вы можете загрузить последний стабильный двоичный файл со страницы Releases. Обратите внимание, что выпуск с пометкой Предварительный выпуск создан для целей тестирования, которое может включать нестабильные или критические изменения. Загрузите выпуск с пометкой «Последний выпуск» для стабильной сборки.

(Файлы с именем darwin_amd64 предназначены для пользователей Mac OS X)

Установка Homebrew

Вы также можете установить GoTTY с Homebrew.

 $ brew install sorenisanerd / gotty / gotty 

получить Установка (разработка)

Если у вас есть языковая среда Go, вы можете установить GoTTY с помощью команды go get . Однако эта команда создает двоичный файл из последней основной ветки, которая может включать нестабильные или критические изменения. GoTTY требует go1.9 или более поздней версии.

 $ go get github.com/sorenisanerd/gotty[19459013visible
<div class = "snippet-clipboard-content относительно позиции" data-snippet-clipboard-copy-content = "Использование: gotty [options] [] ">
  Использование: gotty [options]  []
 

Запустите gotty указав предпочитаемую команду в качестве аргументов (например, gotty top ).

По умолчанию GoTTY запускает веб-сервер на порту 8080. Откройте URL-адрес в своем веб-браузере, и вы увидите выполняющуюся команду, как если бы она выполнялась на вашем терминале.

Параметры

 - значение адреса, -значение IP-адреса для прослушивания (по умолчанию:   « 0.0.0.0 »  ) [ $ GOTTY_ADDRESS ]
   --port value, -p value Номер порта для liten (по умолчанию:   « 8080 »  ) [ $ GOTTY_PORT ]
   --path значение, -m значение Базовый путь (по умолчанию:   « / »  ) [ $ GOTTY_PATH ]
   --permit-write, -w Разрешить клиентам писать в TTY (БУДЬТЕ ОСТОРОЖНЫ) (по умолчанию: false) [ $ GOTTY_PERMIT_WRITE ]
   --credential value, -c value Credential  for  Basic Authentication (ex: user: pass, default disabled) [ $ GOTTY_CREDENTIAL ]
   --random-url, -r Добавить случайную строку к URL-адресу (по умолчанию: false) [ $ GOTTY_RANDOM_URL ]
   --random-url-length значение Случайная длина URL (по умолчанию: 8) [ $ GOTTY_RANDOM_URL_LENGTH ]
   --tls, -t Включить TLS / SSL (по умолчанию: false) [ $ GOTTY_TLS ]
   --tls-crt значение Путь к файлу сертификата TLS / SSL (по умолчанию:   « ~ / .gotty.crt »  ) [ $ GOTTY_TLS_CRT ]
   --tls-key значение Путь к файлу ключей TLS / SSL (по умолчанию:   « ~ / .gotty.key »  ) [ $ GOTTY_TLS_KEY ]
   --tls-ca-crt значение Файл сертификата TLS / SSL CA  для  сертификатов клиентов (по умолчанию:   " ~ / .gotty.ca.crt "  ] ) [ $ GOTTY_TLS_CA_CRT ]
   --index значение Пользовательский файл index.html [ $ GOTTY_INDEX ]
   --title-format value Формат заголовка окна браузера (по умолчанию:   " {{.command}} @ {{.hostname}} "  ) [ $ GOTTY_TITLE_FORMAT ]
   --reconnect Включить повторное подключение (по умолчанию: false) [ $ GOTTY_RECONNECT ]
   --reconnect-time значение Время повторного подключения (по умолчанию: 10) [ $ GOTTY_RECONNECT_TIME ]
   --max-connection value Максимальное соединение с gotty (по умолчанию: 0) [ $ GOTTY_MAX_CONNECTION ]
   --once Принимать только одного клиента и  выходить из  при отключении (по умолчанию: false) [ $ GOTTY_ONCE ]
   --timeout значение Время ожидания в секундах  для  ожидания клиента (0 для отключения) (по умолчанию: 0) [ $ GOTTY_TIMEOUT ]
   --permit-arguments Разрешить клиентам отправлять  команду  строковые аргументы  в  URL (например, http://example.com:8080/?arg=AAA ] &  arg = BBB) (по умолчанию: false) [ $ GOTTY_PERMIT_ARGUMENTS ]
   --width значение Статическая ширина экрана, 0 (по умолчанию) означает динамическое изменение размера (по умолчанию: 0) [ $ GOTTY_WIDTH ]
   --height значение Статическая высота экрана, 0 (по умолчанию) означает динамическое изменение размера (по умолчанию: 0) [ $ GOTTY_HEIGHT ]
   --ws-origin значение Регулярное выражение, которое соответствует исходным URL-адресам, принимаемым WebSocket. Запросы на другое происхождение по умолчанию недопустимы [ $ GOTTY_WS_ORIGIN ]
   --term value Имя терминала для использования в браузере, одно из xterm или hterm. (по умолчанию:   « xterm »  ) [ $ GOTTY_TERM ]
   --enable-webgl Включить средство визуализации WebGL (по умолчанию: false) [ $ GOTTY_ENABLE_WEBGL ]
   --close-signal value Сигнал, отправляемый процессу  command когда gotty закрывает его (по умолчанию: SIGHUP) (по умолчанию: 1) [ $ GOTTY_CLOSE_SIGNAL ]
   --close-timeout значение Время  в  секундах для принудительного  уничтожения  процесса после отключения клиента (по умолчанию: -1) (по умолчанию: -1) [ $ GOTTY_CLOSE_TIMEOUT  ]
   --config значение Путь к файлу конфигурации (по умолчанию:   " ~ / .gotty "  ) [ $ GOTTY_CONFIG ]
   --help, -h show  help  (по умолчанию: false)
   --version, -v распечатать версию (по умолчанию: false) 

Файл конфигурации

Вы можете настроить параметры по умолчанию и свой терминал (hterm), предоставив файл конфигурации команде gotty . GoTTY по умолчанию загружает файл профиля в ~ / .gotty если он существует.

  // По умолчанию слушаем порт 9000
порт = "9000"

// Включить TSL / SSL по умолчанию
enable_tls = true

// настройки hterm
// Меньший шрифт и немного более синий цвет фона
предпочтения {
    font_size = 5
    background_color = "rgb (16, 16, 32)"
}
 

Список параметров конфигурации см. В файле .gotty в этом репозитории.

Параметры безопасности

По умолчанию GoTTY не позволяет клиентам отправлять какие-либо нажатия клавиш или команды, кроме изменения размера окна терминала. Если вы хотите разрешить клиентам записывать ввод в TTY, добавьте параметр -w . Однако прием ввода от удаленных клиентов опасен для большинства команд. Если вам по каким-то причинам необходимо взаимодействие с TTY, подумайте о запуске GoTTY с tmux или GNU Screen и запустите на нем свою команду (подробности см. В разделе «Совместное использование с несколькими клиентами»).

Чтобы ограничить доступ клиентов, вы можете использовать параметр -c чтобы включить базовую аутентификацию. С помощью этой опции клиентам необходимо ввести указанные имя пользователя и пароль для подключения к серверу GoTTY. Обратите внимание, что учетные данные будут передаваться между сервером и клиентами в виде обычного текста. Для более строгой аутентификации рассмотрите аутентификацию сертификата клиента SSL / TLS, описанную ниже.

Параметр -r - более простой способ ограничения доступа. С этой опцией GoTTY генерирует случайный URL-адрес, так что только люди, знающие URL-адрес, могут получить доступ к серверу.

По умолчанию весь трафик между сервером и клиентами НЕ шифруется. Когда вы отправляете секретную информацию через GoTTY, мы настоятельно рекомендуем вам использовать параметр -t который включает TLS / SSL в сеансе. По умолчанию GoTTY загружает файлы crt и ключей, размещенные в ~ / .gotty.crt и ~ / .gotty.key . Вы можете перезаписать эти пути к файлам с помощью параметров - tls-crt и - tls-key . Если вам нужно создать самоподписанный файл сертификации, вы можете использовать команду openssl .

 openssl req -x509 -nodes -days 9999 -newkey rsa: 2048 -keyout  ~  /. Gotty.key -out  ~  /. Gotty.crt 

(ПРИМЕЧАНИЕ. Для Safari см., Как включить самозаверяющие сертификаты для WebSockets при использовании самозаверяющих сертификатов)

Для дополнительной безопасности можно использовать аутентификацию сертификата клиента SSL / TLS, указав файл сертификата CA для параметра - tls-ca-crt (для этого параметра требуется -t или - tls должен быть установлен). Этот параметр требует, чтобы все клиенты отправляли действительные сертификаты клиентов, подписанные указанным центром сертификации.

Совместное использование с несколькими клиентами

GoTTY запускает новый процесс с заданной командой, когда новый клиент подключается к серверу. Это означает, что по умолчанию пользователи не могут использовать один терминал совместно с другими. Однако вы можете использовать терминальные мультиплексоры для совместного использования одного процесса с несколькими клиентами.

Экран

После установки экрана GNU запустите новый сеанс с помощью screen -S name-for-session и подключитесь к нему с помощью gotty в другом окне / вкладке терминала через screen -x name-for- сессия . Все команды и действия, выполняемые в первой вкладке / окне терминала, теперь будут транслироваться с помощью gotty.

Tmux

Например, вы можете начать новый сеанс tmux с именем gotty с помощью команды top с помощью приведенной ниже команды.

 $ gotty tmux new -A -s gotty top 

Эта команда не позволяет клиентам отправлять нажатия клавиш, однако вы можете подключиться к сеансу со своего локального терминала и выполнять такие операции, как переключение режима команды top . Чтобы подключиться к сеансу tmux с вашего терминала, вы можете использовать следующую команду.

Используя терминальные мультиплексоры, вы можете контролировать свой терминал и позволить клиентам просто видеть ваш экран.

Быстрый обмен через tmux

Чтобы поделиться своим текущим сеансом с другими с помощью сочетания клавиш, вы можете добавить строку, как показано ниже, в свой .tmux.conf .

  # Запустить GoTTY в новом окне с помощью C-t
клавиша привязки C-t новое окно "gotty tmux attach -t` tmux display -p '# S'` "
 

Игра с Docker

Если вы хотите создать изолированную среду для каждого клиента, вы можете использовать контейнеры Docker, как показано ниже:

 $ gotty -w docker run -it --rm busybox 

Разработка

Вы можете создать двоичный файл, используя следующие команды. Windows сейчас не поддерживается. go1.9 не требуется.

   #  Установить инструменты 
перейти и получить github.com/jteeuwen/go-bindata / ...
перейти и получить github.com/tools/godep

  #  Сборка 
марка 

Для сборки клиентской части (файлов JS и других статических файлов) вам потребуется npm .

Архитектура

GoTTY использует xterm.js и hterm для запуска терминала на основе JavaScript в веб-браузерах. Сам GoTTY предоставляет сервер websocket, который просто ретранслирует вывод TTY клиентам, принимает ввод от клиентов и пересылает его TTY. Идея hterm + websocket вдохновлена ​​Wetty.

Альтернативы

Клиент командной строки

  • gotty-client: если вы хотите подключиться к серверу GoTTY со своего терминала

Терминал / SSH в веб-браузерах

  • Secure Shell (приложение Chrome): если вы являетесь пользователем Chrome и вам нужен «настоящий» SSH-клиент в своем веб-браузере, возможно, вам нужно приложение Secure Shell
  • Wetty: Веб-терминал на основе узла (SSH / вход)
  • ttyd: порт C для GoTTY с поддержкой CJK и IME

Совместное использование терминала

  • tmate: Совместное использование терминала на основе Forked-Tmux
  • общие условия: совместное использование терминала и терминала через HTTP-сервер
  • tmux: сам Tmux также поддерживает совместное использование TTY через SSH)

Лицензия MIT

Спасибо этим замечательным людям (смайлики):

Этот проект соответствует спецификации всех участников. Любые пожертвования приветствуются!

Альтернативы Illustrator: 6 лучших

Лучшие альтернативы Illustrator встряхивают мир и начинают ломать долгое господство Adobe в области цифрового искусства, иллюстрации и графического дизайна. Программное обеспечение Adobe может по-прежнему оставаться отраслевым стандартом, но есть и другие варианты, которые вполне жизнеспособны, если вы хотите попробовать что-то новое. Хотите ли вы больше платить за подписку Creative Cloud или просто хотите научиться работать…

The Touch. Spaces Designed for the Senses

Дизайнер Йонас Бьерре-Поульсен из датской студии Norm Architects и соучредитель журнала о стиле жизни Kinfolk Натан Уильямс выпустили книгу The Touch — о 25 интерьерных и архитектурных проектах, которые не только визуально привлекательны, но и затрагивают все человеческие чувства. В содержании книги, выпущенной издательством Gestalten, выделено пять тем: свет, материальность, цвет, природа и сообщество. Кроме…

Торопиться! Скидка 50% на ноутбук Dell XPS 13 Touch — лучшая сделка в День поминовения, но она не продлится долго!

Вы услышите много предложений, обсуждаемых в выходные дни распродажи в День поминовения. но такая сделка, как эта скидка 700 долларов на новый Dell XPS 13 Touch, говорит сама за себя. В Dell цена этого фантастического ноутбука (фаворита CB для цифровых креативщиков) снизилась с ошеломляющих 1499,99 долларов до доступных 799,99 долларов. И мы уверены, что это…

Почему прерывания расстраивают разработчиков

Представьте, что вы сосредоточили свое внимание на карточной башне, а прерывания ее сбивали. Если бы ваша продуктивность зависела от карточной башни, разве вы не расстроились? Я слышал эту аналогию от своего друга несколько лет назад. Я повторил аналогию для быстрого визуального сосредоточения, и мне это всегда нравилось, поэтому я обратился к своему другу, чтобы узнать,…

Лучшие логотипы и ребрендинг недели

Прошло много времени с тех пор, как мы видели старый добрый ребрендинг на Creative Bloq. Учитывая, что за последний год (или девятьсот месяцев, или сколько бы времени прошло с тех пор, как все пошло не так) было приостановлено так много аспектов жизни и работы, я не удивлюсь, если многие крупные проекты по брендингу будут вынуждены…