Что оставит ветер - аудиокнига
Андрей Кравец озвучил книгу Николая Беляева "Что оставит ветер".
Мне книги в исполнении Андрея особенно нравятся - разложенные по голосам, мастерски озвученные, они приобретают что-то дополнительно к тому, что хотел в них вложить автор.
Не время умирать
Сходили на последнюю Бондиану. Что я могу сказать - прекрасное кино в духе современного времени!
И вот вам мои любимые спойлеры:
Агента 007 - играет черная женщина-лесбиянка (и это не шутка). Бонд топит за семейные ценности (где Бонд, а где семейные ценности?). В качестве агента Кью, (это тот кто обеспечивает Бонда гаджетами) теперь Шурик из Операции Ы, за этот подарок - от всей души спасибо от всех российских зрителей!
Бонд спасает мир от злобных русских, которые хотят убить всех людей запустив в водопровод нанороботов настроенных на ДНК всех людей. А в конце фильма Бонда убивают. Хеппи энд!
Прекрасное кино!
Gitlab Runner на Raspberry Pi Zero W
Gitlab Runner - это программа, которая будет после каждого коммита в репозиторий производить определенные действия - запускать тесты, компилировать релиз, деплоить приложение и т.д. Gitlab Runner написан на Go, поэтому может запускаться на самом простом железе, например, на Raspberry Pi Zero W.
Бесплатный аккаунт Gitlab уже дает возможность запускать предустановленные раннеры беcплатно, но их использование ограниечено по времени и если вам нужно больше CI минут можно использовать свой собственный Gitlab Runner. В этом случае, вы получаете неограниченные возможности использования CI/CD.
В этой статье устновим Gitlab Runner на систему на Raspberry Pi Zero W, инсталлированную в предыдущем посте, настроим и зарегистрируем для использования с проектом на Gitlab.
Зарегистрируем gitlab репозиторий:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
Устанавливаем сам runner:
sudo apt-get install gitlab-runner
Создаем тестовый проект на gitlab.com. Заходим в насторойки в секцию CI/CD и копируем токен:
Регистрируем runner для использования в проекте:
sudo gitlab-runner register --url https://gitlab.com/ --registration-token iztXysgDwDvH8z2AV4sZ
Самый простой тип раннера - shell - его и выберем на последнем шаге.
Убедимся, что раннер работает:
sudo gitlab-runner verify
GitLab Runner готов к использованию. Добавляем в проект файл .gitlab.yml со следующим содержимым:
build:
script:
- echo "Building"
Если все настроено правильно после коммита, наш pipeline будет исполнен и вы увидите следующее:
Таким нехитрым способом можно автоматизировать большинство рутинных операций переложив на компьютер операции по запуску тестов, деплою приложений и т.д. и т.п.
Конечно, вышеприведенный пример раннера пока не делает ничего полезного - только выводит слово "Building", но это легко исправить, добавив команды типа "npm test", "composer test".
Больше информации по установке и использованию руннеров можно узнать из официальной документации gitlab.
Как установить Raspbian на Raspberry Pi Zero W
Время от времени бывает нужно по-быстрому залить Raspbian на Raspberry PI Zero W, так чтобы сразу можно было начать работать с системой.
Вот краткая инструкция как это сделать:
На локальном компьтере: (замените /dev/sdX, username, wlanname, wlanpassword, 192.168.0.155 на ваши)
# download image
wget https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-05-28/2021-05-07-raspios-buster-armhf-lite.zip
# extract
unzup 2021-05-07-raspios-buster-armhf-lite.zip
# copy to device
sudo dd if=2021-05-07-raspios-buster-armhf-lite.img of=/dev/sdX bs=2M conv=fsync
# activate ssh
touch /media/username/boot/ssh
# update the wifi access credentials
cat > /media/username/rootfs/etc/wpa_supplicant/wpa_supplicant.conf << EOF
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
ssid="wlanname"
psk="wlanpassword"
key_mgmt=WPA-PSK
}
EOF
# setup static IP address
cat >> /media/username/rootfs/etc/dhcpcd.conf << EOF
interface wlan0
static ip_address=192.168.0.155/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8
EOF
# prevent warning locale not found
cat >> /media/username/rootfs/etc/environment << EOF
LC_ALL=C
LANG=en
LANGUAGE=en
EOF
Вставляем карточку в устройство, и подаем питание.
Если все прошло успешно то в сети появится новое устройство.
Заходим на устройстов по ssh: pi@192.168.0.155, пароль по умолчанию: "raspberry".
# expand filesystem on SD card
sudo raspi-config --expand-rootfs
# reboot
sudo reboot now
# after reboot login again and
# upgrade the system
sudo apt-get update
sudo apt-get upgrade -y
После вышеперечисленных шагов у вас будет рабочая система с Linux с которой можно работать.
Важно использовать правильный кардридер и правильную SD карту. Я потратил немало времени прежде чем обнаружил, что встроенный в ноутбук кардридер, почему то, хорошо читает карточки но совершенно не умеет записывать - то ли не хватает напряжения, то ли проблема в драйверах. После перехода на внешний кардридер, все встало на свои места.
Другой проблемой было то, что все SD карты, купленные в России, мне пришлось выбросить - они работают крайне ненадежно. Вроде пишутся штатно, но система на них не хочет работать - либо вообще не грузится, либо происходит ошибка в процессе обновления системы, по какой-то загадочной причине, некоторые файлы записанные в процессе обновления впоследствие оказываются повреждены и обновление завершается с ошибкой. Карты SamDisk, купленные на немецом Amazon работают вполне стабильно.