Архив за месяц: Январь 2019

Telegram: канал и группа @rtfm, бот, API и кросспост из WordPress

30 января 2019
 

 Давно хотел и просили добавить канал в Телеграме, и сделать кросспост постов из блога туда. Всё не доходили руки сесть, и закончить – но теперь всё работает. Сам канал в телеге – тут>>> (плюс открытая группа  тут>>>), а в этом посте – описание настройки. Используется телеграм-бот, и плагин WP Telegram. Telegram Создание бота и получение API-токена Начинаем с… Читать далее »

C: отладка с gdb – примеры

30 января 2019
 

 gdb (GNU Project Debugger) используется при отладке/дебаге кода. Ниже приводятся примеры работы с кодом на С. Используем такой код: #include <stdio.h> #include <string.h> #include <stdlib.h> char * buf; int sum_to_n(int num) { int i,sum=0; for(i=1;i<=num;i++) sum+=i; return sum; } void printSum() { char line[10]; printf(“Enter a number: “); fgets(line, 10, stdin); if(line != NULL) strtok(line, “\n”);… Читать далее »

C: libmysqlclient – примеры работы с MySQL API

29 января 2019
 

 Давно не писал на С (последний раз – почти год тому, см. What is: Linux namespaces, примеры PID и Network namespaces). Немного за ним заскучал, ибо язык интересный и заставляет местами поломать голову, потому решил немного освежить память. Ниже приводятся примеры работы с сервером MySQL/MariaDB на С, используя API из библиотеки libmysqlclient. Примеры взяты из поста MySQL… Читать далее »

Arch: yaourt – No space left on device

24 января 2019
 

 Требуется установить пакет libmysqlclient для работы с API MySQL из C. Описание пакета – тут>>>. Во время сборки – yaourt сообщает об ошибке: Scanning dependencies of target mysql_protocol [100%] Building CXX object router/src/mysql_protocol/CMakeFiles/mysql_protocol.dir/src/handshake_packet.cc.o Unknown file/directory /tmp/yaourt-tmp-setevoy/aur-libmysqlclient/src/mysql-8.0.13/router/src/mysql_protocol/../src/router/include. Unknown file/directory /tmp/yaourt-tmp-setevoy/aur-libmysqlclient/src/mysql-8.0.13/router/src/mysql_protocol/../src/harness/include. {standard input}: Assembler messages: {standard input}: Fatal error: can’t close CMakeFiles/mysql_protocol.dir/src/handshake_packet.cc.o: No space left on device… Читать далее »

AWS: CloudFront и S3 – No ‘Access-Control-Allow-Origin’ header is present on the requested resource

22 января 2019
 

 Имеется S3 корзина, к которой подключен CloudFront CDN. (см. AWS: S3 – хостинг статического сайта). При проверке ресурса на сайте http://inspectstream.theoplayer.com/ получаем ошибку Cross Origin Resource Sharing (CORS) is not enabled: Полностью ошибка выглядит так: Access to XMLHttpRequest at ‘https://stage.cdn.example.world/meditation/audio/T/W/TWtEMwG0LuW8R5OlCFR3-X8Y1t-NocSX.m3u8’ from origin ‘https://bitmovin.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.… Читать далее »

Jenkins: JNLP-slave из Docker-образа

21 января 2019
 

 Имеется у нас зоопарк билд-агентов (macOS, Ubuntu), работающих в офисе. Сам Jenkins при этом запущен в AWS, на ЕС2, и обращается к агентам через проброс SSH-портов на офисном роутере. Задача – перенастроить схему, что бы агенты сами обращались к Jenkins, и, таким образом, отказаться от пробоса портов. Сесурити и вот это вот всё. Простой пример… Читать далее »

Linux: ncdu и pydf – отображение информации о занятом/свободном месте на дисках

16 января 2019
 

 NCDU NCDU – утилита для отображения занятого и свободного места на дисках, аналог du и df. Аббревиатура NCDU расшифровывается как NCurse Disk Usage, и, очевидно, использует библиотеку ncurses для отображения данных. Установка на Arch – с помощью pacman: [simterm] $ sudo pacman -S ncdu [/simterm] Debian/Ubuntu: [simterm] $ sudo apt install ncdu [/simterm] Запускаем: После проверки… Читать далее »

Jenkins: Remote call on JNLP4-connect connection failed

15 января 2019
 

 Имеется Jenkins, для которого подключили новый слейв. Слейв запущен на Mac Mini, и используется для iOS билдов. Но во время запуска – возникает ошибка: [EnvInject] – Injecting environment variables from a build step. [EnvInject] – Injecting as environment variables the properties file path ‘propsfile’ [EnvInject] – Variables injected successfully. FATAL: Remote call on JNLP4-connect connection… Читать далее »

Linux: проверка диска на bad blocks

14 января 2019
 

 Имеется у нас билд-агент для Jenkins, запущен на Ubuntu 16. Периодически при загрузке машина подвисает сразу после запуска GRUB. Один из вариантов поиска проблемы – проверить диск на предмет наличия битых секторов. Для этого можно использовать утилиты badblocks из набора e2fsprogs, и smartctl из набора smartmontools. badblocks Проверяем диски на этой машине: [simterm] root@username-ci:~# fdisk… Читать далее »

Linux: сделать скриншот на удалённой машине по SSH

9 января 2019
 

 Есть Jenkins билд-агент на Ubuntu, запущенный на машинке, которая стоит в офисе, мониторы от неё висят на стенке и отображают результаты билдов (см. Build Monitor Plugin). Задача – сделать скриншот экрана, не бегая в другой конец комнаты к клавиатуре. Устанавливаем imagemagick: [simterm] root@projectname-ci:~# apt install imagemagick [/simterm] Создаём скриншот, используя import: [simterm] root@projectname-ci:~# import -window root… Читать далее »