Data Science: Первое знакомство

Чтение csv-таблиц:

import pandas

data = pandas.read_csv('polomki.csv', index_col='Магазин')

print(data)

Работа с колонками:

import pandas

data = pandas.read_csv('polomki.csv', index_col='Магазин')

data['Неделя 14'] = data['Неделя 14'] * 100

print(data)

Вывод тепловой карты:

import pandas
import seaborn

data = pandas.read_csv('polomki.csv', index_col='Магазин')

data['Неделя 14'] = data['Неделя 14'] * 100

seaborn.heatmap(data)

Обработка аргументов в bash

#!/bin/bash

while [[ "$#" -gt 0 ]]; do
    case $1 in
        -t|--target) target="$2"; shift ;;
        -u|--uglify) uglify=1 ;;
        *) echo "Unknown parameter passed: $1"; exit 1 ;;
    esac
    shift
done

echo "Where to deploy: $target"
echo "Should uglify  : $uglify"
Usage:

./deploy.sh -t dev -u

# OR:

./deploy.sh --target dev --uglify

Простой инсталлятор для Linux средствами bash

Если вам приходилось ставить JDK на вашу Linux-машину, то вы знакомы с этим способом развёртывания приложения. И, если теперь ваша замечательная новая программа должна отправиться к благодарным пользователям, то почему бы не облегчить им жизнь с помощью простого «инсталлятора»? Вот увидите, клиенты это оценят.

Как это выглядит?
Предельно просто. Пользователь загружает .sh файл и запускает его. Скрипт не просто создаёт все директории и т.п., а ещё и извлекает «из себя» файлы приложения и раскладывает их куда нужно.

Читать далее «Простой инсталлятор для Linux средствами bash»

PostgreSQL 11: Мастерство разработки

PostgreSQL гарантирует, что столбец id будет уникальным, но при этом в индексе будет храниться дополнительное поле, так что при запросе обоих столбцов будет произведен просмотр индекса.

CREATE UNIQUE INDEX some_name ON person USING btree (id) INCLUDE (name);

Если вы хотите получить «настоящее время», то пользуйтесь функцией clock_timestamp(), а не now().

Читать далее «PostgreSQL 11: Мастерство разработки»

Создание собственного Youtube сайта

В сложившейся ситуации на март 2022 года я решил найти замену Youtube. При простом поиске в интернете я нашел следующее ПО PeerTube.

Все инструкция находиться по адресу https://docs.joinpeertube.org/install-any-os?id=installation

Примечание: установку делал на Ubuntu 20.04

Видео ролик установки https://www.youtube.com/watch?v=62_fQwp3KTU

Добавление, разметка, монтирование нового жесткого диска в ubuntu

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

У меня система развернута на сервере ESXi, к профилю виртуальной машины я добавил новых жесткий диск размером 500Gb. Запускаю систему и само собой она знать не знает чего мы там к ней подключили и как с ним работать.

Первым делом посмотрим какие вообще у нас устройства подключены

sudo fdisk -l

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

Читать далее «Добавление, разметка, монтирование нового жесткого диска в ubuntu»

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»