Установить Jupiter notebook на Ubuntu 20.04

Создаем нового пользователя

sudo adduser jupiter
sudo usermod -a -G www-data jupiter

Далее авторизуемся под новым пользователем:

sudo apt install python3-pip python3-dev
sudo pip3 install virtualenv

mkdir ~/my_project_dir
cd ~/my_project_dir
virtualenv my_project_env

source my_project_env/bin/activate
Читать далее «Установить Jupiter notebook на Ubuntu 20.04»

Основы Python

Список — это структура данных. Чтобы создать список, его элементы перечисляют через запятую в квадратных скобках и присваивают переменной. Например, вот список из пяти первых значений столбца installs из таблицы с данными «Книжного грызуна»:

installs = [29486, 33968, 30830, 34361, 33968]

Да! Индексы могут быть отрицательными — это называется обратная индексация. Такая программа покажет на экране значение 36.8, то есть последний элемент списка.

temperature = [36.6, 37.2, 36.5, 36.8]
print(temperature[-1]) 

Обратная индексация

Индексы могут быть отрицательными. Чтобы получить последний элемент списка, в квадратных скобках указывают -1. Индекс предпоследнего элемента — -2, третьего с конца элемента — -3 и так далее. Обратиться к одному и тому же элементу можно как по обычному, так и по отрицательному индексу:

russian_cities = ['Москва', 'Санкт-Петербург', 'Томск', 'Екатеринбург', 'Владивосток', 'Смоленск', 'Барнаул', 'Сочи', 'Красноярск']

print(russian_cities[6])
print(russian_cities[-3])

Что такое срезы

Срезы — почти как индексы. Только они позволяют получить не один, а сразу несколько идущих подряд элементов списка. Чтобы сделать срез, в квадратных скобках через знак : указывают начало и конец желаемого диапазона. Например, data[1:5]some_list[7:9].

Срезы начала и конца списка

Срезы конца списка работают аналогично. Последний элемент среза совпадает с окончанием списка, поэтому достаточно указать индекс первого элемента. Удобнее делать это через отрицательный индекс. Так можно получить последние три элемента prime_numbers:

prime_numbers = [2, 3, 5, 7, 11, 13, 17]
print(prime_numbers[-3:]) 
Скопировать код[11, 13, 17] 

Как формулировать гипотезы?

  • Определите цель. Например, вы хотите, чтобы посетители сайта покупали больше. Вокруг этой точки и следует формировать гипотезы, именно на неё будут влиять результаты исследования;
  • Предполагайте. В свободной форме сделайте предположения о том, что влияет на выбранное для анализа явление. Например: «Число покупок зависит от внешнего вида карточек товаров». Избегайте суждений в духе «это и так понятно». В аналитике нет ничего очевидного — всё нужно сначала доказать;
  • Уточните гипотезу. Здесь два пути: можно постараться сделать гипотезу максимально точной с самого начала либо сразу приступить к проверке. В ходе работы вы обязательно сформируете новые, уточняющие предположения. Например, гипотеза «Число покупок зависит от внешнего вида карточек товаров» через некоторое время может превратиться в такую: «Возможность предварительного просмотра в карточке товара влияет на рост числа покупок».
  • Действуйте. В хорошей гипотезе всегда есть не только цель, но и действие: «Если добавить в карточки товаров возможность предварительного просмотра, это увеличит число покупок». При формулировании гипотез один из этих элементов часто теряют. Например, вы делаете редизайн сайта. Но зачем? Есть действие, но нет цели. Или хотите увеличить продажи, но не знаете как. Цель есть, действия нет.
image

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