2021-10-04

Не время умирать

Сходили на последнюю Бондиану. Что я могу сказать - прекрасное кино в духе современного времени!

И вот вам мои любимые спойлеры:

Агента 007 - играет черная женщина-лесбиянка (и это не шутка). Бонд топит за семейные ценности (где Бонд, а где семейные ценности?). В качестве агента Кью, (это тот кто обеспечивает Бонда гаджетами) теперь Шурик из Операции Ы, за этот подарок - от всей души спасибо от всех российских зрителей!

Бонд спасает мир от злобных русских, которые хотят убить всех людей запустив в водопровод нанороботов настроенных на ДНК всех людей. А в конце фильма Бонда убивают. Хеппи энд!

Прекрасное кино!

 

Оставить комментарий

 
  2021-10-02

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.

 

Оставить комментарий

 
  2021-10-02

Как установить 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 работают вполне стабильно.

 

Оставить комментарий

 
  2021-09-30

Ты мое дыхание

Варвара и Юрий Визборы - очень милое исполнение. Может на детях гениев природа и отдыхает, но на внуках - уже работает с полной отдачей!

Upd. Оказывается, у нее куча треков на Дизере. Значит, и на более популярных площадках еще больше есть.

 

Оставить комментарий

 
  2021-09-28

День рожденья блога

Ровно четырнадцать лет назад я добавил сюда первую запись.

Однако, как быстро летит время. Нужно бы подарить сайту какой нибудь новый функционал на день рождения....

 

Оставить комментарий

 
  2021-09-21

Оккупационный режим фруктов против народа овощей

Речь Глуховского на вручении ему литературной премии, уверен, скоро разойдется на цитаты:

 

Оставить комментарий

 
  2021-09-16

Wine в Docker

Есть много способов запустить Windows программу на Linux или MacOS - можно установить виртуальную машину, например в VirtualBox, можно запустить исполнимый файл при помощи Wine. 

Оказывается, можно также запустить Windows приложение в специально подготовленном Docker контейнере, в котором уже установлен Wine.

На мой взгляд, способ более чем интересный.

Добрые люди уже собрали все зависимости и выложили на docker.hub - вот ссылка.

 

 

 

Оставить комментарий

 
  2021-09-16

Большой тур Аквариума

Борис Борисович со своей бандой сейчас путешествует по миру, сейчас он в Украине.

Увы, в Берлин он не собирается, но вот свои концерты он и его фан сообщество @bg_aquarium_fanpage, уже третий день подряд транслируют в Инстаграм, так что каждый может побывать на его концерте, хотя бы виртуально!

 

Оставить комментарий

 
  2021-09-05

Лесные

Набрел на Ютубе на серию видео от ребят, снимающих видео в тайге. Респект за такой качественный контент. По стилю изложения напоминает старые научно-популярные фильмы о дикой природе. Особенно порадовала книга Теодора Драйзера, найденная в глухой таежной избушке - мне кажется, я знаю какую следующую книгу я буду читать.

 

Оставить комментарий

 
  2021-09-01

Курсы первой помощи в Берлине

Для получения водительских прав в Германии каждый будущий водитель должен пройти курсы первой помощи.

Курсы первый помощи в Германии проводятся не в автошколах а в специально аккредитованных организациях. Называется и это по-немецки Erste Hilfe Kurs и простым гуглением можно найти множество предложений. Курс первой помощи занимает целый день, поэтому часто его проводят по субботам, чтобы не пропускать работы. Я выбрал первый доступный на ближайшую субботу недалеко от дома.

Пришел в к 9:35, двери пока закрыты, кроме меня начинают подходить еще люди, ждем.

Примерно 9:45, открыли дверь и запустили в класс. 

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

9:55 начинается регистрация пришедших. Спрашивают удостоверение личности, негативный тест на коронавирус или прививочный сертификат, интересуются целью прохождения курса. Большинство проходит для автошколы, но было пару исключений. Также спрашивают название автошколы если уже такая уже выбрана. Тут же можно оплатить курс. Большинство уже оплатило курс онлайн на сайте но некоторые оплачивают курс наличкой.

Стоимость курса на месте совтавляет 74.75 евро. При оплате онлайн через сайт получается примерно на 10 евро дешевле.

Всего студентов 15 человек.

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

Проверка зрения.

При прохождения курсов можно дополнительно проверить зрение и сделать фото.

Зрение проверяют в отдельной комнате где стоит оборудование для фотографирования и машинка для проверки глаз. Кроме немецкой ID карточки у меня попросили еще и российский загранник, хорошо, что я его догадался захватить. 

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

Немецкий язык. 

Весь курс идет на немецком. В принципе не особо сложный, но сложно если нужно самому говорить. Благо это приходиться делать не часто. Новые слова записываю в свое приложение для запоминания слов - зря что ли я его делаю?

12:21 - 12:26 первый перерыв пять минут.

14:00 - 14:30 перерыв на обед. Студенты расходятся по городу чтобы по-быстрому перекусить денером или гамбургером.

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

После этого продолжаем изучение процедур оказания первой помощи, включая непрямой массаж сердца и искусственное дыхание. По-немецки это называется Herz Lungen Wiederbelebung. 

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

После обеда, перерывы делаем чаще - пять минут каждый час. Люди уже устали, но преподаватель всех держит бодрыми давая интерактивные задания.

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

Курс закончился в 17:30 строго по расписанию. Домой ушел немного уставший но довольный.

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

 
 

Оставить комментарий