Репост моей статьи с хабра.
Я провожу в терминале много времени, поэтому хочется, чтобы все было красиво, быстро и удобно.
Из этого рождается постоянное желание его настраивать, пробовать разные плагины.
Шеллом я выбрал для себя zsh лет 5 назад, пару лет назад нашел oh-my-zsh для его удобной настройки.
Со временем к этому конфигу добавились некоторые сбоку торчащие части в виде powerline и percol.
Недавно я решил пересобрать все так, чтобы избавиться от ненужных плагинов, добавить нужные, сделать легкую установку
и обновление. В итоге появилась роль ansible-role-zsh,
которая полностью настраивает терминалы на локалке и на моих серверах.
Особенности:
- устанавливается одной командой (кроме шрифта и темы вашего терминального клиента)
- быстро загружается, быстро работает
- полностью настраивается через ansible,
~/.zshrc
- полностью локальная (в систему ничего не ставится, все хранится в
~/.oh-my-zsh
)
- оставляет возможность юзеру вносить свои настройки через
~/.zshrc.local
одинаково работает на macOS, старом Debian, Ubuntu, CentOS
- нормально выглядит на разных цветовых схемах (но лучше всего на Solarized Dark)
- встроенная подсветка синтаксиса (помогает реже ошибаться и лучше читать длинные команды)
- автодополнение по истории команд (помогает реже нажимать
Ctrl+R
)
- отображение времени для долго выполняемых команд (помогает реже использовать
time
)
Демонстрация фич за 1 минуту:
Опишу процесс, к которому я пришел на данный момент.
TODO: concurrent
TODO: несколько дистрибов
Особенности
- Стремление не писать роли
- Постепенное ужесточение требований при написании, от “Лишь бы прошло с 10 раза” к “Скорее всего Travis пройдет с первого раза”
- Тестирование на разных машинах
Эта статья первая на новом движке.
Зачем:
- Не зависеть от ruby
- быстрее
- просто интересно
В предыдущей статье я настраивал apt-mirror
для тех же целей. У того способа нашлось несколько недостатков.
В статье ниже описано, как решить ту же проблему, используя apt-cacher-ng
.
Tl;dr: на этот раз все получилось, этот способ меня устроил.
При тестировании плейбуков на чистой Ubuntu (а как же еще?) самые большие накладные расходы по времени (субъективно)
и уж точно самые большие по трафику уходят на установку пакетов из системного репозитория. Особенно это заметно, когда видишь, что один и тот же тест Travis CI прогоняет в 1.5 раза быстрее.
Ниже описано, как создать зеркало из http://mirror.yandex.ru/ubuntu и подружить его с Gitlab CI и molecule.
Tl;dr: не делайте локальный репозиторий через apt-mirror
для мелких задач, не стоит оно того. Вместо этого нужно поднять кеширующий сервер через apt-cacher-ng.
Занялся я тут распиливанием большого проекта (дерево ansible ролей) на отдельные репозитории.
Для этого надо:
- Извлечь директорию подпроекта в отдельный репозиторий
- Удалить из проекта папку подпроекта
- Добавить в большой проект зависимость от подпроекта
Ниже написано, как сделать 1-й шаг одной командой через скрипт git-extract-subproject
.
Несколько недель назад я начал разбираться с Kapacitor, попутно записывая свои действия. Конца разбирательствам было не видно, записей становилось все больше и накопилось на серию.
Речь пойдет о Kapacitor, последнеем слое из стека TICK от InfluxData, набора программ для сбора, отображения и обработке метрик.
Tl;dr: думаю, что Kapacitor нужен только тем, кто уже использует InfluxDB для сбора метрик. С установкой могут быть проблемы, если руки кривые.
А также небольшое замечание о том, как делать Pull request'ы из браузера за 2 минуты
Итак, дождался обновления Windows, поставил в нее Ubuntu по инструкции, вот что было дальше:
Tl;dr: оно очень сырое, не работает почти ничего.
Все конечно слышали, что Microsoft и Canonical сговорились и встроили в винду линукс. Так вот, его пока еще нельзя потрогать.
UPD 11.04.2016: сборка 14316 дошла до меня, смотрите инструкцию по настройке.
С начала января я веду свой проектик, на котором обкатываю новые для меня технологии:
- Статический анализ кода, phpcs, phpmd, Scrutinizer
- Автоматическая сборка, Travis CI
- Unit тесты, PHPUnit
- Покрытие кода, Coveralls
- Работу через задачи для любых изменений, Github Issues, PhpStorm tasks
- Документирование всего: README, CHANGELOG, сайт проекта, –help
В этом посте изложена история изменений моего мнения о разных генераторах историй изменения.
Tl;dr: conventional-changelog, стандартизация коммитов.
Распробовал тут на неделе интеграцию задач Github и самого Git issue tracker.
Ниже будет написано, как настроить в Планфиксе такое поведение:
- В коммите упоминаем задачу, например,
Правки футера шаблона, https://test.planfix.ru/task/123456
- После push в удаленный репозиторий в упомянутой задаче появляется комментарий с текстом коммита и ссылкой на страницу коммита
на Gitlab, если проект подключен к репозиторию.
Tl;dr: настраивается post-receive hook в Git на удаленном сервере,
после каждого пуша анализируются сообщения пришедших коммитов, коммиты, содержащие ссылки на задачи отправляются в задачи по email.
Вся интеграция делается в одном файле, код хука лежит здесь -
git-hook-post-receive
Периодически хочется посчитать среднее время, у меня были такие сценарии:
- простая проверка скорости загрузки страницы
- подбор оптимальных параметров к команде
- сравнение разных команд
Раньше я просто запускал несколько раз с time
, смотрел результат, у уме делил.
Но мне это надоело, поэтому написал скрипт average
.
Хочу поделиться своим способом быть в курсе всего интересного в мире IT, читать много статей и знать, где быстро найти нужную статью.
Tl;dr: RSS + Twitter + Email → Pocket → Firefox → Twitter + закладки.
Оставлю здесь свой пост с хабра.
Перевод поста Visualizing Docker Containers and Images, от новичка к новичкам, автор на простых примерах объясняет базовые сущности и процессы в использовании docker.
Если вы не знаете, что такое Docker или не понимаете, как он соотносится с виртуальными машинами или с инструментами configuration management, то этот пост может показаться немного сложным.
Пост предназначен для тех, кто пытается освоить docker cli, понять, чем отличается контейнер и образ. В частности, будет объяснена разница между просто контейнером и запущенным контейнером.
Наслушавшись рассказов про то, какой на макбуке офигенный большой тачпад и как он легко заменяет мышку,
нашел способ испытать это на себе бесплатно. Описываю свои впечатления как обычно: плюсы, минусы, грабли, способы обхода.
Сегодня хотел заказать ароматизаторов на Baker Flavours, дошел до страницы заказа,
и увидел “Уважаемые заказчики! В связи с чрезвычайно большим количеством заказов, прием заказов временно прекращен.".
Ок, будем ждать, пока эта надпись не пропадет, а чтобы не проверять руками, будем делать это на автомате и ждать уведомления.
Строчка для crontab:
0 20 * * * curl -s http://bakerflavors.ru/formbf.htm | iconv -f windows-1251 -t utf-8 | grep "временно прекращен" > /dev/null || { echo "BF order started" | terminal-notifier && open http://bakerflavors.ru/formbf.htm }
Подробности под катом.
Бывает, что надо вспомнить о чем-то в ближайшее время: выключить чайник, выйти к подъезду через 10 минут,
бросить заниматься фигней через полчаса - для таких вещей идеально подходит таймер. От таймера требуется только одно:
возможность установить его в течение 5 секунд. Недавно я нашел такой с такими плюсами:
- Настроить нужно один раз, после этого будет работать на всех системах, если включена синхронизация настроек браузера
- Пользоваться легко
UPD 05.03.2017: до сих пор пользуюсь через раз, либо этим способом, либо: “Окей, гугл, таймер на пять минут”.
UPD 12.04.2020: больше не пользуюсь, теперь в каждой комнате есть колонка с Алисой, проще сказать: “Алиса, таймер на 5 минут”.
UPD 20.05.2020: я уже несколько лет как не абонент Планеты, но Вебургом продолжаю пользоваться.
Теперь я использую её так:
- В браузере стоит юзерскрипт, который позволяет ставить на закачку в Transmission в 1 клик (на сервере должен быть запущен принимающий скрипт)
- Когда смотрю какой-то сериал, ставлю в cron задачу на ежедневное докачивание новых серий
У моего интернет-провайдера Планета есть бонусная программа поощрения раздачи торрентов с weburg.net, дающая бонусы,
их можно тратить на абонентскую плату. У меня комп постоянно включен, я сразу стал участвовать.
Поддержку раздач можно разбить на несколько задач:
- периодически скачивать новинки фильмов
- скачивать новые серии популярных сериалов
- удалять то, что плохо раздается
Через пару месяцев мне это надоело, задумался об автоматизации этого процесса и вот в новогодние каникулы родился
transmission-cli - консольная утилита, решающая часть этих задач.
Надоело постоянно обновлять PhpStorm руками. На Ubuntu последнее время делал это с помощью ansible,
под Mac этот плейбук не расчитан, к тому же версию ему надо было указвать вручную.
Поэтому написал скрипт, не совместимый с Ubuntu :)
UPD: 06.06.2016
Сегодня вышла EAP 2016.1.1, так вот, теперь app ставится не в PhpStormEAP, как раньше, а с версией, поэтому мой скрипт перестал работать.
UPD: 30.03.2018
JetBrains выпустил официальный инструмент для автообновления всего: Toolbox App
Репост моей статьи с хабра.
Этот пост получился в результате моего ознакомления с Otto, одним из последних продуктов Hashicorp,
о котором уже была обзорная статья на хабре.
Мой пост носит более практический характер. Я решил поднять на otto стандартный проект,
чтобы сразу не наткнуться на тонкости настройки, а чтобы было интересно, выбрал Drupal 8, вышедший недавно.