SWIFT: создание второго потока

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 с большим количеством строк).

Справа — web-сервер, слева — база данных.

По нагрузке видно, что все ядра на сервере построения отчетов загружены на полную, но при этом нагрузки на СУБД нет.

Читать далее «Pentaho: ошибка вида gc overhead limit exceeded»

Настройка приема платежей через PayPal

Внимание: Платежная система PayPal с 31 июля 2021 г. прекратил осуществления клиентских внутренних переводов и платежей по России. Об этом говорится в заявлении компании. При этом пользователи системы в России по-прежнему смогут осуществлять перевод за рубеж или получать перевод из-за границы.

Прием платежей реализован через NodeJS и библиотеки express. Создаем проект и добавляем в зависимость npm модуль @paypal/checkout-server-sdk.

npm i @paypal/checkout-server-sdk

Прием платежей через PayPal реализуется в два этапа:

  1. создание (формирование) платежа клиентом.
  2. подтверждение приема платежа.
Читать далее «Настройка приема платежей через 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

Ошибка unable to verify the first certificate в NodeJS

Если в приложении express используется nodemailer и используется порт 25 без шифрования, то выходит вот такая ошибка.

Чтобы исправить это, нужно в файле /bin/www добавить

// добавлено специально, чтобы была рассылка писем с 25 порта
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

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»