var workItem: DispatchWorkItem? = nil ... override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let indicator = activityIndicator() indicator.startAnimating() workItem = DispatchWorkItem { // долгая команда DispatchQueue.main.async { indicator.stopAnimating() indicator.hidesWhenStopped = true } } DispatchQueue.global(qos: .utility).async(execute: workItem!) } ... override func viewDidDisappear(_ animated: Bool) { if let workItem = workItem { workItem.cancel() self.workItem = nil } }
Автор: Александр Краснов
Pentaho: ошибка вида gc overhead limit exceeded
Предыстория: заказчик жалуется, что через какое-то время построение отчетов становиться не доступно (построение Excel с большим количеством строк).

По нагрузке видно, что все ядра на сервере построения отчетов загружены на полную, но при этом нагрузки на СУБД нет.
Читать далее «Pentaho: ошибка вида gc overhead limit exceeded»Настройка приема платежей через PayPal
Внимание: Платежная система PayPal с 31 июля 2021 г. прекратил осуществления клиентских внутренних переводов и платежей по России. Об этом говорится в заявлении компании. При этом пользователи системы в России по-прежнему смогут осуществлять перевод за рубеж или получать перевод из-за границы.
Прием платежей реализован через NodeJS и библиотеки express. Создаем проект и добавляем в зависимость npm модуль @paypal/checkout-server-sdk.
npm i @paypal/checkout-server-sdk
Прием платежей через PayPal реализуется в два этапа:
- создание (формирование) платежа клиентом.
- подтверждение приема платежа.
Установка настройка pgAgent
Оригинал инструкции размещен на сайте https://gist.github.com/peterneave/83cefce2a081add244ad7dc1c53bc0c3
- Устанавливаем приложение
sudo apt update sudo apt install pgagent
- Далее создаем файл .pgpass в рабочей директории postgresql (/var/lib/postgresql)
sudo su - postgres echo localhost:5432:*:pgagent:securepassword >> ~/.pgpass chmod 600 ~/.pgpass chown postgres:postgres /var/lib/postgresql/.pgpassЧитать далее «Установка настройка pgAgent»
Обновление NodeJS
Иногда может быть ситуация, когда требуется использовать более новые версии NodeJS.
Инструкция по обновлению следующая:
- Скачиваем инсталяк
curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh
# тут setup_16.x номер версии node
- Запускаем скрипт
sudo bash nodesource_setup.sh
- Устанавливаем nodejs
sudo apt install nodejs
Оригинал статьи: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04-ru
Индекс для postgresql на поля jsonb
CREATE INDEX IF NOT EXISTS cd_results_jb_data_f_act_number_btree_idx ON core.cd_results USING btree ((jb_data #>> '{f_act_number}'::text[]) COLLATE pg_catalog."default" ASC NULLS LAST) TABLESPACE pg_default;
Ошибка unable to verify the first certificate в NodeJS
Если в приложении express используется nodemailer и используется порт 25 без шифрования, то выходит вот такая ошибка.
Чтобы исправить это, нужно в файле /bin/www добавить
// добавлено специально, чтобы была рассылка писем с 25 порта process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
Узнать ошибку в cron
Добавляем в конце команды
cmd >> /var/log/vaccine.log 2>&1
Google Platform Cloud. Скачивание образа виртуальной машины
- Создаем образ на основе диска, где находиться ОС, которую нужно скачать:
Переходим в раздел Images и нажимаем кнопку Create Image

выбираем источник Disk (по умолчанию именно он установлен).
Читать далее «Google Platform Cloud. Скачивание образа виртуальной машины»Установка pfx сертификата на NGINX
Требуется при помощи программы openssl преобразовать *.pfx сертификат в два файла: открытый сертификат и приватный ключ.
Примечание: если установлен GIT то openssl можно использовать и оттуда:
C:\Program Files\Git\usr\bin\openssl.exe
Внимание: при работе с сертификатом *.pfx требуется пароль для работы с ним без.
Читать далее «Установка pfx сертификата на NGINX»