Міжнародна конференція розробників
і користувачів вільного програмного забезпечення

Консольно-ориентированные сервисы: wttr.in, cheat.sh, rate.sx — Идея, использвание, создание

Игорь Чубин (Igor Chubin)

LVEE 2018

Console orineted services: wttr.in, cheat.sh, rate.sx: idea, usage, and creation The presentation is devoted to console oriented services, such as: wttr.in, cheat.sh, rate.sx. Which popular console oriented services exist currently and how can they be used in everyday life; what advantages and disadvantages do they have; how services like that could be created.

Консольно-ориентированные сервисы: wttr.in, cheat.sh, rate.sx — Идея, использвание, создание

Консольно-ориентированные сервисы

На рубеже 2015 и 2016 годов, в дополнение к традиционно существующим типам
программ и служб, доступным пользователям UNIX/Linux, а именно локально инсталлируеммым программам, доступным для использования в консоли или в графической оболочке, и, программам, работающим на внешних серверах, и доступным через web-интерфейс, появился третий, новый, тип программ, совмещающих в себе свойства первых двух типов: так называемые консольно-ориентированные сервисы, которые не требуют инсталляции и доступны к использованию как из терминала, так и из браузера.

Благодаря своей простоте использования, полному отсутствию необходимости
инсталляции и конфигурирования и ряду других преимуществ, они начали быстро завоёвывать популярность среди пользователей
консоли UNIX/Linux систем.

Характерной особенностью таких сервисов является то, что их использование, с точки зрения пользователя, напоминает использование обыкновенного простого веб-сайта, но только в отличие от веб-сайта, для них наличие браузера
не обязательно, вместо него можно использовать простые HTTP-клиенты,
такие как curl, httpie или wget. Путешествие по гиперссылкам при этом
заменяется манипуляциями с URL, который в случае консольных сервисов,
как правило, чрезвычайно прост и интуитивно понятен.

Важным аспектом сервисов является и то, что они построены таким образом,
что отображаются в консоли UNIX/Linux системы и в браузере одинаково.
Это достигается при помощи анализа заголовка User-Agent запроса,
в зависимости от которого ответ генерируется в форме HTML, пригодной для браузера, или в ANSI, пригодной для терминала. Такой подход существенно облегчает новым пользователям порог вхождения и начало использования консольных сервисов.

Следующие команды, выполненные в терминале, позволют получить первое впечатление о том, что такое консольные сервисы, и как они выглядят с точки зрения пользователя:

```
curl be.wttr.in/Minsk
curl rate.sx/btc
curl cheat.sh/lua/copy+file
```

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

Как уже было сказано, сервисы созданные в соответствии с этим таким подходом
обладают множеством преимуществ как в сравнении с сервисами, созданными для использования из Web-браузера, так и в сравнении с традиционными консольными приложениями:

  • скорость;
  • совместимость;
  • очень низкие требования к клиенту;
  • прекрасная возможность интеграции;
  • простота и краткость;
  • анонимность использования;
    и так далее.

В рамках популяризации идеи создания консольных сервисов, было создано
несколько типичных консольных сервисов, некоторые из которых получили большую
известность, и сейчас уже знакомы большому количеству активных пользователей консоли UNIX/Linux во всём мире. Некоторые из них описаны ниже.

Кроме того, был создан специальный фреймворк, curlator, который существенно
упрощает создание консольных сервисов, и делает задачу создания консольных
сервисов доступным любому пользователю UNIX/Linux-систем, не требуя от него
никаких специальных знаний. Создание сервиса при этом по сложности соизмеримо с инсталляцией и начальным конфигурированием обычной UNIX/Linux-программы.

Примеры популярных консольно-ориентированных сервисов

wttr.in

wttr.in — сервис прогноза погоды, позволяет получить информацию о погоде в любой точке земного шара на одном из более 50 мировых языков; как и любой консольный сервис не требует никакой инсталляции и конфигурирования.

Примеры использования:

```
curl wttr.in
curl ru.wttr.in
curl be.wttr.in/Minsk
curl uk.wttr.in/Москва
```

cheat.sh

cheat.sh — сервис подсказок по UNIX/Linux-командам и языкам программирования.

С его помощью можно получить подсказку с наиболее популярными примерами
использования основных программ UNIX/Linux (сейчас сервис покрывает более 1000 команд), а так же получить ответы на практически любой вопрос по практически любому языку программирования.

Примеры использования:

```
curl cheat.sh
curl cheat.sh/btrfs
curl cheat.sh/az~snapshot
curl cheat.sh/lua/copy+file
curl cheat.sh/ruby/скопировать+файл
curl cheat.sh/python/створити+дерево+каталогів
```

rate.sx

rate.sx — сервис отслеживания обменных курсов валюты и криптовалюты.

С его помощью можно получить информацию о текущей и исторической стоимости
любой (из 500 наиболее популярных) криптовалюты на рынке, а так же её рыночную капитализацию, объём торгов и множество других характеристик.

```
curl rate.sx
curl rate.sx/btc
curl rate.sx/btc@1w
curl rate.sx/btc/eth@1w
curl eur.rate.sx/btc
```

Другие сервисы

Существует ряд других, менее популярных консольных сервисов, популярность которых, однако, растёт. Актуальный список сервисов доступен по адресу: https://github.com/chubin/awesome-console-services

Об авторе

Игорь Чубин — разработчик программного обеспечения, активный убеждённый пользователь и энтузиаст программного обеспечения. Основная его работа на протяжении последних десяти лет, это разработка высокопроизводительной распределённой реляционной базы данных Exasol.

В свободное от работы время он занимается разработкой и продвижением консольно-ориентированных сервисов.

Github:

https://github.com/chubin

Twitter:

https://twitter.com/igor_chubin

StackOverflow:

https://stackoverflow.com/users/1458569/

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад