14 дней до каникул: мозг перегружен

За окном ветер с дождём стегает крыши домов. Хорошо так лупит, с оттягом. А на нашем чердаке относительно тепло, сухо и самое время просыпаться. Честно говоря, дрых бы до 11-12 утра, но работа не волк, сама в лесом не уйдёт, а значит придётся вставать и разбираться.

Завариваю чай, готовлю компьютер к трудовому дню, привожу в порядок голову, где в это время нет ни одной мысли, кроме «Ыыыыыы».

Кстати, фоточки за ночь докачались в облако, что очень неплохо. Формально их можно было бы удалить, но пока подержу. Есть у меня смутные подозрения.

Этим утром выяснилось три момента.

  • Во-первых, пятница, что само-по себе хорошо. Да не простая, а распродажная. Торганоиды «начали» её ещё в среду, но это всё развод для клопов. Пятница, это когда завтра выходные! Так что нефиг обманывать!
  • Во-вторых, отпуск внезапно и очень ровно вклинился между выходными и новогодними праздниками. Т.е. рассчитывал на 18 дней, а получаю 30! Я обалдел когда это увидел.
  • В-третьих, поскольку отпуск начинается в понедельник (13 декабря), то отдыхать я начну с субботы (11 декабря), что на 2 дня раньше ожидаемого.

В общем, новость приятная. Получается, до моих персональных каникул 14 дней и сколько-то там часов. Ну или 11 рабочих дней (включая текущий). Как-бы не мало, но и не то чтобы очень много. Нужно успеть всё сделать.

Новый слоган

Просто, надёжно, дёшево — вот три важнейших критерия хорошего изобретения.

Взять например морзянку. Почему её используют до сих пор? Она же медленная (по сравнению с современными средствами передачи данных) и требует знания азбуки Морзе. Так какого лешего?

А вот какого!

  1. Высокая помехозащищённость.
  2. Узкий канал передачи.
  3. Возможность воспринимать код на слух.
  4. Возможность кодировать сообщения вручную.
  5. Возможность принимать и записывать с помощью примитивных (очень дешёвых или даже кустарных) устройств.

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

Можно конечно просто голосом и по рации. Но морзянкой передать буквенно-цифровой шифр можно, а голосом замаешься. Потому, что на слух очень легко перепутать буквы.
Приходится вместо одной буквы говорить целое слово. Вместо М — Мама, вместо В — Вася и т.д. Это дольше чем морзянка и всё-равно хуже защищено от помех.
К тому-же, рация сложнее (а значит не надёжнее) выключателя (ключа) который просто включает/выключает подачу сигнала.

Таких изобретений полно. Спичка, открывашка (или вовсе нож), бельевая верёвка, иголка. Всё это можно усовершенствовать. Давно есть электроподжиг, сушильные машины, электрооткрывашки и прочее. Они удобнее, но дороже, не так надёжны, и не настолько просты.

Но дело не только в простоте. Тут важен баланс.

Трут и огниво канули в лету. Как и перья для письма. И тем и другим пользуются, но очень узко и редко.

Спичка надёжнее, проще, компактнее и удобнее чем огниво. Стоит смешные копейки. Ей не нужен трут.

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

Перьевая ручка, гораздо лучше пера. Я предпочитаю писать именно её. Даже гельевые мне меньше нравятся. Но шариковая всё-равно проще и надёжнее.

Создавая изобретение очень легко пойти по пути усложнения. Речь об этом.

— Здравствуй, Отпуск!

— Здравствуй, Медный Таз!

— Не желаешь-ли накрыться мною?

И пока Отпуск думает, я начинаю легонько нервничать.

Что случилось? Нечего! Пока. Но очень даже может, и тогда шансы принять предложение таза будут 50 на 50.

Для чего нужен Docker?

Внезапный вопрос, не так ли?

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

Не хотел бы я заниматься этим снова.

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

Говорят, что всё само бы скачалось и работало как надо без всяких «танцев с бубном». Но так ли это на самом деле?

Для начала, ввожу в командную строку команду docker. Таким образом, проверяю установлен он у меня или нет. Если нет — устанавливаю.
Затем — docker-compose. Его тоже нужно установить.

А теперь, для примера, ввожу: docker pull ubuntu:18.10
Эта команда скачает образ операционной системы Ubuntu, версии 18.10.

Чтобы проверить, что образ скачался, набираю docker images и вижу, что да.

Вот и отлично. Сразу несколько команд освоил.

Сам скачанный образ меняться не будет. Он неизменен. Все «сохранёнки» будут лежать отдельно от образа. Локально.

Ещё одна команда docker ps
Она показывает какие образы в данный момент крутятся в памяти. У меня их два, ещё с прошлого проекта. Возможно пришло время их прибить.

Теперь про запуск контейнера. Есть такая команда RUN.
Например, я ввожу docker run ubuntu:18.10 echo ‘Hello Word!’ На человеческий язык это переводится как: Эй, Докер, запусти мне образ убунты 18.10 (он у тебя уже скачан) и введи в консоли этой убунты команду «Вывести текст ‘Hello Word!’.

В результате, в консоли выведется ‘Hello Word!’. Фокус в том, что сама убунта запустилась, выполнил команду и выключит контейнер.

Контейнер, это образ + сохранёнки. И команда run всякий раз создаёт новый контейнер. Создаёт, запускает в нём то что мне надо, и выключает.

Что делать, если я хочу запустить убунту, и ввести много команд? Т.е. поработать в ней как если бы она была у меня где-нибудь установлена и включена.
Для этого есть параметры. Вводим docker run -it ubuntu:18.10 /bin/bash
-it, вместе с /bin/bash как раз позволяет работать внутри контейнера через терминал.

Команда exit (в этом терминале) закроет контейнер.

Однако, закрыть контейнер вовсе не значит удалить. Если ввести команду docker ps -a, можно увидеть что контейнер ещё существует и узнать его ID (последняя строка, столбец CONTAINER_ID).
А зная ID контейнер можно запустить снова.

Например:

docker start CONTAINER_ID
docker ps
docker exec -it CONTAINER_ID /bin/bash

Вместо CONTAINER_ID вписываем тот самый ID, который подсмотрен командой docker ps -a

Зная ID контейнера, его можно остановить
docker stop CONTAINER_ID
или удалить
docker rm CONTAINER_ID

Можно проще, командой docker run -it —rm ubuntu:18.10 /bin/bash
Благодаря —rm контейнер удалится после того, как я из него выйду, и мне не понадобится шаманить в поисках ID.

Вечер пятницы оказался на редкость сумасшедшим и мерзким.

=== Заметки ===

Можно-ли научиться кодить под шум соседского перфоратора? Мне кажется, такие курсы могли бы пользоваться спросом.

Ночью надо спать. И почему так не просто следовать собственным советам?

Ещё...

Напишите комментарий

Введите имя

Введите адрес электронной почты

Введите адрес вашего сайта

Нажмите эту кнопку, чтобы отправить комментарий.

Введите текст комментария