Dorte Mandrup спроектировал магазин ИКЕА в Копенгагене с парком на крыше

Датская студия Dorte Mandrup спроектировала магазин IKEA в центре Копенгагена с общественным парком на крыше, который будет служить «зеленой гостиной». Магазин откроется в районе Вестербро в 2023 году. «Вестербро – густонаселенный и активный район города, в котором есть только несколько зеленых зон и пешеходных дорожек. С новым парком на крыше мы хотим вернуть зеленую гостиную…

У ABC новый логотип (и это похоже на дежа вю)

Американский телеведущий, ABC (American Broadcasting Company) перерисовал свой 60-летний логотип (вверху) в еще одном примере большого корпорация, придерживающаяся движения плоского дизайна. Однако мы должны предупредить вас, что если вы здесь ради драмы, отвернитесь сейчас. Доработки дизайна минимальны, если не сказать больше — с удаленным 3D-блеском и незначительно измененным шрифтом. Не то чтобы ABC так думала.…

9 самых популярных типов блогов на 2021 год

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

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

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

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

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

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

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

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

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

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

Как добавить фавикон на WordPress

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

Как UX влияет на поисковую оптимизацию сайта

Алгоритм Google учитывает пользовательский опыт. Например, Google не ранжирует каталоги, потому что отправка пользователей со страницы с 10 ссылками на страницу с 20 ссылками — плохой пользовательский опыт. Поэтому, очень правильно подходить к сайту с точки зрения UX. Тем более, это может помочь вам с SEO. Рассмотрим, каким образом UX может повлиять на ваше поисковое…

Задайте эти 5 вопросов, чтобы отсеять плохих клиентов “на берегу”

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